<?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>159774</bug_id>
          
          <creation_ts>2016-07-14 11:17:22 -0700</creation_ts>
          <short_desc>Use SocketProvider to create SocketStreamHandles</short_desc>
          <delta_ts>2016-07-26 07:16:59 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1211059</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 11:17:22 -0700</bug_when>
    <thetext>Use SocketProvider to create SocketStreamHandles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211061</commentid>
    <comment_count>1</comment_count>
      <attachid>283663</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 11:20:26 -0700</bug_when>
    <thetext>Created attachment 283663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211062</commentid>
    <comment_count>2</comment_count>
      <attachid>283664</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 11:26:10 -0700</bug_when>
    <thetext>Created attachment 283664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211063</commentid>
    <comment_count>3</comment_count>
      <attachid>283664</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-07-14 11:33:54 -0700</bug_when>
    <thetext>Comment on attachment 283664
Patch

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

&gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:45
&gt; +#include &quot;ThreadableWebSocketChannel.h&quot;
&gt; +
&gt; +#include &quot;Document.h&quot;
&gt; +#include &quot;ScriptExecutionContext.h&quot;
&gt; +#include &quot;ThreadableWebSocketChannelClientWrapper.h&quot;
&gt; +#include &quot;WebSocketChannel.h&quot;
&gt; +#include &quot;WebSocketChannelClient.h&quot;
&gt; +#include &quot;WorkerGlobalScope.h&quot;
&gt; +#include &quot;WorkerRunLoop.h&quot;
&gt; +#include &quot;WorkerThread.h&quot;
&gt; +#include &quot;WorkerThreadableWebSocketChannel.h&quot;
&gt; +#include &lt;wtf/text/StringBuilder.h&gt;

Really needs all of these?

&gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:49
&gt; +static const char webSocketChannelMode[] = &quot;webSocketChannelMode&quot;;

ASCIILiteral?

&gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:57
&gt; +        mode.appendLiteral(webSocketChannelMode);

And move the ASCIILiteral here, the only place it&apos;s actually used?

&gt; Source/WebKit/mac/Misc/WebSocketProvider.mm:51
&gt; +RefPtr&lt;SocketStreamHandle&gt; WebSocketProvider::createSocketStreamHandle(const URL&amp; url, SocketStreamHandleClient&amp; client, NetworkingContext&amp; context, SessionID sessionID)
&gt;  {
&gt; -    if (is&lt;WorkerGlobalScope&gt;(context)) {
&gt; -        WorkerGlobalScope&amp; workerGlobalScope = downcast&lt;WorkerGlobalScope&gt;(context);
&gt; -        WorkerRunLoop&amp; runLoop = workerGlobalScope.thread().runLoop();
&gt; -        StringBuilder mode;
&gt; -        mode.appendLiteral(webSocketChannelMode);
&gt; -        mode.appendNumber(runLoop.createUniqueId());
&gt; -        return WorkerThreadableWebSocketChannel::create(workerGlobalScope, client, mode.toString());
&gt; -    }
&gt; -
&gt; -    return WebSocketChannel::create(downcast&lt;Document&gt;(context), client);
&gt; +    return SocketStreamHandle::create(url, client, context, sessionID);

Default WebCore::SocketProvider should just do this, and the WebKit2 one should override.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211071</commentid>
    <comment_count>4</comment_count>
      <attachid>283665</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 11:58:56 -0700</bug_when>
    <thetext>Created attachment 283665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211075</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 12:06:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 283664 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283664&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:45
&gt; &gt; +#include &quot;ThreadableWebSocketChannel.h&quot;
&gt; &gt; +
&gt; &gt; +#include &quot;Document.h&quot;
&gt; &gt; +#include &quot;ScriptExecutionContext.h&quot;
&gt; &gt; +#include &quot;ThreadableWebSocketChannelClientWrapper.h&quot;
&gt; &gt; +#include &quot;WebSocketChannel.h&quot;
&gt; &gt; +#include &quot;WebSocketChannelClient.h&quot;
&gt; &gt; +#include &quot;WorkerGlobalScope.h&quot;
&gt; &gt; +#include &quot;WorkerRunLoop.h&quot;
&gt; &gt; +#include &quot;WorkerThread.h&quot;
&gt; &gt; +#include &quot;WorkerThreadableWebSocketChannel.h&quot;
&gt; &gt; +#include &lt;wtf/text/StringBuilder.h&gt;
&gt; 
&gt; Really needs all of these?
Yes.
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:49
&gt; &gt; +static const char webSocketChannelMode[] = &quot;webSocketChannelMode&quot;;
&gt; 
&gt; ASCIILiteral?
&gt; 
&gt; &gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:57
&gt; &gt; +        mode.appendLiteral(webSocketChannelMode);
&gt; 
&gt; And move the ASCIILiteral here, the only place it&apos;s actually used?
StringBuilder has a nice appendLiteral(const char (&amp;characters)[charactersCount]) which counts the characters at compile time.
&gt; 
&gt; &gt; Source/WebKit/mac/Misc/WebSocketProvider.mm:51
&gt; &gt; +RefPtr&lt;SocketStreamHandle&gt; WebSocketProvider::createSocketStreamHandle(const URL&amp; url, SocketStreamHandleClient&amp; client, NetworkingContext&amp; context, SessionID sessionID)
&gt; &gt;  {
&gt; &gt; -    if (is&lt;WorkerGlobalScope&gt;(context)) {
&gt; &gt; -        WorkerGlobalScope&amp; workerGlobalScope = downcast&lt;WorkerGlobalScope&gt;(context);
&gt; &gt; -        WorkerRunLoop&amp; runLoop = workerGlobalScope.thread().runLoop();
&gt; &gt; -        StringBuilder mode;
&gt; &gt; -        mode.appendLiteral(webSocketChannelMode);
&gt; &gt; -        mode.appendNumber(runLoop.createUniqueId());
&gt; &gt; -        return WorkerThreadableWebSocketChannel::create(workerGlobalScope, client, mode.toString());
&gt; &gt; -    }
&gt; &gt; -
&gt; &gt; -    return WebSocketChannel::create(downcast&lt;Document&gt;(context), client);
&gt; &gt; +    return SocketStreamHandle::create(url, client, context, sessionID);
&gt; 
&gt; Default WebCore::SocketProvider should just do this, and the WebKit2 one
&gt; should override.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211105</commentid>
    <comment_count>6</comment_count>
      <attachid>283672</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 13:06:31 -0700</bug_when>
    <thetext>Created attachment 283672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211126</commentid>
    <comment_count>7</comment_count>
      <attachid>283678</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 13:55:53 -0700</bug_when>
    <thetext>Created attachment 283678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211138</commentid>
    <comment_count>8</comment_count>
      <attachid>283683</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 14:16:16 -0700</bug_when>
    <thetext>Created attachment 283683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211155</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-14 14:44:07 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/203244</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214526</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-26 07:00:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; https://trac.webkit.org/changeset/203244

It broke the !ENABLE(WEB_SOCKETS) build, because WebCore::SocketProvider
is defined inside guards, but this change uses it without guard:

../../Source/WebCore/inspector/InspectorOverlay.cpp: In member function &apos;WebCore::Page* WebCore::InspectorOverlay::overlayPage()&apos;:
../../Source/WebCore/inspector/InspectorOverlay.cpp:867:77: error: &apos;create&apos; is not a member of &apos;WebCore::SocketProvider&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214527</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-07-26 07:16:46 -0700</bug_when>
    <thetext>This snippet in Source/WebCore/page/SocketProvider.h fixes the build,
but I&apos;m not sure if it is the proper fix here. I don&apos;t have any time
to investigate and/or prepare patch, feel free to pick it up or fix
it however you want.

-#if ENABLE(WEB_SOCKETS)
     static Ref&lt;SocketProvider&gt; create() { return adoptRef(*new SocketProvider); }
+#if ENABLE(WEB_SOCKETS)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283663</attachid>
            <date>2016-07-14 11:20:26 -0700</date>
            <delta_ts>2016-07-14 11:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159774-20160714111939.patch</filename>
            <type>text/plain</type>
            <size>57726</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tl
dFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3IuCisgICAgICAgIAorICAgICAgICBJbiByMjAyOTMwIEkgaW50cm9kdWNlZCB0
aGUgU29ja2V0UHJvdmlkZXIsIGJ1dCBJIHVzZWQgaXQgdG8gbWFrZSBhIFdlYlNvY2tldENoYW5u
ZWwKKyAgICAgICAgaW5zdGVhZCBvZiBhIFNvY2tldFN0cmVhbUhhbmRsZSwgd2hpY2ggaXMgdGhl
IGNsYXNzIEkgd2FudCB0byBtYWtlIGludG8gYW4gaW50ZXJmYWNlCisgICAgICAgIGFuZCBwcm94
eSB0aGUgd2ViIHRyYWZmaWMgb3ZlciB0byB0aGUgTmV0d29ya1Byb2Nlc3MuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y29ubmVjdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpy
ZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlk
Z2U6On5CcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6aW5pdGlhbGl6ZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXApOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNv
Y2tldENoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKiBwYWdlL1NvY2tldFByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTb2Nr
ZXRQcm92aWRlcjo6flNvY2tldFByb3ZpZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZS5oOgorCiAyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBTZXNzaW9uSUQgdG8g
V2ViU29ja2V0SGFuZGxlIGNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyIEdvb2dsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfU09D
S0VUUykKKyNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5j
bHVkZSAiVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCisjaW5jbHVk
ZSAiV2ViU29ja2V0Q2hhbm5lbC5oIgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQu
aCIKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxv
b3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRD
aGFubmVsTW9kZVtdID0gIndlYlNvY2tldENoYW5uZWxNb2RlIjsKKworUmVmPFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsPiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVu
dCwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQoreworICAgIGlmIChpczxXb3JrZXJHbG9iYWxT
Y29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2Jh
bFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBX
b3JrZXJSdW5Mb29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9v
cCgpOworICAgICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7CisgICAgICAgIG1vZGUuYXBwZW5kTGl0
ZXJhbCh3ZWJTb2NrZXRDaGFubmVsTW9kZSk7CisgICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1
bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUu
dG9TdHJpbmcoKSwgcHJvdmlkZXIpOworICAgIH0KKworICAgIHJldHVybiBXZWJTb2NrZXRDaGFu
bmVsOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBjbGllbnQsIHByb3ZpZGVy
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9T
T0NLRVRTKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJKHJldmlzaW9uIDIwMzIy
MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMSArNDUsMTMgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQmxvYjsKIGNsYXNzIFVSTDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFdlYlNvY2tldENoYW5uZWxD
bGllbnQ7CiAKIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCk7CiBwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgU29ja2V0UHJvdmlkZXImKTsK
ICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIHsgfQogCiAgICAgZW51bSBTZW5kUmVz
dWx0IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuY3BwCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU1LDEwICsyNTUsMTAg
QEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3QgU3RyaW5nJiB1cgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKGF1dG8gc29ja2V0UHJvdmlkZXIgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNvY2tldFByb3ZpZGVyKCkpCi0gICAgICAgIG1fY2hhbm5lbCA9IHNvY2tl
dFByb3ZpZGVyLT5jcmVhdGVXZWJTb2NrZXRDaGFubmVsKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksICp0aGlzKTsKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnNvY2tldFByb3ZpZGVyKCkpCisgICAgICAgIG1fY2hhbm5lbCA9IFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMs
ICpwcm92aWRlcik7CiAKLSAgICAvLyBPbmx5IGFuIEVtcHR5U29ja2V0UHJvdmlkZXIgY2FuIHJl
dHVybiBudWxscHRyLCBhbmQgZXZlcnkgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzaG91bGQgaGF2
ZSBhIFNvY2tldFByb3ZpZGVyLgorICAgIC8vIEV2ZXJ5IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
c2hvdWxkIGhhdmUgYSBTb2NrZXRQcm92aWRlci4KICAgICBSRUxFQVNFX0FTU0VSVChtX2NoYW5u
ZWwpOwogCiAgICAgLy8gRklYTUU6IFRoZXJlIGlzIGEgZGlzYWdyZWVtZW50IGFib3V0IHJlc3Ry
aWN0aW9uIG9mIHN1YnByb3RvY29scyBiZXR3ZWVuIFdlYlNvY2tldCBBUEkgYW5kIGh5YmktMTAg
cHJvdG9jb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgor
I2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU29ja2V0U3RyZWFtRXJyb3Iu
aCIKICNpbmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGUuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRD
aGFubmVsQ2xpZW50LmgiCkBAIC02NCwxMSArNjUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjb25zdCBkb3VibGUgVENQTWF4aW11bVNlZ21lbnRMaWZldGltZSA9IDIgKiA2MC4wOwogCi1X
ZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVudCwgV2Vi
U29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50KQorV2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0
Q2hhbm5lbChEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVu
dCwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQogICAgIDogbV9kb2N1bWVudCgmZG9jdW1lbnQp
CiAgICAgLCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9yZXN1bWVUaW1lcigqdGhpcywgJldl
YlNvY2tldENoYW5uZWw6OnJlc3VtZVRpbWVyRmlyZWQpCiAgICAgLCBtX2Nsb3NpbmdUaW1lcigq
dGhpcywgJldlYlNvY2tldENoYW5uZWw6OmNsb3NpbmdUaW1lckZpcmVkKQorICAgICwgbV9zb2Nr
ZXRQcm92aWRlcihwcm92aWRlcikKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKSkKICAgICAgICAgbV9pZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlx
dWVJZGVudGlmaWVyKCk7CkBAIC05OCw3ICsxMDAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmNvbm5lY3QoY29uc3QgVVJMCiAgICAgICAgICAgICByZWYoKTsKICAgICAgICAgICAgIFBhZ2Uq
IHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgICAgICAgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9
IHBhZ2UgPyBwYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
OwotICAgICAgICAgICAgbV9oYW5kbGUgPSBTb2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZShtX2hh
bmRzaGFrZS0+dXJsKCksICp0aGlzLCAqbmV0d29ya2luZ0NvbnRleHQsIHNlc3Npb25JRCk7Cisg
ICAgICAgICAgICBtX2hhbmRsZSA9IG1fc29ja2V0UHJvdmlkZXItPmNyZWF0ZVNvY2tldFN0cmVh
bUhhbmRsZShtX2hhbmRzaGFrZS0+dXJsKCksICp0aGlzLCAqbmV0d29ya2luZ0NvbnRleHQsIHNl
c3Npb25JRCk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgJKHJldmlzaW9uIDIw
MzIyMykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQmxvYjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRmlsZVJlYWRlckxvYWRlcjsK
K2NsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlOwogY2xhc3Mg
U29ja2V0U3RyZWFtRXJyb3I7CiBjbGFzcyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OwpAQCAtNTgs
NyArNTksNyBAQCBjbGFzcyBXZWJTb2NrZXRDaGFubmVsIDogcHVibGljIFJlZkNvdW50CiB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJT
b2NrZXRDaGFubmVsPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50JiBjbGllbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0Q2hhbm5lbChk
b2N1bWVudCwgY2xpZW50KSk7IH0KKyAgICBzdGF0aWMgUmVmPFdlYlNvY2tldENoYW5uZWw+IGNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwg
U29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tl
dENoYW5uZWwoZG9jdW1lbnQsIGNsaWVudCwgcHJvdmlkZXIpKTsgfQogICAgIHZpcnR1YWwgfldl
YlNvY2tldENoYW5uZWwoKTsKIAogICAgIGJvb2wgc2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoKTsKQEAgLTExOSw3ICsxMjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkZXJlZlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKIHByaXZh
dGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgV2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCYsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXZWJTb2NrZXRDaGFubmVs
KERvY3VtZW50JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYsIFNvY2tldFByb3ZpZGVyJik7CiAK
ICAgICBib29sIGFwcGVuZFRvQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW4pOwog
ICAgIHZvaWQgc2tpcEJ1ZmZlcihzaXplX3QgbGVuKTsKQEAgLTIxMyw2ICsyMTQsNyBAQCBwcml2
YXRlOgogICAgIEJsb2JMb2FkZXJTdGF0dXMgbV9ibG9iTG9hZGVyU3RhdHVzIHsgQmxvYkxvYWRl
ck5vdFN0YXJ0ZWQgfTsKIAogICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIgbV9kZWZsYXRlRnJh
bWVyOworICAgIFJlZjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWwuaCIKICNpbmNsdWRl
ICJXZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgiCkBAIC01MCwxMCArNTEsMTEgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6V29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFdl
YlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKK1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbChXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVu
dCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBTb2NrZXRQcm92aWRlciYgcHJvdmlk
ZXIpCiAgICAgOiBtX3dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpCiAgICAgLCBtX3dvcmtlckNs
aWVudFdyYXBwZXIoVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpjcmVh
dGUoY29udGV4dCwgY2xpZW50KSkKLSAgICAsIG1fYnJpZGdlKEJyaWRnZTo6Y3JlYXRlKG1fd29y
a2VyQ2xpZW50V3JhcHBlci5jb3B5UmVmKCksIG1fd29ya2VyR2xvYmFsU2NvcGUuY29weVJlZigp
LCB0YXNrTW9kZSkpCisgICAgLCBtX2JyaWRnZShCcmlkZ2U6OmNyZWF0ZShtX3dvcmtlckNsaWVu
dFdyYXBwZXIuY29weVJlZigpLCBtX3dvcmtlckdsb2JhbFNjb3BlLmNvcHlSZWYoKSwgdGFza01v
ZGUsIHByb3ZpZGVyKSkKKyAgICAsIG1fc29ja2V0UHJvdmlkZXIocHJvdmlkZXIpCiB7CiAgICAg
bV9icmlkZ2UtPmluaXRpYWxpemUoKTsKIH0KQEAgLTE0MCwxMCArMTQyLDEwIEBAIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnIKICAgICAgICAgbV9icmlkZ2UtPnJlc3Vt
ZSgpOwogfQogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6UGVlcihS
ZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBw
ZXIsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKK1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXI+JiYgY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclBy
b3h5LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRhc2tN
b2RlLCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBw
ZXIoV1RGTW92ZShjbGllbnRXcmFwcGVyKSkKICAgICAsIG1fbG9hZGVyUHJveHkobG9hZGVyUHJv
eHkpCi0gICAgLCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0
ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksICp0aGlzKSkKKyAgICAsIG1fbWFpbldlYlNv
Y2tldENoYW5uZWwoV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihj
b250ZXh0KSwgKnRoaXMsIHByb3ZpZGVyKSkKICAgICAsIG1fdGFza01vZGUodGFza01vZGUpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTMyOSwxMiArMzMxLDEyIEBAIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlAKICAgICB9LCBtX3Rhc2tNb2RlKTsK
IH0KIAotV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKFJl
ZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgd29ya2VyQ2xpZW50
V3JhcHBlciwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiYmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25z
dCBTdHJpbmcmIHRhc2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJy
aWRnZTo6QnJpZGdlKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+
JiYgd29ya2VyQ2xpZW50V3JhcHBlciwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiYmIHdvcmtlckds
b2JhbFNjb3BlLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBwZXIoV1RGTW92ZSh3b3Jr
ZXJDbGllbnRXcmFwcGVyKSkKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUoV1RGTW92ZSh3b3Jr
ZXJHbG9iYWxTY29wZSkpCiAgICAgLCBtX2xvYWRlclByb3h5KG1fd29ya2VyR2xvYmFsU2NvcGUt
PnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkpCiAgICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2Rl
KQotICAgICwgbV9wZWVyKG51bGxwdHIpCisgICAgLCBtX3NvY2tldFByb3ZpZGVyKFdURk1vdmUo
c29ja2V0UHJvdmlkZXIpKQogewogfQogCkBAIC0zNDMsMTQgKzM0NSwxNCBAQCBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlCiAgICAgZGlzY29ubmVjdCgpOwogfQogCi12
b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRJ
bml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdvcmtlckxvYWRlclBy
b3h5JiBsb2FkZXJQcm94eSwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4mJiBjbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKQordm9pZCBXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjptYWluVGhyZWFkSW5pdGlhbGl6
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrZXJMb2FkZXJQcm94eSYgbG9h
ZGVyUHJveHksIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYg
Y2xpZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmIHByb3ZpZGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KGNvbnRleHQuaXNEb2N1bWVudCgpKTsKIAogICAgIGJvb2wgc2VudCA9IGxvYWRlclByb3h5LnBv
c3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoewogICAgICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrOjpDbGVhbnVwVGFzaywKLSAgICAgICAgW2NsaWVudFdyYXBwZXIgPSBj
bGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgJmxvYWRlclByb3h5LCBwZWVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxQZWVyPihjbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgbG9hZGVyUHJveHksIGNvbnRleHQs
IHRhc2tNb2RlKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7Cisg
ICAgICAgIFtjbGllbnRXcmFwcGVyID0gY2xpZW50V3JhcHBlci5jb3B5UmVmKCksICZsb2FkZXJQ
cm94eSwgcGVlciA9IHN0ZDo6bWFrZV91bmlxdWU8UGVlcj4oY2xpZW50V3JhcHBlci5jb3B5UmVm
KCksIGxvYWRlclByb3h5LCBjb250ZXh0LCB0YXNrTW9kZSwgV1RGTW92ZShwcm92aWRlcikpXShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIEFT
U0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwogICAg
ICAgICAgICAgaWYgKGNsaWVudFdyYXBwZXItPmZhaWxlZFdlYlNvY2tldENoYW5uZWxDcmVhdGlv
bigpKSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgQnJpZGdlOjppbml0aWFsaXplKCkgcXVpdHRl
ZCBlYXJsaWVyLCB3ZSBuZWVkIHRvIGtpY2sgbWFpblRocmVhZERlc3Ryb3koKSB0byBkZWxldGUg
dGhlIHBlZXIuCkBAIC0zNzMsOCArMzc1LDggQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6QgogICAgIHNldE1ldGhvZE5vdENvbXBsZXRlZCgpOwogICAgIFJlZjxCcmlk
Z2U+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCi0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFsmbG9hZGVyUHJveHkgPSBtX2xvYWRlclByb3h5LCB3b3JrZXJDbGllbnRXcmFwcGVy
ID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgdGFza01vZGUgPSBtX3Rhc2tNb2Rl
Lmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxl
IHsKLSAgICAgICAgbWFpblRocmVhZEluaXRpYWxpemUoY29udGV4dCwgbG9hZGVyUHJveHksIFdU
Rk1vdmUod29ya2VyQ2xpZW50V3JhcHBlciksIHRhc2tNb2RlKTsKKyAgICBtX2xvYWRlclByb3h5
LnBvc3RUYXNrVG9Mb2FkZXIoWyZsb2FkZXJQcm94eSA9IG1fbG9hZGVyUHJveHksIHdvcmtlckNs
aWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIuY29weVJlZigpLCB0YXNrTW9kZSA9
IG1fdGFza01vZGUuaXNvbGF0ZWRDb3B5KCksIHByb3ZpZGVyID0gbV9zb2NrZXRQcm92aWRlci5j
b3B5UmVmKCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAg
ICAgICBtYWluVGhyZWFkSW5pdGlhbGl6ZShjb250ZXh0LCBsb2FkZXJQcm94eSwgV1RGTW92ZSh3
b3JrZXJDbGllbnRXcmFwcGVyKSwgdGFza01vZGUsIFdURk1vdmUocHJvdmlkZXIpKTsKICAgICB9
KTsKICAgICB3YWl0Rm9yTWV0aG9kQ29tcGxldGlvbigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDkgQEAgY2xhc3MgV29ya2VyUnVuTG9vcDsK
IGNsYXNzIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsIDogcHVibGljIFJlZkNvdW50
ZWQ8V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+LCBwdWJsaWMgVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShXb3JrZXJH
bG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNs
aWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsPiBjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNj
b3BlLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmluZyYgdGFza01v
ZGUsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKHdvcmtlckdsb2JhbFNj
b3BlLCBjbGllbnQsIHRhc2tNb2RlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQs
IHRhc2tNb2RlLCBwcm92aWRlcikpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbCgpOwogCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICBj
bGFzcyBQZWVyIDogcHVibGljIFdlYlNvY2tldENoYW5uZWxDbGllbnQgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShQZWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVi
bGljOgotICAgICAgICBQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI+JiYsIFdvcmtlckxvYWRlclByb3h5JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNv
bnN0IFN0cmluZyYgdGFza01vZGUpOworICAgICAgICBQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIFdvcmtlckxvYWRlclByb3h5JiwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJik7
CiAgICAgICAgIH5QZWVyKCk7CiAKICAgICAgICAgdm9pZCBjb25uZWN0KGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wpOwpAQCAtMTE5LDkgKzExOSw5IEBAIHByaXZhdGU6CiAgICAg
Ly8gQnJpZGdlIGZvciBQZWVyLiAgUnVubmluZyBvbiB0aGUgd29ya2VyIHRocmVhZC4KICAgICBj
bGFzcyBCcmlkZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxCcmlkZ2U+IHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBSZWY8QnJpZGdlPiBjcmVhdGUoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xv
YmFsU2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCisg
ICAgICAgIHN0YXRpYyBSZWY8QnJpZGdlPiBjcmVhdGUoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xv
YmFsU2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFJl
ZjxTb2NrZXRQcm92aWRlcj4mJiBwcm92aWRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQnJpZGdlKFdURk1vdmUod29ya2VyQ2xpZW50V3JhcHBlciksIFdU
Rk1vdmUod29ya2VyR2xvYmFsU2NvcGUpLCB0YXNrTW9kZSkpOworICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQnJpZGdlKFdURk1vdmUod29ya2VyQ2xpZW50V3JhcHBlciksIFdURk1v
dmUod29ya2VyR2xvYmFsU2NvcGUpLCB0YXNrTW9kZSwgV1RGTW92ZShwcm92aWRlcikpKTsKICAg
ICAgICAgfQogICAgICAgICB+QnJpZGdlKCk7CiAgICAgICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwpA
QCAtMTQwLDEyICsxNDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxC
cmlkZ2U+OjpkZXJlZjsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEJyaWRnZShSZWY8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBSZWY8V29ya2VyR2xvYmFsU2Nv
cGU+JiYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpOworICAgICAgICBCcmlkZ2UoUmVmPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgUmVmPFdvcmtlckdsb2JhbFNj
b3BlPiYmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYpOwog
CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldFdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEJyaWRnZSogdGhpc1B0ciwgUGVlciosIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYpOwogCiAgICAgICAgIC8vIEV4ZWN1dGVkIG9uIHRoZSBt
YWluIHRocmVhZCB0byBjcmVhdGUgYSBQZWVyIGZvciB0aGlzIGJyaWRnZS4KLSAgICAgICAgc3Rh
dGljIHZvaWQgbWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdv
cmtlckxvYWRlclByb3h5JiwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1h
aW5UaHJlYWRJbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIGNv
bnN0IFN0cmluZyYgdGFza01vZGUsIFJlZjxTb2NrZXRQcm92aWRlcj4mJik7CiAKICAgICAgICAg
Ly8gRXhlY3V0ZWQgb24gdGhlIHdvcmtlciBjb250ZXh0J3MgdGhyZWFkLgogICAgICAgICB2b2lk
IGNsZWFyQ2xpZW50V3JhcHBlcigpOwpAQCAtMTU3LDE2ICsxNTcsMTggQEAgcHJpdmF0ZToKICAg
ICAgICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAg
ICAgICBXb3JrZXJMb2FkZXJQcm94eSYgbV9sb2FkZXJQcm94eTsKICAgICAgICAgU3RyaW5nIG1f
dGFza01vZGU7Ci0gICAgICAgIFBlZXIqIG1fcGVlcjsKKyAgICAgICAgUGVlciogbV9wZWVyIHsg
bnVsbHB0ciB9OworICAgICAgICBSZWY8U29ja2V0UHJvdmlkZXI+IG1fc29ja2V0UHJvdmlkZXI7
CiAgICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsKFdvcmtlckdsb2JhbFNjb3BlJiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYsIGNvbnN0
IFN0cmluZyYgdGFza01vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlJiwgV2ViU29ja2V0Q2hhbm5lbENsaWVu
dCYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJik7CiAKICAgICBjbGFz
cyBXb3JrZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrOwogCiAgICAgUmVmPFdvcmtlckds
b2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAgIFJlZjxUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKICAgICBSZWZQ
dHI8QnJpZGdlPiBtX2JyaWRnZTsKKyAgICBSZWY8U29ja2V0UHJvdmlkZXI+IG1fc29ja2V0UHJv
dmlkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMy
MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDYgQEAKIAkJMDFFNkMyRTQxMTk0QjI4MjAwNTA4
MjFDIC8qIFNwZWxsaW5nRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5nRG90
QDJ4LnBuZyAqLzsgfTsKIAkJMDU2MkY5NjExNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1NjJG
OTYwMTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDVEOTEzQ0VFQUIyQTYwNTM0MjE4QUNG
IC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDM0U2MUM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MTWVu
Y2xvc2VFbGVtZW50LmNwcCAqLzsgfTsKLQkJMTZFQTI0Q0VFQUIyQTYwNTM0MjE4QUNGIC8qIE1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0
b3JEaWN0aW9uYXJ5LmNwcCAqLzsgfTsKIAkJMDVGRDY5RTAxMjg0NUQ0MzAwQjJCRUIzIC8qIERP
TVRpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3Q0FEMEIxQ0JGQzAw
MDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA2MDI3Q0FDMEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVu
dUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNjIyODc4NDBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2MjI4NzgzMEI0REIzMjIwMDBD
MzRERiAvKiBGb2N1c0RpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC02NjYsNiArNjY1LDcgQEAKIAkJMTVGQ0M5RkMxQjRERjdGMjAw
RTcyMzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEVEMTlFRTM2NDIwMEU1QTA0NSAvKiBET01VUkxN
ZWRpYVN0cmVhbS5jcHAgKi87IH07CiAJCTE1RkNDOUZFMUI0REY4NUUwMEU3MjMyNiAvKiBET01V
UkxNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTVGQ0M5RkQxQjRERjg1NjAwRTcyMzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmggKi87
IH07CiAJCTE2M0U4OEY3MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVUZXh0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE2M0U4
OEY1MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcCAqLzsgfTsK
KwkJMTZFQTI0Q0VFQUIyQTYwNTM0MjE4QUNGIC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENEY3MkM2
NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLzsgfTsK
IAkJMTg1QkNGMjgwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0YyNjBGMzI3OUNFMDAw
RUEyNjIgLyogVGhyZWFkVGltZXJzLmNwcCAqLzsgfTsKIAkJMTg1QkNGMjkwRjMyNzlDRTAwMEVB
MjYyIC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTg1QkNGMjcwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oICov
OyB9OwogCQkxODg2MDRCMzBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTg4NjA0QjEwRjJFNjU0QTAw
MEI2NDQzIC8qIERPTVRpbWVyLmNwcCAqLzsgfTsKQEAgLTE5ODEsNiArMTk4MSw4IEBACiAJCTRG
MTUzNEUwMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAw
MjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIElu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50
LmNwcCAqLzsgfTsKIAkJNEY2RkRENjUxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VB
Z2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2
RkRENjMxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTRGQTY1QTZCMTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhN
TFNwYWNlRWxlbWVudC5jcHAgKi87IH07CisJCTRGQTY1QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQu
aCAqLzsgfTsKIAkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQjM5MEFD
MTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJCTRGRkMwMjJC
MTY0M0I3MTAwMDRFMTYzOCAvKiBOb2RlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBQjQ4NjYxNjQzQTY3RTAwRjcwQzA3IC8qIE5v
ZGVSYXJlRGF0YS5jcHAgKi87IH07CiAJCTRGRkMwMjJEMTY0M0I3MjYwMDRFMTYzOCAvKiBFbGVt
ZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi87
IH07CkBAIC0yMDA4LDcgKzIwMTAsNyBAQAogCQk1MTBENEEzMzEwMzE2NUVFMDA0OUVBNTQgLyog
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTJEMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1F
cnJvckJhc2UuY3BwICovOyB9OwogCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBENEEyRTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNl
LmggKi87IH07CiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAq
LzsgfTsKLQkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0
QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IH07CisJ
CTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMTEwMzE2
NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1
NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MTFFQzEyNzFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFF
QzEyNTFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5jcHAgKi87IH07CiAJCTUx
MUVDMTI4MUM1MEFBQ0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyNjFDNTBBQTU3MDAzMkY5
ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovOyB9OwpAQCAtMjIyNiw3ICsyMjI4LDcgQEAKIAkJ
NTFBOUQ5RjQxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlEOUYwMTk1Qjk1MDMwMDFCMkI1QyAv
KiBISURHYW1lcGFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTFBQTNGNkYwQkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQTNGNkUw
QkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tICovOyB9OwogCQk1MUFCQUUx
QjEwM0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFBMTAzQzE4RkYwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1FcnJvci5oICovOyB9OwotCQk1MUFCQUUxRTEwM0MxOTEzMDA4QzUyNjAg
LyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUFCQUUxQzEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFu
ZGxlLmggKi87IH07CisJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1I
YW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUFCQUUxRjEwM0MxOTEz
MDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUQxMDNDMTkxMzAwOEM1MjYwIC8q
IFNvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcCAqLzsgfTsKIAkJNTFBQkY2NEQxNjM5MkUyODAw
MTMyQTdBIC8qIExvYWRlclN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJh
dGVneS5jcHAgKi87IH07CiAJCTUxQUY1MDM2MTZGMTAwRjYwMDk1QjJFOCAvKiBSZXNvdXJjZUxv
YWRlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUFGNTAzNTE2RjEwMEY2MDA5NUIyRTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMzkxLDYgKzIz
OTMsNyBAQAogCQk1QzQzMDRCMTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxP
RC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MzA0
QUUxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuaCAqLzsgfTsKIAkJNUM0
MzA0QjUxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRCMzE5MUFFRjQ2
MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLzsgfTsKIAkJNUM0MzA0QjYx
OTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MzA0QjQxOTFBRUY0NjAwMEUyQkMw
IC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oICovOyB9OworCQk1QzY4OEFBMTFEMzgwQkY4MDAw
QjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2ODhBQTAxRDM4MDUwOTAwMEI1NEZBIC8q
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNUM3Qzg4RDgxRDBGMUY0
QTAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJv
dmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk1QzlBN0E3NTFBQTBGNkVBMDA5NThBQ0YgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzM5MzA1RTFBQTBG
NkE5MDAyOUM4MTYgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgKi87IH07CiAJCTVDOUE3QTc2
MUFBMEY2RUQwMDk1OEFDRiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDYwMUFBMEY2QTkwMDI5
QzgxNiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCAqLzsgfTsKQEAgLTUzOTUsNiArNTM5
OCw3IEBACiAJCUI1N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJD
MTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCAqLzsgfTsKIAkJQjU3Q0I1
MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJCMTgyQTM3RjYwMDc5QTY0NyAv
KiBJbmxpbmVFbGVtZW50Qm94LmggKi87IH07CiAJCUI1OTVGRjQ3MTgyNENFRTMwMEZGNTFDRCAv
KiBSZW5kZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggKi87
IH07CisJCUI1OUNBMzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OUNBNTlB
RjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJQjU5
REQ2OTkxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OTcxMTkwMjlFNTAwN0U5
Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OwogCQlCNTlERDY5QTExOTAyOUU1MDA3
RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFi
YXNlQ2FsbGJhY2suY3BwICovOyB9OwogCQlCNTlERDY5RDExOTAyQTQyMDA3RTk2ODQgLyogSlNT
UUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCNTlERDY5QjExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlv
bkNhbGxiYWNrLmggKi87IH07CkBAIC02ODk0LDggKzY4OTgsNiBAQAogCQlGOThGRkY0NDExQTI2
NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGls
cy5jcHAgKi87IH07CiAJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MzEx
QTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5oICovOyB9OwogCQlGOUYwRUQ3QTBEQjUwQ0Ey
MDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkg
LyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07Ci0JCTRGQTY1QTZCMTEwOEFC
RUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1h
dGhNTFNwYWNlRWxlbWVudC5jcHAgKi87IH07Ci0JCTRGQTY1QTZDMTEwOEFCRUQwMDI2MTVFMCAv
KiBNYXRoTUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1l
bnQuaCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZB
NjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAgKi87IH07CiAJ
CUZBNjU0QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRBNkExMTA4QUJFRDAw
MjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi87IH07CiAJCUZBQkU3MkY0MTA1OUMxRUIw
MEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkVEMTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVt
ZW50LmNwcCAqLzsgfTsKQEAgLTcyMTAsNyArNzIxMiw2IEBACiAJCUZFRDEzRDNEMENFQTkzNkEw
MEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFRDEzRDNCMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSAqLzsg
fTsKIAkJRkVEMTNENDAwQ0VBOTM5NDAwRDg5NDY2IC8qIEljb25JT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQxM0QzRjBDRUE5Mzk0MDBEODk0
NjYgLyogSWNvbklPUy5tbSAqLzsgfTsKIAkJRkVEMTNENTIwQ0VBOTQ5NzAwRDg5NDY2IC8qIFJl
bmRlclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRUQxM0Q1MDBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVyVGhlbWVJT1MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCNTlDQTM5MENFRDY2
QzMyNTVGNzJDNTkgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyog
TWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi87IH07CiAJCUZFRDQ4MzkwQ0VENjZDMzI1NUY3MkM1
OSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY3NUEwNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxTZWxl
Y3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRkVFMTgxMTMxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRy
YW5zYWN0aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRUUxODExMTE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kLmNwcCAqLzsgfTsKIAkJRkVFMTgxMTQxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0
aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkVFMTgxMTIxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5oICov
OyB9OwpAQCAtOTYxMiw2ICs5NjEzLDggQEAKIAkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8q
IEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRG
NkZERDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUGFnZUFnZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2RkRENjMxMzQxREVERDAwMUY4RUUzIC8qIElu
c3BlY3RvclBhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JQYWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEZBNjVBNjkx
MTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3Bh
Y2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNwYWNl
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkFCNDg2NDE2NDNBNjZE
MDBGNzBDMDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVJhcmVEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVy
YXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVy
YXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDMwLDcgKzEw
MDMzLDYgQEAKIAkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9u
Q2xpZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk1OEYx
Q0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsg
cGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NThG
MUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRoTUxQYWRkZWRFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFBhZGRlZEVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk3ODA4NDlENDFFNkY2NUQ4MTE5OEJDIC8q
IE1hdGhNTFNlbGVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWF0aE1MU2VsZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgz
NjVEQzEzNTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1OTgzNjVERTEzNTVGNTYyMDAxQjE4NUQgLyogSlNQb3NpdGlvbkVy
cm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQb3NpdGlv
bkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDcwLDYg
KzEwMDcyLDcgQEAKIAkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1
cmVMT0QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVFNoYWRlclRleHR1cmVMT0QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQzMDRCMzE5MUFFRjQ2MDAwRTJCQzAg
LyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVM
T0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRTaGFkZXJUZXh0dXJl
TE9ELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEwMUQzODA1MDkwMDBC
NTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2Nr
ZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRQcm92
aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlCODYwQjFDMjFFM0M2MDAx
MTBGMzYgLyogUmVzb3VyY2VMb2FkVGltaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1Q0IzN0ZGQzFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2Nr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9y
TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM4OCw2ICsxMzM5MSw4
IEBACiAJCUI1N0NCNTJCMTgyQTM3RjYwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUVsZW1lbnRCb3guaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU3Q0I1MkMxODJBM0VFRDAwNzlBNjQ3IC8qIElubGlu
ZUVsZW1lbnRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5s
aW5lRWxlbWVudEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OTVGRjQ2
MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5
OEJDIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWF0aE1MUGFkZGVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCNTlERDY5NzExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlERDY5ODExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRh
YmFzZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RGF0YWJhc2VDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURE
NjlCMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxMiw3ICsxNDAxNyw2IEBACiAJCUMzQ0Yx
N0EyMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTMxNUIwMDYzRjAwMjc2
RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzNFNjFDNjUzQTY0ODA3QTgzRTc2RkI4IC8qIE1hdGhNTE1lbmNsb3NlRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxNZW5j
bG9zZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlENEY3MkM2NTNB
NjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0MDBEMTA4MThGMUM4RjYwMDkwRDg2MyAv
KiBFdmVudExvb3BJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFdmVudExvb3BJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2
Mjk4MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNu
YXBzaG90dGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVNuYXBz
aG90dGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzODUsNyArMTQzODks
NiBAQAogCQlDRTI4NDk4ODFDQTM2MTQ2MDBCNEE1N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5
RGlyZWN0aXZlTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBwYXRoID0gY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0U1Q0IxQjMxNEVEQUI2RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxNZW5jbG9z
ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MTWVuY2xv
c2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURGN0U5QTI5NEM3QUFD
RTBBRDg5QjNERCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0
aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0g
Y3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTc5OUY5NTFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3Vy
aXR5UG9saWN5U291cmNlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsgcGF0aCA9IGNzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0NDgyLDYgKzE0NDg1LDcgQEAKIAkJRDNGM0QzNjIxQTY5QjE5MDAwNTlGQzJCIC8q
IEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDNGM0QzNjUxQTY5QjFBNTAwNTlGQzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0Yz
RDM2NjFBNjlCMUE1MDA1OUZDMkIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZG
QjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUQ2MTlBMzA1MTQ0RTAwQkUwMDRCQzMwMiAvKiBDaGlsZExpc3RN
dXRhdGlvblNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENo
aWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
NjE5QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyogQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2NDg5RDIzMTY2RkZDRjEwMDdDMDMxQiAvKiBK
U0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MVGVtcGxhdGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0NTE3LDYgKzE0NTIxLDcgQEAKIAkJREU0OUIzMDcxNjVGMkZFMTAwMTAzMzhEIC8q
IFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREU0OUIzMDgxNjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlh
Q29udHJvbEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
ck1lZGlhQ29udHJvbEVsZW1lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURF
QzI5NzVEMUI0REVCMkEwMDVGNTk0NSAvKiBKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tRXZlbnRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjdFOUEyOTRDN0FBQ0UwQUQ4OUIzREQgLyog
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlERjlBRkQ3MDEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CURGOUFGRDcxMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTBGRUYzNzFCMDdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBFdmVudFNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNTA1Miw3ICsxNTA1Nyw2IEBACiAJCUY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAv
KiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY1RTBDNjU5MTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1RTBDNjVBMTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5k
VGltZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjc1QTA1OUFGMTcwRDhGQUE1QjhD
QUJFIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFt
ZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3
cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRjkxNkM0OEIwREI1MTBGODAwNzZDRDgz
IC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA2Myw4ICsxNTA2Nyw2IEBACiAJCUY5RjBF
RDc4MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2MzExMDhBQkI3MDAyNjE1RTAgLyog
bWF0aG1sLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gbWF0aG1sLmNzczsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjcxMTA4QUJFMjAwMjYxNUUwIC8qIG1hdGhh
dHRycy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRoYXR0cnMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFj
ZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1M
U3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZBNjVBNkEx
MTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkE2NTRBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTFRleHRFbGVt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNkExMTA4QUJFRDAw
MjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1hdGhNTFRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZBNkU0NjZGQ0QwNDE4QTk5NjZBNUI2MCAvKiBETlNSZXNvbHZlUXVldWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE5TUmVzb2x2ZVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTkwNSw2ICsxOTkwNyw3IEBACiAJCTk3QUFCQ0Y3MTRGQTA5QjUw
MDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk1QzY4OEFBMDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwICovLAogCQkJCTk3QUFCQ0Y4MTRGQTA5RDUwMDc0NTdBRSAvKiBDbG9z
ZUV2ZW50LmggKi8sCiAJCQkJOTdBQUJDRjkxNEZBMDlENTAwNzQ1N0FFIC8qIENsb3NlRXZlbnQu
aWRsICovLAogCQkJCTk3QUFCQ0ZDMTRGQTA5RDUwMDc0NTdBRSAvKiBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oICovLApAQCAtMjk5MTcsNiArMjk5MjAsNyBAQAogCQkJCTg1QzdGNUQxMEFB
RkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEyODRCRDUxMDQ0QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQUNFNTNFNzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTVDNjg4QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTU0ODgxODE0RTQz
MkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
NTAwMkY4MUI1NkQ3ODEwMDIwQUFGNyAvKiBET01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE5QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2aXNpb24gMjAz
MjIzKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDEwICs0MiwxMCBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
YWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvckNsaWVudC5o
IgorI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVh
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci5oIgotI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgi
CiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBFbXB0eUVkaXRvckNsaWVudDo6
cmVnaXN0ZXJSZWRvU3RlcAogewogfQogICAgIAotUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsPiBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JikKK1JlZlB0cjxTb2Nr
ZXRTdHJlYW1IYW5kbGU+IEVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhh
bmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBOZXR3b3JraW5nQ29u
dGV4dCYsIFNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUwLDcgKzY1
MCw3IEBAIGNsYXNzIEVtcHR5U29ja2V0UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5FbXB0eVNvY2tldFByb3ZpZGVyKCkgeyB9CiAgICAgc3RhdGljIFJlZjxF
bXB0eVNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5
U29ja2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
PiBjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFNvY2tldFN0cmVhbUhhbmRs
ZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRs
ZUNsaWVudCYsIE5ldHdvcmtpbmdDb250ZXh0JiwgU2Vzc2lvbklEKSBvdmVycmlkZTsKIH07CiAK
IHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTgg
KzI1LDIxIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOwotY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsKK2NsYXNzIFNvY2tldFN0cmVhbUhh
bmRsZTsKK2NsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKK2NsYXNzIFVSTDsKIAogY2xh
c3MgU29ja2V0UHJvdmlkZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0UHJv
dmlkZXI+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
V2ViU29ja2V0Q2hhbm5lbENsaWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxTb2NrZXRT
dHJlYW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQmLCBOZXR3b3JraW5nQ29udGV4dCYsIFNlc3Npb25JRCkgPSAwOwog
ICAgIHZpcnR1YWwgflNvY2tldFByb3ZpZGVyKCkgeyB9OwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZS5oCShyZXZpc2lvbiAyMDMyMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBpbnQgcGxhdGZvcm1TZW5kKGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNsb3NlKCk7CiAKLSAgICBT
b2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Jiwg
TmV0d29ya2luZ0NvbnRleHQmLCBTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIFNvY2tl
dFN0cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBOZXR3
b3JraW5nQ29udGV4dCYsIFNlc3Npb25JRCk7CiAgICAgdm9pZCBjcmVhdGVTdHJlYW1zKCk7CiAg
ICAgdm9pZCBzY2hlZHVsZVN0cmVhbXMoKTsKICAgICB2b2lkIGNob29zZVByb3h5KCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNy0xNCAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBTb2NrZXRQcm92
aWRlciB0byBjcmVhdGUgU29ja2V0U3RyZWFtSGFuZGxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRl
U29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0UHJvdmlkZXI6
OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oOgorCiAyMDE2LTA3LTE0ICBIeXVuanVuIEtvICA8
enpvb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGhyZWFkZWRDb21wb3NpdG9yXSBCdWlsZCBm
YWlscyBpbiBkZWJ1ZyBtb2RlIGFmdGVyIHIyMDIwNDAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcAkocmV2
aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNv
Y2tldFByb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogCiAjaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0U3RyZWFtSGFuZGxlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWwuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4KQEAgLTQ4LDIxICs0OSwxMCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25zdCBj
aGFyIHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2ViU29ja2V0Q2hhbm5lbE1vZGUiOwotCi1S
ZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVh
dGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkKK1JlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IFdl
YlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1cmws
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBOZXR3b3JraW5nQ29udGV4dCYgY29u
dGV4dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
cmV0dXJuIGEgcHJveHkgc28gd2UgY2FuIGRvIHRoZSBhY3R1YWwgbmV0d29yayBpbnRlcmFjdGlv
bnMgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgotICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4o
Y29udGV4dCkpIHsKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3Bl
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAgICAgICBXb3JrZXJS
dW5Mb29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpOwot
ICAgICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7Ci0gICAgICAgIG1vZGUuYXBwZW5kTGl0ZXJhbCh3
ZWJTb2NrZXRDaGFubmVsTW9kZSk7Ci0gICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1bkxvb3Au
Y3JlYXRlVW5pcXVlSWQoKSk7Ci0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUudG9TdHJp
bmcoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJuIFNvY2tldFN0cmVh
bUhhbmRsZTo6Y3JlYXRlKHVybCwgY2xpZW50LCBjb250ZXh0LCBzZXNzaW9uSUQpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCShyZXZpc2lvbiAyMDMyMjMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IFdlYlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNvY2tldFByb3ZpZGVy
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQotICAgIFJlZlB0cjxX
ZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5l
bChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViQ29yZTo6V2ViU29ja2V0Q2hh
bm5lbENsaWVudCYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpTb2NrZXRTdHJlYW1I
YW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJD
b3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4
dCYsIFdlYkNvcmU6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB+V2ViU29ja2V0
UHJvdmlkZXIoKSB7IH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIy
OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRT
dHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1pc2MvV2ViU29ja2V0UHJvdmlkZXIuaDoKKyAgICAgICAgKiBNaXNjL1dlYlNvY2tl
dFByb3ZpZGVyLm1tOgorICAgICAgICAoV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0
cmVhbUhhbmRsZSk6CisgICAgICAgIChXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0
Q2hhbm5lbCk6IERlbGV0ZWQuCisKIDIwMTYtMDctMTMgIEJldGggRGFraW4gIDxiZGFraW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIGNhbmRpZGF0ZSB0ZXN0cwpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIuaAkocmV2aXNpb24gMjAzMjIzKQor
KysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw2ICszMCw2IEBACiBjbGFzcyBXZWJTb2NrZXRQcm92aWRlciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpTb2NrZXRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxX
ZWJTb2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2Nr
ZXRQcm92aWRlcik7IH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5k
bGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50
JiwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQmLCBXZWJDb3JlOjpTZXNzaW9uSUQpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkgeyB9CiB9OwpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tCShyZXZpc2lvbiAyMDMy
MjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNv
Y2tldENoYW5uZWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5o
PgpAQCAtNDUsMjAgKzQ2LDkgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRp
YyBjb25zdCBjaGFyIHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2ViU29ja2V0Q2hhbm5lbE1v
ZGUiOwotCi1SZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tldFByb3Zp
ZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkKK1JlZlB0cjxTb2NrZXRTdHJlYW1I
YW5kbGU+IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3Qg
VVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBOZXR3b3JraW5nQ29u
dGV4dCYgY29udGV4dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBpZiAoaXM8V29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpKSB7Ci0gICAgICAgIFdvcmtlckdsb2JhbFNjb3BlJiB3b3Jr
ZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKLSAg
ICAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IHdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgp
LnJ1bkxvb3AoKTsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBtb2RlOwotICAgICAgICBtb2RlLmFw
cGVuZExpdGVyYWwod2ViU29ja2V0Q2hhbm5lbE1vZGUpOwotICAgICAgICBtb2RlLmFwcGVuZE51
bWJlcihydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOwotICAgICAgICByZXR1cm4gV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50
LCBtb2RlLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIHJldHVybiBXZWJTb2NrZXRDaGFubmVs
OjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBjbGllbnQpOworICAgIHJldHVy
biBTb2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZSh1cmwsIGNsaWVudCwgY29udGV4dCwgc2Vzc2lv
bklEKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283664</attachid>
            <date>2016-07-14 11:26:10 -0700</date>
            <delta_ts>2016-07-14 11:58:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159774-20160714112523.patch</filename>
            <type>text/plain</type>
            <size>58293</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tl
dFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3IuCisgICAgICAgIAorICAgICAgICBJbiByMjAyOTMwIEkgaW50cm9kdWNlZCB0
aGUgU29ja2V0UHJvdmlkZXIsIGJ1dCBJIHVzZWQgaXQgdG8gbWFrZSBhIFdlYlNvY2tldENoYW5u
ZWwKKyAgICAgICAgaW5zdGVhZCBvZiBhIFNvY2tldFN0cmVhbUhhbmRsZSwgd2hpY2ggaXMgdGhl
IGNsYXNzIEkgd2FudCB0byBtYWtlIGludG8gYW4gaW50ZXJmYWNlCisgICAgICAgIGFuZCBwcm94
eSB0aGUgd2ViIHRyYWZmaWMgb3ZlciB0byB0aGUgTmV0d29ya1Byb2Nlc3MuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y29ubmVjdCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpy
ZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKToK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlk
Z2U6On5CcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6aW5pdGlhbGl6ZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXApOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNv
Y2tldENoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoK
KyAgICAgICAgKiBwYWdlL1NvY2tldFByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTb2Nr
ZXRQcm92aWRlcjo6flNvY2tldFByb3ZpZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZS5oOgorCiAyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBTZXNzaW9uSUQgdG8g
V2ViU29ja2V0SGFuZGxlIGNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2
aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMzIsNiArMTAzMiw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCiAgICAgTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAKIAorICAgIE1vZHVs
ZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKICAgICBNb2R1bGVz
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAog
ICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCiAgICAgTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyIEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfU09DS0VU
UykKKyNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgorCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSAiVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCisjaW5jbHVkZSAi
V2ViU29ja2V0Q2hhbm5lbC5oIgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIK
KyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3Au
aCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRDaGFu
bmVsTW9kZVtdID0gIndlYlNvY2tldENoYW5uZWxNb2RlIjsKKworUmVmPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsPiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwg
U29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQoreworICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCkpIHsKKyAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNj
b3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBXb3Jr
ZXJSdW5Mb29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgp
OworICAgICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7CisgICAgICAgIG1vZGUuYXBwZW5kTGl0ZXJh
bCh3ZWJTb2NrZXRDaGFubmVsTW9kZSk7CisgICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1bkxv
b3AuY3JlYXRlVW5pcXVlSWQoKSk7CisgICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUudG9T
dHJpbmcoKSwgcHJvdmlkZXIpOworICAgIH0KKworICAgIHJldHVybiBXZWJTb2NrZXRDaGFubmVs
OjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBjbGllbnQsIHByb3ZpZGVyKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9TT0NL
RVRTKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJKHJldmlzaW9uIDIwMzIyMykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMSArNDUsMTMgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgQmxvYjsKIGNsYXNzIFVSTDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CitjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGll
bnQ7CiAKIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCk7CiBwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgU29ja2V0UHJvdmlkZXImKTsKICAg
ICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIHsgfQogCiAgICAgZW51bSBTZW5kUmVzdWx0
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU1LDEwICsyNTUsMTAgQEAg
dm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3QgU3RyaW5nJiB1cgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKGF1dG8gc29ja2V0UHJvdmlkZXIgPSBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnNvY2tldFByb3ZpZGVyKCkpCi0gICAgICAgIG1fY2hhbm5lbCA9IHNvY2tldFBy
b3ZpZGVyLT5jcmVhdGVXZWJTb2NrZXRDaGFubmVsKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
ICp0aGlzKTsKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNvY2tldFByb3ZpZGVyKCkpCisgICAgICAgIG1fY2hhbm5lbCA9IFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICpw
cm92aWRlcik7CiAKLSAgICAvLyBPbmx5IGFuIEVtcHR5U29ja2V0UHJvdmlkZXIgY2FuIHJldHVy
biBudWxscHRyLCBhbmQgZXZlcnkgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzaG91bGQgaGF2ZSBh
IFNvY2tldFByb3ZpZGVyLgorICAgIC8vIEV2ZXJ5IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgc2hv
dWxkIGhhdmUgYSBTb2NrZXRQcm92aWRlci4KICAgICBSRUxFQVNFX0FTU0VSVChtX2NoYW5uZWwp
OwogCiAgICAgLy8gRklYTUU6IFRoZXJlIGlzIGEgZGlzYWdyZWVtZW50IGFib3V0IHJlc3RyaWN0
aW9uIG9mIHN1YnByb3RvY29scyBiZXR3ZWVuIFdlYlNvY2tldCBBUEkgYW5kIGh5YmktMTAgcHJv
dG9jb2wKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU29ja2V0U3RyZWFtRXJyb3IuaCIK
ICNpbmNsdWRlICJTb2NrZXRTdHJlYW1IYW5kbGUuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50LmgiCkBAIC02NCwxMSArNjUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
b25zdCBkb3VibGUgVENQTWF4aW11bVNlZ21lbnRMaWZldGltZSA9IDIgKiA2MC4wOwogCi1XZWJT
b2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29j
a2V0Q2hhbm5lbENsaWVudCYgY2xpZW50KQorV2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hh
bm5lbChEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwg
U29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQogICAgIDogbV9kb2N1bWVudCgmZG9jdW1lbnQpCiAg
ICAgLCBtX2NsaWVudCgmY2xpZW50KQogICAgICwgbV9yZXN1bWVUaW1lcigqdGhpcywgJldlYlNv
Y2tldENoYW5uZWw6OnJlc3VtZVRpbWVyRmlyZWQpCiAgICAgLCBtX2Nsb3NpbmdUaW1lcigqdGhp
cywgJldlYlNvY2tldENoYW5uZWw6OmNsb3NpbmdUaW1lckZpcmVkKQorICAgICwgbV9zb2NrZXRQ
cm92aWRlcihwcm92aWRlcikKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LnBhZ2Uo
KSkKICAgICAgICAgbV9pZGVudGlmaWVyID0gcGFnZS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CkBAIC05OCw3ICsxMDAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmNv
bm5lY3QoY29uc3QgVVJMCiAgICAgICAgICAgICByZWYoKTsKICAgICAgICAgICAgIFBhZ2UqIHBh
Z2UgPSBmcmFtZS0+cGFnZSgpOwogICAgICAgICAgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IHBh
Z2UgPyBwYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwot
ICAgICAgICAgICAgbV9oYW5kbGUgPSBTb2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZShtX2hhbmRz
aGFrZS0+dXJsKCksICp0aGlzLCAqbmV0d29ya2luZ0NvbnRleHQsIHNlc3Npb25JRCk7CisgICAg
ICAgICAgICBtX2hhbmRsZSA9IG1fc29ja2V0UHJvdmlkZXItPmNyZWF0ZVNvY2tldFN0cmVhbUhh
bmRsZShtX2hhbmRzaGFrZS0+dXJsKCksICp0aGlzLCAqbmV0d29ya2luZ0NvbnRleHQsIHNlc3Np
b25JRCk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgJKHJldmlzaW9uIDIwMzIy
MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQmxvYjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRmlsZVJlYWRlckxvYWRlcjsKK2Ns
YXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlOwogY2xhc3MgU29j
a2V0U3RyZWFtRXJyb3I7CiBjbGFzcyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OwpAQCAtNTgsNyAr
NTksNyBAQCBjbGFzcyBXZWJTb2NrZXRDaGFubmVsIDogcHVibGljIFJlZkNvdW50CiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJTb2Nr
ZXRDaGFubmVsPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50JiBjbGllbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0Q2hhbm5lbChkb2N1
bWVudCwgY2xpZW50KSk7IH0KKyAgICBzdGF0aWMgUmVmPFdlYlNvY2tldENoYW5uZWw+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgU29j
a2V0UHJvdmlkZXImIHByb3ZpZGVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldENo
YW5uZWwoZG9jdW1lbnQsIGNsaWVudCwgcHJvdmlkZXIpKTsgfQogICAgIHZpcnR1YWwgfldlYlNv
Y2tldENoYW5uZWwoKTsKIAogICAgIGJvb2wgc2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3RoKTsKQEAgLTExOSw3ICsxMjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkZXJlZlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKIHByaXZhdGU6
Ci0gICAgV0VCQ09SRV9FWFBPUlQgV2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCYsIFdlYlNvY2tl
dENoYW5uZWxDbGllbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXZWJTb2NrZXRDaGFubmVsKERv
Y3VtZW50JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYsIFNvY2tldFByb3ZpZGVyJik7CiAKICAg
ICBib29sIGFwcGVuZFRvQnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBsZW4pOwogICAg
IHZvaWQgc2tpcEJ1ZmZlcihzaXplX3QgbGVuKTsKQEAgLTIxMyw2ICsyMTQsNyBAQCBwcml2YXRl
OgogICAgIEJsb2JMb2FkZXJTdGF0dXMgbV9ibG9iTG9hZGVyU3RhdHVzIHsgQmxvYkxvYWRlck5v
dFN0YXJ0ZWQgfTsKIAogICAgIFdlYlNvY2tldERlZmxhdGVGcmFtZXIgbV9kZWZsYXRlRnJhbWVy
OworICAgIFJlZjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJT
b2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgiCkBAIC01MCwxMCArNTEsMTEgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKK1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbChXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYg
Y2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIp
CiAgICAgOiBtX3dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpCiAgICAgLCBtX3dvcmtlckNsaWVu
dFdyYXBwZXIoVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpjcmVhdGUo
Y29udGV4dCwgY2xpZW50KSkKLSAgICAsIG1fYnJpZGdlKEJyaWRnZTo6Y3JlYXRlKG1fd29ya2Vy
Q2xpZW50V3JhcHBlci5jb3B5UmVmKCksIG1fd29ya2VyR2xvYmFsU2NvcGUuY29weVJlZigpLCB0
YXNrTW9kZSkpCisgICAgLCBtX2JyaWRnZShCcmlkZ2U6OmNyZWF0ZShtX3dvcmtlckNsaWVudFdy
YXBwZXIuY29weVJlZigpLCBtX3dvcmtlckdsb2JhbFNjb3BlLmNvcHlSZWYoKSwgdGFza01vZGUs
IHByb3ZpZGVyKSkKKyAgICAsIG1fc29ja2V0UHJvdmlkZXIocHJvdmlkZXIpCiB7CiAgICAgbV9i
cmlkZ2UtPmluaXRpYWxpemUoKTsKIH0KQEAgLTE0MCwxMCArMTQyLDEwIEBAIHZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OnIKICAgICAgICAgbV9icmlkZ2UtPnJlc3VtZSgp
OwogfQogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6UGVlcihSZWY8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBwZXIs
IFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKK1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpQZWVyOjpQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI+JiYgY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRhc2tNb2Rl
LCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBwZXIo
V1RGTW92ZShjbGllbnRXcmFwcGVyKSkKICAgICAsIG1fbG9hZGVyUHJveHkobG9hZGVyUHJveHkp
Ci0gICAgLCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShk
b3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksICp0aGlzKSkKKyAgICAsIG1fbWFpbldlYlNvY2tl
dENoYW5uZWwoV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0KSwgKnRoaXMsIHByb3ZpZGVyKSkKICAgICAsIG1fdGFza01vZGUodGFza01vZGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTMyOSwxMiArMzMxLDEyIEBAIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlAKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0K
IAotV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKFJlZjxU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgd29ya2VyQ2xpZW50V3Jh
cHBlciwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiYmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBT
dHJpbmcmIHRhc2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRn
ZTo6QnJpZGdlKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYg
d29ya2VyQ2xpZW50V3JhcHBlciwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiYmIHdvcmtlckdsb2Jh
bFNjb3BlLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29j
a2V0UHJvdmlkZXIpCiAgICAgOiBtX3dvcmtlckNsaWVudFdyYXBwZXIoV1RGTW92ZSh3b3JrZXJD
bGllbnRXcmFwcGVyKSkKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUoV1RGTW92ZSh3b3JrZXJH
bG9iYWxTY29wZSkpCiAgICAgLCBtX2xvYWRlclByb3h5KG1fd29ya2VyR2xvYmFsU2NvcGUtPnRo
cmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkpCiAgICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQot
ICAgICwgbV9wZWVyKG51bGxwdHIpCisgICAgLCBtX3NvY2tldFByb3ZpZGVyKFdURk1vdmUoc29j
a2V0UHJvdmlkZXIpKQogewogfQogCkBAIC0zNDMsMTQgKzM0NSwxNCBAQCBXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlCiAgICAgZGlzY29ubmVjdCgpOwogfQogCi12b2lk
IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRJbml0
aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdvcmtlckxvYWRlclByb3h5
JiBsb2FkZXJQcm94eSwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4mJiBjbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKQordm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjptYWluVGhyZWFkSW5pdGlhbGl6ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVy
UHJveHksIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgY2xp
ZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
IHByb3ZpZGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKGNv
bnRleHQuaXNEb2N1bWVudCgpKTsKIAogICAgIGJvb2wgc2VudCA9IGxvYWRlclByb3h5LnBvc3RU
YXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoewogICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrOjpDbGVhbnVwVGFzaywKLSAgICAgICAgW2NsaWVudFdyYXBwZXIgPSBjbGll
bnRXcmFwcGVyLmNvcHlSZWYoKSwgJmxvYWRlclByb3h5LCBwZWVyID0gc3RkOjptYWtlX3VuaXF1
ZTxQZWVyPihjbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgbG9hZGVyUHJveHksIGNvbnRleHQsIHRh
c2tNb2RlKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAg
ICAgIFtjbGllbnRXcmFwcGVyID0gY2xpZW50V3JhcHBlci5jb3B5UmVmKCksICZsb2FkZXJQcm94
eSwgcGVlciA9IHN0ZDo6bWFrZV91bmlxdWU8UGVlcj4oY2xpZW50V3JhcHBlci5jb3B5UmVmKCks
IGxvYWRlclByb3h5LCBjb250ZXh0LCB0YXNrTW9kZSwgV1RGTW92ZShwcm92aWRlcikpXShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIEFTU0VS
VF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwogICAgICAg
ICAgICAgaWYgKGNsaWVudFdyYXBwZXItPmZhaWxlZFdlYlNvY2tldENoYW5uZWxDcmVhdGlvbigp
KSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgQnJpZGdlOjppbml0aWFsaXplKCkgcXVpdHRlZCBl
YXJsaWVyLCB3ZSBuZWVkIHRvIGtpY2sgbWFpblRocmVhZERlc3Ryb3koKSB0byBkZWxldGUgdGhl
IHBlZXIuCkBAIC0zNzMsOCArMzc1LDggQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6QgogICAgIHNldE1ldGhvZE5vdENvbXBsZXRlZCgpOwogICAgIFJlZjxCcmlkZ2U+
IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCi0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9h
ZGVyKFsmbG9hZGVyUHJveHkgPSBtX2xvYWRlclByb3h5LCB3b3JrZXJDbGllbnRXcmFwcGVyID0g
bV93b3JrZXJDbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgdGFza01vZGUgPSBtX3Rhc2tNb2RlLmlz
b2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsK
LSAgICAgICAgbWFpblRocmVhZEluaXRpYWxpemUoY29udGV4dCwgbG9hZGVyUHJveHksIFdURk1v
dmUod29ya2VyQ2xpZW50V3JhcHBlciksIHRhc2tNb2RlKTsKKyAgICBtX2xvYWRlclByb3h5LnBv
c3RUYXNrVG9Mb2FkZXIoWyZsb2FkZXJQcm94eSA9IG1fbG9hZGVyUHJveHksIHdvcmtlckNsaWVu
dFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIuY29weVJlZigpLCB0YXNrTW9kZSA9IG1f
dGFza01vZGUuaXNvbGF0ZWRDb3B5KCksIHByb3ZpZGVyID0gbV9zb2NrZXRQcm92aWRlci5jb3B5
UmVmKCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAg
ICBtYWluVGhyZWFkSW5pdGlhbGl6ZShjb250ZXh0LCBsb2FkZXJQcm94eSwgV1RGTW92ZSh3b3Jr
ZXJDbGllbnRXcmFwcGVyKSwgdGFza01vZGUsIFdURk1vdmUocHJvdmlkZXIpKTsKICAgICB9KTsK
ICAgICB3YWl0Rm9yTWV0aG9kQ29tcGxldGlvbigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDkgQEAgY2xhc3MgV29ya2VyUnVuTG9vcDsKIGNs
YXNzIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsIDogcHVibGljIFJlZkNvdW50ZWQ8
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+LCBwdWJsaWMgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShXb3JrZXJHbG9i
YWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVu
dCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsPiBjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3Bl
LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUs
IFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKHdvcmtlckdsb2JhbFNjb3Bl
LCBjbGllbnQsIHRhc2tNb2RlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIHRh
c2tNb2RlLCBwcm92aWRlcikpOwogICAgIH0KICAgICB2aXJ0dWFsIH5Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbCgpOwogCkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICBjbGFz
cyBQZWVyIDogcHVibGljIFdlYlNvY2tldENoYW5uZWxDbGllbnQgewogICAgICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQZWVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGlj
OgotICAgICAgICBQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI+JiYsIFdvcmtlckxvYWRlclByb3h5JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0
IFN0cmluZyYgdGFza01vZGUpOworICAgICAgICBQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIFdvcmtlckxvYWRlclByb3h5JiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJik7CiAg
ICAgICAgIH5QZWVyKCk7CiAKICAgICAgICAgdm9pZCBjb25uZWN0KGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpOwpAQCAtMTE5LDkgKzExOSw5IEBAIHByaXZhdGU6CiAgICAgLy8g
QnJpZGdlIGZvciBQZWVyLiAgUnVubmluZyBvbiB0aGUgd29ya2VyIHRocmVhZC4KICAgICBjbGFz
cyBCcmlkZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxCcmlkZ2U+IHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHN0YXRpYyBSZWY8QnJpZGdlPiBjcmVhdGUoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xvYmFs
U2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCisgICAg
ICAgIHN0YXRpYyBSZWY8QnJpZGdlPiBjcmVhdGUoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xvYmFs
U2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFJlZjxT
b2NrZXRQcm92aWRlcj4mJiBwcm92aWRlcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQnJpZGdlKFdURk1vdmUod29ya2VyQ2xpZW50V3JhcHBlciksIFdURk1v
dmUod29ya2VyR2xvYmFsU2NvcGUpLCB0YXNrTW9kZSkpOworICAgICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgQnJpZGdlKFdURk1vdmUod29ya2VyQ2xpZW50V3JhcHBlciksIFdURk1vdmUo
d29ya2VyR2xvYmFsU2NvcGUpLCB0YXNrTW9kZSwgV1RGTW92ZShwcm92aWRlcikpKTsKICAgICAg
ICAgfQogICAgICAgICB+QnJpZGdlKCk7CiAgICAgICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwpAQCAt
MTQwLDEyICsxNDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgdXNpbmcgUmVmQ291bnRlZDxCcmlk
Z2U+OjpkZXJlZjsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEJyaWRnZShSZWY8VGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+
JiYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpOworICAgICAgICBCcmlkZ2UoUmVmPFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgUmVmPFdvcmtlckdsb2JhbFNjb3Bl
PiYmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYpOwogCiAg
ICAgICAgIHN0YXRpYyB2b2lkIHNldFdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEJyaWRnZSogdGhpc1B0ciwgUGVlciosIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI+JiYpOwogCiAgICAgICAgIC8vIEV4ZWN1dGVkIG9uIHRoZSBtYWlu
IHRocmVhZCB0byBjcmVhdGUgYSBQZWVyIGZvciB0aGlzIGJyaWRnZS4KLSAgICAgICAgc3RhdGlj
IHZvaWQgbWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtl
ckxvYWRlclByb3h5JiwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1haW5U
aHJlYWRJbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrZXJMb2FkZXJQcm94
eSYsIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIGNvbnN0
IFN0cmluZyYgdGFza01vZGUsIFJlZjxTb2NrZXRQcm92aWRlcj4mJik7CiAKICAgICAgICAgLy8g
RXhlY3V0ZWQgb24gdGhlIHdvcmtlciBjb250ZXh0J3MgdGhyZWFkLgogICAgICAgICB2b2lkIGNs
ZWFyQ2xpZW50V3JhcHBlcigpOwpAQCAtMTU3LDE2ICsxNTcsMTggQEAgcHJpdmF0ZToKICAgICAg
ICAgUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAgICAg
ICBXb3JrZXJMb2FkZXJQcm94eSYgbV9sb2FkZXJQcm94eTsKICAgICAgICAgU3RyaW5nIG1fdGFz
a01vZGU7Ci0gICAgICAgIFBlZXIqIG1fcGVlcjsKKyAgICAgICAgUGVlciogbV9wZWVyIHsgbnVs
bHB0ciB9OworICAgICAgICBSZWY8U29ja2V0UHJvdmlkZXI+IG1fc29ja2V0UHJvdmlkZXI7CiAg
ICAgfTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsKFdvcmtlckdsb2JhbFNjb3BlJiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYsIGNvbnN0IFN0
cmluZyYgdGFza01vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIFdvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlJiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYs
IGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJik7CiAKICAgICBjbGFzcyBX
b3JrZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrOwogCiAgICAgUmVmPFdvcmtlckdsb2Jh
bFNjb3BlPiBtX3dvcmtlckdsb2JhbFNjb3BlOwogICAgIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI+IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKICAgICBSZWZQdHI8
QnJpZGdlPiBtX2JyaWRnZTsKKyAgICBSZWY8U29ja2V0UHJvdmlkZXI+IG1fc29ja2V0UHJvdmlk
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMyMjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDYgQEAKIAkJMDFFNkMyRTQxMTk0QjI4MjAwNTA4MjFD
IC8qIFNwZWxsaW5nRG90QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDFFNkMyRTMxMTk0QjI4MjAwNTA4MjFDIC8qIFNwZWxsaW5nRG90QDJ4
LnBuZyAqLzsgfTsKIAkJMDU2MkY5NjExNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1NjJGOTYw
MTU3M0Y4OEYwMDMxQ0ExNiAvKiBQbGF0Zm9ybUxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDVEOTEzQ0VFQUIyQTYwNTM0MjE4QUNGIC8q
IE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDM0U2MUM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MTWVuY2xv
c2VFbGVtZW50LmNwcCAqLzsgfTsKLQkJMTZFQTI0Q0VFQUIyQTYwNTM0MjE4QUNGIC8qIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5LmNwcCAqLzsgfTsKIAkJMDVGRDY5RTAxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRp
bWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3Q0FEMEIxQ0JGQzAwMDg4
NEIyRCAvKiBDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA2MDI3Q0FDMEIxQ0JGQzAwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0
ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
NjIyODc4NDBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2MjI4NzgzMEI0REIzMjIwMDBDMzRE
RiAvKiBGb2N1c0RpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC02NjYsNiArNjY1LDcgQEAKIAkJMTVGQ0M5RkMxQjRERjdGMjAwRTcy
MzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEVEMTlFRTM2NDIwMEU1QTA0NSAvKiBET01VUkxNZWRp
YVN0cmVhbS5jcHAgKi87IH07CiAJCTE1RkNDOUZFMUI0REY4NUUwMEU3MjMyNiAvKiBET01VUkxN
ZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTVGQ0M5RkQxQjRERjg1NjAwRTcyMzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmggKi87IH07
CiAJCTE2M0U4OEY3MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVUZXh0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE2M0U4OEY1
MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcCAqLzsgfTsKKwkJ
MTZFQTI0Q0VFQUIyQTYwNTM0MjE4QUNGIC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENEY3MkM2NTNB
NjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLzsgfTsKIAkJ
MTg1QkNGMjgwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0YyNjBGMzI3OUNFMDAwRUEy
NjIgLyogVGhyZWFkVGltZXJzLmNwcCAqLzsgfTsKIAkJMTg1QkNGMjkwRjMyNzlDRTAwMEVBMjYy
IC8qIFRocmVhZFRpbWVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTg1QkNGMjcwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5oICovOyB9
OwogCQkxODg2MDRCMzBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTg4NjA0QjEwRjJFNjU0QTAwMEI2
NDQzIC8qIERPTVRpbWVyLmNwcCAqLzsgfTsKQEAgLTE5ODEsNiArMTk4MSw4IEBACiAJCTRGMTUz
NEUwMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxNTM0REYxMUI1MzMwMjAwMjFG
RDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIEluc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNw
cCAqLzsgfTsKIAkJNEY2RkRENjUxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2RkRE
NjMxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTRGQTY1QTZCMTEwOEFCRUQwMDI2
MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNw
YWNlRWxlbWVudC5jcHAgKi87IH07CisJCTRGQTY1QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRo
TUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuaCAq
LzsgfTsKIAkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQjM5MEFDMTVF
RjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CiAJCTRGRkMwMjJCMTY0
M0I3MTAwMDRFMTYzOCAvKiBOb2RlUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBQjQ4NjYxNjQzQTY3RTAwRjcwQzA3IC8qIE5vZGVS
YXJlRGF0YS5jcHAgKi87IH07CiAJCTRGRkMwMjJEMTY0M0I3MjYwMDRFMTYzOCAvKiBFbGVtZW50
UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi87IH07
CkBAIC0yMDA4LDcgKzIwMTAsNyBAQAogCQk1MTBENEEzMzEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtRXJyb3JCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEQ0QTJEMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJv
ckJhc2UuY3BwICovOyB9OwogCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3Ry
ZWFtRXJyb3JCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTBENEEyRTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNlLmgg
Ki87IH07CiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVC
YXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLzsg
fTsKLQkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMx
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IH07CisJCTUx
MEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMTEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MTFFQzEyNzFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEy
NTFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5jcHAgKi87IH07CiAJCTUxMUVD
MTI4MUM1MEFBQ0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMg
LyogSURCU2VyaWFsaXphdGlvbi5oICovOyB9OwpAQCAtMjIyNiw3ICsyMjI4LDcgQEAKIAkJNTFB
OUQ5RjQxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlEOUYwMTk1Qjk1MDMwMDFCMkI1QyAvKiBI
SURHYW1lcGFkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTFBQTNGNkYwQkQ1QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQTNGNkUwQkQ1
QUE5RTAwODkyOTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tICovOyB9OwogCQk1MUFCQUUxQjEw
M0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFBMTAzQzE4RkYwMDhDNTI2MCAvKiBT
b2NrZXRTdHJlYW1FcnJvci5oICovOyB9OwotCQk1MUFCQUUxRTEwM0MxOTEzMDA4QzUyNjAgLyog
U29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUFCQUUxQzEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxl
LmggKi87IH07CisJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJB
RTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUFCQUUxRjEwM0MxOTEzMDA4
QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUQxMDNDMTkxMzAwOEM1MjYwIC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcCAqLzsgfTsKIAkJNTFBQkY2NEQxNjM5MkUyODAwMTMy
QTdBIC8qIExvYWRlclN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVn
eS5jcHAgKi87IH07CiAJCTUxQUY1MDM2MTZGMTAwRjYwMDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRl
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUFGNTAzNTE2RjEwMEY2MDA5NUIyRTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMzkxLDYgKzIzOTMs
NyBAQAogCQk1QzQzMDRCMTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MzA0QUUx
OTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0QuaCAqLzsgfTsKIAkJNUM0MzA0
QjUxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRCMzE5MUFFRjQ2MDAw
RTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLzsgfTsKIAkJNUM0MzA0QjYxOTFB
RUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0MzA0QjQxOTFBRUY0NjAwMEUyQkMwIC8q
IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oICovOyB9OworCQk1QzY4OEFBMTFEMzgwQkY4MDAwQjU0
RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2ODhBQTAxRDM4MDUwOTAwMEI1NEZBIC8qIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNUM3Qzg4RDgxRDBGMUY0QTAw
OUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
QzlBN0E3NTFBQTBGNkVBMDA5NThBQ0YgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzM5MzA1RTFBQTBGNkE5
MDAyOUM4MTYgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgKi87IH07CiAJCTVDOUE3QTc2MUFB
MEY2RUQwMDk1OEFDRiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDYwMUFBMEY2QTkwMDI5Qzgx
NiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCAqLzsgfTsKQEAgLTUzOTUsNiArNTM5OCw3
IEBACiAJCUI1N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJDMTgy
QTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCAqLzsgfTsKIAkJQjU3Q0I1MkUx
ODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJCMTgyQTM3RjYwMDc5QTY0NyAvKiBJ
bmxpbmVFbGVtZW50Qm94LmggKi87IH07CiAJCUI1OTVGRjQ3MTgyNENFRTMwMEZGNTFDRCAvKiBS
ZW5kZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggKi87IH07
CisJCUI1OUNBMzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OUNBNTlBRjE3
MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJQjU5REQ2
OTkxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OTcxMTkwMjlFNTAwN0U5Njg0
IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OwogCQlCNTlERDY5QTExOTAyOUU1MDA3RTk2
ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNl
Q2FsbGJhY2suY3BwICovOyB9OwogCQlCNTlERDY5RDExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxU
cmFuc2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCNTlERDY5QjExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrLmggKi87IH07CkBAIC02ODk0LDggKzY4OTgsNiBAQAogCQlGOThGRkY0NDExQTI2NzYy
MDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5j
cHAgKi87IH07CiAJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MzExQTI2
NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5oICovOyB9OwogCQlGOUYwRUQ3QTBEQjUwQ0EyMDBE
MTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyog
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07Ci0JCTRGQTY1QTZCMTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhN
TFNwYWNlRWxlbWVudC5jcHAgKi87IH07Ci0JCTRGQTY1QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBN
YXRoTUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQu
aCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBNjU0
QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAgKi87IH07CiAJCUZB
NjU0QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRBNkExMTA4QUJFRDAwMjYx
NUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi87IH07CiAJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5
OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZBQkU3MkVEMTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50
LmNwcCAqLzsgfTsKQEAgLTcyMTAsNyArNzIxMiw2IEBACiAJCUZFRDEzRDNEMENFQTkzNkEwMEQ4
OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFRDEzRDNCMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSAqLzsgfTsK
IAkJRkVEMTNENDAwQ0VBOTM5NDAwRDg5NDY2IC8qIEljb25JT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQxM0QzRjBDRUE5Mzk0MDBEODk0NjYg
LyogSWNvbklPUy5tbSAqLzsgfTsKIAkJRkVEMTNENTIwQ0VBOTQ5NzAwRDg5NDY2IC8qIFJlbmRl
clRoZW1lSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGRUQxM0Q1MDBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVyVGhlbWVJT1MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCNTlDQTM5MENFRDY2QzMy
NTVGNzJDNTkgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0
aE1MUGFkZGVkRWxlbWVudC5jcHAgKi87IH07CiAJCUZFRDQ4MzkwQ0VENjZDMzI1NUY3MkM1OSAv
KiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY3NUEwNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxTZWxlY3RF
bGVtZW50LmNwcCAqLzsgfTsKIAkJRkVFMTgxMTMxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5z
YWN0aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRUUxODExMTE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNrZW5k
LmNwcCAqLzsgfTsKIAkJRkVFMTgxMTQxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9u
QmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVFMTgxMTIxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5oICovOyB9
OwpAQCAtOTYxMiw2ICs5NjEzLDggQEAKIAkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVk
aXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVk
aXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNkZE
RDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUGFnZUFnZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2RkRENjMxMzQxREVERDAwMUY4RUUzIC8qIEluc3Bl
Y3RvclBhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0
b3JQYWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEZBNjVBNjkxMTA4
QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNwYWNlRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkFCNDg2NDE2NDNBNjZEMDBG
NzBDMDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVJhcmVEYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRl
ZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRl
ZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDMwLDcgKzEwMDMz
LDYgQEAKIAkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk1OEYxQ0Ix
MzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0
aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NThGMUND
MTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFBhZGRlZEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk3ODA4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1h
dGhNTFNlbGVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0
aE1MU2VsZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgzNjVE
QzEzNTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OTgzNjVERTEzNTVGNTYyMDAxQjE4NUQgLyogSlNQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQb3NpdGlvbkVy
cm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDcwLDYgKzEw
MDcyLDcgQEAKIAkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVM
T0QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVFNoYWRlclRleHR1cmVMT0QuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQzMDRCMzE5MUFFRjQ2MDAwRTJCQzAgLyog
SlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRTaGFkZXJUZXh0dXJlTE9E
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEwMUQzODA1MDkwMDBCNTRG
QSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQ
cm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRQcm92aWRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlCODYwQjFDMjFFM0M2MDAxMTBG
MzYgLyogUmVzb3VyY2VMb2FkVGltaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1Q0IzN0ZGQzFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yTW9j
ay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM4OCw2ICsxMzM5MSw4IEBA
CiAJCUI1N0NCNTJCMTgyQTM3RjYwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUVsZW1lbnRCb3guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU3Q0I1MkMxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVs
ZW1lbnRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
RWxlbWVudEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OTVGRjQ2MTgy
NENFRTMwMEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5OEJD
IC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWF0aE1MUGFkZGVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
NTlERDY5NzExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCNTlERDY5ODExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFz
ZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0
YWJhc2VDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjlC
MTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxMiw3ICsxNDAxNyw2IEBACiAJCUMzQ0YxN0Ey
MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTMxNUIwMDYzRjAwMjc2RDM5
IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzNFNjFDNjUzQTY0ODA3QTgzRTc2RkI4IC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxNZW5jbG9z
ZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlENEY3MkM2NTNBNjQ4
MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0MDBEMTA4MThGMUM4RjYwMDkwRDg2MyAvKiBF
dmVudExvb3BJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
dmVudExvb3BJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk4
MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBz
aG90dGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVNuYXBzaG90
dGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzODUsNyArMTQzODksNiBA
QAogCQlDRTI4NDk4ODFDQTM2MTQ2MDBCNEE1N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5RGly
ZWN0aXZlTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29u
dGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBwYXRoID0gY3NwL0NvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0U1Q0IxQjMxNEVEQUI2RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxNZW5jbG9zZUVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MTWVuY2xvc2VF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURGN0U5QTI5NEM3QUFDRTBB
RDg5QjNERCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0aCA9
IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0gY3Nw
L0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRTc5OUY5NTFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5
UG9saWN5U291cmNlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsgcGF0aCA9IGNzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0NDgyLDYgKzE0NDg1LDcgQEAKIAkJRDNGM0QzNjIxQTY5QjE5MDAwNTlGQzJCIC8qIEpT
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDNGM0QzNjUxQTY5QjFBNTAwNTlGQzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0YzRDM2
NjFBNjlCMUE1MDA1OUZDMkIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjgg
LyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQ2MTlBMzA1MTQ0RTAwQkUwMDRCQzMwMiAvKiBDaGlsZExpc3RNdXRh
dGlvblNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoaWxk
TGlzdE11dGF0aW9uU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENjE5
QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyogQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2NDg5RDIzMTY2RkZDRjEwMDdDMDMxQiAvKiBKU0hU
TUxUZW1wbGF0ZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNIVE1MVGVtcGxhdGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0NTE3LDYgKzE0NTIxLDcgQEAKIAkJREU0OUIzMDcxNjVGMkZFMTAwMTAzMzhEIC8qIFJl
bmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREU0OUIzMDgxNjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29u
dHJvbEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1l
ZGlhQ29udHJvbEVsZW1lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFQzI5
NzVEMUI0REVCMkEwMDVGNTk0NSAvKiBKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tRXZlbnRDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjdFOUEyOTRDN0FBQ0UwQUQ4OUIzREQgLyogTWF0
aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlERjlBRkQ3MDEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURG
OUFGRDcxMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTBGRUYzNzFCMDdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBFdmVudFNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNTA1Miw3ICsxNTA1Nyw2IEBACiAJCUY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBK
U0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
RTBDNjU5MTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1RTBDNjVBMTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjc1QTA1OUFGMTcwRDhGQUE1QjhDQUJF
IC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdv
cmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFw
cGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8q
IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA2Myw4ICsxNTA2Nyw2IEBACiAJCUY5RjBFRDc4
MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2MzExMDhBQkI3MDAyNjE1RTAgLyogbWF0
aG1sLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gbWF0aG1sLmNzczsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjcxMTA4QUJFMjAwMjYxNUUwIC8qIG1hdGhhdHRy
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRoYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MU3Bh
Y2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZBNjVBNkExMTA4
QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkE2NTRBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTFRleHRFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNkExMTA4QUJFRDAwMjYx
NUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1hdGhNTFRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZB
NkU0NjZGQ0QwNDE4QTk5NjZBNUI2MCAvKiBETlNSZXNvbHZlUXVldWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE5TUmVzb2x2ZVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xOTkwNSw2ICsxOTkwNyw3IEBACiAJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0
NTdBRSAvKiB3ZWJzb2NrZXRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk1QzY4OEFBMDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwICovLAogCQkJCTk3QUFCQ0Y4MTRGQTA5RDUwMDc0NTdBRSAvKiBDbG9zZUV2
ZW50LmggKi8sCiAJCQkJOTdBQUJDRjkxNEZBMDlENTAwNzQ1N0FFIC8qIENsb3NlRXZlbnQuaWRs
ICovLAogCQkJCTk3QUFCQ0ZDMTRGQTA5RDUwMDc0NTdBRSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5oICovLApAQCAtMjk5MTcsNiArMjk5MjAsNyBAQAogCQkJCTg1QzdGNUQxMEFBRkI4
RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEy
ODRCRDUxMDQ0QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQUNFNTNFNzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTVDNjg4QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTU0ODgxODE0RTQzMkEx
MDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTAw
MkY4MUI1NkQ3ODEwMDIwQUFGNyAvKiBET01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5
QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2aXNpb24gMjAzMjIz
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDEwICs0MiwxMCBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdl
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIgor
I2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgi
CiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlci5oIgotI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAj
aW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBFbXB0eUVkaXRvckNsaWVudDo6cmVn
aXN0ZXJSZWRvU3RlcAogewogfQogICAgIAotUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsPiBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JikKK1JlZlB0cjxTb2NrZXRT
dHJlYW1IYW5kbGU+IEVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRs
ZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBOZXR3b3JraW5nQ29udGV4
dCYsIFNlc3Npb25JRCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUwLDcgKzY1MCw3
IEBAIGNsYXNzIEVtcHR5U29ja2V0UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5FbXB0eVNvY2tldFByb3ZpZGVyKCkgeyB9CiAgICAgc3RhdGljIFJlZjxFbXB0
eVNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U29j
a2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBj
cmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRD
aGFubmVsQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFNvY2tldFN0cmVhbUhhbmRsZT4g
Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudCYsIE5ldHdvcmtpbmdDb250ZXh0JiwgU2Vzc2lvbklEKSBvdmVycmlkZTsKIH07CiAKIHZv
aWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTggKzI1
LDIxIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
OwotY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsKK2NsYXNzIFNvY2tldFN0cmVhbUhhbmRs
ZTsKK2NsYXNzIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudDsKK2NsYXNzIFVSTDsKIAogY2xhc3Mg
U29ja2V0UHJvdmlkZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0UHJvdmlk
ZXI+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2Vi
U29ja2V0Q2hhbm5lbENsaWVudCYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxTb2NrZXRTdHJl
YW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQmLCBOZXR3b3JraW5nQ29udGV4dCYsIFNlc3Npb25JRCkgPSAwOwogICAg
IHZpcnR1YWwgflNvY2tldFByb3ZpZGVyKCkgeyB9OwogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZS5o
CShyZXZpc2lvbiAyMDMyMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBpbnQgcGxhdGZvcm1TZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGlu
dCBsZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNsb3NlKCk7CiAKLSAgICBTb2Nr
ZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgTmV0
d29ya2luZ0NvbnRleHQmLCBTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIFNvY2tldFN0
cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBOZXR3b3Jr
aW5nQ29udGV4dCYsIFNlc3Npb25JRCk7CiAgICAgdm9pZCBjcmVhdGVTdHJlYW1zKCk7CiAgICAg
dm9pZCBzY2hlZHVsZVN0cmVhbXMoKTsKICAgICB2b2lkIGNob29zZVByb3h5KCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNy0xNCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBTb2NrZXRQcm92aWRl
ciB0byBjcmVhdGUgU29ja2V0U3RyZWFtSGFuZGxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJv
dmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29j
a2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0UHJvdmlkZXI6OmNy
ZWF0ZVdlYlNvY2tldENoYW5uZWwpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRQcm92aWRlci5oOgorCiAyMDE2LTA3LTE0ICBIeXVuanVuIEtvICA8enpv
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGhyZWFkZWRDb21wb3NpdG9yXSBCdWlsZCBmYWls
cyBpbiBkZWJ1ZyBtb2RlIGFmdGVyIHIyMDIwNDAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcAkocmV2aXNp
b24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dFByb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0U3RyZWFtSGFuZGxlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWwuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4KQEAgLTQ4LDIxICs0OSwxMCBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBjb25zdCBjaGFy
IHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2ViU29ja2V0Q2hhbm5lbE1vZGUiOwotCi1SZWZQ
dHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVX
ZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlNvY2tl
dENoYW5uZWxDbGllbnQmIGNsaWVudCkKK1JlZlB0cjxTb2NrZXRTdHJlYW1IYW5kbGU+IFdlYlNv
Y2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1cmwsIFNv
Y2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBOZXR3b3JraW5nQ29udGV4dCYgY29udGV4
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmV0
dXJuIGEgcHJveHkgc28gd2UgY2FuIGRvIHRoZSBhY3R1YWwgbmV0d29yayBpbnRlcmFjdGlvbnMg
aW4gdGhlIE5ldHdvcmtQcm9jZXNzLgotICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29u
dGV4dCkpIHsKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAgICAgICBXb3JrZXJSdW5M
b29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpOwotICAg
ICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7Ci0gICAgICAgIG1vZGUuYXBwZW5kTGl0ZXJhbCh3ZWJT
b2NrZXRDaGFubmVsTW9kZSk7Ci0gICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1bkxvb3AuY3Jl
YXRlVW5pcXVlSWQoKSk7Ci0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUudG9TdHJpbmco
KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJuIFNvY2tldFN0cmVhbUhh
bmRsZTo6Y3JlYXRlKHVybCwgY2xpZW50LCBjb250ZXh0LCBzZXNzaW9uSUQpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCShyZXZpc2lvbiAyMDMyMjMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdl
YlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNvY2tldFByb3ZpZGVyIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQotICAgIFJlZlB0cjxXZWJD
b3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5lbChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bENsaWVudCYpIG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5k
bGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3Jl
OjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCYs
IFdlYkNvcmU6OlNlc3Npb25JRCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB+V2ViU29ja2V0UHJv
dmlkZXIoKSB7IH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyOCkK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJl
YW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIE1pc2MvV2ViU29ja2V0UHJvdmlkZXIuaDoKKyAgICAgICAgKiBNaXNjL1dlYlNvY2tldFBy
b3ZpZGVyLm1tOgorICAgICAgICAoV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVh
bUhhbmRsZSk6CisgICAgICAgIChXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0Q2hh
bm5lbCk6IERlbGV0ZWQuCisKIDIwMTYtMDctMTMgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBtb3JlIGNhbmRpZGF0ZSB0ZXN0cwpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIuaAkocmV2aXNpb24gMjAzMjIzKQorKysg
U291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw2IEBACiBjbGFzcyBXZWJTb2NrZXRQcm92aWRlciBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpTb2NrZXRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJT
b2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2NrZXRQ
cm92aWRlcik7IH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUo
Y29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Jiwg
V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQmLCBXZWJDb3JlOjpTZXNzaW9uSUQpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkgeyB9CiB9OwpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tCShyZXZpc2lvbiAyMDMyMjMp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Tb2NrZXRTdHJlYW1IYW5kbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNvY2tl
dENoYW5uZWwuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oPgpA
QCAtNDUsMjAgKzQ2LDkgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBj
b25zdCBjaGFyIHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2ViU29ja2V0Q2hhbm5lbE1vZGUi
OwotCi1SZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tldFByb3ZpZGVy
OjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkKK1JlZlB0cjxTb2NrZXRTdHJlYW1IYW5k
bGU+IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJM
JiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBOZXR3b3JraW5nQ29udGV4
dCYgY29udGV4dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBpZiAoaXM8V29ya2VyR2xv
YmFsU2NvcGU+KGNvbnRleHQpKSB7Ci0gICAgICAgIFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJH
bG9iYWxTY29wZSA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKLSAgICAg
ICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IHdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLnJ1
bkxvb3AoKTsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBtb2RlOwotICAgICAgICBtb2RlLmFwcGVu
ZExpdGVyYWwod2ViU29ja2V0Q2hhbm5lbE1vZGUpOwotICAgICAgICBtb2RlLmFwcGVuZE51bWJl
cihydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOwotICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50LCBt
b2RlLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIHJldHVybiBXZWJTb2NrZXRDaGFubmVsOjpj
cmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBjbGllbnQpOworICAgIHJldHVybiBT
b2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZSh1cmwsIGNsaWVudCwgY29udGV4dCwgc2Vzc2lvbklE
KTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283665</attachid>
            <date>2016-07-14 11:58:56 -0700</date>
            <delta_ts>2016-07-14 13:06:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159774-20160714115809.patch</filename>
            <type>text/plain</type>
            <size>81281</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tl
dFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3VyLgorICAgICAgICAKKyAgICAgICAgSW4gcjIwMjkzMCBJIGludHJvZHVjZWQg
dGhlIFNvY2tldFByb3ZpZGVyLCBidXQgSSB1c2VkIGl0IHRvIG1ha2UgYSBXZWJTb2NrZXRDaGFu
bmVsCisgICAgICAgIGluc3RlYWQgb2YgYSBTb2NrZXRTdHJlYW1IYW5kbGUsIHdoaWNoIGlzIHRo
ZSBjbGFzcyBJIHdhbnQgdG8gbWFrZSBpbnRvIGFuIGludGVyZmFjZQorICAgICAgICBhbmQgcHJv
eHkgdGhlIHdlYiB0cmFmZmljIG92ZXIgdG8gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXQ6OmNvbm5lY3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6Oldl
YlNvY2tldENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZl
TWVzc2FnZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6OkJyaWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjp+QnJpZGdlKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRJ
bml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpCcmlkZ2U6OmluaXRpYWxpemUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpjcmVhdGUpOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JPdmVybGF5OjpvdmVybGF5UGFnZSk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3Rl
cCk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2Nr
ZXRDaGFubmVsKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgICogcGFnZS9Tb2NrZXRQcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgICog
cGFnZS9Tb2NrZXRQcm92aWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0UHJvdmlkZXI6
On5Tb2NrZXRQcm92aWRlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9Tb2NrZXRTdHJlYW1IYW5kbGUuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxNi0w
Ny0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFBhc3MgU2Vzc2lvbklEIHRvIFdlYlNvY2tldEhhbmRsZSBjb25zdHJ1Y3RvcgpJbmRleDog
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDMyLDYgKzEwMzIsNyBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmNwcAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TdGF0ZU1h
Y2hpbmUuY3BwCiAKKyAgICBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlci5jcHAKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjA1Myw2
ICsyMDU0LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcAogICAgIHBhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCiAgICAgcGFnZS9TZXR0aW5ncy5j
cHAKKyAgICBwYWdlL1NvY2tldFByb3ZpZGVyLmNwcAogICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uY3BwCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAogICAgIHBhZ2UvVGV4dEluZGlj
YXRvci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorI2luY2x1ZGUgIlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCIKKyNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVs
LmgiCisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgorI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBjb25zdCBjaGFyIHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2Vi
U29ja2V0Q2hhbm5lbE1vZGUiOworCitSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYg
cHJvdmlkZXIpCit7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgewor
ICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxX
b3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7CisgICAgICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxv
b3AgPSB3b3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5ydW5Mb29wKCk7CisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgbW9kZTsKKyAgICAgICAgbW9kZS5hcHBlbmRMaXRlcmFsKHdlYlNvY2tldENoYW5u
ZWxNb2RlKTsKKyAgICAgICAgbW9kZS5hcHBlbmROdW1iZXIocnVuTG9vcC5jcmVhdGVVbmlxdWVJ
ZCgpKTsKKyAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpj
cmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0cmluZygpLCBwcm92aWRl
cik7CisgICAgfQorCisgICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCwgcHJvdmlkZXIpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDExICs0NSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBC
bG9iOwogY2xhc3MgVVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNv
Y2tldFByb3ZpZGVyOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsKIAogY2xhc3MgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsKTsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQmLCBTb2NrZXRQcm92aWRlciYpOwogICAgIFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsKCkgeyB9CiAKICAgICBlbnVtIFNlbmRSZXN1bHQgewpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAJKHJldmlzaW9u
IDIwMzIyMykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsMTAgKzI1NSwxMCBAQCB2b2lkIFdlYlNvY2tldDo6
Y29ubmVjdChjb25zdCBTdHJpbmcmIHVyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAoYXV0byBzb2NrZXRQcm92aWRlciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c29ja2V0
UHJvdmlkZXIoKSkKLSAgICAgICAgbV9jaGFubmVsID0gc29ja2V0UHJvdmlkZXItPmNyZWF0ZVdl
YlNvY2tldENoYW5uZWwoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMpOworICAgIGlm
IChhdXRvKiBwcm92aWRlciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c29ja2V0UHJvdmlk
ZXIoKSkKKyAgICAgICAgbV9jaGFubmVsID0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNy
ZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgKnByb3ZpZGVyKTsKIAotICAg
IC8vIE9ubHkgYW4gRW1wdHlTb2NrZXRQcm92aWRlciBjYW4gcmV0dXJuIG51bGxwdHIsIGFuZCBl
dmVyeSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IHNob3VsZCBoYXZlIGEgU29ja2V0UHJvdmlkZXIu
CisgICAgLy8gRXZlcnkgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzaG91bGQgaGF2ZSBhIFNvY2tl
dFByb3ZpZGVyLgogICAgIFJFTEVBU0VfQVNTRVJUKG1fY2hhbm5lbCk7CiAKICAgICAvLyBGSVhN
RTogVGhlcmUgaXMgYSBkaXNhZ3JlZW1lbnQgYWJvdXQgcmVzdHJpY3Rpb24gb2Ygc3VicHJvdG9j
b2xzIGJldHdlZW4gV2ViU29ja2V0IEFQSSBhbmQgaHliaS0xMCBwcm90b2NvbApJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcAkocmV2aXNpb24gMjAzMjI1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3
IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU29ja2V0UHJv
dmlkZXIuaCIKICNpbmNsdWRlICJTb2NrZXRTdHJlYW1FcnJvci5oIgogI2luY2x1ZGUgIlNvY2tl
dFN0cmVhbUhhbmRsZS5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKQEAg
LTY0LDExICs2NSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGRvdWJsZSBUQ1BN
YXhpbXVtU2VnbWVudExpZmV0aW1lID0gMiAqIDYwLjA7CiAKLVdlYlNvY2tldENoYW5uZWw6Oldl
YlNvY2tldENoYW5uZWwoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50
JiBjbGllbnQpCitXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBk
b2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYg
cHJvdmlkZXIpCiAgICAgOiBtX2RvY3VtZW50KCZkb2N1bWVudCkKICAgICAsIG1fY2xpZW50KCZj
bGllbnQpCiAgICAgLCBtX3Jlc3VtZVRpbWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6cmVz
dW1lVGltZXJGaXJlZCkKICAgICAsIG1fY2xvc2luZ1RpbWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hh
bm5lbDo6Y2xvc2luZ1RpbWVyRmlyZWQpCisgICAgLCBtX3NvY2tldFByb3ZpZGVyKHByb3ZpZGVy
KQogewogICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQogICAgICAgICBtX2lk
ZW50aWZpZXIgPSBwYWdlLT5wcm9ncmVzcygpLmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKQEAg
LTk4LDcgKzEwMCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwK
ICAgICAgICAgICAgIHJlZigpOwogICAgICAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdl
KCk7CiAgICAgICAgICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSA/IHBhZ2UtPnNlc3Np
b25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7Ci0gICAgICAgICAgICBtX2hh
bmRsZSA9IFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRo
aXMsICpuZXR3b3JraW5nQ29udGV4dCwgc2Vzc2lvbklEKTsKKyAgICAgICAgICAgIG1faGFuZGxl
ID0gbV9zb2NrZXRQcm92aWRlci0+Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtl
LT51cmwoKSwgKnRoaXMsICpuZXR3b3JraW5nQ29udGV4dCwgc2Vzc2lvbklEKTsKICAgICAgICAg
fQogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5
KQpAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBGaWxlUmVhZGVyTG9hZGVyOworY2xhc3MgU29ja2V0UHJvdmlk
ZXI7CiBjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGU7CiBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsK
IGNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQ7CkBAIC01OCw3ICs1OSw3IEBAIGNsYXNzIFdl
YlNvY2tldENoYW5uZWwgOiBwdWJsaWMgUmVmQ291bnQKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNvY2tldENoYW5uZWw+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2NrZXRDaGFubmVsKGRvY3VtZW50LCBjbGllbnQpKTsg
fQorICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYgcHJv
dmlkZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0Q2hhbm5lbChkb2N1bWVudCwg
Y2xpZW50LCBwcm92aWRlcikpOyB9CiAgICAgdmlydHVhbCB+V2ViU29ja2V0Q2hhbm5lbCgpOwog
CiAgICAgYm9vbCBzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOwpAQCAtMTE5LDcg
KzEyMCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VY
UE9SVCBXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYp
OworICAgIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5uZWwoRG9jdW1lbnQmLCBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50JiwgU29ja2V0UHJvdmlkZXImKTsKIAogICAgIGJvb2wgYXBwZW5kVG9C
dWZmZXIoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbik7CiAgICAgdm9pZCBza2lwQnVmZmVy
KHNpemVfdCBsZW4pOwpAQCAtMjEzLDYgKzIxNCw3IEBAIHByaXZhdGU6CiAgICAgQmxvYkxvYWRl
clN0YXR1cyBtX2Jsb2JMb2FkZXJTdGF0dXMgeyBCbG9iTG9hZGVyTm90U3RhcnRlZCB9OwogCiAg
ICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1lciBtX2RlZmxhdGVGcmFtZXI7CisgICAgUmVmPFNvY2tl
dFByb3ZpZGVyPiBtX3NvY2tldFByb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCShyZXZp
c2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCiAj
aW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxD
bGllbnQuaCIKQEAgLTUwLDEwICs1MSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbChXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVu
dCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKFdvcmtlckdsb2Jh
bFNjb3BlJiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0
cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikKICAgICA6IG1fd29ya2Vy
R2xvYmFsU2NvcGUoY29udGV4dCkKICAgICAsIG1fd29ya2VyQ2xpZW50V3JhcHBlcihUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQp
KQotICAgICwgbV9icmlkZ2UoQnJpZGdlOjpjcmVhdGUobV93b3JrZXJDbGllbnRXcmFwcGVyLmNv
cHlSZWYoKSwgbV93b3JrZXJHbG9iYWxTY29wZS5jb3B5UmVmKCksIHRhc2tNb2RlKSkKKyAgICAs
IG1fYnJpZGdlKEJyaWRnZTo6Y3JlYXRlKG1fd29ya2VyQ2xpZW50V3JhcHBlci5jb3B5UmVmKCks
IG1fd29ya2VyR2xvYmFsU2NvcGUuY29weVJlZigpLCB0YXNrTW9kZSwgcHJvdmlkZXIpKQorICAg
ICwgbV9zb2NrZXRQcm92aWRlcihwcm92aWRlcikKIHsKICAgICBtX2JyaWRnZS0+aW5pdGlhbGl6
ZSgpOwogfQpAQCAtMTQwLDEwICsxNDIsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6cgogICAgICAgICBtX2JyaWRnZS0+cmVzdW1lKCk7CiB9CiAKLVdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJv
eHkmIGxvYWRlclByb3h5LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHRhc2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OlBlZXIoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiBjbGll
bnRXcmFwcGVyLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVy
JiBwcm92aWRlcikKICAgICA6IG1fd29ya2VyQ2xpZW50V3JhcHBlcihXVEZNb3ZlKGNsaWVudFdy
YXBwZXIpKQogICAgICwgbV9sb2FkZXJQcm94eShsb2FkZXJQcm94eSkKLSAgICAsIG1fbWFpbldl
YlNvY2tldENoYW5uZWwoV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KSwgKnRoaXMpKQorICAgICwgbV9tYWluV2ViU29ja2V0Q2hhbm5lbChXZWJTb2Nr
ZXRDaGFubmVsOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCAqdGhpcywgcHJv
dmlkZXIpKQogICAgICwgbV90YXNrTW9kZSh0YXNrTW9kZSkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpAQCAtMzI5LDEyICszMzEsMTIgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbDo6UAogICAgIH0sIG1fdGFza01vZGUpOwogfQogCi1Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpCcmlkZ2UoUmVmPFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2Vy
R2xvYmFsU2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUp
CitXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpCcmlkZ2UoUmVmPFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFw
cGVyLCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0
cmluZyYgdGFza01vZGUsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlcikKICAg
ICA6IG1fd29ya2VyQ2xpZW50V3JhcHBlcihXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIpKQog
ICAgICwgbV93b3JrZXJHbG9iYWxTY29wZShXVEZNb3ZlKHdvcmtlckdsb2JhbFNjb3BlKSkKICAg
ICAsIG1fbG9hZGVyUHJveHkobV93b3JrZXJHbG9iYWxTY29wZS0+dGhyZWFkKCkud29ya2VyTG9h
ZGVyUHJveHkoKSkKICAgICAsIG1fdGFza01vZGUodGFza01vZGUpCi0gICAgLCBtX3BlZXIobnVs
bHB0cikKKyAgICAsIG1fc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCiB7
CiB9CiAKQEAgLTM0MywxNCArMzQ1LDE0IEBAIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpCcmlkZ2UKICAgICBkaXNjb25uZWN0KCk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBS
ZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBw
ZXIsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5UaHJlYWRJbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgUmVmPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiBjbGllbnRXcmFwcGVyLCBjb25z
dCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgcHJvdmlkZXIpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoY29udGV4dC5pc0RvY3VtZW50
KCkpOwogCiAgICAgYm9vbCBzZW50ID0gbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3Jr
ZXJHbG9iYWxTY29wZSh7CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s6OkNs
ZWFudXBUYXNrLAotICAgICAgICBbY2xpZW50V3JhcHBlciA9IGNsaWVudFdyYXBwZXIuY29weVJl
ZigpLCAmbG9hZGVyUHJveHksIHBlZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBlZXI+KGNsaWVudFdy
YXBwZXIuY29weVJlZigpLCBsb2FkZXJQcm94eSwgY29udGV4dCwgdGFza01vZGUpXShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgW2NsaWVudFdyYXBw
ZXIgPSBjbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgJmxvYWRlclByb3h5LCBwZWVyID0gc3RkOjpt
YWtlX3VuaXF1ZTxQZWVyPihjbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgbG9hZGVyUHJveHksIGNv
bnRleHQsIHRhc2tNb2RlLCBXVEZNb3ZlKHByb3ZpZGVyKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0
LCBjb250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CiAgICAgICAgICAgICBpZiAoY2xpZW50
V3JhcHBlci0+ZmFpbGVkV2ViU29ja2V0Q2hhbm5lbENyZWF0aW9uKCkpIHsKICAgICAgICAgICAg
ICAgICAvLyBJZiBCcmlkZ2U6OmluaXRpYWxpemUoKSBxdWl0dGVkIGVhcmxpZXIsIHdlIG5lZWQg
dG8ga2ljayBtYWluVGhyZWFkRGVzdHJveSgpIHRvIGRlbGV0ZSB0aGUgcGVlci4KQEAgLTM3Myw4
ICszNzUsOCBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCCiAgICAg
c2V0TWV0aG9kTm90Q29tcGxldGVkKCk7CiAgICAgUmVmPEJyaWRnZT4gcHJvdGVjdGVkVGhpcygq
dGhpcyk7CiAKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoWyZsb2FkZXJQcm94
eSA9IG1fbG9hZGVyUHJveHksIHdvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdy
YXBwZXIuY29weVJlZigpLCB0YXNrTW9kZSA9IG1fdGFza01vZGUuaXNvbGF0ZWRDb3B5KCldKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICBtYWluVGhy
ZWFkSW5pdGlhbGl6ZShjb250ZXh0LCBsb2FkZXJQcm94eSwgV1RGTW92ZSh3b3JrZXJDbGllbnRX
cmFwcGVyKSwgdGFza01vZGUpOworICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihb
JmxvYWRlclByb3h5ID0gbV9sb2FkZXJQcm94eSwgd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29y
a2VyQ2xpZW50V3JhcHBlci5jb3B5UmVmKCksIHRhc2tNb2RlID0gbV90YXNrTW9kZS5pc29sYXRl
ZENvcHkoKSwgcHJvdmlkZXIgPSBtX3NvY2tldFByb3ZpZGVyLmNvcHlSZWYoKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRJbml0
aWFsaXplKGNvbnRleHQsIGxvYWRlclByb3h5LCBXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIp
LCB0YXNrTW9kZSwgV1RGTW92ZShwcm92aWRlcikpOwogICAgIH0pOwogICAgIHdhaXRGb3JNZXRo
b2RDb21wbGV0aW9uKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpA
QCAtNTMsOSArNTMsOSBAQCBjbGFzcyBXb3JrZXJSdW5Mb29wOwogY2xhc3MgV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbD4sIHB1YmxpYyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJH
bG9iYWxTY29wZSwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcm
IHRhc2tNb2RlKQorICAgIHN0YXRpYyBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNy
ZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXIm
IHByb3ZpZGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01v
ZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01vZGUsIHByb3ZpZGVy
KSk7CiAgICAgfQogICAgIHZpcnR1YWwgfldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
KCk7CiAKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIGNsYXNzIFBlZXIgOiBwdWJsaWMg
V2ViU29ja2V0Q2hhbm5lbENsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBl
ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFBlZXIo
UmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgV29ya2VyTG9h
ZGVyUHJveHkmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9k
ZSk7CisgICAgICAgIFBlZXIoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4mJiwgV29ya2VyTG9hZGVyUHJveHkmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXImKTsKICAgICAgICAgflBlZXIoKTsK
IAogICAgICAgICB2b2lkIGNvbm5lY3QoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCk7CkBAIC0xMTksOSArMTE5LDkgQEAgcHJpdmF0ZToKICAgICAvLyBCcmlkZ2UgZm9yIFBlZXIu
ICBSdW5uaW5nIG9uIHRoZSB3b3JrZXIgdGhyZWFkLgogICAgIGNsYXNzIEJyaWRnZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEJyaWRnZT4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxC
cmlkZ2U+IGNyZWF0ZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiYmIHdvcmtlckNsaWVudFdyYXBwZXIsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJH
bG9iYWxTY29wZSwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKKyAgICAgICAgc3RhdGljIFJlZjxC
cmlkZ2U+IGNyZWF0ZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiYmIHdvcmtlckNsaWVudFdyYXBwZXIsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJH
bG9iYWxTY29wZSwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
IHByb3ZpZGVyKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBC
cmlkZ2UoV1RGTW92ZSh3b3JrZXJDbGllbnRXcmFwcGVyKSwgV1RGTW92ZSh3b3JrZXJHbG9iYWxT
Y29wZSksIHRhc2tNb2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCcmlk
Z2UoV1RGTW92ZSh3b3JrZXJDbGllbnRXcmFwcGVyKSwgV1RGTW92ZSh3b3JrZXJHbG9iYWxTY29w
ZSksIHRhc2tNb2RlLCBXVEZNb3ZlKHByb3ZpZGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5C
cmlkZ2UoKTsKICAgICAgICAgdm9pZCBpbml0aWFsaXplKCk7CkBAIC0xNDAsMTIgKzE0MCwxMiBA
QCBwcml2YXRlOgogICAgICAgICB1c2luZyBSZWZDb3VudGVkPEJyaWRnZT46OmRlcmVmOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgQnJpZGdlKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI+JiYsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiwgY29uc3QgU3RyaW5n
JiB0YXNrTW9kZSk7CisgICAgICAgIEJyaWRnZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyPiYmLCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+JiYsIGNvbnN0IFN0cmlu
ZyYgdGFza01vZGUsIFJlZjxTb2NrZXRQcm92aWRlcj4mJik7CiAKICAgICAgICAgc3RhdGljIHZv
aWQgc2V0V2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQnJpZGdlKiB0
aGlzUHRyLCBQZWVyKiwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4mJik7CiAKICAgICAgICAgLy8gRXhlY3V0ZWQgb24gdGhlIG1haW4gdGhyZWFkIHRvIGNyZWF0
ZSBhIFBlZXIgZm9yIHRoaXMgYnJpZGdlLgotICAgICAgICBzdGF0aWMgdm9pZCBtYWluVGhyZWFk
SW5pdGlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya2VyTG9hZGVyUHJveHkmLCBS
ZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBjb25zdCBTdHJp
bmcmIHRhc2tNb2RlKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFpblRocmVhZEluaXRpYWxpemUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtlckxvYWRlclByb3h5JiwgUmVmPFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9k
ZSwgUmVmPFNvY2tldFByb3ZpZGVyPiYmKTsKIAogICAgICAgICAvLyBFeGVjdXRlZCBvbiB0aGUg
d29ya2VyIGNvbnRleHQncyB0aHJlYWQuCiAgICAgICAgIHZvaWQgY2xlYXJDbGllbnRXcmFwcGVy
KCk7CkBAIC0xNTcsMTYgKzE1NywxOCBAQCBwcml2YXRlOgogICAgICAgICBSZWZQdHI8V29ya2Vy
R2xvYmFsU2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIFdvcmtlckxvYWRlclBy
b3h5JiBtX2xvYWRlclByb3h5OwogICAgICAgICBTdHJpbmcgbV90YXNrTW9kZTsKLSAgICAgICAg
UGVlciogbV9wZWVyOworICAgICAgICBQZWVyKiBtX3BlZXIgeyBudWxscHRyIH07CisgICAgICAg
IFJlZjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKICAgICB9OwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFs
U2NvcGUmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29y
a2VyR2xvYmFsU2NvcGUmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgY29uc3QgU3RyaW5nJiB0
YXNrTW9kZSwgU29ja2V0UHJvdmlkZXImKTsKIAogICAgIGNsYXNzIFdvcmtlckdsb2JhbFNjb3Bl
RGlkSW5pdGlhbGl6ZVRhc2s7CiAKICAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2Vy
R2xvYmFsU2NvcGU7CiAgICAgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcj4gbV93b3JrZXJDbGllbnRXcmFwcGVyOwogICAgIFJlZlB0cjxCcmlkZ2U+IG1fYnJpZGdl
OworICAgIFJlZjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NTQsNyArNTQsNiBAQAogCQkwMUU2QzJFNDExOTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RA
MngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
MUU2QzJFMzExOTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nICovOyB9OwogCQkw
NTYyRjk2MTE1NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2
IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwNUQ5MTNDRUVBQjJBNjA1MzQyMThBQ0YgLyogTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMzRTYxQzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwICov
OyB9OwotCQkxNkVBMjRDRUVBQjJBNjA1MzQyMThBQ0YgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9u
YXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ0
RjcyQzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwICov
OyB9OwogCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlERjEyODQ1RDQz
MDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDYwMjdDQUQwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRN
ZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MjI4Nzg0MEI0REIzMjIw
MDBDMzRERiAvKiBGb2N1c0RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDYyMjg3ODMwQjREQjMyMjAwMEMzNERGIC8qIEZvY3VzRGlyZWN0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTY2Niw2ICs2NjUsNyBAQAogCQkxNUZDQzlGQzFCNERGN0YyMDBFNzIzMjYgLyogRE9NVVJMTWVk
aWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDczNzk0RUQxOUVFMzY0MjAwRTVBMDQ1IC8qIERPTVVSTE1lZGlhU3RyZWFtLmNwcCAqLzsg
fTsKIAkJMTVGQ0M5RkUxQjRERjg1RTAwRTcyMzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNUZDQzlGRDFCNERG
ODU2MDBFNzIzMjYgLyogRE9NVVJMTWVkaWFTdHJlYW0uaCAqLzsgfTsKIAkJMTYzRTg4RjcxMThB
MzlEMjAwRUQ5MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTYzRTg4RjUxMThBMzlEMjAwRUQ5MjMx
IC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwICovOyB9OworCQkxNkVBMjRDRUVBQjJBNjA1
MzQyMThBQ0YgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ0RjcyQzY1M0E2NDgwN0E4M0U3NkZCOCAv
KiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwICovOyB9OwogCQkxODVCQ0YyODBGMzI3OUNF
MDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJDRjI2MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1l
cnMuY3BwICovOyB9OwogCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0Yy
NzBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggKi87IH07CiAJCTE4ODYwNEIzMEYy
RTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxODg2MDRCMTBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIu
Y3BwICovOyB9OwpAQCAtMTk4MSw2ICsxOTgxLDggQEAKIAkJNEYxNTM0RTAxMUI1MzMwMjAwMjFG
RDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0Jl
aGF2aW9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0RjZGREQ2NDEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNkZERDYy
MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovOyB9OwogCQk0RjZG
REQ2NTEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjZGREQ2MzEzNDFERUREMDAxRjhF
RTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEZBNjVBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNw
YWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RkE2NUE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCAq
LzsgfTsKKwkJNEZBNjVBNkMxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNkEx
MTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovOyB9OwogCQk0RkIzOTBB
RDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8q
IEdlbmVyYXRlZEltYWdlLmNwcCAqLzsgfTsKIAkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8q
IE5vZGVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0RkFCNDg2NjE2NDNBNjdFMDBGNzBDMDcgLyogTm9kZVJhcmVEYXRhLmNwcCAqLzsg
fTsKIAkJNEZGQzAyMkQxNjQzQjcyNjAwNEUxNjM4IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkFCNDg2NDE2NDNB
NjZEMDBGNzBDMDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLzsgfTsKQEAgLTIwMDgsNyArMjAx
MCw3IEBACiAJCTUxMEQ0QTMzMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJh
c2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEw
RDRBMkQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgKi87IH07
CiAJCTUxMEQ0QTM0MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTJFMTAz
MTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAqLzsgfTsKIAkJNTEwRDRB
MzYxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzAxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwICovOyB9OwotCQk1MTBENEEzNzEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAqLzsgfTsKKwkJNTEwRDRBMzcxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhh
bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMUVD
MTI3MUM1MEFBQ0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4
MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJG
OTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0
aW9uLmggKi87IH07CkBAIC0yMjI2LDcgKzIyMjgsNyBAQAogCQk1MUE5RDlGNDE5NUI5NTAzMDAx
QjJCNUMgLyogSElER2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFBOUQ5RjAxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUFBM0Y2RjBC
RDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyog
UmVzb3VyY2VMb2FkZXJNYWMubW0gKi87IH07CiAJCTUxQUJBRTFCMTAzQzE4RkYwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFBQkFFMUExMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9y
LmggKi87IH07Ci0JCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJB
RTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgfTsKKwkJNTFB
QkFFMUUxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUMxMDNDMTkxMzAwOEM1
MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxQUJBRTFGMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxl
Q0ZOZXQuY3BwICovOyB9OwogCQk1MUFCRjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3Ry
YXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFBQkY2NEMxNjM5MkUyODAwMTMyQTdBIC8qIExvYWRlclN0cmF0ZWd5LmNwcCAqLzsgfTsKIAkJ
NTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYw
MDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIzOTEsNiArMjM5Myw4IEBACiAJCTVDNDMwNEIx
MTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRTE5MUFDOTA4MDAwRTJCQzAg
LyogRVhUU2hhZGVyVGV4dHVyZUxPRC5oICovOyB9OwogCQk1QzQzMDRCNTE5MUFFRjQ2MDAwRTJC
QzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNo
YWRlclRleHR1cmVMT0QuY3BwICovOyB9OwogCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyog
SlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0
dXJlTE9ELmggKi87IH07CisJCTVDNjg4QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzY4OEFBMDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuY3BwICovOyB9OworCQk1QzY4OEFBMzFEMzgxNEJGMDAwQjU0RkEgLyogU29ja2V0
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLzsgfTsK
IAkJNUM3Qzg4RDgxRDBGMUY0QTAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdDODhENzFEMEYxRjJCMDA5
RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1QzlBN0E3NTFBQTBGNkVBMDA5NThBQ0YgLyogREZBQnl0ZWNv
ZGVDb21waWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzM5MzA1RTFBQTBGNkE5MDAyOUM4MTYgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAg
Ki87IH07CiAJCTVDOUE3QTc2MUFBMEY2RUQwMDk1OEFDRiAvKiBERkFCeXRlY29kZUludGVycHJl
dGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
MzkzMDYwMUFBMEY2QTkwMDI5QzgxNiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCAqLzsg
fTsKQEAgLTUzOTUsNiArNTM5OSw3IEBACiAJCUI1N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJ
bmxpbmVFbGVtZW50Qm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEI1N0NCNTJDMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNw
cCAqLzsgfTsKIAkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3gu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJC
MTgyQTM3RjYwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggKi87IH07CiAJCUI1OTVGRjQ3
MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJl
bmRlckl0ZXJhdG9yLmggKi87IH07CisJCUI1OUNBMzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRo
TUxQYWRkZWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQjU5REQ2OTkxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5
REQ2OTcxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OwogCQlC
NTlERDY5QTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENjk4MTE5MDI5RTUw
MDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovOyB9OwogCQlCNTlERDY5RDExOTAy
QTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDY5QjExOTAyQTQyMDA3RTk2ODQg
LyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggKi87IH07CkBAIC02ODk0LDggKzY4OTksNiBA
QAogCQlGOThGRkY0NDExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBG
NTQ4RTggLyogQ1NTT01VdGlscy5jcHAgKi87IH07CiAJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhF
OCAvKiBDU1NPTVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGOThGRkY0MzExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5oICovOyB9Owog
CQlGOUYwRUQ3QTBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3
NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07
Ci0JCTRGQTY1QTZCMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4
QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi87IH07Ci0JCTRGQTY1QTZD
MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAv
KiBNYXRoTUxTcGFjZUVsZW1lbnQuaCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNUUw
IC8qIE1hdGhNTFRleHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZBNjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxl
bWVudC5jcHAgKi87IH07CiAJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkE2NTRBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi87IH07CiAJ
CUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkVEMTA1OUMxRUIwMEQ5
OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTcyMTAsNyArNzIxMyw2IEBACiAJ
CUZFRDEzRDNEMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDEzRDNCMENFQTkzNkEwMEQ4OTQ2NiAv
KiBGcmFtZUlPUy5tbSAqLzsgfTsKIAkJRkVEMTNENDAwQ0VBOTM5NDAwRDg5NDY2IC8qIEljb25J
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQx
M0QzRjBDRUE5Mzk0MDBEODk0NjYgLyogSWNvbklPUy5tbSAqLzsgfTsKIAkJRkVEMTNENTIwQ0VB
OTQ5NzAwRDg5NDY2IC8qIFJlbmRlclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQxM0Q1MDBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVy
VGhlbWVJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlCNTlDQTM5MENFRDY2QzMyNTVGNzJDNTkgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlDQTU5QUYx
NzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi87IH07CiAJCUZFRDQ4
MzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3NUEwNTlBRjE3MEQ4RkFBNUI4
Q0FCRSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRkVFMTgxMTMxNkMzMTlF
ODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUUxODExMTE2QzMxOUU4MDAwODQ4NDkgLyog
U1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCAqLzsgfTsKIAkJRkVFMTgxMTQxNkMzMTlFODAwMDg0
ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVFMTgxMTIxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5z
YWN0aW9uQmFja2VuZC5oICovOyB9OwpAQCAtOTYxMiw2ICs5NjE0LDggQEAKIAkJNEYxNTM0REYx
MUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdl
QWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9y
UGFnZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2RkRENjMxMzQx
REVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQYWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RkE2NUE2QTExMDhBQkVEMDAy
NjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1hdGhNTFNwYWNlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0RkFCNDg2NDE2NDNBNjZEMDBGNzBDMDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2Rl
UmFyZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVJh
cmVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZCMzkwQUMxNUVGNjFG
MzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwMDMwLDcgKzEwMDM0LDYgQEAKIAkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTk1OEYxQ0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRo
TUxQYWRkZWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhN
TFBhZGRlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk3ODA4NDlE
NDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MU2VsZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1OTgzNjVEQzEzNTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlvbkNhbGxi
YWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25DYWxsYmFj
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgzNjVERTEzNTVGNTYyMDAxQjE4
NUQgLyogSlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwMDcwLDYgKzEwMDczLDggQEAKIAkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMw
IC8qIEVYVFNoYWRlclRleHR1cmVMT0QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVFNo
YWRlclRleHR1cmVMT0QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQzMDRC
MzE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBK
U0VYVFNoYWRlclRleHR1cmVMT0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNFWFRTaGFkZXJUZXh0dXJlTE9ELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVD
Njg4QUEwMUQzODA1MDkwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEyMUQzODEy
NkYwMDBCNTRGQSAvKiBTb2NrZXRQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTb2NrZXRQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRQcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzlCODYwQjFDMjFFM0M2MDAxMTBGMzYgLyogUmVzb3VyY2VM
b2FkVGltaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVz
b3VyY2VMb2FkVGltaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IzN0ZG
QzFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yTW9jay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzM4OCw2ICsxMzM5Myw4IEBACiAJCUI1N0NCNTJCMTgy
QTM3RjYwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElubGluZUVsZW1lbnRCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjU3Q0I1MkMxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRWxlbWVudEJveC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OTVGRjQ2MTgyNENFRTMwMEZGNTFDRCAv
KiBSZW5kZXJJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlDQTU5QUYxNzBE
OEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFBhZGRl
ZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MUGFkZGVk
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlERDY5NzExOTAyOUU1
MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCNTlERDY5ODExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjlCMTE5MDJBNDIwMDdFOTY4
NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNDAxMiw3ICsxNDAxOSw2IEBACiAJCUMzQ0YxN0EyMTVCMDA2M0YwMDI3NkQz
OSAvKiBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTMxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXJSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZFRhcmdl
dE9ic2VydmVyUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNFNjFD
NjUzQTY0ODA3QTgzRTc2RkI4IC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyog
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUM0MDBEMTA4MThGMUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudExvb3BJbnB1dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFG
MSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzODUsNyArMTQzOTEsNiBAQAogCQlDRTI4NDk4ODFD
QTM2MTQ2MDBCNEE1N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9s
aWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeURp
cmVjdGl2ZU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1Q0IxQjMx
NEVEQUI2RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNF
NkQ4OTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MTWVuY2xvc2VFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURGN0U5QTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRo
TUxPcGVyYXRvckRpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RTc5OUY5NTFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZW50U2VjdXJp
dHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lT
b3VyY2VMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDgyLDYgKzE0
NDg3LDcgQEAKIAkJRDNGM0QzNjIxQTY5QjE5MDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNGM0QzNjUxQTY5
QjFBNTAwNTlGQzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0YzRDM2NjFBNjlCMUE1MDA1OUZD
MkIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0
b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQ2MTlBMzA1MTQ0RTAwQkUwMDRCQzMwMiAvKiBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoaWxkTGlzdE11dGF0aW9uU2Nv
cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENjE5QTMwNjE0NEUwMEJFMDA0
QkMzMDIgLyogQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUQ2NDg5RDIzMTY2RkZDRjEwMDdDMDMxQiAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVGVtcGxh
dGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTE3LDYgKzE0
NTIzLDcgQEAKIAkJREU0OUIzMDcxNjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
ck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REU0OUIzMDgxNjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbEVsZW1l
bnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFQzI5NzVEMUI0REVCMkEwMDVG
NTk0NSAvKiBKU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ3VzdG9tRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlERjdFOUEyOTRDN0FBQ0UwQUQ4OUIzREQgLyogTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjlBRkQ3MDEzRkMz
MUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGOUFGRDcxMTNGQzMxRDgw
MDE1RkVCNyAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTBGRUYzNzFCMDdD
NTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBF
dmVudFNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA1Miw3ICsx
NTA1OSw2IEBACiAJCUY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGF0YUxpc3RF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjU5MTY0M0M0MkMw
MEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjVBMTY0
M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCNTlDQTU5QUYxNzBE
OEZBQTVCOENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjc1QTA1OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFNlbGVj
dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1M
U2VsZWN0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5
MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
cGF0aCA9IEphdmFTY3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJRjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNTA2Myw4ICsxNTA2OSw2IEBACiAJCUY5RjBFRDc4MERCNTBDQTIwMEQxNkRC
OSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGQTY1NEE2MzExMDhBQkI3MDAyNjE1RTAgLyogbWF0aG1sLmNzcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuY3NzOyBwYXRoID0gbWF0aG1sLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRkE2NTRBNjcxMTA4QUJFMjAwMjYxNUUwIC8qIG1hdGhhdHRycy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBtYXRoYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8q
IE1hdGhNTFNwYWNlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
YXRoTUxTcGFjZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRB
NjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTFRleHRFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRl
eHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFRleHRF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZBNkU0NjZGQ0QwNDE4QTk5
NjZBNUI2MCAvKiBETlNSZXNvbHZlUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE5TUmVzb2x2ZVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODE3Myw2ICsxODE3Nyw3IEBACiAJCTY1QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzY4OEFBMjFE
MzgxMjZGMDAwQjU0RkEgLyogU29ja2V0UHJvdmlkZXIuY3BwICovLAogCQkJCTMxNkZFMTA2MEU2
RTFEODQwMEJGNjA4OCAvKiBhbmltYXRpb24gKi8sCiAJCQkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAw
ODc4IC8qIGNvY29hICovLAogCQkJCUNFMTdBRDE0MUM1ODUyMkYwMDVGNDc5OSAvKiBjc3AgKi8s
CkBAIC0xOTkwNSw2ICsxOTkxMCw3IEBACiAJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3
ZWJzb2NrZXRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk1QzY4OEFBMDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwICovLAogCQkJCTk3QUFCQ0Y4MTRGQTA5RDUwMDc0NTdBRSAvKiBDbG9zZUV2ZW50LmggKi8s
CiAJCQkJOTdBQUJDRjkxNEZBMDlENTAwNzQ1N0FFIC8qIENsb3NlRXZlbnQuaWRsICovLAogCQkJ
CTk3QUFCQ0ZDMTRGQTA5RDUwMDc0NTdBRSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
ICovLApAQCAtMjk5MTcsNiArMjk5MjMsNyBAQAogCQkJCTg1QzdGNUQxMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRCRDUxMDQ0
QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQUNFNTNFNzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTVDNjg4QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTU0ODgxODE0RTQzMkExMDA2QUUwNUEg
LyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTAwMkY4MUI1NkQ3
ODEwMDIwQUFGNyAvKiBET01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVCMEQ3
NDVFMkIwMDY0NDJFOSAvKiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDc3MCw2
ICszMDc3Nyw3IEBACiAJCQkJQ0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTTWVkaWFLZXlz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBKU01l
ZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzNDMzlCNjBDMEQzRDhEMDA1
RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM2ODhBQTMxRDM4
MTRCRjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQz
QTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDNTM0M0ZDMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzkwMjZCNjUxQjFDRjVGRTAwMUQ5OUE3IC8q
IEpTTWVkaWFSZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAJKHJldmlzaW9uIDIwMzIy
MykKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODY0LDcgKzg2NCw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92
ZXJsYXlQYWdlKCkKICAgICBpZiAobV9vdmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJuIG1fb3Zl
cmxheVBhZ2UuZ2V0KCk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlv
bihtYWtlVW5pcXVlUmVmPEVtcHR5RWRpdG9yQ2xpZW50PigpLCBFbXB0eVNvY2tldFByb3ZpZGVy
OjpjcmVhdGUoKSk7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFr
ZVVuaXF1ZVJlZjxFbXB0eUVkaXRvckNsaWVudD4oKSwgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgp
KTsKICAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgbV9v
dmVybGF5UGFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbikpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2
aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5o
IgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgog
I2luY2x1ZGUgIlVzZXJDb250ZW50UHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApAQCAtMjY0LDEwICsyNjMsNSBAQCB2b2lkIEVtcHR5RWRpdG9yQ2xpZW50Ojpy
ZWdpc3RlclVuZG9TdGVwCiB2b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVw
KFBhc3NSZWZQdHI8VW5kb1N0ZXA+KQogewogfQotICAgIAotUmVmUHRyPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsPiBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JikKLXsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NDYsMTMgKzY0Niw2IEBAIGNsYXNzIEVtcHR5
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgZmluYWwKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYs
IFNob3VsZFNhbXBsZSkgb3ZlcnJpZGUgeyB9CiB9OwogCi1jbGFzcyBFbXB0eVNvY2tldFByb3Zp
ZGVyIGZpbmFsIDogcHVibGljIFNvY2tldFByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5FbXB0eVNvY2tldFByb3ZpZGVyKCkgeyB9Ci0gICAgc3RhdGljIFJlZjxFbXB0eVNvY2tldFBy
b3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U29ja2V0UHJvdmlk
ZXIpOyB9Ci0gICAgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVXZWJT
b2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50Jikgb3ZlcnJpZGU7Ci19OwotCiB2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25m
aWd1cmF0aW9uJik7CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIu
Y3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShX
RUJfU09DS0VUUykKKworI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgCitSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBTb2NrZXRQcm92aWRl
cjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1I
YW5kbGVDbGllbnQmIGNsaWVudCwgTmV0d29ya2luZ0NvbnRleHQmIGNvbnRleHQsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKHVy
bCwgY2xpZW50LCBjb250ZXh0LCBzZXNzaW9uSUQpOworfQorICAgIAorfQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9TT0NLRVRTKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92
aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIu
aAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxOCArMjUsMjIgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owot
Y2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw7Ci1jbGFzcyBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50OworY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlOworY2xhc3MgU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50OworY2xhc3MgVVJMOwogCi1jbGFzcyBTb2NrZXRQcm92aWRlciA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxTb2NrZXRQcm92aWRlcj4geworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgU29ja2V0UHJvdmlkZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0UHJv
dmlkZXI+IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
V2ViU29ja2V0Q2hhbm5lbENsaWVudCYpID0gMDsKKyAgICBzdGF0aWMgUmVmPFNvY2tldFByb3Zp
ZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNvY2tldFByb3ZpZGVyKTsgfQor
ICAgIHZpcnR1YWwgUmVmPFNvY2tldFN0cmVhbUhhbmRsZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFu
ZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIE5ldHdvcmtpbmdDb250
ZXh0JiwgU2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5Tb2NrZXRQcm92aWRlcigpIHsgfTsKIH07
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFt
SGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMjAzMjI1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtU2Vu
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZv
cm1DbG9zZSgpOwogCi0gICAgU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0
cmVhbUhhbmRsZUNsaWVudCYsIE5ldHdvcmtpbmdDb250ZXh0JiwgU2Vzc2lvbklEKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50JiwgTmV0d29ya2luZ0NvbnRleHQmLCBTZXNzaW9uSUQpOwogICAgIHZvaWQg
Y3JlYXRlU3RyZWFtcygpOwogICAgIHZvaWQgc2NoZWR1bGVTdHJlYW1zKCk7CiAgICAgdm9pZCBj
aG9vc2VQcm94eSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODAsNyArMzgwLDcgQEAgYm9vbCBTVkdJbWFn
ZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IGlmIChhbGxEYXRhUmVjZWl2ZWQpIHsKLSAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNv
bmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxFbXB0eUVkaXRvckNsaWVudD4oKSwgRW1wdHlTb2Nr
ZXRQcm92aWRlcjo6Y3JlYXRlKCkpOworICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPEVtcHR5RWRpdG9yQ2xpZW50PigpLCBTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlKCkpOwogICAgICAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmln
dXJhdGlvbik7CiAgICAgICAgIG1fY2hyb21lQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdJ
bWFnZUNocm9tZUNsaWVudD4odGhpcyk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9t
ZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50LmdldCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
MjAzMjIzKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTYtMDctMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgU29ja2V0UHJvdmlkZXIgdG8gY3JlYXRlIFNvY2tl
dFN0cmVhbUhhbmRsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1OTc3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFu
bmVsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJv
dmlkZXIuaDoKKwogMjAxNi0wNy0xNCAgSHl1bmp1biBLbyAgPHp6b29uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW1RocmVhZGVkQ29tcG9zaXRvcl0gQnVpbGQgZmFpbHMgaW4gZGVidWcgbW9kZSBh
ZnRlciByMjAyMDQwCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0UHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NvY2tldFN0cmVhbUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJTb2NrZXRDaGFubmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVs
Q2xpZW50Lmg+CkBAIC00OCwyMSArNDksMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRDaGFubmVs
TW9kZVtdID0gIndlYlNvY2tldENoYW5uZWxNb2RlIjsKLQotUmVmUHRyPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0Q2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBj
bGllbnQpCitSZWY8U29ja2V0U3RyZWFtSGFuZGxlPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRl
U29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQmIGNsaWVudCwgTmV0d29ya2luZ0NvbnRleHQmIGNvbnRleHQsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiBhIHByb3h5IHNvIHdlIGNh
biBkbyB0aGUgYWN0dWFsIG5ldHdvcmsgaW50ZXJhY3Rpb25zIGluIHRoZSBOZXR3b3JrUHJvY2Vz
cy4KLSAgICBpZiAoaXM8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKSB7Ci0gICAgICAgIFdv
cmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFdvcmtlckdsb2Jh
bFNjb3BlPihjb250ZXh0KTsKLSAgICAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IHdvcmtl
ckdsb2JhbFNjb3BlLnRocmVhZCgpLnJ1bkxvb3AoKTsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBt
b2RlOwotICAgICAgICBtb2RlLmFwcGVuZExpdGVyYWwod2ViU29ja2V0Q2hhbm5lbE1vZGUpOwot
ICAgICAgICBtb2RlLmFwcGVuZE51bWJlcihydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOwotICAg
ICAgICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh3b3Jr
ZXJHbG9iYWxTY29wZSwgY2xpZW50LCBtb2RlLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIHJl
dHVybiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQp
LCBjbGllbnQpOworICAgIHJldHVybiBTb2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZSh1cmwsIGNs
aWVudCwgY29udGV4dCwgc2Vzc2lvbklEKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0UHJvdmlkZXIuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcg
KzMyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJTb2NrZXRQcm92aWRlciBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpTb2NrZXRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxXZWJTb2NrZXRQcm92aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJTb2NrZXRQcm92aWRlcik7IH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsK
KyAgICBSZWY8V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1I
YW5kbGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50JiwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQmLCBXZWJDb3JlOjpTZXNzaW9uSUQpIGZp
bmFsOwogICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkgeyB9CiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMjAzMjMwKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNy0xNCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBTb2NrZXRQcm92aWRlciB0
byBjcmVhdGUgU29ja2V0U3RyZWFtSGFuZGxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBQbGF0
Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxNi0wNy0xMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dpbl0gRml4IGZvciBidWlsZCBlcnJvciB3aGVuIHRyeWluZyB0byB2ZXJzaW9u
IHN0YW1wIGRsbC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMjAzMjIz
KQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MTE0LDcgKzExNCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgbWFjL01pc2Mv
V2ViTlNWaWV3RXh0cmFzLm0KICAgICBtYWMvTWlzYy9XZWJOU1dpbmRvd0V4dHJhcy5tCiAgICAg
bWFjL01pc2MvV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250cm9sbGVyLm1tCi0gICAgbWFjL01p
c2MvV2ViU29ja2V0UHJvdmlkZXIubW0KICAgICBtYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3Iu
bW0KICAgICBtYWMvTWlzYy9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0KIApJbmRleDogU291
cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtV2luLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsNyArMTk1LDYgQEAgbGlzdChB
UFBFTkQgV2ViS2l0X1NPVVJDRVNfQ2xhc3NlcwogICAgIHdpbi9XZWJTY3JpcHRXb3JsZC5jcHAK
ICAgICB3aW4vV2ViU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgd2luL1dlYlNlcmlhbGl6ZWRKU1Zh
bHVlLmNwcAotICAgIHdpbi9XZWJTb2NrZXRQcm92aWRlci5jcHAKICAgICB3aW4vV2ViVGV4dFJl
bmRlcmVyLmNwcAogICAgIHdpbi9XZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAKICAg
ICB3aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIuY3BwCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw5ICsxNDcsNyBAQAogCQk1OThBRDkyODEyMDFDRjMy
MDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFDRjMyMDBB
QkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07CiAJCTU5
OEFEOTJBMTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9j
a0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
ck1vY2tJbnRlcm5hbC5oICovOyB9OwogCQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUgLyogV2Vi
RGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9y
aWVudGF0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk1Qzc3MDY3MDFEMTExQjAyMDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlk
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3
MDY2RjFEMTExQjAyMDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlkZXIubW0gKi87IH07CiAJCTVD
NzcwNjcyMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY3MTFEMTExQjIy
MDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICovOyB9OwotCQk1QzdDODhEQTFE
MEYzQkYyMDA5RDJGNkQgLyogV2ViU29ja2V0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M4OEQ5MUQwRjNCRjIwMDlEMkY2RCAvKiBX
ZWJTb2NrZXRQcm92aWRlci5oICovOyB9OwogCQk1RDdCRjgxNDBDMkExRDkwMDA4Q0UwNkQgLyog
V2ViSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUQ3QkY4MTUwQzJBMUQ5
MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0
b3IubW0gKi87IH07CiAJCTVERTgzQTdBMEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0
VGV4dElucHV0UGFuZWwubmliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJ
bnB1dFBhbmVsLm5pYiAqLzsgfTsKQEAgLTY1MSw5ICs2NDksNyBAQAogCQk1OThBRDkyNzEyMDFD
RjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyTW9jay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QUQ5MjkxMjAx
Q0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlck1vY2tJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThB
REE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNzcwNjZGMUQxMTFCMDIwMDEy
NzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlNvY2tldFByb3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21wYXRpYmls
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDN0M4OEQ5MUQwRjNCRjIwMDlE
MkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTb2NrZXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3IubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVERTgzQTc1MEQwRjdGOTQwMENBRDEyQSAvKiBF
bmdsaXNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5uaWI7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlzaC5scHJvai9XZWJKYXZh
U2NyaXB0VGV4dElucHV0UGFuZWwubmliOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBA
IC0xMDk4LDggKzEwOTQsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
IAkJCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5o
ICovLAotCQkJCTVDNzcwNjZGMUQxMTFCMDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5t
bSAqLywKLQkJCQk1QzdDODhEOTFEMEYzQkYyMDA5RDJGNkQgLyogV2ViU29ja2V0UHJvdmlkZXIu
aCAqLywKIAkJCQlBMTBDMUQyMDE4MjAyRkFGMDAzNjg4M0EgLyogaW9zICovLAogCQkJCTFDQ0ZG
RDEyMEIxRjgxRjIwMDJFRTkyNiAvKiBPbGRXZWJBc3NlcnRpb25zLmMgKi8sCiAJCQkJMjlBRUY5
NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICovLApAQCAt
MTgwNiw3ICsxODAwLDYgQEAKIAkJCQk5Mzk4MTA1MzA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJh
bWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTgxMDlDMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJG
cmFtZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ2QjE4MjAzMDBFMDAzNjg4
M0EgLyogV2ViRnJhbWVJT1MuaCBpbiBIZWFkZXJzICovLAotCQkJCTVDN0M4OERBMUQwRjNCRjIw
MDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFE
NkQxODIwMzAwRTAwMzY4ODNBIC8qIFdlYkZyYW1lSVBob25lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5Mzk4MTA1QjA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVMb2FkRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMwQjg4RThCMTBBMDhGM0QwMEZCQjNGNSAvKiBXZWJGcmFtZUxvYWRE
ZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjI3OCw3ICsyMjcxLDYgQEAKIAkJ
CQkxQzBENDA4ODBBQzFDOEY0MDAwOUMxMTMgLyogV2ViS2l0VmVyc2lvbkNoZWNrcy5tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRUQ1Qjk1MjQxMTFCNzI1QTAwNDcyMjk4IC8qIFdlYkxvY2FsaXphYmxl
U3RyaW5ncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDJEMzREMTMxRUQzODgwMDc1RkE0QiAv
KiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTVD
NzcwNjcwMUQxMTFCMDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBsYXliYWNrVGFy
Z2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFENzMxODIwMzAwRTAwMzY4ODNB
IC8qIFdlYk1JTUVUeXBlUmVnaXN0cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RjYyODEw
NzEyQjk3MDA3QUEzOTMgLyogV2ViTmF2aWdhdGlvbkRhdGEubW0gaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3LTE0ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNl
IFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViU29ja2V0UHJv
dmlkZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZl
cmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAxNi0wNy0xMyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIG1vcmUgY2FuZGlkYXRlIHRlc3RzCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oCShyZXZpc2lvbiAyMDMyMjMp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBv
cnQgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KLQotY2xhc3MgV2ViU29ja2V0UHJvdmlkZXIg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U29ja2V0UHJvdmlkZXIgewotcHVibGljOgotICAgIHN0
YXRpYyBSZWY8V2ViU29ja2V0UHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViU29ja2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsQ2xpZW50Jikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB+V2ViU29ja2V0UHJvdmlkZXIoKSB7IH0KLX07CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIubW0JKHJldmlzaW9uIDIwMzIy
MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIubW0JKG5vbmV4
aXN0ZW50KQpAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEy
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIldlYlNvY2tldFByb3ZpZGVy
LmgiCi0KLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCi0KLSNpbXBvcnQgPFdlYkNvcmUvRG9jdW1l
bnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgotI2ltcG9y
dCA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbC5oPgotI2ltcG9ydCA8V2ViQ29yZS9XZWJT
b2NrZXRDaGFubmVsQ2xpZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dvcmtlckdsb2JhbFNjb3Bl
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dvcmtlclJ1bkxvb3AuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
V29ya2VyVGhyZWFkLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotCi1zdGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRDaGFubmVs
TW9kZVtdID0gIndlYlNvY2tldENoYW5uZWxNb2RlIjsKLQotUmVmUHRyPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0Q2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBj
bGllbnQpCi17Ci0gICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgewotICAg
ICAgICBXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxXb3Jr
ZXJHbG9iYWxTY29wZT4oY29udGV4dCk7Ci0gICAgICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3Ag
PSB3b3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5ydW5Mb29wKCk7Ci0gICAgICAgIFN0cmluZ0J1
aWxkZXIgbW9kZTsKLSAgICAgICAgbW9kZS5hcHBlbmRMaXRlcmFsKHdlYlNvY2tldENoYW5uZWxN
b2RlKTsKLSAgICAgICAgbW9kZS5hcHBlbmROdW1iZXIocnVuTG9vcC5jcmVhdGVVbmlxdWVJZCgp
KTsKLSAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVh
dGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0cmluZygpKTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihj
b250ZXh0KSwgY2xpZW50KTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykKClBy
b3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViU29ja2V0UHJvdmlk
ZXIubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5h
dGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQAog
I2ltcG9ydCAiV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViU2NyaXB0V29y
bGRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViU2VsZWN0aW9uU2VydmljZUNvbnRyb2xsZXIuaCIK
LSNpbXBvcnQgIldlYlNvY2tldFByb3ZpZGVyLmgiCiAjaW1wb3J0ICJXZWJTdG9yYWdlTWFuYWdl
ckludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNp
bXBvcnQgIldlYlN5c3RlbUludGVyZmFjZS5oIgpAQCAtMTc5LDYgKzE3OCw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5UG9s
aWN5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Nv
Y2tldFByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0UmVzb3VyY2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Ro
cmVhZENoZWNrLmg+CkBAIC05OTYsNyArOTk2LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYQogICAgIF9wcml2YXRlLT5ncm91cCA9IFdlYlZpZXdHcm91cDo6Z2V0
T3JDcmVhdGUoZ3JvdXBOYW1lLCBfcHJpdmF0ZS0+cHJlZmVyZW5jZXMuX2xvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aCk7CiAgICAgX3ByaXZhdGUtPmdyb3VwLT5hZGRXZWJWaWV3KHNlbGYpOwogCi0g
ICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxXZWJF
ZGl0b3JDbGllbnQ+KHNlbGYpLCBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOworICAgIFBh
Z2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uKG1ha2VVbmlxdWVSZWY8V2ViRWRpdG9y
Q2xpZW50PihzZWxmKSwgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsKICNpZiAhUExBVEZPUk0o
SU9TKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVD
bGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBu
ZXcgV2ViQ29udGV4dE1lbnVDbGllbnQoc2VsZik7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCAtIChp
ZClpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOihOCiAgICAgX3ByaXZhdGUtPmdyb3Vw
ID0gV2ViVmlld0dyb3VwOjpnZXRPckNyZWF0ZShncm91cE5hbWUsIF9wcml2YXRlLT5wcmVmZXJl
bmNlcy5fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKTsKICAgICBfcHJpdmF0ZS0+Z3JvdXAtPmFk
ZFdlYlZpZXcoc2VsZik7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlv
bihtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNsaWVudD4oc2VsZiksIFdlYlNvY2tldFByb3ZpZGVy
OjpjcmVhdGUoKSk7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFr
ZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHNlbGYpLCBTb2NrZXRQcm92aWRlcjo6Y3JlYXRl
KCkpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVD
bGllbnRJT1Moc2VsZik7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBwYWdlQ29uZmln
dXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQoc2VsZik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wNy0xNCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBTb2NrZXRQ
cm92aWRlciB0byBjcmVhdGUgU29ja2V0U3RyZWFtSGFuZGxlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJTb2NrZXRQcm92aWRlci5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogV2ViU29ja2V0UHJvdmlkZXIuaDogUmVtb3ZlZC4KKwogMjAxNi0w
Ny0xMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxk
IGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJTb2NrZXRQcm92aWRlci5jcHAJKHJldmlz
aW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmNwcAko
bm9uZXhpc3RlbnQpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDks
IDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCi0KLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMp
Ci0KLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENo
YW5uZWwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1dvcmtlckdsb2JhbFNjb3BlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9X
b3JrZXJSdW5Mb29wLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotc3RhdGljIGNvbnN0IGNoYXIgd2ViU29ja2V0Q2hhbm5lbE1vZGVbXSA9ICJ3ZWJTb2NrZXRD
aGFubmVsTW9kZSI7Ci0KLVJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gV2ViU29j
a2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50KQotewotICAgIGlmIChp
czxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKLSAgICAgICAgV29ya2VyR2xvYmFsU2Nv
cGUmIHdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRl
eHQpOwotICAgICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUu
dGhyZWFkKCkucnVuTG9vcCgpOwotICAgICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7Ci0gICAgICAg
IG1vZGUuYXBwZW5kTGl0ZXJhbCh3ZWJTb2NrZXRDaGFubmVsTW9kZSk7Ci0gICAgICAgIG1vZGUu
YXBwZW5kTnVtYmVyKHJ1bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSk7Ci0gICAgICAgIHJldHVybiBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3Bl
LCBjbGllbnQsIG1vZGUudG9TdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdlYlNvY2tl
dENoYW5uZWw6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7Ci19
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJTb2NrZXRQcm92aWRlci5jcHAKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVk
OiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJTb2NrZXRQcm92aWRlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmgJKHJl
dmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmgJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+Ci0KLWNsYXNzIFdlYlNvY2tl
dFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNvY2tldFByb3ZpZGVyIHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQotICAgIFJlZlB0cjxXZWJDb3JlOjpU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5lbChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbENsaWVu
dCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkgeyB9Ci19Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283672</attachid>
            <date>2016-07-14 13:06:31 -0700</date>
            <delta_ts>2016-07-14 13:55:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159774-20160714130543.patch</filename>
            <type>text/plain</type>
            <size>82597</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tl
dFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3VyLgorICAgICAgICAKKyAgICAgICAgSW4gcjIwMjkzMCBJIGludHJvZHVjZWQg
dGhlIFNvY2tldFByb3ZpZGVyLCBidXQgSSB1c2VkIGl0IHRvIG1ha2UgYSBXZWJTb2NrZXRDaGFu
bmVsCisgICAgICAgIGluc3RlYWQgb2YgYSBTb2NrZXRTdHJlYW1IYW5kbGUsIHdoaWNoIGlzIHRo
ZSBjbGFzcyBJIHdhbnQgdG8gbWFrZSBpbnRvIGFuIGludGVyZmFjZQorICAgICAgICBhbmQgcHJv
eHkgdGhlIHdlYiB0cmFmZmljIG92ZXIgdG8gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgSSByZW1vdmVkIHRoaXMgaW4g
MjAyOTMwLCBzbyB0aGlzIGlzIHJlc3RvcmluZyBpdCBmcm9tIHRoYXQgcGF0Y2gsIGhlbmNlIHRo
ZSBvbGQgY29weXJpZ2h0LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5l
bCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJy
aWRnZTo6QnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6On5CcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRn
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Om92
ZXJsYXlQYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwpOiBE
ZWxldGVkLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdl
L1NvY2tldFByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKiBwYWdlL1NvY2tldFBy
b3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRQcm92aWRlcjo6flNvY2tldFByb3Zp
ZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorCiAyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBTZXNz
aW9uSUQgdG8gV2ViU29ja2V0SGFuZGxlIGNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMzIsNiArMTAzMiw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCiAg
ICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAKIAor
ICAgIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKICAg
ICBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmNwcAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCiAgICAgTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMDUzLDYgKzIwNTQsNyBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCiAgICAg
cGFnZS9TZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL1NldHRpbmdzLmNwcAorICAgIHBhZ2Uv
U29ja2V0UHJvdmlkZXIuY3BwCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKICAgICBw
YWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9yLmNwcApJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMiBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCisjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5oIgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWwuaCIKKyNpbmNsdWRl
ICJXZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUu
aCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgi
CisjaW5jbHVkZSAiV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCIKKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxD
bGllbnQmIGNsaWVudCwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQoreworICAgIGlmIChpczxX
b3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKKyAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUm
IHdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQp
OworICAgICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhy
ZWFkKCkucnVuTG9vcCgpOworICAgICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7CisgICAgICAgIG1v
ZGUuYXBwZW5kTGl0ZXJhbCgid2ViU29ja2V0Q2hhbm5lbE1vZGUiKTsKKyAgICAgICAgbW9kZS5h
cHBlbmROdW1iZXIocnVuTG9vcC5jcmVhdGVVbmlxdWVJZCgpKTsKKyAgICAgICAgcmV0dXJuIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUs
IGNsaWVudCwgbW9kZS50b1N0cmluZygpLCBwcm92aWRlcik7CisgICAgfQorCisgICAgcmV0dXJu
IFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNs
aWVudCwgcHJvdmlkZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX1NPQ0tFVFMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAko
cmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDExICs0NSwx
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xhc3MgVVJMOwogY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgV2Vi
U29ja2V0Q2hhbm5lbENsaWVudDsKIAogY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKTsK
IHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmLCBTb2Nr
ZXRQcm92aWRlciYpOwogICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCkgeyB9CiAKICAg
ICBlbnVtIFNlbmRSZXN1bHQgewpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTUsMTAgKzI1NSwxMCBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcmIHVy
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXV0byBzb2NrZXRQcm92aWRlciA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c29ja2V0UHJvdmlkZXIoKSkKLSAgICAgICAgbV9j
aGFubmVsID0gc29ja2V0UHJvdmlkZXItPmNyZWF0ZVdlYlNvY2tldENoYW5uZWwoKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMpOworICAgIGlmIChhdXRvKiBwcm92aWRlciA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+c29ja2V0UHJvdmlkZXIoKSkKKyAgICAgICAgbV9jaGFubmVs
ID0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCAqdGhpcywgKnByb3ZpZGVyKTsKIAotICAgIC8vIE9ubHkgYW4gRW1wdHlTb2NrZXRQ
cm92aWRlciBjYW4gcmV0dXJuIG51bGxwdHIsIGFuZCBldmVyeSBTY3JpcHRFeGVjdXRpb25Db250
ZXh0IHNob3VsZCBoYXZlIGEgU29ja2V0UHJvdmlkZXIuCisgICAgLy8gRXZlcnkgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCBzaG91bGQgaGF2ZSBhIFNvY2tldFByb3ZpZGVyLgogICAgIFJFTEVBU0Vf
QVNTRVJUKG1fY2hhbm5lbCk7CiAKICAgICAvLyBGSVhNRTogVGhlcmUgaXMgYSBkaXNhZ3JlZW1l
bnQgYWJvdXQgcmVzdHJpY3Rpb24gb2Ygc3VicHJvdG9jb2xzIGJldHdlZW4gV2ViU29ja2V0IEFQ
SSBhbmQgaHliaS0xMCBwcm90b2NvbApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkocmV2aXNpb24gMjAzMjI1
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJTb2Nr
ZXRTdHJlYW1FcnJvci5oIgogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZS5oIgogI2luY2x1
ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKQEAgLTY0LDExICs2NSwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNvbnN0IGRvdWJsZSBUQ1BNYXhpbXVtU2VnbWVudExpZmV0aW1lID0g
MiAqIDYwLjA7CiAKLVdlYlNvY2tldENoYW5uZWw6OldlYlNvY2tldENoYW5uZWwoRG9jdW1lbnQm
IGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQpCitXZWJTb2NrZXRDaGFu
bmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5l
bENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIpCiAgICAgOiBtX2RvY3Vt
ZW50KCZkb2N1bWVudCkKICAgICAsIG1fY2xpZW50KCZjbGllbnQpCiAgICAgLCBtX3Jlc3VtZVRp
bWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lVGltZXJGaXJlZCkKICAgICAsIG1f
Y2xvc2luZ1RpbWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2luZ1RpbWVyRmlyZWQp
CisgICAgLCBtX3NvY2tldFByb3ZpZGVyKHByb3ZpZGVyKQogewogICAgIGlmIChQYWdlKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpKQogICAgICAgICBtX2lkZW50aWZpZXIgPSBwYWdlLT5wcm9ncmVz
cygpLmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKQEAgLTk4LDcgKzEwMCw3IEBAIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwKICAgICAgICAgICAgIHJlZigpOwogICAg
ICAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAgICAgICAgICBTZXNzaW9u
SUQgc2Vzc2lvbklEID0gcGFnZSA/IHBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCk7Ci0gICAgICAgICAgICBtX2hhbmRsZSA9IFNvY2tldFN0cmVhbUhhbmRs
ZTo6Y3JlYXRlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsICpuZXR3b3JraW5nQ29udGV4dCwg
c2Vzc2lvbklEKTsKKyAgICAgICAgICAgIG1faGFuZGxlID0gbV9zb2NrZXRQcm92aWRlci0+Y3Jl
YXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsICpuZXR3b3Jr
aW5nQ29udGV4dCwgc2Vzc2lvbklEKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
aAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGaWxl
UmVhZGVyTG9hZGVyOworY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTb2NrZXRTdHJlYW1I
YW5kbGU7CiBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsKIGNsYXNzIFdlYlNvY2tldENoYW5uZWxD
bGllbnQ7CkBAIC01OCw3ICs1OSw3IEBAIGNsYXNzIFdlYlNvY2tldENoYW5uZWwgOiBwdWJsaWMg
UmVmQ291bnQKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJT
b2NrZXRDaGFubmVsKGRvY3VtZW50LCBjbGllbnQpKTsgfQorICAgIHN0YXRpYyBSZWY8V2ViU29j
a2V0Q2hhbm5lbD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbENs
aWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViU29ja2V0Q2hhbm5lbChkb2N1bWVudCwgY2xpZW50LCBwcm92aWRlcikpOyB9CiAg
ICAgdmlydHVhbCB+V2ViU29ja2V0Q2hhbm5lbCgpOwogCiAgICAgYm9vbCBzZW5kKGNvbnN0IGNo
YXIqIGRhdGEsIGludCBsZW5ndGgpOwpAQCAtMTE5LDcgKzEyMCw3IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoKSBvdmVycmlkZSB7IGRlcmVm
KCk7IH0KIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBXZWJTb2NrZXRDaGFubmVsKERv
Y3VtZW50JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIFdl
YlNvY2tldENoYW5uZWwoRG9jdW1lbnQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgU29ja2V0
UHJvdmlkZXImKTsKIAogICAgIGJvb2wgYXBwZW5kVG9CdWZmZXIoY29uc3QgY2hhciogZGF0YSwg
c2l6ZV90IGxlbik7CiAgICAgdm9pZCBza2lwQnVmZmVyKHNpemVfdCBsZW4pOwpAQCAtMjEzLDYg
KzIxNCw3IEBAIHByaXZhdGU6CiAgICAgQmxvYkxvYWRlclN0YXR1cyBtX2Jsb2JMb2FkZXJTdGF0
dXMgeyBCbG9iTG9hZGVyTm90U3RhcnRlZCB9OwogCiAgICAgV2ViU29ja2V0RGVmbGF0ZUZyYW1l
ciBtX2RlZmxhdGVGcmFtZXI7CisgICAgUmVmPFNvY2tldFByb3ZpZGVyPiBtX3NvY2tldFByb3Zp
ZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiQmxvYi5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgorI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5l
bC5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKQEAgLTUwLDEwICs1MSwx
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbChXb3JrZXJHbG9iYWxTY29w
ZSYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcm
IHRhc2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OldvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFBy
b3ZpZGVyJiBwcm92aWRlcikKICAgICA6IG1fd29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCkKICAg
ICAsIG1fd29ya2VyQ2xpZW50V3JhcHBlcihUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQpKQotICAgICwgbV9icmlkZ2UoQnJpZGdl
OjpjcmVhdGUobV93b3JrZXJDbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgbV93b3JrZXJHbG9iYWxT
Y29wZS5jb3B5UmVmKCksIHRhc2tNb2RlKSkKKyAgICAsIG1fYnJpZGdlKEJyaWRnZTo6Y3JlYXRl
KG1fd29ya2VyQ2xpZW50V3JhcHBlci5jb3B5UmVmKCksIG1fd29ya2VyR2xvYmFsU2NvcGUuY29w
eVJlZigpLCB0YXNrTW9kZSwgcHJvdmlkZXIpKQorICAgICwgbV9zb2NrZXRQcm92aWRlcihwcm92
aWRlcikKIHsKICAgICBtX2JyaWRnZS0+aW5pdGlhbGl6ZSgpOwogfQpAQCAtMTQwLDEwICsxNDIs
MTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6cgogICAgICAgICBt
X2JyaWRnZS0+cmVzdW1lKCk7CiB9CiAKLVdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
OjpQZWVyOjpQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+
JiYgY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKQorV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIoUmVmPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiBjbGllbnRXcmFwcGVyLCBXb3JrZXJMb2FkZXJQ
cm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikKICAgICA6IG1fd29y
a2VyQ2xpZW50V3JhcHBlcihXVEZNb3ZlKGNsaWVudFdyYXBwZXIpKQogICAgICwgbV9sb2FkZXJQ
cm94eShsb2FkZXJQcm94eSkKLSAgICAsIG1fbWFpbldlYlNvY2tldENoYW5uZWwoV2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgKnRoaXMpKQorICAg
ICwgbV9tYWluV2ViU29ja2V0Q2hhbm5lbChXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoZG93bmNh
c3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCAqdGhpcywgcHJvdmlkZXIpKQogICAgICwgbV90YXNrTW9k
ZSh0YXNrTW9kZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMzI5LDEyICsz
MzEsMTIgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UAogICAgIH0s
IG1fdGFza01vZGUpOwogfQogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJp
ZGdlOjpCcmlkZ2UoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4m
JiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+JiYgd29ya2VyR2xv
YmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCitXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6QnJpZGdlOjpCcmlkZ2UoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xvYmFsU2Nv
cGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFJlZjxTb2Nr
ZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlcikKICAgICA6IG1fd29ya2VyQ2xpZW50V3JhcHBl
cihXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIpKQogICAgICwgbV93b3JrZXJHbG9iYWxTY29w
ZShXVEZNb3ZlKHdvcmtlckdsb2JhbFNjb3BlKSkKICAgICAsIG1fbG9hZGVyUHJveHkobV93b3Jr
ZXJHbG9iYWxTY29wZS0+dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKSkKICAgICAsIG1fdGFz
a01vZGUodGFza01vZGUpCi0gICAgLCBtX3BlZXIobnVsbHB0cikKKyAgICAsIG1fc29ja2V0UHJv
dmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCiB7CiB9CiAKQEAgLTM0MywxNCArMzQ1LDE0
IEBAIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2UKICAgICBkaXNjb25u
ZWN0KCk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRn
ZTo6bWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
V29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBwZXIsIGNvbnN0IFN0cmluZyYgdGFza01v
ZGUpCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6Om1haW5U
aHJlYWRJbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdvcmtlckxv
YWRlclByb3h5JiBsb2FkZXJQcm94eSwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcj4mJiBjbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYgcHJvdmlkZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBBU1NFUlQoY29udGV4dC5pc0RvY3VtZW50KCkpOwogCiAgICAgYm9vbCBzZW50ID0g
bG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZSh7CiAgICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s6OkNsZWFudXBUYXNrLAotICAgICAgICBbY2xp
ZW50V3JhcHBlciA9IGNsaWVudFdyYXBwZXIuY29weVJlZigpLCAmbG9hZGVyUHJveHksIHBlZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPFBlZXI+KGNsaWVudFdyYXBwZXIuY29weVJlZigpLCBsb2FkZXJQ
cm94eSwgY29udGV4dCwgdGFza01vZGUpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSBtdXRhYmxlIHsKKyAgICAgICAgW2NsaWVudFdyYXBwZXIgPSBjbGllbnRXcmFwcGVyLmNvcHlS
ZWYoKSwgJmxvYWRlclByb3h5LCBwZWVyID0gc3RkOjptYWtlX3VuaXF1ZTxQZWVyPihjbGllbnRX
cmFwcGVyLmNvcHlSZWYoKSwgbG9hZGVyUHJveHksIGNvbnRleHQsIHRhc2tNb2RlLCBXVEZNb3Zl
KHByb3ZpZGVyKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewog
ICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LmlzV29ya2VyR2xvYmFs
U2NvcGUoKSk7CiAgICAgICAgICAgICBpZiAoY2xpZW50V3JhcHBlci0+ZmFpbGVkV2ViU29ja2V0
Q2hhbm5lbENyZWF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICAvLyBJZiBCcmlkZ2U6OmluaXRp
YWxpemUoKSBxdWl0dGVkIGVhcmxpZXIsIHdlIG5lZWQgdG8ga2ljayBtYWluVGhyZWFkRGVzdHJv
eSgpIHRvIGRlbGV0ZSB0aGUgcGVlci4KQEAgLTM3Myw4ICszNzUsOCBAQCB2b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCCiAgICAgc2V0TWV0aG9kTm90Q29tcGxldGVkKCk7
CiAgICAgUmVmPEJyaWRnZT4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKLSAgICBtX2xvYWRlclBy
b3h5LnBvc3RUYXNrVG9Mb2FkZXIoWyZsb2FkZXJQcm94eSA9IG1fbG9hZGVyUHJveHksIHdvcmtl
ckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIuY29weVJlZigpLCB0YXNrTW9k
ZSA9IG1fdGFza01vZGUuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQpIG11dGFibGUgewotICAgICAgICBtYWluVGhyZWFkSW5pdGlhbGl6ZShjb250ZXh0LCBs
b2FkZXJQcm94eSwgV1RGTW92ZSh3b3JrZXJDbGllbnRXcmFwcGVyKSwgdGFza01vZGUpOworICAg
IG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihbJmxvYWRlclByb3h5ID0gbV9sb2FkZXJQ
cm94eSwgd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlci5jb3B5UmVm
KCksIHRhc2tNb2RlID0gbV90YXNrTW9kZS5pc29sYXRlZENvcHkoKSwgcHJvdmlkZXIgPSBtX3Nv
Y2tldFByb3ZpZGVyLmNvcHlSZWYoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkg
bXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRJbml0aWFsaXplKGNvbnRleHQsIGxvYWRlclBy
b3h5LCBXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIpLCB0YXNrTW9kZSwgV1RGTW92ZShwcm92
aWRlcikpOwogICAgIH0pOwogICAgIHdhaXRGb3JNZXRob2RDb21wbGV0aW9uKCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCShyZXZpc2lvbiAyMDMyMjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsOSArNTMsOSBAQCBjbGFzcyBX
b3JrZXJSdW5Mb29wOwogY2xhc3MgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4sIHB1Ymxp
YyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4g
Y3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSwgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKQorICAgIHN0YXRpYyBS
ZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYg
d29ya2VyR2xvYmFsU2NvcGUsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgY29uc3Qg
U3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwo
d29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwod29ya2VyR2xvYmFs
U2NvcGUsIGNsaWVudCwgdGFza01vZGUsIHByb3ZpZGVyKSk7CiAgICAgfQogICAgIHZpcnR1YWwg
fldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCk7CiAKQEAgLTc4LDcgKzc4LDcgQEAg
cHVibGljOgogICAgIGNsYXNzIFBlZXIgOiBwdWJsaWMgV2ViU29ja2V0Q2hhbm5lbENsaWVudCB7
CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBlZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFBlZXIoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgV29ya2VyTG9hZGVyUHJveHkmLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAgICAgIFBlZXIoUmVmPFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgV29ya2VyTG9hZGVyUHJv
eHkmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgU29j
a2V0UHJvdmlkZXImKTsKICAgICAgICAgflBlZXIoKTsKIAogICAgICAgICB2b2lkIGNvbm5lY3Qo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7CkBAIC0xMTksOSArMTE5LDkgQEAg
cHJpdmF0ZToKICAgICAvLyBCcmlkZ2UgZm9yIFBlZXIuICBSdW5uaW5nIG9uIHRoZSB3b3JrZXIg
dGhyZWFkLgogICAgIGNsYXNzIEJyaWRnZSA6IHB1YmxpYyBSZWZDb3VudGVkPEJyaWRnZT4gewog
ICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxCcmlkZ2U+IGNyZWF0ZShSZWY8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIHdvcmtlckNsaWVudFdyYXBwZXIs
IFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJHbG9iYWxTY29wZSwgY29uc3QgU3RyaW5n
JiB0YXNrTW9kZSkKKyAgICAgICAgc3RhdGljIFJlZjxCcmlkZ2U+IGNyZWF0ZShSZWY8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIHdvcmtlckNsaWVudFdyYXBwZXIs
IFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJHbG9iYWxTY29wZSwgY29uc3QgU3RyaW5n
JiB0YXNrTW9kZSwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHByb3ZpZGVyKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCcmlkZ2UoV1RGTW92ZSh3b3JrZXJDbGll
bnRXcmFwcGVyKSwgV1RGTW92ZSh3b3JrZXJHbG9iYWxTY29wZSksIHRhc2tNb2RlKSk7CisgICAg
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCcmlkZ2UoV1RGTW92ZSh3b3JrZXJDbGllbnRX
cmFwcGVyKSwgV1RGTW92ZSh3b3JrZXJHbG9iYWxTY29wZSksIHRhc2tNb2RlLCBXVEZNb3ZlKHBy
b3ZpZGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5CcmlkZ2UoKTsKICAgICAgICAgdm9pZCBp
bml0aWFsaXplKCk7CkBAIC0xNDAsMTIgKzE0MCwxMiBAQCBwcml2YXRlOgogICAgICAgICB1c2lu
ZyBSZWZDb3VudGVkPEJyaWRnZT46OmRlcmVmOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQnJp
ZGdlKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIFJlZjxX
b3JrZXJHbG9iYWxTY29wZT4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAgICAgIEJy
aWRnZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBSZWY8
V29ya2VyR2xvYmFsU2NvcGU+JiYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJik7CiAKICAgICAgICAgc3RhdGljIHZvaWQgc2V0V2ViU29ja2V0Q2hhbm5lbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQnJpZGdlKiB0aGlzUHRyLCBQZWVyKiwgUmVmPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJik7CiAKICAgICAgICAgLy8gRXhl
Y3V0ZWQgb24gdGhlIG1haW4gdGhyZWFkIHRvIGNyZWF0ZSBhIFBlZXIgZm9yIHRoaXMgYnJpZGdl
LgotICAgICAgICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkSW5pdGlhbGl6ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgV29ya2VyTG9hZGVyUHJveHkmLCBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyPiYmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKTsKKyAgICAgICAg
c3RhdGljIHZvaWQgbWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFdvcmtlckxvYWRlclByb3h5JiwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcj4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNvY2tldFByb3ZpZGVyPiYm
KTsKIAogICAgICAgICAvLyBFeGVjdXRlZCBvbiB0aGUgd29ya2VyIGNvbnRleHQncyB0aHJlYWQu
CiAgICAgICAgIHZvaWQgY2xlYXJDbGllbnRXcmFwcGVyKCk7CkBAIC0xNTcsMTYgKzE1NywxOCBA
QCBwcml2YXRlOgogICAgICAgICBSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xv
YmFsU2NvcGU7CiAgICAgICAgIFdvcmtlckxvYWRlclByb3h5JiBtX2xvYWRlclByb3h5OwogICAg
ICAgICBTdHJpbmcgbV90YXNrTW9kZTsKLSAgICAgICAgUGVlciogbV9wZWVyOworICAgICAgICBQ
ZWVyKiBtX3BlZXIgeyBudWxscHRyIH07CisgICAgICAgIFJlZjxTb2NrZXRQcm92aWRlcj4gbV9z
b2NrZXRQcm92aWRlcjsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGUmLCBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGUmLCBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXIm
KTsKIAogICAgIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlRGlkSW5pdGlhbGl6ZVRhc2s7CiAKICAg
ICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgUmVmPFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gbV93b3JrZXJDbGllbnRXcmFw
cGVyOwogICAgIFJlZlB0cjxCcmlkZ2U+IG1fYnJpZGdlOworICAgIFJlZjxTb2NrZXRQcm92aWRl
cj4gbV9zb2NrZXRQcm92aWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNiBAQAogCQkwMUU2QzJF
NDExOTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMUU2QzJFMzExOTRCMjgyMDA1MDgyMUMg
LyogU3BlbGxpbmdEb3RAMngucG5nICovOyB9OwogCQkwNTYyRjk2MTE1NzNGODhGMDAzMUNBMTYg
LyogUGxhdGZvcm1MYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRmb3JtTGF5ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNUQ5MTNDRUVB
QjJBNjA1MzQyMThBQ0YgLyogTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzRTYxQzY1M0E2NDgwN0E4M0U3NkZC
OCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwICovOyB9OwotCQkxNkVBMjRDRUVBQjJBNjA1
MzQyMThBQ0YgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ0RjcyQzY1M0E2NDgwN0E4M0U3NkZCOCAv
KiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwICovOyB9OwogCQkwNUZENjlFMDEyODQ1RDQz
MDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlERjEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1w
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDYw
MjdDQUQwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJE
IC8qIENvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA2MjI4Nzg0MEI0REIzMjIwMDBDMzRERiAvKiBGb2N1c0RpcmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDYyMjg3
ODMwQjREQjMyMjAwMEMzNERGIC8qIEZvY3VzRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY2Niw2ICs2NjUsNyBAQAogCQkxNUZD
QzlGQzFCNERGN0YyMDBFNzIzMjYgLyogRE9NVVJMTWVkaWFTdHJlYW0uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RUQxOUVFMzY0MjAwRTVB
MDQ1IC8qIERPTVVSTE1lZGlhU3RyZWFtLmNwcCAqLzsgfTsKIAkJMTVGQ0M5RkUxQjRERjg1RTAw
RTcyMzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNUZDQzlGRDFCNERGODU2MDBFNzIzMjYgLyogRE9NVVJMTWVk
aWFTdHJlYW0uaCAqLzsgfTsKIAkJMTYzRTg4RjcxMThBMzlEMjAwRUQ5MjMxIC8qIFNpbXBsZUZv
bnREYXRhQ29yZVRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTYzRTg4RjUxMThBMzlEMjAwRUQ5MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRl
eHQuY3BwICovOyB9OworCQkxNkVBMjRDRUVBQjJBNjA1MzQyMThBQ0YgLyogTWF0aE1MT3BlcmF0
b3JEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQ0RjcyQzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25h
cnkuY3BwICovOyB9OwogCQkxODVCQ0YyODBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJD
RjI2MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuY3BwICovOyB9OwogCQkxODVCQ0Yy
OTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0YyNzBGMzI3OUNFMDAwRUEyNjIgLyogVGhy
ZWFkVGltZXJzLmggKi87IH07CiAJCTE4ODYwNEIzMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODg2
MDRCMTBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3BwICovOyB9OwpAQCAtMTk4MSw2ICsx
OTgxLDggQEAKIAkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1
MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjZGREQ2NDEzNDFERURE
MDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNw
ZWN0b3JQYWdlQWdlbnQuY3BwICovOyB9OwogCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMgLyog
SW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RjZGREQ2MzEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNEZB
NjVBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2OTExMDhBQkVEMDAy
NjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCAqLzsgfTsKKwkJNEZBNjVBNkMxMTA4QUJF
RDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhN
TFNwYWNlRWxlbWVudC5oICovOyB9OwogCQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2Vu
ZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLzsg
fTsKIAkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJlRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkFCNDg2NjE2NDNBNjdF
MDBGNzBDMDcgLyogTm9kZVJhcmVEYXRhLmNwcCAqLzsgfTsKIAkJNEZGQzAyMkQxNjQzQjcyNjAw
NEUxNjM4IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RkFCNDg2NDE2NDNBNjZEMDBGNzBDMDcgLyogRWxlbWVudFJh
cmVEYXRhLmNwcCAqLzsgfTsKQEAgLTIwMDgsNyArMjAxMCw3IEBACiAJCTUxMEQ0QTMzMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMkQxMDMxNjVFRTAwNDlFQTU0IC8q
IFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgKi87IH07CiAJCTUxMEQ0QTM0MTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRT
dHJlYW1FcnJvckJhc2UuaCAqLzsgfTsKIAkJNTEwRDRBMzYxMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwRDRBMzAxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhh
bmRsZUJhc2UuY3BwICovOyB9OwotCQk1MTBENEEzNzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0
U3RyZWFtSGFuZGxlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UuaCAqLzsgfTsKKwkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhh
bmRsZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgx
MDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMUVDMTI3MUM1MEFBQ0EwMDMyRjk4MyAvKiBJ
REJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNw
cCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2
MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07CkBAIC0yMjI2LDcg
KzIyMjgsNyBAQAogCQk1MUE5RDlGNDE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RjAxOTVC
OTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUFBM0Y2RjBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3Vy
Y2VMb2FkZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gKi87
IH07CiAJCTUxQUJBRTFCMTAzQzE4RkYwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUExMDND
MThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggKi87IH07Ci0JCTUxQUJBRTFFMTAz
QzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgfTsKKwkJNTFBQkFFMUUxMDNDMTkxMzAwOEM1MjYwIC8q
IFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
QUJBRTFGMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxRDEwM0Mx
OTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwICovOyB9OwogCQk1MUFC
RjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3RyYXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkY2NEMxNjM5MkUyODAwMTMyQTdB
IC8qIExvYWRlclN0cmF0ZWd5LmNwcCAqLzsgfTsKIAkJNTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4
IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYwMDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRl
clR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTIzOTEsNiArMjM5Myw4IEBACiAJCTVDNDMwNEIxMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRT
aGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1QzQzMDRBRTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5o
ICovOyB9OwogCQk1QzQzMDRCNTE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJl
TE9ELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
NDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuY3BwICovOyB9
OwogCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRCNDE5
MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi87IH07CisJCTVDNjg4
QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzY4OEFBMDFEMzgw
NTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwICovOyB9OworCQk1
QzY4OEFBMzFEMzgxNEJGMDAwQjU0RkEgLyogU29ja2V0UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2ODhBQTIxRDM4MTI2RjAwMEI1
NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJNUM3Qzg4RDgxRDBGMUY0QTAwOUQy
RjZEIC8qIFNvY2tldFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1QzlB
N0E3NTFBQTBGNkVBMDA5NThBQ0YgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzM5MzA1RTFBQTBGNkE5MDAy
OUM4MTYgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgKi87IH07CiAJCTVDOUE3QTc2MUFBMEY2
RUQwMDk1OEFDRiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDYwMUFBMEY2QTkwMDI5QzgxNiAv
KiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCAqLzsgfTsKQEAgLTUzOTUsNiArNTM5OSw3IEBA
CiAJCUI1N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJDMTgyQTNF
RUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCAqLzsgfTsKIAkJQjU3Q0I1MkUxODJB
M0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJCMTgyQTM3RjYwMDc5QTY0NyAvKiBJbmxp
bmVFbGVtZW50Qm94LmggKi87IH07CiAJCUI1OTVGRjQ3MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5k
ZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggKi87IH07CisJ
CUI1OUNBMzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OUNBNTlBRjE3MEQ4
RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJQjU5REQ2OTkx
MTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OTcxMTkwMjlFNTAwN0U5Njg0IC8q
IEpTRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OwogCQlCNTlERDY5QTExOTAyOUU1MDA3RTk2ODQg
LyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2Fs
bGJhY2suY3BwICovOyB9OwogCQlCNTlERDY5RDExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxUcmFu
c2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCNTlERDY5QjExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxi
YWNrLmggKi87IH07CkBAIC02ODk0LDggKzY4OTksNiBAQAogCQlGOThGRkY0NDExQTI2NzYyMDBG
NTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAg
Ki87IH07CiAJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MzExQTI2NzYy
MDBGNTQ4RTggLyogQ1NTT01VdGlscy5oICovOyB9OwogCQlGOUYwRUQ3QTBEQjUwQ0EyMDBEMTZE
QjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07Ci0JCTRGQTY1QTZCMTEwOEFCRUQwMDI2
MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNw
YWNlRWxlbWVudC5jcHAgKi87IH07Ci0JCTRGQTY1QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRo
TUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuaCAq
LzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBNjU0QTY5
MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAgKi87IH07CiAJCUZBNjU0
QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRBNkExMTA4QUJFRDAwMjYxNUUw
IC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi87IH07CiAJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlE
RCAvKiBNYXRoTUxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZBQkU3MkVEMTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNw
cCAqLzsgfTsKQEAgLTcyMTAsNyArNzIxMyw2IEBACiAJCUZFRDEzRDNEMENFQTkzNkEwMEQ4OTQ2
NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFRDEzRDNCMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSAqLzsgfTsKIAkJ
RkVEMTNENDAwQ0VBOTM5NDAwRDg5NDY2IC8qIEljb25JT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQxM0QzRjBDRUE5Mzk0MDBEODk0NjYgLyog
SWNvbklPUy5tbSAqLzsgfTsKIAkJRkVEMTNENTIwQ0VBOTQ5NzAwRDg5NDY2IC8qIFJlbmRlclRo
ZW1lSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RUQxM0Q1MDBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVyVGhlbWVJT1MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCNTlDQTM5MENFRDY2QzMyNTVG
NzJDNTkgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1M
UGFkZGVkRWxlbWVudC5jcHAgKi87IH07CiAJCUZFRDQ4MzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBN
YXRoTUxTZWxlY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY3NUEwNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxTZWxlY3RFbGVt
ZW50LmNwcCAqLzsgfTsKIAkJRkVFMTgxMTMxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0
aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRUUxODExMTE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNw
cCAqLzsgfTsKIAkJRkVFMTgxMTQxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFj
a2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVF
MTgxMTIxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5oICovOyB9OwpA
QCAtOTYxMiw2ICs5NjE0LDggQEAKIAkJNEYxNTM0REYxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRp
bmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRp
bmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNkZERDYy
MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUGFnZUFnZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2RkRENjMxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3Rv
clBhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQ
YWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEZBNjVBNjkxMTA4QUJF
RDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNwYWNlRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkFCNDg2NDE2NDNBNjZEMDBGNzBD
MDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVJhcmVEYXRhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZElt
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlbmVyYXRlZElt
YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDMwLDcgKzEwMDM0LDYg
QEAKIAkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50
TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk1OEYxQ0IxMzQz
OTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LmNzczsgcGF0aCA9
IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5NThGMUNDMTM0
MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFBhZGRlZEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk3ODA4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhN
TFNlbGVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1M
U2VsZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgzNjVEQzEz
NTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OTgzNjVERTEzNTVGNTYyMDAxQjE4NUQgLyogSlNQb3NpdGlvbkVycm9yQ2Fs
bGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMDcwLDYgKzEwMDcz
LDggQEAKIAkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNoYWRlclRleHR1cmVMT0Qu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVFNoYWRlclRleHR1cmVMT0QuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQzMDRCMzE5MUFFRjQ2MDAwRTJCQzAgLyogSlNF
WFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEwMUQzODA1MDkwMDBCNTRGQSAv
KiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEyMUQzODEyNkYwMDBCNTRGQSAvKiBTb2NrZXRQcm92
aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb2NrZXRQcm92
aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDN0M4OEQ3MUQwRjFGMkIw
MDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTb2NrZXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzlC
ODYwQjFDMjFFM0M2MDAxMTBGMzYgLyogUmVzb3VyY2VMb2FkVGltaW5nLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IzN0ZGQzFDNjJEMjc4MDBGMjAxODggLyogU2Ny
b2xsQW5pbWF0b3JNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNjcm9sbEFuaW1hdG9yTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MzM4OCw2ICsxMzM5Myw4IEBACiAJCUI1N0NCNTJCMTgyQTM3RjYwMDc5QTY0NyAvKiBJbmxpbmVF
bGVtZW50Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUVsZW1l
bnRCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU3Q0I1MkMxODJBM0VFRDAw
NzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSW5saW5lRWxlbWVudEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUI1OTVGRjQ2MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJJdGVyYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFk
ZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRo
TUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQjU5Q0E4
NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MUGFkZGVkRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCNTlERDY5NzExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNh
bGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlERDY5ODExOTAyOUU1MDA3
RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUI1OURENjlCMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxUcmFuc2FjdGlv
bkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAxMiw3ICsxNDAx
OSw2IEBACiAJCUMzQ0YxN0EyMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyUmVn
aXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRP
YnNlcnZlclJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3
QTMxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNFNjFDNjUzQTY0ODA3QTgzRTc2RkI4IC8qIE1h
dGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0MDBEMTA4MThG
MUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFdmVudExvb3BJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVNuYXBzaG90dGlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdF
QkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGcmFtZVNuYXBzaG90dGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTQzODUsNyArMTQzOTEsNiBAQAogCQlDRTI4NDk4ODFDQTM2MTQ2MDBCNEE1N0YgLyogQ29udGVu
dFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBw
YXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1Q0IxQjMxNEVEQUI2RjAwQkIyNzk1IC8qIEV2ZW50
U2VuZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50U2VuZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3QUFDRTBBRDg5QjNERCAv
KiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWF0aE1MTWVuY2xvc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CURGN0U5QTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4
OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTZEQURGODFDNTkxRTZBMDAz
RjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycy5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTc5OUY5NTFDNkE0NkJDMDA5N0I1MTgg
LyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsg
cGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDgyLDYgKzE0NDg3LDcgQEAKIAkJRDNGM0QzNjIxQTY5
QjE5MDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNGM0QzNjUxQTY5QjFBNTAwNTlGQzJCIC8qIEpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEM0YzRDM2NjFBNjlCMUE1MDA1OUZDMkIgLyogSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlENEY3MkM2
NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2MTlBMzA1MTQ0RTAwQkUwMDRCQzMw
MiAvKiBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlENjE5QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyogQ2hpbGRMaXN0TXV0YXRp
b25TY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGlsZExpc3RNdXRh
dGlvblNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2NDg5RDIzMTY2RkZD
RjEwMDdDMDMxQiAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVGVtcGxhdGVFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTE3LDYgKzE0NTIzLDcgQEAKIAkJREU0OUIzMDcxNjVG
MkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREU0OUIzMDgxNjVGMkZFMTAwMTAzMzhE
IC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURFQzI5NzVEMUI0REVCMkEwMDVGNTk0NSAvKiBKU0N1c3RvbUV2ZW50Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9tRXZl
bnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERjdFOUEyOTRDN0FB
Q0UwQUQ4OUIzREQgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlERjlBRkQ3MDEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURGOUFGRDcxMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTBGRUYzNzFCMDdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291
cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVudFNvdXJjZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA1Miw3ICsxNTA1OSw2IEBACiAJCUY1QzA0MUUyMEZG
Q0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGF0YUxpc3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1RTBDNjU5MTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hvb3Nlck9u
bHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjVBMTY0M0M0MkMwMEQ2Q0I2OSAvKiBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MUGFk
ZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRo
TUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjc1QTA1
OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmZy
YW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRjkxNkM0OEIw
REI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA2Myw4ICsxNTA2
OSw2IEBACiAJCUY5RjBFRDc4MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2MzExMDhB
QkI3MDAyNjE1RTAgLyogbWF0aG1sLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gbWF0
aG1sLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjcxMTA4QUJFMjAw
MjYxNUUwIC8qIG1hdGhhdHRycy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRoYXR0cnMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVF
MCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1h
dGhNTFRleHRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1hdGhNTFRleHRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2
NTRBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUZBNkU0NjZGQ0QwNDE4QTk5NjZBNUI2MCAvKiBETlNSZXNvbHZlUXVl
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE5TUmVzb2x2ZVF1ZXVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODE3Myw2ICsxODE3Nyw3IEBACiAJCTY1
QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzY4OEFBMjFEMzgxMjZGMDAwQjU0RkEgLyogU29ja2V0
UHJvdmlkZXIuY3BwICovLAogCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJGNjA4OCAvKiBhbmltYXRp
b24gKi8sCiAJCQkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNvY29hICovLAogCQkJCUNF
MTdBRDE0MUM1ODUyMkYwMDVGNDc5OSAvKiBjc3AgKi8sCkBAIC0xOTkwNSw2ICsxOTkxMCw3IEBA
CiAJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3ZWJzb2NrZXRzICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzY4OEFBMDFEMzgwNTA5MDAwQjU0
RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwICovLAogCQkJCTk3QUFCQ0Y4MTRG
QTA5RDUwMDc0NTdBRSAvKiBDbG9zZUV2ZW50LmggKi8sCiAJCQkJOTdBQUJDRjkxNEZBMDlENTAw
NzQ1N0FFIC8qIENsb3NlRXZlbnQuaWRsICovLAogCQkJCTk3QUFCQ0ZDMTRGQTA5RDUwMDc0NTdB
RSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oICovLApAQCAtMjk5MTcsNiArMjk5MjMs
NyBAQAogCQkJCTg1QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRCRDUxMDQ0QTAxRTAwRUFFQjUyIC8qIERPTVBhZ2VU
cmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUNFNTNFNzBBOEQxOEU3MDAy
Mjk0N0QgLyogRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDNjg4QUExMUQzODBC
RjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTU0ODgxODE0RTQzMkExMDA2QUUwNUEgLyogRE9NUGF0Y2hTdXBwb3J0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJENTAwMkY4MUI1NkQ3ODEwMDIwQUFGNyAvKiBET01QYXRoLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVCMEQ3NDVFMkIwMDY0NDJFOSAvKiBET01QbHVn
aW4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDc3MCw2ICszMDc3Nyw3IEBACiAJCQkJQ0RBOThF
MDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTTWVkaWFLZXlzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBKU01lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzNDMzlCNjBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNUM2ODhBQTMxRDM4MTRCRjAwMEI1NEZBIC8qIFNvY2tldFBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAv
KiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNTM0M0ZDMTdCNzRC
NjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzkwMjZCNjUxQjFDRjVGRTAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODY0LDcgKzg2
NCw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdlKCkKICAgICBpZiAobV9v
dmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJuIG1fb3ZlcmxheVBhZ2UuZ2V0KCk7CiAKLSAgICBQ
YWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPEVtcHR5RWRp
dG9yQ2xpZW50PigpLCBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CisgICAgUGFnZUNv
bmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxFbXB0eUVkaXRvckNs
aWVudD4oKSwgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsKICAgICBmaWxsV2l0aEVtcHR5Q2xp
ZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgbV9vdmVybGF5UGFnZSA9IHN0ZDo6bWFrZV91
bmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcg
KzQ1LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1l
c3BhY2UuaCIKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKLSNpbmNsdWRl
ICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50UHJv
dmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtMjY0LDEwICsy
NjMsNSBAQCB2b2lkIEVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwCiB2b2lkIEVt
cHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKFBhc3NSZWZQdHI8VW5kb1N0ZXA+KQog
ewogfQotICAgIAotUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBFbXB0eVNvY2tl
dFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JikKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KIAog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gMjAzMjIz
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkp
CkBAIC02NDYsMTMgKzY0Niw2IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQg
ZmluYWwKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkgb3ZlcnJpZGUg
eyB9CiB9OwogCi1jbGFzcyBFbXB0eVNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFNvY2tl
dFByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5FbXB0eVNvY2tldFByb3ZpZGVyKCkg
eyB9Ci0gICAgc3RhdGljIFJlZjxFbXB0eVNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IEVtcHR5U29ja2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVmUHRyPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50Jikgb3ZlcnJpZGU7Ci19OwotCiB2
b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0aW9uJik7CiAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U29ja2V0UHJvdmlkZXIuaCIKKworI2lmIEVOQUJMRShXRUJfU09DS0VUUykKKworI2luY2x1ZGUg
IlNvY2tldFN0cmVhbUhhbmRsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitSZWY8
U29ja2V0U3RyZWFtSGFuZGxlPiBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFu
ZGxlKGNvbnN0IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgTmV0
d29ya2luZ0NvbnRleHQmIGNvbnRleHQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0
dXJuIFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKHVybCwgY2xpZW50LCBjb250ZXh0LCBzZXNz
aW9uSUQpOworfQorICAgIAorfQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9TT0NLRVRTKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU29ja2V0UHJvdmlkZXIuaAkocmV2aXNpb24gMjAzMjIzKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSwxOCArMjUsMjIgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIK
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw7Ci1jbGFzcyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OworY2xhc3MgU29ja2V0U3Ry
ZWFtSGFuZGxlOworY2xhc3MgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50OworY2xhc3MgVVJMOwog
Ci1jbGFzcyBTb2NrZXRQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTb2Nr
ZXRQcm92aWRlcj4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQgU29ja2V0UHJvdmlkZXIgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U29ja2V0UHJvdmlkZXI+IHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIFJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0
Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYp
ID0gMDsKKyAgICBzdGF0aWMgUmVmPFNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFNvY2tldFByb3ZpZGVyKTsgfQorICAgIHZpcnR1YWwgUmVmPFNvY2tldFN0
cmVhbUhhbmRsZT4gY3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0
cmVhbUhhbmRsZUNsaWVudCYsIE5ldHdvcmtpbmdDb250ZXh0JiwgU2Vzc2lvbklEKTsKICAgICB2
aXJ0dWFsIH5Tb2NrZXRQcm92aWRlcigpIHsgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAko
cmV2aXNpb24gMjAzMjI1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtU2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DbG9zZSgpOwogCi0gICAgU29ja2V0
U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIE5ldHdv
cmtpbmdDb250ZXh0JiwgU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJl
YW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgTmV0d29ya2lu
Z0NvbnRleHQmLCBTZXNzaW9uSUQpOwogICAgIHZvaWQgY3JlYXRlU3RyZWFtcygpOwogICAgIHZv
aWQgc2NoZWR1bGVTdHJlYW1zKCk7CiAgICAgdm9pZCBjaG9vc2VQcm94eSgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCShyZXZpc2lvbiAyMDMyMjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zODAsNyArMzgwLDcgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxE
YXRhUgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpIHsK
LSAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJl
ZjxFbXB0eUVkaXRvckNsaWVudD4oKSwgRW1wdHlTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOwor
ICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVm
PEVtcHR5RWRpdG9yQ2xpZW50PigpLCBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOwogICAgICAg
ICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgICAgIG1fY2hy
b21lQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdJbWFnZUNocm9tZUNsaWVudD4odGhpcyk7
CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50
LmdldCgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDctMTQg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBV
c2UgU29ja2V0UHJvdmlkZXIgdG8gY3JlYXRlIFNvY2tldFN0cmVhbUhhbmRsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTc3NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0UHJv
dmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaDoKKwogMjAxNi0wNy0xNCAg
SHl1bmp1biBLbyAgPHp6b29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1RocmVhZGVkQ29tcG9z
aXRvcl0gQnVpbGQgZmFpbHMgaW4gZGVidWcgbW9kZSBhZnRlciByMjAyMDQwCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92
aWRlci5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFN0cmVh
bUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsQ2xpZW50Lmg+CkBAIC00OCwyMSArNDks
MTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1z
dGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRDaGFubmVsTW9kZVtdID0gIndlYlNvY2tldENoYW5u
ZWxNb2RlIjsKLQotUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBXZWJTb2NrZXRQ
cm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQpCitSZWY8U29ja2V0U3RyZWFt
SGFuZGxlPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0
IFVSTCYgdXJsLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmIGNsaWVudCwgTmV0d29ya2luZ0Nv
bnRleHQmIGNvbnRleHQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIHJldHVybiBhIHByb3h5IHNvIHdlIGNhbiBkbyB0aGUgYWN0dWFsIG5ldHdvcmsg
aW50ZXJhY3Rpb25zIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KLSAgICBpZiAoaXM8V29ya2VyR2xv
YmFsU2NvcGU+KGNvbnRleHQpKSB7Ci0gICAgICAgIFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJH
bG9iYWxTY29wZSA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKLSAgICAg
ICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IHdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLnJ1
bkxvb3AoKTsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBtb2RlOwotICAgICAgICBtb2RlLmFwcGVu
ZExpdGVyYWwod2ViU29ja2V0Q2hhbm5lbE1vZGUpOwotICAgICAgICBtb2RlLmFwcGVuZE51bWJl
cihydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOwotICAgICAgICByZXR1cm4gV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50LCBt
b2RlLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIHJldHVybiBXZWJTb2NrZXRDaGFubmVsOjpj
cmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBjbGllbnQpOworICAgIHJldHVybiBT
b2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZSh1cmwsIGNsaWVudCwgY29udGV4dCwgc2Vzc2lvbklE
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaAkocmV2aXNpb24g
MjAzMjIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiBjbGFzcyBXZWJTb2NrZXRQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTb2Nr
ZXRQcm92aWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJTb2NrZXRQcm92aWRlcj4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2NrZXRQcm92aWRlcik7IH0KLSAg
ICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZVdlYlNv
Y2tldENoYW5uZWwoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsKKyAgICBSZWY8V2ViQ29yZTo6U29ja2V0
U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgV2ViQ29yZTo6VVJM
JiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgV2ViQ29yZTo6TmV0d29ya2lu
Z0NvbnRleHQmLCBXZWJDb3JlOjpTZXNzaW9uSUQpIGZpbmFsOwogICAgIHZpcnR1YWwgfldlYlNv
Y2tldFByb3ZpZGVyKCkgeyB9CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMjMwKQor
KysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAxNi0wNy0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFVzZSBTb2NrZXRQcm92aWRlciB0byBjcmVhdGUgU29ja2V0U3RyZWFtSGFu
ZGxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5
Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNi0wNy0xMiAgUGVyIEFy
bmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRml4IGZvciBi
dWlsZCBlcnJvciB3aGVuIHRyeWluZyB0byB2ZXJzaW9uIHN0YW1wIGRsbC4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9Q
bGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdC9QbGF0
Zm9ybU1hYy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw2IEBAIGxpc3QoQVBQ
RU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgbWFjL01pc2MvV2ViTlNWaWV3RXh0cmFzLm0KICAgICBt
YWMvTWlzYy9XZWJOU1dpbmRvd0V4dHJhcy5tCiAgICAgbWFjL01pc2MvV2ViU2hhcmluZ1NlcnZp
Y2VQaWNrZXJDb250cm9sbGVyLm1tCi0gICAgbWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIubW0K
ICAgICBtYWMvTWlzYy9XZWJTdHJpbmdUcnVuY2F0b3IubW0KICAgICBtYWMvTWlzYy9XZWJVc2Vy
Q29udGVudFVSTFBhdHRlcm4ubW0KIApJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5j
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCShyZXZp
c2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTUsNyArMTk1LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVNfQ2xh
c3NlcwogICAgIHdpbi9XZWJTY3JpcHRXb3JsZC5jcHAKICAgICB3aW4vV2ViU2VjdXJpdHlPcmln
aW4uY3BwCiAgICAgd2luL1dlYlNlcmlhbGl6ZWRKU1ZhbHVlLmNwcAotICAgIHdpbi9XZWJTb2Nr
ZXRQcm92aWRlci5jcHAKICAgICB3aW4vV2ViVGV4dFJlbmRlcmVyLmNwcAogICAgIHdpbi9XZWJV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5jcHAKICAgICB3aW4vV2ViVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VTZW5kZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0
Nyw5ICsxNDcsNyBAQAogCQk1OThBRDkyODEyMDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07CiAJCTU5OEFEOTJBMTIwMUNGM0IwMEFCQUU0RSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyOTEyMDFDRjNCMDBBQkFF
NEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oICovOyB9Owog
CQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4QURB
NDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1Qzc3MDY3MDFE
MTExQjAyMDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY2RjFEMTExQjAyMDAxMjcwMEYgLyog
V2ViU29ja2V0UHJvdmlkZXIubW0gKi87IH07CiAJCTVDNzcwNjcyMUQxMTFCMjIwMDEyNzAwRiAv
KiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29t
cGF0aWJpbGl0eS5oICovOyB9OwotCQk1QzdDODhEQTFEMEYzQkYyMDA5RDJGNkQgLyogV2ViU29j
a2V0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDN0M4OEQ5MUQwRjNCRjIwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovOyB9
OwogCQk1RDdCRjgxNDBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDdCRjgxMjBDMkExRDkwMDA4
Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNUQ3QkY4MTUwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rv
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JG
ODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IubW0gKi87IH07CiAJCTVERTgzQTdB
MEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3
Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm5pYiAqLzsgfTsKQEAg
LTY1MSw5ICs2NDksNyBAQAogCQk1OThBRDkyNzEyMDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QUQ5MjkxMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OThBREE0NTEyMDIyNzUwMDBBQkFFNEUgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTVDNzcwNjZGMUQxMTFCMDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlNvY2tldFBy
b3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzc3MDY3MTFEMTExQjIy
MDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21wYXRpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTVDN0M4OEQ5MUQwRjNCRjIwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRQcm92aWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQg
LyogV2ViSW5zcGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJ
bnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ3QkY4MTMwQzJBMUQ5
MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVERTgzQTc1MEQwRjdGOTQwMENBRDEyQSAvKiBFbmdsaXNoICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5uaWI7IG5hbWUgPSBFbmds
aXNoOyBwYXRoID0gRW5nbGlzaC5scHJvai9XZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmli
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0xMDk4LDggKzEwOTQsNiBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1Qzc3MDY3MTFEMTExQjIyMDAx
MjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICovLAotCQkJCTVDNzcwNjZGMUQxMTFC
MDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5tbSAqLywKLQkJCQk1QzdDODhEOTFEMEYz
QkYyMDA5RDJGNkQgLyogV2ViU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJCQlBMTBDMUQyMDE4MjAy
RkFGMDAzNjg4M0EgLyogaW9zICovLAogCQkJCTFDQ0ZGRDEyMEIxRjgxRjIwMDJFRTkyNiAvKiBP
bGRXZWJBc3NlcnRpb25zLmMgKi8sCiAJCQkJMjlBRUY5NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91
dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICovLApAQCAtMTgwNiw3ICsxODAwLDYgQEAKIAkJCQk5
Mzk4MTA1MzA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzOTgxMDlDMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZUludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTBDMUQ2QjE4MjAzMDBFMDAzNjg4M0EgLyogV2ViRnJhbWVJT1MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTVDN0M4OERBMUQwRjNCRjIwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENkQxODIwMzAwRTAwMzY4ODNBIC8qIFdl
YkZyYW1lSVBob25lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4MTA1QjA4MjRCRjAxMDA4REYw
MzggLyogV2ViRnJhbWVMb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMwQjg4RThC
MTBBMDhGM0QwMEZCQjNGNSAvKiBXZWJGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjI3OCw3ICsyMjcxLDYgQEAKIAkJCQkxQzBENDA4ODBBQzFDOEY0MDAwOUMx
MTMgLyogV2ViS2l0VmVyc2lvbkNoZWNrcy5tIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1Qjk1MjQx
MTFCNzI1QTAwNDcyMjk4IC8qIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDNDJEMzREMTMxRUQzODgwMDc1RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJ
bnRlcm5hbC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTVDNzcwNjcwMUQxMTFCMDIwMDEyNzAwRiAv
KiBXZWJTb2NrZXRQcm92aWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4
NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTEwQzFENzMxODIwMzAwRTAwMzY4ODNBIC8qIFdlYk1JTUVUeXBlUmVnaXN0cnku
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RjYyODEwNzEyQjk3MDA3QUEzOTMgLyogV2ViTmF2
aWdhdGlvbkRhdGEubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwMzIyOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0
ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIE1pc2MvV2ViU29ja2V0UHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25X
aXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxl
SFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwog
MjAxNi0wNy0xMyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IG1vcmUgY2FuZGlkYXRlIHRlc3RzCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNv
Y2tldFByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJT
b2NrZXRQcm92aWRlci5oCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYlNvY2tldFByb3ZpZGVyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbXBvcnQgPFdlYkNvcmUvU29ja2V0UHJvdmlk
ZXIuaD4KLQotY2xhc3MgV2ViU29ja2V0UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
U29ja2V0UHJvdmlkZXIgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0UHJvdmlk
ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0UHJvdmlkZXIpOyB9
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVX
ZWJTb2NrZXRDaGFubmVsKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsQ2xpZW50Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB+V2ViU29j
a2V0UHJvdmlkZXIoKSB7IH0KLX07CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNv
Y2tldFByb3ZpZGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
U29ja2V0UHJvdmlkZXIubW0JKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViU29ja2V0UHJvdmlkZXIubW0JKG5vbmV4aXN0ZW50KQpAQCAtMSw2NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEyIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgIldlYlNvY2tldFByb3ZpZGVyLmgiCi0KLSNpZiBFTkFCTEUoV0VCX1NP
Q0tFVFMpCi0KLSNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvV2ViU29ja2V0
Q2hhbm5lbC5oPgotI2ltcG9ydCA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsQ2xpZW50Lmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1dvcmtlckdsb2JhbFNjb3BlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dv
cmtlclJ1bkxvb3AuaD4KLSNpbXBvcnQgPFdlYkNvcmUvV29ya2VyVGhyZWFkLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg+Ci0jaW1wb3J0IDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1z
dGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRDaGFubmVsTW9kZVtdID0gIndlYlNvY2tldENoYW5u
ZWxNb2RlIjsKLQotUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBXZWJTb2NrZXRQ
cm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQpCi17Ci0gICAgaWYgKGlzPFdv
cmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgewotICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSYg
d29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7
Ci0gICAgICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSB3b3JrZXJHbG9iYWxTY29wZS50aHJl
YWQoKS5ydW5Mb29wKCk7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgbW9kZTsKLSAgICAgICAgbW9k
ZS5hcHBlbmRMaXRlcmFsKHdlYlNvY2tldENoYW5uZWxNb2RlKTsKLSAgICAgICAgbW9kZS5hcHBl
bmROdW1iZXIocnVuTG9vcC5jcmVhdGVVbmlxdWVJZCgpKTsKLSAgICAgICAgcmV0dXJuIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNs
aWVudCwgbW9kZS50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gV2ViU29ja2V0Q2hh
bm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgY2xpZW50KTsKLX0KLQot
I2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIubW0KX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVk
OiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZp
c2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEwMCw3ICsxMDAsNiBAQAogI2ltcG9ydCAiV2ViU2NyaXB0RGVidWdE
ZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViU2NyaXB0V29ybGRJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2ViU2VsZWN0aW9uU2VydmljZUNvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldlYlNvY2tldFByb3Zp
ZGVyLmgiCiAjaW1wb3J0ICJXZWJTdG9yYWdlTWFuYWdlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
ZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFj
ZS5oIgpAQCAtMTc5LDYgKzE3OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVzb3Vy
Y2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CkBAIC05OTYsNyAr
OTk2LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYQogICAgIF9w
cml2YXRlLT5ncm91cCA9IFdlYlZpZXdHcm91cDo6Z2V0T3JDcmVhdGUoZ3JvdXBOYW1lLCBfcHJp
dmF0ZS0+cHJlZmVyZW5jZXMuX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCk7CiAgICAgX3ByaXZh
dGUtPmdyb3VwLT5hZGRXZWJWaWV3KHNlbGYpOwogCi0gICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFn
ZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHNlbGYpLCBXZWJT
b2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25m
aWd1cmF0aW9uKG1ha2VVbmlxdWVSZWY8V2ViRWRpdG9yQ2xpZW50PihzZWxmKSwgU29ja2V0UHJv
dmlkZXI6OmNyZWF0ZSgpKTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQo
c2VsZik7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQCAtIChpZClpbml0U2ltcGxlSFRNTERvY3VtZW50
V2l0aFN0eWxlOihOCiAgICAgX3ByaXZhdGUtPmdyb3VwID0gV2ViVmlld0dyb3VwOjpnZXRPckNy
ZWF0ZShncm91cE5hbWUsIF9wcml2YXRlLT5wcmVmZXJlbmNlcy5fbG9jYWxTdG9yYWdlRGF0YWJh
c2VQYXRoKTsKICAgICBfcHJpdmF0ZS0+Z3JvdXAtPmFkZFdlYlZpZXcoc2VsZik7CiAKLSAgICBQ
YWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPFdlYkVkaXRv
ckNsaWVudD4oc2VsZiksIFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CisgICAgUGFnZUNv
bmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGll
bnQ+KHNlbGYpLCBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOwogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnRJT1Moc2VsZik7CiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3
IFdlYkRyYWdDbGllbnQoc2VsZik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDMy
MjMpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0wNy0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBTb2NrZXRQcm92aWRlciB0byBjcmVhdGUgU29ja2V0
U3RyZWFtSGFuZGxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU5Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJTb2NrZXRQcm92aWRlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViU29j
a2V0UHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDogUmVwbGFjZWQg
V2ViU29ja2V0UHJvdmlkZXIgd2l0aCBTb2NrZXRQcm92aWRlciBhcyB3ZSBkaWQgaW4gV2ViQ29y
ZS4KKwogMjAxNi0wNy0xMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3Zp
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJTb2NrZXRQcm92aWRl
ci5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFBy
b3ZpZGVyLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3Ry
aWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCi0KLSNpZiBFTkFCTEUo
V0VCX1NPQ0tFVFMpCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1dlYlNvY2tldENoYW5uZWwuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxD
bGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlckdsb2JhbFNjb3BlLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9Xb3JrZXJSdW5Mb29wLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJUaHJl
YWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotc3RhdGljIGNvbnN0IGNoYXIgd2ViU29ja2V0Q2hhbm5lbE1vZGVbXSA9
ICJ3ZWJTb2NrZXRDaGFubmVsTW9kZSI7Ci0KLVJlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbD4gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50KQot
ewotICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpIHsKLSAgICAgICAgV29y
a2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFs
U2NvcGU+KGNvbnRleHQpOwotICAgICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wID0gd29ya2Vy
R2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpOwotICAgICAgICBTdHJpbmdCdWlsZGVyIG1v
ZGU7Ci0gICAgICAgIG1vZGUuYXBwZW5kTGl0ZXJhbCh3ZWJTb2NrZXRDaGFubmVsTW9kZSk7Ci0g
ICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSk7Ci0gICAg
ICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtl
ckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUudG9TdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgcmV0
dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCks
IGNsaWVudCk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJTb2NrZXRQcm92aWRlci5jcHAKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJTb2Nr
ZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFBy
b3ZpZGVyLmgJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tl
dFByb3ZpZGVyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+Ci0KLWNs
YXNzIFdlYlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNvY2tldFByb3Zp
ZGVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVyPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQotICAgIFJlZlB0
cjxXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hh
bm5lbChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbENsaWVudCYpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVy
KCkgeyB9Ci19OwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysr
IFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCisjaW5jbHVkZSAiU29ja2V0UHJv
dmlkZXIuaCIKICNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgogI2luY2x1ZGUgIlN1YmZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC02OSw3ICs3MCw2IEBACiAjaW5j
bHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRXb3JsZC5oIgotI2luY2x1ZGUgIldlYlNvY2tldFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5j
bHVkZSAiV2ViVmlld0dyb3VwLmgiCiAjaW5jbHVkZSAiV2ViVmlzaXRlZExpbmtTdG9yZS5oIgpA
QCAtMjkyMyw3ICsyOTIzLDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1Qg
ZnJhbQogCiAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRo
aXMpOwogCi0gICAgUGFnZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVm
PFdlYkVkaXRvckNsaWVudD4odGhpcyksIFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7Cisg
ICAgUGFnZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPFdlYkVkaXRv
ckNsaWVudD4odGhpcyksIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CiAgICAgY29uZmlndXJh
dGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwogICAgIGNvbmZp
Z3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhp
cyk7CiAgICAgY29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhp
cyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283678</attachid>
            <date>2016-07-14 13:55:53 -0700</date>
            <delta_ts>2016-07-14 14:16:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159774-20160714135506.patch</filename>
            <type>text/plain</type>
            <size>82485</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzIyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tl
dFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3VyLgorICAgICAgICAKKyAgICAgICAgSW4gcjIwMjkzMCBJIGludHJvZHVjZWQg
dGhlIFNvY2tldFByb3ZpZGVyLCBidXQgSSB1c2VkIGl0IHRvIG1ha2UgYSBXZWJTb2NrZXRDaGFu
bmVsCisgICAgICAgIGluc3RlYWQgb2YgYSBTb2NrZXRTdHJlYW1IYW5kbGUsIHdoaWNoIGlzIHRo
ZSBjbGFzcyBJIHdhbnQgdG8gbWFrZSBpbnRvIGFuIGludGVyZmFjZQorICAgICAgICBhbmQgcHJv
eHkgdGhlIHdlYiB0cmFmZmljIG92ZXIgdG8gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgSSByZW1vdmVkIHRoaXMgaW4g
MjAyOTMwLCBzbyB0aGlzIGlzIHJlc3RvcmluZyBpdCBmcm9tIHRoYXQgcGF0Y2gsIGhlbmNlIHRo
ZSBvbGQgY29weXJpZ2h0LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5l
bCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJy
aWRnZTo6QnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6On5CcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRn
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Om92
ZXJsYXlQYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwpOiBE
ZWxldGVkLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdl
L1NvY2tldFByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKiBwYWdlL1NvY2tldFBy
b3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRQcm92aWRlcjo6flNvY2tldFByb3Zp
ZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorCiAyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBTZXNz
aW9uSUQgdG8gV2ViU29ja2V0SGFuZGxlIGNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMzIsNiArMTAzMiw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCiAg
ICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN0YXRlTWFjaGluZS5jcHAKIAor
ICAgIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKICAg
ICBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmNwcAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCiAgICAgTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMDUzLDYgKzIwNTQsNyBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCiAgICAg
cGFnZS9TZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL1NldHRpbmdzLmNwcAorICAgIHBhZ2Uv
U29ja2V0UHJvdmlkZXIuY3BwCiAgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKICAgICBw
YWdlL1N1c3BlbmRhYmxlVGltZXIuY3BwCiAgICAgcGFnZS9UZXh0SW5kaWNhdG9yLmNwcApJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSwgMjAxMiBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCisjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5oIgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWwuaCIKKyNpbmNsdWRl
ICJXZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUu
aCIKKyNpbmNsdWRlICJXb3JrZXJSdW5Mb29wLmgiCisjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgi
CisjaW5jbHVkZSAiV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYgcHJvdmlk
ZXIpCit7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgeworICAgICAg
ICBXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxXb3JrZXJH
bG9iYWxTY29wZT4oY29udGV4dCk7CisgICAgICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSB3
b3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5ydW5Mb29wKCk7CisgICAgICAgIHJldHVybiBXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBj
bGllbnQsIG1ha2VTdHJpbmcoIndlYlNvY2tldENoYW5uZWxNb2RlIiwgU3RyaW5nOjpudW1iZXIo
cnVuTG9vcC5jcmVhdGVVbmlxdWVJZCgpKSksIHByb3ZpZGVyKTsKKyAgICB9CisKKyAgICByZXR1
cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwg
Y2xpZW50LCBwcm92aWRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJfU09DS0VUUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
CShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTEgKzQ1
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2I7CiBjbGFzcyBVUkw7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFzcyBX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50OwogCiBjbGFzcyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwp
OwogcHVibGljOgorICAgIHN0YXRpYyBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYsIFNv
Y2tldFByb3ZpZGVyJik7CiAgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoKSB7IH0KIAog
ICAgIGVudW0gU2VuZFJlc3VsdCB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1NSwxMCArMjU1LDEwIEBAIHZvaWQgV2ViU29ja2V0Ojpjb25uZWN0KGNvbnN0IFN0cmluZyYg
dXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChhdXRvIHNvY2tldFByb3ZpZGVy
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zb2NrZXRQcm92aWRlcigpKQotICAgICAgICBt
X2NoYW5uZWwgPSBzb2NrZXRQcm92aWRlci0+Y3JlYXRlV2ViU29ja2V0Q2hhbm5lbCgqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcyk7CisgICAgaWYgKGF1dG8qIHByb3ZpZGVyID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zb2NrZXRQcm92aWRlcigpKQorICAgICAgICBtX2NoYW5u
ZWwgPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICp0aGlzLCAqcHJvdmlkZXIpOwogCi0gICAgLy8gT25seSBhbiBFbXB0eVNvY2tl
dFByb3ZpZGVyIGNhbiByZXR1cm4gbnVsbHB0ciwgYW5kIGV2ZXJ5IFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgc2hvdWxkIGhhdmUgYSBTb2NrZXRQcm92aWRlci4KKyAgICAvLyBFdmVyeSBTY3JpcHRF
eGVjdXRpb25Db250ZXh0IHNob3VsZCBoYXZlIGEgU29ja2V0UHJvdmlkZXIuCiAgICAgUkVMRUFT
RV9BU1NFUlQobV9jaGFubmVsKTsKIAogICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBhIGRpc2FncmVl
bWVudCBhYm91dCByZXN0cmljdGlvbiBvZiBzdWJwcm90b2NvbHMgYmV0d2VlbiBXZWJTb2NrZXQg
QVBJIGFuZCBoeWJpLTEwIHByb3RvY29sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCShyZXZpc2lvbiAyMDMy
MjUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIlNv
Y2tldFN0cmVhbUVycm9yLmgiCiAjaW5jbHVkZSAiU29ja2V0U3RyZWFtSGFuZGxlLmgiCiAjaW5j
bHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgpAQCAtNjQsMTEgKzY1LDEyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZG91YmxlIFRDUE1heGltdW1TZWdtZW50TGlmZXRpbWUg
PSAyICogNjAuMDsKIAotV2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5lbChEb2N1bWVu
dCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkKK1dlYlNvY2tldENo
YW5uZWw6OldlYlNvY2tldENoYW5uZWwoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50JiBjbGllbnQsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikKICAgICA6IG1fZG9j
dW1lbnQoJmRvY3VtZW50KQogICAgICwgbV9jbGllbnQoJmNsaWVudCkKICAgICAsIG1fcmVzdW1l
VGltZXIoKnRoaXMsICZXZWJTb2NrZXRDaGFubmVsOjpyZXN1bWVUaW1lckZpcmVkKQogICAgICwg
bV9jbG9zaW5nVGltZXIoKnRoaXMsICZXZWJTb2NrZXRDaGFubmVsOjpjbG9zaW5nVGltZXJGaXJl
ZCkKKyAgICAsIG1fc29ja2V0UHJvdmlkZXIocHJvdmlkZXIpCiB7CiAgICAgaWYgKFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCkpCiAgICAgICAgIG1faWRlbnRpZmllciA9IHBhZ2UtPnByb2dy
ZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwpAQCAtOTgsNyArMTAwLDcgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTAogICAgICAgICAgICAgcmVmKCk7CiAg
ICAgICAgICAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKICAgICAgICAgICAgIFNlc3Np
b25JRCBzZXNzaW9uSUQgPSBwYWdlID8gcGFnZS0+c2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKTsKLSAgICAgICAgICAgIG1faGFuZGxlID0gU29ja2V0U3RyZWFtSGFu
ZGxlOjpjcmVhdGUobV9oYW5kc2hha2UtPnVybCgpLCAqdGhpcywgKm5ldHdvcmtpbmdDb250ZXh0
LCBzZXNzaW9uSUQpOworICAgICAgICAgICAgbV9oYW5kbGUgPSBtX3NvY2tldFByb3ZpZGVyLT5j
cmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUobV9oYW5kc2hha2UtPnVybCgpLCAqdGhpcywgKm5ldHdv
cmtpbmdDb250ZXh0LCBzZXNzaW9uSUQpOwogICAgICAgICB9CiAgICAgfQogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEJsb2I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZp
bGVSZWFkZXJMb2FkZXI7CitjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFNvY2tldFN0cmVh
bUhhbmRsZTsKIGNsYXNzIFNvY2tldFN0cmVhbUVycm9yOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5l
bENsaWVudDsKQEAgLTU4LDcgKzU5LDcgQEAgY2xhc3MgV2ViU29ja2V0Q2hhbm5lbCA6IHB1Ymxp
YyBSZWZDb3VudAogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
V2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YlNvY2tldENoYW5uZWwoZG9jdW1lbnQsIGNsaWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxXZWJT
b2NrZXRDaGFubmVsPiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50JiBjbGllbnQsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJTb2NrZXRDaGFubmVsKGRvY3VtZW50LCBjbGllbnQsIHByb3ZpZGVyKSk7IH0K
ICAgICB2aXJ0dWFsIH5XZWJTb2NrZXRDaGFubmVsKCk7CiAKICAgICBib29sIHNlbmQoY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCk7CkBAIC0xMTksNyArMTIwLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgZGVyZWZUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQogCiBwcml2YXRlOgotICAgIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5uZWwo
RG9jdW1lbnQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50Jik7CisgICAgV0VCQ09SRV9FWFBPUlQg
V2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCYsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmLCBTb2Nr
ZXRQcm92aWRlciYpOwogCiAgICAgYm9vbCBhcHBlbmRUb0J1ZmZlcihjb25zdCBjaGFyKiBkYXRh
LCBzaXplX3QgbGVuKTsKICAgICB2b2lkIHNraXBCdWZmZXIoc2l6ZV90IGxlbik7CkBAIC0yMTMs
NiArMjE0LDcgQEAgcHJpdmF0ZToKICAgICBCbG9iTG9hZGVyU3RhdHVzIG1fYmxvYkxvYWRlclN0
YXR1cyB7IEJsb2JMb2FkZXJOb3RTdGFydGVkIH07CiAKICAgICBXZWJTb2NrZXREZWZsYXRlRnJh
bWVyIG1fZGVmbGF0ZUZyYW1lcjsKKyAgICBSZWY8U29ja2V0UHJvdmlkZXI+IG1fc29ja2V0UHJv
dmlkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJCbG9i
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCisjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFu
bmVsLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgpAQCAtNTAsMTAgKzUx
LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKFdvcmtlckdsb2JhbFNj
b3BlJiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmlu
ZyYgdGFza01vZGUpCitXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0
UHJvdmlkZXImIHByb3ZpZGVyKQogICAgIDogbV93b3JrZXJHbG9iYWxTY29wZShjb250ZXh0KQog
ICAgICwgbV93b3JrZXJDbGllbnRXcmFwcGVyKFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcjo6Y3JlYXRlKGNvbnRleHQsIGNsaWVudCkpCi0gICAgLCBtX2JyaWRnZShCcmlk
Z2U6OmNyZWF0ZShtX3dvcmtlckNsaWVudFdyYXBwZXIuY29weVJlZigpLCBtX3dvcmtlckdsb2Jh
bFNjb3BlLmNvcHlSZWYoKSwgdGFza01vZGUpKQorICAgICwgbV9icmlkZ2UoQnJpZGdlOjpjcmVh
dGUobV93b3JrZXJDbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgbV93b3JrZXJHbG9iYWxTY29wZS5j
b3B5UmVmKCksIHRhc2tNb2RlLCBwcm92aWRlcikpCisgICAgLCBtX3NvY2tldFByb3ZpZGVyKHBy
b3ZpZGVyKQogewogICAgIG1fYnJpZGdlLT5pbml0aWFsaXplKCk7CiB9CkBAIC0xNDAsMTAgKzE0
MiwxMCBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpyCiAgICAgICAg
IG1fYnJpZGdlLT5yZXN1bWUoKTsKIH0KIAotV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OlBlZXI6OlBlZXIoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4mJiBjbGllbnRXcmFwcGVyLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCitXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6UGVlcihSZWY8VGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBwZXIsIFdvcmtlckxvYWRl
clByb3h5JiBsb2FkZXJQcm94eSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVyKQogICAgIDogbV93
b3JrZXJDbGllbnRXcmFwcGVyKFdURk1vdmUoY2xpZW50V3JhcHBlcikpCiAgICAgLCBtX2xvYWRl
clByb3h5KGxvYWRlclByb3h5KQotICAgICwgbV9tYWluV2ViU29ja2V0Q2hhbm5lbChXZWJTb2Nr
ZXRDaGFubmVsOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCAqdGhpcykpCisg
ICAgLCBtX21haW5XZWJTb2NrZXRDaGFubmVsKFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCksICp0aGlzLCBwcm92aWRlcikpCiAgICAgLCBtX3Rhc2tN
b2RlKHRhc2tNb2RlKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0zMjksMTIg
KzMzMSwxMiBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQCiAgICAg
fSwgbV90YXNrTW9kZSk7CiB9CiAKLVdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpC
cmlkZ2U6OkJyaWRnZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
PiYmIHdvcmtlckNsaWVudFdyYXBwZXIsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJH
bG9iYWxTY29wZSwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKK1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpCcmlkZ2U6OkJyaWRnZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyPiYmIHdvcmtlckNsaWVudFdyYXBwZXIsIFJlZjxXb3JrZXJHbG9iYWxT
Y29wZT4mJiB3b3JrZXJHbG9iYWxTY29wZSwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyKQogICAgIDogbV93b3JrZXJDbGllbnRXcmFw
cGVyKFdURk1vdmUod29ya2VyQ2xpZW50V3JhcHBlcikpCiAgICAgLCBtX3dvcmtlckdsb2JhbFNj
b3BlKFdURk1vdmUod29ya2VyR2xvYmFsU2NvcGUpKQogICAgICwgbV9sb2FkZXJQcm94eShtX3dv
cmtlckdsb2JhbFNjb3BlLT50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpKQogICAgICwgbV90
YXNrTW9kZSh0YXNrTW9kZSkKLSAgICAsIG1fcGVlcihudWxscHRyKQorICAgICwgbV9zb2NrZXRQ
cm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKIHsKIH0KIApAQCAtMzQzLDE0ICszNDUs
MTQgQEAgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZQogICAgIGRpc2Nv
bm5lY3QoKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJp
ZGdlOjptYWluVGhyZWFkSW5pdGlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgY2xpZW50V3JhcHBlciwgY29uc3QgU3RyaW5nJiB0YXNr
TW9kZSkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6bWFp
blRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV29ya2Vy
TG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBwZXIsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFJl
ZjxTb2NrZXRQcm92aWRlcj4mJiBwcm92aWRlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEFTU0VSVChjb250ZXh0LmlzRG9jdW1lbnQoKSk7CiAKICAgICBib29sIHNlbnQg
PSBsb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKHsKICAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzazo6Q2xlYW51cFRhc2ssCi0gICAgICAgIFtj
bGllbnRXcmFwcGVyID0gY2xpZW50V3JhcHBlci5jb3B5UmVmKCksICZsb2FkZXJQcm94eSwgcGVl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8UGVlcj4oY2xpZW50V3JhcHBlci5jb3B5UmVmKCksIGxvYWRl
clByb3h5LCBjb250ZXh0LCB0YXNrTW9kZSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIG11dGFibGUgeworICAgICAgICBbY2xpZW50V3JhcHBlciA9IGNsaWVudFdyYXBwZXIuY29w
eVJlZigpLCAmbG9hZGVyUHJveHksIHBlZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBlZXI+KGNsaWVu
dFdyYXBwZXIuY29weVJlZigpLCBsb2FkZXJQcm94eSwgY29udGV4dCwgdGFza01vZGUsIFdURk1v
dmUocHJvdmlkZXIpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9i
YWxTY29wZSgpKTsKICAgICAgICAgICAgIGlmIChjbGllbnRXcmFwcGVyLT5mYWlsZWRXZWJTb2Nr
ZXRDaGFubmVsQ3JlYXRpb24oKSkgewogICAgICAgICAgICAgICAgIC8vIElmIEJyaWRnZTo6aW5p
dGlhbGl6ZSgpIHF1aXR0ZWQgZWFybGllciwgd2UgbmVlZCB0byBraWNrIG1haW5UaHJlYWREZXN0
cm95KCkgdG8gZGVsZXRlIHRoZSBwZWVyLgpAQCAtMzczLDggKzM3NSw4IEBAIHZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkIKICAgICBzZXRNZXRob2ROb3RDb21wbGV0ZWQo
KTsKICAgICBSZWY8QnJpZGdlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAotICAgIG1fbG9hZGVy
UHJveHkucG9zdFRhc2tUb0xvYWRlcihbJmxvYWRlclByb3h5ID0gbV9sb2FkZXJQcm94eSwgd29y
a2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlci5jb3B5UmVmKCksIHRhc2tN
b2RlID0gbV90YXNrTW9kZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkgbXV0YWJsZSB7Ci0gICAgICAgIG1haW5UaHJlYWRJbml0aWFsaXplKGNvbnRleHQs
IGxvYWRlclByb3h5LCBXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIpLCB0YXNrTW9kZSk7Cisg
ICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFsmbG9hZGVyUHJveHkgPSBtX2xvYWRl
clByb3h5LCB3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLmNvcHlS
ZWYoKSwgdGFza01vZGUgPSBtX3Rhc2tNb2RlLmlzb2xhdGVkQ29weSgpLCBwcm92aWRlciA9IG1f
c29ja2V0UHJvdmlkZXIuY29weVJlZigpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZEluaXRpYWxpemUoY29udGV4dCwgbG9hZGVy
UHJveHksIFdURk1vdmUod29ya2VyQ2xpZW50V3JhcHBlciksIHRhc2tNb2RlLCBXVEZNb3ZlKHBy
b3ZpZGVyKSk7CiAgICAgfSk7CiAgICAgd2FpdEZvck1ldGhvZENvbXBsZXRpb24oKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJKHJldmlzaW9uIDIwMzIy
MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw5ICs1Myw5IEBAIGNsYXNz
IFdvcmtlclJ1bkxvb3A7CiBjbGFzcyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiwgcHVi
bGljIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
PiBjcmVhdGUoV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlLCBXZWJTb2NrZXRD
aGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCisgICAgc3RhdGlj
IFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3Bl
JiB3b3JrZXJHbG9iYWxTY29wZSwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBjb25z
dCBTdHJpbmcmIHRhc2tNb2RlLCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bCh3b3JrZXJHbG9iYWxTY29wZSwgY2xpZW50LCB0YXNrTW9kZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCh3b3JrZXJHbG9i
YWxTY29wZSwgY2xpZW50LCB0YXNrTW9kZSwgcHJvdmlkZXIpKTsKICAgICB9CiAgICAgdmlydHVh
bCB+V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoKTsKIApAQCAtNzgsNyArNzgsNyBA
QCBwdWJsaWM6CiAgICAgY2xhc3MgUGVlciA6IHB1YmxpYyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50
IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGVlcik7IFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgUGVlcihSZWY8VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBXb3JrZXJMb2FkZXJQcm94eSYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKTsKKyAgICAgICAgUGVlcihSZWY8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBT
b2NrZXRQcm92aWRlciYpOwogICAgICAgICB+UGVlcigpOwogCiAgICAgICAgIHZvaWQgY29ubmVj
dChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKQEAgLTExOSw5ICsxMTksOSBA
QCBwcml2YXRlOgogICAgIC8vIEJyaWRnZSBmb3IgUGVlci4gIFJ1bm5pbmcgb24gdGhlIHdvcmtl
ciB0aHJlYWQuCiAgICAgY2xhc3MgQnJpZGdlIDogcHVibGljIFJlZkNvdW50ZWQ8QnJpZGdlPiB7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEJyaWRnZT4gY3JlYXRlKFJlZjxUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgd29ya2VyQ2xpZW50V3JhcHBl
ciwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiYmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJp
bmcmIHRhc2tNb2RlKQorICAgICAgICBzdGF0aWMgUmVmPEJyaWRnZT4gY3JlYXRlKFJlZjxUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYgd29ya2VyQ2xpZW50V3JhcHBl
ciwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiYmIHdvcmtlckdsb2JhbFNjb3BlLCBjb25zdCBTdHJp
bmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgcHJvdmlkZXIpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJyaWRnZShXVEZNb3ZlKHdvcmtlckNs
aWVudFdyYXBwZXIpLCBXVEZNb3ZlKHdvcmtlckdsb2JhbFNjb3BlKSwgdGFza01vZGUpKTsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEJyaWRnZShXVEZNb3ZlKHdvcmtlckNsaWVu
dFdyYXBwZXIpLCBXVEZNb3ZlKHdvcmtlckdsb2JhbFNjb3BlKSwgdGFza01vZGUsIFdURk1vdmUo
cHJvdmlkZXIpKSk7CiAgICAgICAgIH0KICAgICAgICAgfkJyaWRnZSgpOwogICAgICAgICB2b2lk
IGluaXRpYWxpemUoKTsKQEAgLTE0MCwxMiArMTQwLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHVz
aW5nIFJlZkNvdW50ZWQ8QnJpZGdlPjo6ZGVyZWY7CiAKICAgICBwcml2YXRlOgotICAgICAgICBC
cmlkZ2UoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgUmVm
PFdvcmtlckdsb2JhbFNjb3BlPiYmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKTsKKyAgICAgICAg
QnJpZGdlKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIFJl
ZjxXb3JrZXJHbG9iYWxTY29wZT4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNvY2tl
dFByb3ZpZGVyPiYmKTsKIAogICAgICAgICBzdGF0aWMgdm9pZCBzZXRXZWJTb2NrZXRDaGFubmVs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBCcmlkZ2UqIHRoaXNQdHIsIFBlZXIqLCBSZWY8VGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmKTsKIAogICAgICAgICAvLyBF
eGVjdXRlZCBvbiB0aGUgbWFpbiB0aHJlYWQgdG8gY3JlYXRlIGEgUGVlciBmb3IgdGhpcyBicmlk
Z2UuCi0gICAgICAgIHN0YXRpYyB2b2lkIG1haW5UaHJlYWRJbml0aWFsaXplKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBXb3JrZXJMb2FkZXJQcm94eSYsIFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI+JiYsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpOworICAgICAg
ICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkSW5pdGlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgV29ya2VyTG9hZGVyUHJveHkmLCBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyPiYmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+
JiYpOwogCiAgICAgICAgIC8vIEV4ZWN1dGVkIG9uIHRoZSB3b3JrZXIgY29udGV4dCdzIHRocmVh
ZC4KICAgICAgICAgdm9pZCBjbGVhckNsaWVudFdyYXBwZXIoKTsKQEAgLTE1NywxNiArMTU3LDE4
IEBAIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV93b3JrZXJH
bG9iYWxTY29wZTsKICAgICAgICAgV29ya2VyTG9hZGVyUHJveHkmIG1fbG9hZGVyUHJveHk7CiAg
ICAgICAgIFN0cmluZyBtX3Rhc2tNb2RlOwotICAgICAgICBQZWVyKiBtX3BlZXI7CisgICAgICAg
IFBlZXIqIG1fcGVlciB7IG51bGxwdHIgfTsKKyAgICAgICAgUmVmPFNvY2tldFByb3ZpZGVyPiBt
X3NvY2tldFByb3ZpZGVyOwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbChXb3JrZXJHbG9iYWxTY29wZSYsIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbChXb3JrZXJHbG9iYWxTY29wZSYsIFdlYlNv
Y2tldENoYW5uZWxDbGllbnQmLCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlLCBTb2NrZXRQcm92aWRl
ciYpOwogCiAgICAgY2xhc3MgV29ya2VyR2xvYmFsU2NvcGVEaWRJbml0aWFsaXplVGFzazsKIAog
ICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gbV93b3JrZXJHbG9iYWxTY29wZTsKICAgICBSZWY8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBtX3dvcmtlckNsaWVudFdy
YXBwZXI7CiAgICAgUmVmUHRyPEJyaWRnZT4gbV9icmlkZ2U7CisgICAgUmVmPFNvY2tldFByb3Zp
ZGVyPiBtX3NvY2tldFByb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBACiAJCTAxRTZD
MkU0MTE5NEIyODIwMDUwODIxQyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAxRTZDMkUzMTE5NEIyODIwMDUwODIx
QyAvKiBTcGVsbGluZ0RvdEAyeC5wbmcgKi87IH07CiAJCTA1NjJGOTYxMTU3M0Y4OEYwMDMxQ0Ex
NiAvKiBQbGF0Zm9ybUxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNTYyRjk2MDE1NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA1RDkxM0NF
RUFCMkE2MDUzNDIxOEFDRiAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzNFNjFDNjUzQTY0ODA3QTgzRTc2
RkI4IC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgKi87IH07Ci0JCTE2RUEyNENFRUFCMkE2
MDUzNDIxOEFDRiAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDRGNzJDNjUzQTY0ODA3QTgzRTc2RkI4
IC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHAgKi87IH07CiAJCTA1RkQ2OUUwMTI4NDVE
NDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA1RkQ2OURGMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3Rh
bXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
NjAyN0NBRDBCMUNCRkMwMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjAyN0NBQzBCMUNCRkMwMDA4ODRC
MkQgLyogQ29udGV4dE1lbnVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDYyMjg3ODQwQjREQjMyMjAwMEMzNERGIC8qIEZvY3VzRGlyZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjIy
ODc4MzBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjY2LDYgKzY2NSw3IEBACiAJCTE1
RkNDOUZDMUI0REY3RjIwMEU3MjMyNiAvKiBET01VUkxNZWRpYVN0cmVhbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRFRDE5RUUzNjQyMDBF
NUEwNDUgLyogRE9NVVJMTWVkaWFTdHJlYW0uY3BwICovOyB9OwogCQkxNUZDQzlGRTFCNERGODVF
MDBFNzIzMjYgLyogRE9NVVJMTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE1RkNDOUZEMUI0REY4NTYwMEU3MjMyNiAvKiBET01VUkxN
ZWRpYVN0cmVhbS5oICovOyB9OwogCQkxNjNFODhGNzExOEEzOUQyMDBFRDkyMzEgLyogU2ltcGxl
Rm9udERhdGFDb3JlVGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNjNFODhGNTExOEEzOUQyMDBFRDkyMzEgLyogU2ltcGxlRm9udERhdGFDb3Jl
VGV4dC5jcHAgKi87IH07CisJCTE2RUEyNENFRUFCMkE2MDUzNDIxOEFDRiAvKiBNYXRoTUxPcGVy
YXRvckRpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDRGNzJDNjUzQTY0ODA3QTgzRTc2RkI4IC8qIE1hdGhNTE9wZXJhdG9yRGljdGlv
bmFyeS5jcHAgKi87IH07CiAJCTE4NUJDRjI4MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1l
cnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTg1
QkNGMjYwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5jcHAgKi87IH07CiAJCTE4NUJD
RjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJDRjI3MEYzMjc5Q0UwMDBFQTI2MiAvKiBU
aHJlYWRUaW1lcnMuaCAqLzsgfTsKIAkJMTg4NjA0QjMwRjJFNjU0QTAwMEI2NDQzIC8qIERPTVRp
bWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4
ODYwNEIxMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5jcHAgKi87IH07CkBAIC0xOTgxLDYg
KzE5ODEsOCBAQAogCQk0RjE1MzRFMDExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9y
VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRG
MTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRGNkZERDY0MTM0MURF
REQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2RkRENjIxMzQxREVERDAwMUY4RUUzIC8qIElu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgKi87IH07CiAJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGNkZERDYzMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdl
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
RkE2NUE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQTY1QTY5MTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwICovOyB9OworCQk0RkE2NUE2QzExMDhB
QkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0
aE1MU3BhY2VFbGVtZW50LmggKi87IH07CiAJCTRGQjM5MEFEMTVFRjYxRjMwMDdBRDUxRiAvKiBH
ZW5lcmF0ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0RkIzOTBBQzE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwICov
OyB9OwogCQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2MzggLyogTm9kZVJhcmVEYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQUI0ODY2MTY0M0E2
N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEuY3BwICovOyB9OwogCQk0RkZDMDIyRDE2NDNCNzI2
MDA0RTE2MzggLyogRWxlbWVudFJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQUI0ODY0MTY0M0E2NkQwMEY3MEMwNyAvKiBFbGVtZW50
UmFyZURhdGEuY3BwICovOyB9OwpAQCAtMjAwOCw3ICsyMDEwLDcgQEAKIAkJNTEwRDRBMzMxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEyRDEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzQxMDMxNjVFRTAw
NDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMkUxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tl
dFN0cmVhbUVycm9yQmFzZS5oICovOyB9OwogCQk1MTBENEEzNjEwMzE2NUVFMDA0OUVBNTQgLyog
U29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFt
SGFuZGxlQmFzZS5jcHAgKi87IH07Ci0JCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxl
QmFzZS5oICovOyB9OworCQk1MTBENEEzNzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFt
SGFuZGxlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBENEEz
ODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2NUVFMDA0
OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjcxQzUwQUFDQTAwMzJGOTgzIC8q
IElEQlNlcmlhbGl6YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTExRUMxMjUxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24u
Y3BwICovOyB9OwogCQk1MTFFQzEyODFDNTBBQUNBMDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUMx
MjYxQzUwQUE1NzAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCAqLzsgfTsKQEAgLTIyMjYs
NyArMjIyOCw3IEBACiAJCTUxQTlEOUY0MTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE5RDlGMDE5
NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNv
dXJjZUxvYWRlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAq
LzsgfTsKIAkJNTFBQkFFMUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQTEw
M0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKLQkJNTFBQkFFMUUx
MDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8q
IFNvY2tldFN0cmVhbUhhbmRsZS5oICovOyB9OworCQk1MUFCQUUxRTEwM0MxOTEzMDA4QzUyNjAg
LyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUFCQUUxQzEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFu
ZGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTFBQkFFMUYxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFEMTAz
QzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgKi87IH07CiAJCTUx
QUJGNjREMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCRjY0QzE2MzkyRTI4MDAxMzJB
N0EgLyogTG9hZGVyU3RyYXRlZ3kuY3BwICovOyB9OwogCQk1MUFGNTAzNjE2RjEwMEY2MDA5NUIy
RTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9h
ZGVyVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMjM5MSw2ICsyMzkzLDggQEAKIAkJNUM0MzA0QjExOTFBQzkwODAwMEUyQkMwIC8qIEVY
VFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNDMwNEFFMTkxQUM5MDgwMDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9E
LmggKi87IH07CiAJCTVDNDMwNEI1MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1
cmVMT0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUM0MzA0QjMxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgKi87
IH07CiAJCTVDNDMwNEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNDMwNEI0
MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1cmVMT0QuaCAqLzsgfTsKKwkJNUM2
ODhBQTExRDM4MEJGODAwMEI1NEZBIC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjg4QUEwMUQz
ODA1MDkwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CisJ
CTVDNjg4QUEzMUQzODE0QkYwMDBCNTRGQSAvKiBTb2NrZXRQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzY4OEFBMjFEMzgxMjZGMDAw
QjU0RkEgLyogU29ja2V0UHJvdmlkZXIuY3BwICovOyB9OwogCQk1QzdDODhEODFEMEYxRjRBMDA5
RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVD
OUE3QTc1MUFBMEY2RUEwMDk1OEFDRiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDVFMUFBMEY2QTkw
MDI5QzgxNiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmNwcCAqLzsgfTsKIAkJNUM5QTdBNzYxQUEw
RjZFRDAwOTU4QUNGIC8qIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMzOTMwNjAxQUEwRjZBOTAwMjlDODE2
IC8qIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwICovOyB9OwpAQCAtNTM5NSw2ICs1Mzk5LDcg
QEAKIAkJQjU3Q0I1MkQxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU3Q0I1MkMxODJB
M0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwICovOyB9OwogCQlCNTdDQjUyRTE4
MkEzRUZDMDA3OUE2NDcgLyogSW5saW5lRWxlbWVudEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU3Q0I1MkIxODJBMzdGNjAwNzlBNjQ3IC8qIElu
bGluZUVsZW1lbnRCb3guaCAqLzsgfTsKIAkJQjU5NUZGNDcxODI0Q0VFMzAwRkY1MUNEIC8qIFJl
bmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCNTk1RkY0NjE4MjRDRUUzMDBGRjUxQ0QgLyogUmVuZGVySXRlcmF0b3IuaCAqLzsgfTsK
KwkJQjU5Q0EzOTBDRUQ2NkMzMjU1RjcyQzU5IC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5Q0E1OUFGMTcw
RDhGQUE1QjhDQUJFIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuY3BwICovOyB9OwogCQlCNTlERDY5
OTExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDY5NzExOTAyOUU1MDA3RTk2ODQg
LyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi87IH07CiAJCUI1OURENjlBMTE5MDI5RTUwMDdFOTY4
NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OTgxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VD
YWxsYmFjay5jcHAgKi87IH07CiAJCUI1OURENjlEMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRy
YW5zYWN0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEI1OURENjlCMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suaCAqLzsgfTsKQEAgLTY4OTQsOCArNjg5OSw2IEBACiAJCUY5OEZGRjQ0MTFBMjY3NjIw
MEY1NDhFOCAvKiBDU1NPTVV0aWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY5OEZGRjQyMTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmNw
cCAqLzsgfTsKIAkJRjk4RkZGNDUxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5OEZGRjQzMTFBMjY3
NjIwMEY1NDhFOCAvKiBDU1NPTVV0aWxzLmggKi87IH07CiAJCUY5RjBFRDdBMERCNTBDQTIwMEQx
NkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKLQkJNEZBNjVBNkIxMTA4QUJFRDAw
MjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2NUE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1M
U3BhY2VFbGVtZW50LmNwcCAqLzsgfTsKLQkJNEZBNjVBNkMxMTA4QUJFRDAwMjYxNUUwIC8qIE1h
dGhNTFNwYWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5o
ICovOyB9OwogCQlGQTY1NEE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRB
NjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNwcCAqLzsgfTsKIAkJRkE2
NTRBNkMxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQTY1NEE2QTExMDhBQkVEMDAyNjE1
RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuaCAqLzsgfTsKIAkJRkFCRTcyRjQxMDU5QzFFQjAwRDk5
OUREIC8qIE1hdGhNTEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkFCRTcyRUQxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQu
Y3BwICovOyB9OwpAQCAtNzIxMCw3ICs3MjEzLDYgQEAKIAkJRkVEMTNEM0QwQ0VBOTM2QTAwRDg5
NDY2IC8qIEZyYW1lSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkVEMTNEM0IwQ0VBOTM2QTAwRDg5NDY2IC8qIEZyYW1lSU9TLm1tICovOyB9Owog
CQlGRUQxM0Q0MDBDRUE5Mzk0MDBEODk0NjYgLyogSWNvbklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDEzRDNGMENFQTkzOTQwMEQ4OTQ2NiAv
KiBJY29uSU9TLm1tICovOyB9OwogCQlGRUQxM0Q1MjBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVy
VGhlbWVJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFRDEzRDUwMENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUI1OUNBMzkwQ0VENjZDMzI1
NUY3MkM1OSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRo
TUxQYWRkZWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJRkVENDgzOTBDRUQ2NkMzMjU1RjcyQzU5IC8q
IE1hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjc1QTA1OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFNlbGVjdEVs
ZW1lbnQuY3BwICovOyB9OwogCQlGRUUxODExMzE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZFRTE4MTExMTZDMzE5RTgwMDA4NDg0OSAvKiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQu
Y3BwICovOyB9OwogCQlGRUUxODExNDE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25C
YWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RUUxODExMjE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmggKi87IH07
CkBAIC05NjEyLDYgKzk2MTQsOCBAQAogCQk0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWRp
dGluZ0JlaGF2aW9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2RkRE
NjIxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0RjZGREQ2MzEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVj
dG9yUGFnZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
clBhZ2VBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RkE2NUE2OTExMDhB
QkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTFNwYWNlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MU3BhY2VFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQUI0ODY0MTY0M0E2NkQwMEY3
MEMwNyAvKiBFbGVtZW50UmFyZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRWxlbWVudFJhcmVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNEZBQjQ4NjYxNjQzQTY3RTAwRjcwQzA3IC8qIE5vZGVSYXJlRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlUmFyZURhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0RkIzOTBBQzE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVk
SW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VuZXJhdGVk
SW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwMzAsNyArMTAwMzQs
NiBAQAogCQk1OTMwOUExMjExRjRBRTZBMDAyNTA2MDMgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTU4RjFDQjEz
NDM5MTdDMDA4MEIzMUYgLyogWE1MVmlld2VyLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRo
ID0gWE1MVmlld2VyLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk1OEYxQ0Mx
MzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2
YXNjcmlwdDsgcGF0aCA9IFhNTFZpZXdlci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MUGFkZGVkRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTc4MDg0OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0
aE1MU2VsZWN0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRo
TUxTZWxlY3RFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5ODM2NURD
MTM1NUY1M0MwMDFCMTg1RCAvKiBKU1Bvc2l0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNQb3NpdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU5ODM2NURFMTM1NUY1NjIwMDFCMTg1RCAvKiBKU1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Bvc2l0aW9uRXJy
b3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNzAsNiArMTAw
NzMsOCBAQAogCQk1QzQzMDRBRjE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxP
RC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUU2hhZGVyVGV4dHVyZUxPRC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBK
U0VYVFNoYWRlclRleHR1cmVMT0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUM0MzA0QjQxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VYVFNoYWRlclRleHR1cmVMT0Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM2ODhBQTAxRDM4MDUwOTAwMEI1NEZB
IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFBy
b3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFBy
b3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3Qzg4RDcxRDBGMUYy
QjAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNvY2tldFByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
OUI4NjBCMUMyMUUzQzYwMDExMEYzNiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjM3RkZDMUM2MkQyNzgwMEYyMDE4OCAvKiBT
Y3JvbGxBbmltYXRvck1vY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEzMzg4LDYgKzEzMzkzLDggQEAKIAkJQjU3Q0I1MkIxODJBMzdGNjAwNzlBNjQ3IC8qIElubGlu
ZUVsZW1lbnRCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lRWxl
bWVudEJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTdDQjUyQzE4MkEzRUVE
MDA3OUE2NDcgLyogSW5saW5lRWxlbWVudEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmxpbmVFbGVtZW50Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckl0ZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1h
dGhNTFBhZGRlZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlD
QTg0OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjk3MTE5MDI5RTUwMDdFOTY4NCAvKiBKU0RhdGFiYXNl
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhYmFzZUNh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjk4MTE5MDI5RTUw
MDdFOTY4NCAvKiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNEYXRhYmFzZUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQjU5REQ2OUIxMTkwMkE0MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25D
YWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NRTFRyYW5zYWN0
aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDEyLDcgKzE0
MDE5LDYgQEAKIAkJQzNDRjE3QTIxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJS
ZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZFRhcmdl
dE9ic2VydmVyUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDM0NG
MTdBMzE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDM0U2MUM2NTNBNjQ4MDdBODNFNzZGQjggLyog
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUQ0RjcyQzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25h
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MT3BlcmF0
b3JEaWN0aW9uYXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzQwMEQxMDgx
OEYxQzhGNjAwOTBEODYzIC8qIEV2ZW50TG9vcElucHV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50TG9vcElucHV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5n
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lU25hcHNob3R0
aW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRDRDYyOTkxODM4Mzc2NjAw
N0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZyYW1lU25hcHNob3R0aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNDM4NSw3ICsxNDM5MSw2IEBACiAJCUNFMjg0OTg4MUNBMzYxNDYwMEI0QTU3RiAvKiBDb250
ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7
IHBhdGggPSBjc3AvQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTVDQjFCMzE0RURBQjZGMDBCQjI3OTUgLyogRXZl
bnRTZW5kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRTZW5kZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U2RDg5Mjk0QzdBQUNFMEFEODlCM0RE
IC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJREY3RTlBMjk0QzdBQUNFMEFEODlCM0REIC8qIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxPcGVyYXRvckRpY3Rpb25h
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U2REFERjcxQzU5MUU2QTAwM0Y2
QTg4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMuY3BwOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkRBREY4MUM1OTFFNkEw
MDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLmg7IHBhdGggPSBjc3AvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNzk5Rjk1MUM2QTQ2QkMwMDk3QjUx
OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuY3Bw
OyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ0ODIsNiArMTQ0ODcsNyBAQAogCQlEM0YzRDM2MjFB
NjlCMTkwMDA1OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEM0YzRDM2NTFBNjlCMUE1MDA1OUZDMkIgLyogSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQzRjNEMzY2MUE2OUIxQTUwMDU5RkMyQiAvKiBKU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ0Rjcy
QzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDYxOUEzMDUxNDRFMDBCRTAwNEJD
MzAyIC8qIENoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUQ2MTlBMzA2MTQ0RTAwQkUwMDRCQzMwMiAvKiBDaGlsZExpc3RNdXRh
dGlvblNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkTGlzdE11
dGF0aW9uU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDY0ODlEMjMxNjZG
RkNGMTAwN0MwMzFCIC8qIEpTSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MTcsNiArMTQ1MjMsNyBAQAogCQlERTQ5QjMwNzE2
NUYyRkUxMDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERTQ5QjMwODE2NUYyRkUxMDAxMDMz
OEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREVDMjk3NUQxQjRERUIyQTAwNUY1OTQ1IC8qIEpTQ3VzdG9tRXZlbnRD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDdXN0b21F
dmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURGN0U5QTI5NEM3
QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGOUFGRDcwMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREY5QUZENzExM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMEZFRjM3MUIwN0M1M0VBQzFDMUZCRUUgLyogRXZlbnRT
b3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50U291cmNlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDUyLDcgKzE1MDU5LDYgQEAKIAkJRjVDMDQxRTIw
RkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjVFMEM2NTkxNjQzQzQyQzAwRDZDQjY5IC8qIEJhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVFMEM2NUExNjQzQzQyQzAwRDZDQjY5IC8qIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1h
dGhNTFBhZGRlZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNzVB
MDU5QUYxNzBEOEZBQTVCOENBQkUgLyogTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEph
dmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0gSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlGOTE2QzQ4
QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDYzLDggKzE1
MDY5LDYgQEAKIAkJRjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZBNjU0QTYzMTEw
OEFCQjcwMDI2MTVFMCAvKiBtYXRobWwuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBt
YXRobWwuY3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2NzExMDhBQkUy
MDAyNjE1RTAgLyogbWF0aGF0dHJzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IG1hdGhhdHRy
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZBNjVBNjkxMTA4QUJFRDAwMjYx
NUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFNwYWNlRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2OTExMDhBQkVEMDAyNjE1RTAgLyog
TWF0aE1MVGV4dEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWF0aE1MVGV4dEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
QTY1NEE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MVGV4dEVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkE2RTQ2NkZDRDA0MThBOTk2NkE1QjYwIC8qIEROU1Jlc29sdmVR
dWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBETlNSZXNvbHZlUXVldWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTczLDYgKzE4MTc3LDcgQEAKIAkJ
NjVCRjAyMTgwOTc0ODA2MzAwQzQzMTk2IC8qIHBhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDNjg4QUEyMUQzODEyNkYwMDBCNTRGQSAvKiBTb2Nr
ZXRQcm92aWRlci5jcHAgKi8sCiAJCQkJMzE2RkUxMDYwRTZFMUQ4NDAwQkY2MDg4IC8qIGFuaW1h
dGlvbiAqLywKIAkJCQk1RDU5NzVCNTE5NjM2MkJFMDBEMDA4NzggLyogY29jb2EgKi8sCiAJCQkJ
Q0UxN0FEMTQxQzU4NTIyRjAwNUY0Nzk5IC8qIGNzcCAqLywKQEAgLTE5OTA1LDYgKzE5OTEwLDcg
QEAKIAkJOTdBQUJDRjcxNEZBMDlCNTAwNzQ1N0FFIC8qIHdlYnNvY2tldHMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDNjg4QUEwMUQzODA1MDkwMDBC
NTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8sCiAJCQkJOTdBQUJDRjgx
NEZBMDlENTAwNzQ1N0FFIC8qIENsb3NlRXZlbnQuaCAqLywKIAkJCQk5N0FBQkNGOTE0RkEwOUQ1
MDA3NDU3QUUgLyogQ2xvc2VFdmVudC5pZGwgKi8sCiAJCQkJOTdBQUJDRkMxNEZBMDlENTAwNzQ1
N0FFIC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggKi8sCkBAIC0yOTkxNyw2ICsyOTky
Myw3IEBACiAJCQkJODVDN0Y1RDEwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJENTEwNDRBMDFFMDBFQUVCNTIgLyogRE9NUGFn
ZVRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQ0U1M0U3MEE4RDE4RTcw
MDIyOTQ3RCAvKiBET01QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM2ODhBQTExRDM4
MEJGODAwMEI1NEZBIC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdBNTQ4ODE4MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1MDAyRjgxQjU2RDc4MTAwMjBBQUY3IC8qIERPTVBhdGgu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU0RUIwRDc0NUUyQjAwNjQ0MkU5IC8qIERPTVBs
dWdpbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNzcwLDYgKzMwNzc3LDcgQEAKIAkJCQlDREE5
OEUwNDE2MDM5RTFBMDBGRUEzQjEgLyogSlNNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RBOThFMDYxNjAzOUUxRjAwRkVBM0IxIC8qIEpTTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDM0MzOUI2MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzY4OEFBMzFEMzgxNEJGMDAwQjU0RkEgLyogU29ja2V0
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJD
IC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M1MzQzRkMxN0I3
NEI2MzAwNDIzMkYwIC8qIEpTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDOTAyNkI2NTFCMUNGNUZFMDAxRDk5QTcgLyogSlNNZWRpYVJlbW90ZUNvbnRyb2xz
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvck92ZXJsYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JPdmVybGF5LmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NjQsNyAr
ODY0LDcgQEAgUGFnZSogSW5zcGVjdG9yT3ZlcmxheTo6b3ZlcmxheVBhZ2UoKQogICAgIGlmICht
X292ZXJsYXlQYWdlKQogICAgICAgICByZXR1cm4gbV9vdmVybGF5UGFnZS5nZXQoKTsKIAotICAg
IFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uKG1ha2VVbmlxdWVSZWY8RW1wdHlF
ZGl0b3JDbGllbnQ+KCksIEVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsKKyAgICBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPEVtcHR5RWRpdG9y
Q2xpZW50PigpLCBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOwogICAgIGZpbGxXaXRoRW1wdHlD
bGllbnRzKHBhZ2VDb25maWd1cmF0aW9uKTsKICAgICBtX292ZXJsYXlQYWdlID0gc3RkOjptYWtl
X3VuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUs
NyArNDUsNiBAQAogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5h
bWVzcGFjZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgotI2luY2x1
ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQ
cm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC0yNjQsMTAg
KzI2Myw1IEBAIHZvaWQgRW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyVW5kb1N0ZXAKIHZvaWQg
RW1wdHlFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4p
CiB7CiB9Ci0gICAgCi1SZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IEVtcHR5U29j
a2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmKQotewotICAgIHJldHVybiBudWxscHRyOwotfQog
CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAyMDMy
MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY0NiwxMyArNjQ2LDYgQEAgY2xhc3MgRW1wdHlEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCBmaW5hbAogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU2hvdWxkU2FtcGxlKSBvdmVycmlk
ZSB7IH0KIH07CiAKLWNsYXNzIEVtcHR5U29ja2V0UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgU29j
a2V0UHJvdmlkZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgfkVtcHR5U29ja2V0UHJvdmlkZXIo
KSB7IH0KLSAgICBzdGF0aWMgUmVmPEVtcHR5U29ja2V0UHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlTb2NrZXRQcm92aWRlcik7IH0KLSAgICBSZWZQdHI8VGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsKLX07Ci0K
IHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRpb24mKTsKIAogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTb2NrZXRQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorCisjaW5jbHVk
ZSAiU29ja2V0U3RyZWFtSGFuZGxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK1Jl
ZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1I
YW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBO
ZXR3b3JraW5nQ29udGV4dCYgY29udGV4dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBy
ZXR1cm4gU29ja2V0U3RyZWFtSGFuZGxlOjpjcmVhdGUodXJsLCBjbGllbnQsIGNvbnRleHQsIHNl
c3Npb25JRCk7Cit9CisgICAgCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCShyZXZpc2lvbiAyMDMyMjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDE4ICsyNSwyMiBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNlc3Npb25JRC5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOZXR3b3JraW5nQ29udGV4
dDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci1jbGFzcyBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDsKLWNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQ7CitjbGFzcyBTb2NrZXRT
dHJlYW1IYW5kbGU7CitjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQ7CitjbGFzcyBVUkw7
CiAKLWNsYXNzIFNvY2tldFByb3ZpZGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNv
Y2tldFByb3ZpZGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBTb2NrZXRQcm92aWRlciA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTb2NrZXRQcm92aWRlcj4gewogcHVibGljOgotICAg
IHZpcnR1YWwgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVXZWJTb2Nr
ZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50
JikgPSAwOworICAgIHN0YXRpYyBSZWY8U29ja2V0UHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU29ja2V0UHJvdmlkZXIpOyB9CisgICAgdmlydHVhbCBSZWY8U29ja2V0
U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50JiwgTmV0d29ya2luZ0NvbnRleHQmLCBTZXNzaW9uSUQpOwogICAg
IHZpcnR1YWwgflNvY2tldFByb3ZpZGVyKCkgeyB9OwogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRsZS5o
CShyZXZpc2lvbiAyMDMyMjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBpbnQgcGxhdGZvcm1TZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGlu
dCBsZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNsb3NlKCk7CiAKLSAgICBTb2Nr
ZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgTmV0
d29ya2luZ0NvbnRleHQmLCBTZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIFNvY2tldFN0
cmVhbUhhbmRsZShjb25zdCBVUkwmLCBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBOZXR3b3Jr
aW5nQ29udGV4dCYsIFNlc3Npb25JRCk7CiAgICAgdm9pZCBjcmVhdGVTdHJlYW1zKCk7CiAgICAg
dm9pZCBzY2hlZHVsZVN0cmVhbXMoKTsKICAgICB2b2lkIGNob29zZVByb3h5KCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHJldmlzaW9uIDIwMzIyMykK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM4MCw3ICszODAsNyBAQCBib29sIFNWR0ltYWdlOjpkYXRhQ2hhbmdlZChib29sIGFs
bERhdGFSCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYgKGFsbERhdGFSZWNlaXZlZCkg
ewotICAgICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVl
UmVmPEVtcHR5RWRpdG9yQ2xpZW50PigpLCBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7
CisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uKG1ha2VVbmlxdWVS
ZWY8RW1wdHlFZGl0b3JDbGllbnQ+KCksIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CiAgICAg
ICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VDb25maWd1cmF0aW9uKTsKICAgICAgICAgbV9j
aHJvbWVDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR0ltYWdlQ2hyb21lQ2xpZW50Pih0aGlz
KTsKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbV9jaHJvbWVDbGll
bnQuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNy0x
NCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IFVzZSBTb2NrZXRQcm92aWRlciB0byBjcmVhdGUgU29ja2V0U3RyZWFtSGFuZGxlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRQ
cm92aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oOgorCiAyMDE2LTA3LTE0
ICBIeXVuanVuIEtvICA8enpvb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGhyZWFkZWRDb21w
b3NpdG9yXSBCdWlsZCBmYWlscyBpbiBkZWJ1ZyBtb2RlIGFmdGVyIHIyMDIwNDAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFBy
b3ZpZGVyLmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0U3Ry
ZWFtSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWwuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4KQEAgLTQ4LDIxICs0
OSwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXN0YXRpYyBjb25zdCBjaGFyIHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2ViU29ja2V0Q2hh
bm5lbE1vZGUiOwotCi1SZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tl
dFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkKK1JlZjxTb2NrZXRTdHJl
YW1IYW5kbGU+IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGVTb2NrZXRTdHJlYW1IYW5kbGUoY29u
c3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYgY2xpZW50LCBOZXR3b3JraW5n
Q29udGV4dCYgY29udGV4dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgcmV0dXJuIGEgcHJveHkgc28gd2UgY2FuIGRvIHRoZSBhY3R1YWwgbmV0d29y
ayBpbnRlcmFjdGlvbnMgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgotICAgIGlmIChpczxXb3JrZXJH
bG9iYWxTY29wZT4oY29udGV4dCkpIHsKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtl
ckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAg
ICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCku
cnVuTG9vcCgpOwotICAgICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7Ci0gICAgICAgIG1vZGUuYXBw
ZW5kTGl0ZXJhbCh3ZWJTb2NrZXRDaGFubmVsTW9kZSk7Ci0gICAgICAgIG1vZGUuYXBwZW5kTnVt
YmVyKHJ1bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSk7Ci0gICAgICAgIHJldHVybiBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQs
IG1vZGUudG9TdHJpbmcoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6
OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7CisgICAgcmV0dXJu
IFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKHVybCwgY2xpZW50LCBjb250ZXh0LCBzZXNzaW9u
SUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCShyZXZpc2lv
biAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
UHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFdlYlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNv
Y2tldFByb3ZpZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVy
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQot
ICAgIFJlZlB0cjxXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2Vi
U29ja2V0Q2hhbm5lbChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbENsaWVudCYpIG92ZXJyaWRlOworICAgIFJlZjxXZWJDb3JlOjpTb2Nr
ZXRTdHJlYW1IYW5kbGU+IGNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBXZWJDb3JlOjpV
UkwmLCBXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQmLCBXZWJDb3JlOjpOZXR3b3Jr
aW5nQ29udGV4dCYsIFdlYkNvcmU6OlNlc3Npb25JRCkgZmluYWw7CiAgICAgdmlydHVhbCB+V2Vi
U29ja2V0UHJvdmlkZXIoKSB7IH0KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDMyMzAp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0
IEBACisyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVXNlIFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1I
YW5kbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTk3NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE2LTA3LTEyICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBGaXggZm9y
IGJ1aWxkIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHZlcnNpb24gc3RhbXAgZGxsLgpJbmRleDogU291
cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1BsYXRmb3JtTWFjLmNtYWtlCShyZXZpc2lvbiAyMDMyMjMpCisrKyBTb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtTWFjLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDYgQEAgbGlzdChB
UFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBtYWMvTWlzYy9XZWJOU1ZpZXdFeHRyYXMubQogICAg
IG1hYy9NaXNjL1dlYk5TV2luZG93RXh0cmFzLm0KICAgICBtYWMvTWlzYy9XZWJTaGFyaW5nU2Vy
dmljZVBpY2tlckNvbnRyb2xsZXIubW0KLSAgICBtYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5t
bQogICAgIG1hYy9NaXNjL1dlYlN0cmluZ1RydW5jYXRvci5tbQogICAgIG1hYy9NaXNjL1dlYlVz
ZXJDb250ZW50VVJMUGF0dGVybi5tbQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2lu
LmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UJKHJl
dmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1XaW4uY21ha2UJKHdvcmtp
bmcgY29weSkKQEAgLTE5NSw3ICsxOTUsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFU19D
bGFzc2VzCiAgICAgd2luL1dlYlNjcmlwdFdvcmxkLmNwcAogICAgIHdpbi9XZWJTZWN1cml0eU9y
aWdpbi5jcHAKICAgICB3aW4vV2ViU2VyaWFsaXplZEpTVmFsdWUuY3BwCi0gICAgd2luL1dlYlNv
Y2tldFByb3ZpZGVyLmNwcAogICAgIHdpbi9XZWJUZXh0UmVuZGVyZXIuY3BwCiAgICAgd2luL1dl
YlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmNwcAogICAgIHdpbi9XZWJVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVNlbmRlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTQ3LDkgKzE0Nyw3IEBACiAJCTU5OEFEOTI4MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU5OEFEOTI3MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblByb3ZpZGVyTW9jay5tbSAqLzsgfTsKIAkJNTk4QUQ5MkExMjAxQ0YzQjAwQUJBRTRF
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5OEFEOTI5MTIwMUNGM0IwMEFC
QUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmggKi87IH07
CiAJCTU5OEFEQTQ2MTIwMjI3NTAwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThB
REE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTVDNzcwNjcw
MUQxMTFCMDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzcwNjZGMUQxMTFCMDIwMDEyNzAwRiAv
KiBXZWJTb2NrZXRQcm92aWRlci5tbSAqLzsgfTsKIAkJNUM3NzA2NzIxRDExMUIyMjAwMTI3MDBG
IC8qIFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzcwNjcxMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdD
b21wYXRpYmlsaXR5LmggKi87IH07Ci0JCTVDN0M4OERBMUQwRjNCRjIwMDlEMkY2RCAvKiBXZWJT
b2NrZXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM3Qzg4RDkxRDBGM0JGMjAwOUQyRjZEIC8qIFdlYlNvY2tldFByb3ZpZGVyLmggKi87
IH07CiAJCTVEN0JGODE0MEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEyMEMyQTFEOTAw
MDhDRTA2RCAvKiBXZWJJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1RDdCRjgxNTBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVj
dG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ3
QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSAqLzsgfTsKIAkJNURFODNB
N0EwRDBGN0Y5NDAwQ0FEMTJBIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5uaWIgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVERTgzQTc0MEQw
RjdGOTQwMENBRDEyQSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliICovOyB9OwpA
QCAtNjUxLDkgKzY0OSw3IEBACiAJCTU5OEFEOTI3MTIwMUNGMzIwMEFCQUU0RSAvKiBXZWJEZXZp
Y2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9ja0ludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU5OEFEQTQ1MTIwMjI3NTAwMEFCQUU0RSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNUM3NzA2NkYxRDExMUIwMjAwMTI3MDBGIC8qIFdlYlNvY2tldFByb3Zp
ZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0
UHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzcwNjcxMUQxMTFC
MjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFF1aWNrRHJhd0NvbXBhdGliaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNUM3Qzg4RDkxRDBGM0JGMjAwOUQyRjZEIC8qIFdlYlNvY2tldFByb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNvY2tldFByb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0JGODEyMEMyQTFEOTAwMDhDRTA2
RCAvKiBXZWJJbnNwZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Ykluc3BlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdCRjgxMzBDMkEx
RDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdlYkluc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNURFODNBNzUwRDBGN0Y5NDAwQ0FEMTJBIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLm5pYjsgbmFtZSA9IEVu
Z2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL1dlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5u
aWI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTEwOTgsOCArMTA5NCw2IEBACiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVDNzcwNjcxMUQxMTFCMjIw
MDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5LmggKi8sCi0JCQkJNUM3NzA2NkYxRDEx
MUIwMjAwMTI3MDBGIC8qIFdlYlNvY2tldFByb3ZpZGVyLm1tICovLAotCQkJCTVDN0M4OEQ5MUQw
RjNCRjIwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovLAogCQkJCUExMEMxRDIwMTgy
MDJGQUYwMDM2ODgzQSAvKiBpb3MgKi8sCiAJCQkJMUNDRkZEMTIwQjFGODFGMjAwMkVFOTI2IC8q
IE9sZFdlYkFzc2VydGlvbnMuYyAqLywKIAkJCQkyOUFFRjk1RDEzNEM3NTU0MDBGRTUwOTYgLyog
T3V0bG9va1F1aXJrc1VzZXJTY3JpcHQuanMgKi8sCkBAIC0xODA2LDcgKzE4MDAsNiBAQAogCQkJ
CTkzOTgxMDUzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM5ODEwOUMwODI0QkYwMTAwOERGMDM4IC8qIFdlYkZyYW1lSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExMEMxRDZCMTgyMDMwMEUwMDM2ODgzQSAvKiBXZWJGcmFtZUlPUy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNUM3Qzg4REExRDBGM0JGMjAwOUQyRjZEIC8qIFdlYlNvY2tldFBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ2RDE4MjAzMDBFMDAzNjg4M0EgLyog
V2ViRnJhbWVJUGhvbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTgxMDVCMDgyNEJGMDEwMDhE
RjAzOCAvKiBXZWJGcmFtZUxvYWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBCODhF
OEIxMEEwOEYzRDAwRkJCM0Y1IC8qIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMjc4LDcgKzIyNzEsNiBAQAogCQkJCTFDMEQ0MDg4MEFDMUM4RjQwMDA5
QzExMyAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tzLm0gaW4gU291cmNlcyAqLywKIAkJCQlFRDVCOTUy
NDExMUI3MjVBMDA0NzIyOTggLyogV2ViTG9jYWxpemFibGVTdHJpbmdzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM0MkQzNEQxMzFFRDM4ODAwNzVGQTRCIC8qIFdlYkxvY2FsaXphYmxlU3RyaW5n
c0ludGVybmFsLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNUM3NzA2NzAxRDExMUIwMjAwMTI3MDBG
IC8qIFdlYlNvY2tldFByb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyRTVGNDYxQUJG
ODg3NTAwMDNCMTY0IC8qIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBMTBDMUQ3MzE4MjAzMDBFMDAzNjg4M0EgLyogV2ViTUlNRVR5cGVSZWdpc3Ry
eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGNjI4MTA3MTJCOTcwMDdBQTM5MyAvKiBXZWJO
YXZpZ2F0aW9uRGF0YS5tbSBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMjAzMjI4KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDctMTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgU29ja2V0UHJvdmlkZXIgdG8gY3Jl
YXRlIFNvY2tldFN0cmVhbUhhbmRsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1OTc3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE1pc2MvV2ViU29ja2V0UHJvdmlkZXIubW06IFJlbW92ZWQuCisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlv
bldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGluaXRTaW1w
bGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3JvdXBOYW1lOl0pOgor
CiAyMDE2LTA3LTEzICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgbW9yZSBjYW5kaWRhdGUgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
U29ja2V0UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YlNvY2tldFByb3ZpZGVyLmgJKHJldmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViU29ja2V0UHJvdmlkZXIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDM1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92
aWRlci5oPgotCi1jbGFzcyBXZWJTb2NrZXRQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpTb2NrZXRQcm92aWRlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJTb2NrZXRQcm92
aWRlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTb2NrZXRQcm92aWRlcik7
IH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0
ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIH5XZWJT
b2NrZXRQcm92aWRlcigpIHsgfQotfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2Vi
U29ja2V0UHJvdmlkZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJTb2NrZXRQcm92aWRlci5tbQkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5tbQkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2ltcG9ydCAiV2ViU29ja2V0UHJvdmlkZXIuaCIKLQotI2lmIEVOQUJMRShXRUJf
U09DS0VUUykKLQotI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudC5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9XZWJTb2Nr
ZXRDaGFubmVsLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvV29ya2VyR2xvYmFsU2NvcGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
V29ya2VyUnVuTG9vcC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaD4KLSNpbXBvcnQg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyIHdlYlNvY2tldENoYW5uZWxNb2RlW10gPSAid2ViU29ja2V0Q2hh
bm5lbE1vZGUiOwotCi1SZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tl
dFByb3ZpZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkKLXsKLSAgICBpZiAoaXM8
V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKSB7Ci0gICAgICAgIFdvcmtlckdsb2JhbFNjb3Bl
JiB3b3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KTsKLSAgICAgICAgV29ya2VyUnVuTG9vcCYgcnVuTG9vcCA9IHdvcmtlckdsb2JhbFNjb3BlLnRo
cmVhZCgpLnJ1bkxvb3AoKTsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBtb2RlOwotICAgICAgICBt
b2RlLmFwcGVuZExpdGVyYWwod2ViU29ja2V0Q2hhbm5lbE1vZGUpOwotICAgICAgICBtb2RlLmFw
cGVuZE51bWJlcihydW5Mb29wLmNyZWF0ZVVuaXF1ZUlkKCkpOwotICAgICAgICByZXR1cm4gV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh3b3JrZXJHbG9iYWxTY29wZSwg
Y2xpZW50LCBtb2RlLnRvU3RyaW5nKCkpOwotICAgIH0KLQotICAgIHJldHVybiBXZWJTb2NrZXRD
aGFubmVsOjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBjbGllbnQpOwotfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFdFQl9TT0NLRVRTKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5tbQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0
ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJl
dmlzaW9uIDIwMzIyMykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw2IEBACiAjaW1wb3J0ICJXZWJTY3JpcHREZWJ1
Z0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJTY3JpcHRXb3JsZEludGVybmFsLmgiCiAjaW1wb3J0
ICJXZWJTZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlci5oIgotI2ltcG9ydCAiV2ViU29ja2V0UHJv
dmlkZXIuaCIKICNpbXBvcnQgIldlYlN0b3JhZ2VNYW5hZ2VySW50ZXJuYWwuaCIKICNpbXBvcnQg
IldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJm
YWNlLmgiCkBAIC0xNzksNiArMTc4LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRSZXNv
dXJjZURlY29kZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KQEAgLTk5Niw3
ICs5OTYsNyBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hCiAgICAg
X3ByaXZhdGUtPmdyb3VwID0gV2ViVmlld0dyb3VwOjpnZXRPckNyZWF0ZShncm91cE5hbWUsIF9w
cml2YXRlLT5wcmVmZXJlbmNlcy5fbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoKTsKICAgICBfcHJp
dmF0ZS0+Z3JvdXAtPmFkZFdlYlZpZXcoc2VsZik7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBw
YWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNsaWVudD4oc2VsZiksIFdl
YlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNv
bmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHNlbGYpLCBTb2NrZXRQ
cm92aWRlcjo6Y3JlYXRlKCkpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudChzZWxmKTsKICAgICBwYWdl
Q29uZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVu
dChzZWxmKTsKQEAgLTEyNDYsNyArMTI0Niw3IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1l
bnRXaXRoU3R5bGU6KE4KICAgICBfcHJpdmF0ZS0+Z3JvdXAgPSBXZWJWaWV3R3JvdXA6OmdldE9y
Q3JlYXRlKGdyb3VwTmFtZSwgX3ByaXZhdGUtPnByZWZlcmVuY2VzLl9sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGgpOwogICAgIF9wcml2YXRlLT5ncm91cC0+YWRkV2ViVmlldyhzZWxmKTsKIAotICAg
IFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uKG1ha2VVbmlxdWVSZWY8V2ViRWRp
dG9yQ2xpZW50PihzZWxmKSwgV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsKKyAgICBQYWdl
Q29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNs
aWVudD4oc2VsZiksIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBu
ZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIw
MzIyMykKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDE2LTA3LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2Nr
ZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYlNvY2tldFByb3ZpZGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJT
b2NrZXRQcm92aWRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlZpZXcuY3BwOiBSZXBsYWNl
ZCBXZWJTb2NrZXRQcm92aWRlciB3aXRoIFNvY2tldFByb3ZpZGVyIGFzIHdlIGRpZCBpbiBXZWJD
b3JlLgorCiAyMDE2LTA3LTExICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQnVpbGQgZml4LgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViU29ja2V0UHJv
dmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3Zp
ZGVyLmNwcAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViU29ja2V0
UHJvdmlkZXIuY3BwCShub25leGlzdGVudCkKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSwgMjAxMiBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKLQotI2lmIEVOQUJM
RShXRUJfU09DS0VUUykKLQotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvV2ViU29ja2V0Q2hhbm5lbC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyR2xvYmFsU2NvcGUuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1dvcmtlclJ1bkxvb3AuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclRo
cmVhZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCi1zdGF0aWMgY29uc3QgY2hhciB3ZWJTb2NrZXRDaGFubmVsTW9kZVtd
ID0gIndlYlNvY2tldENoYW5uZWxNb2RlIjsKLQotUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsPiBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQp
Ci17Ci0gICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgewotICAgICAgICBX
b3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxXb3JrZXJHbG9i
YWxTY29wZT4oY29udGV4dCk7Ci0gICAgICAgIFdvcmtlclJ1bkxvb3AmIHJ1bkxvb3AgPSB3b3Jr
ZXJHbG9iYWxTY29wZS50aHJlYWQoKS5ydW5Mb29wKCk7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIg
bW9kZTsKLSAgICAgICAgbW9kZS5hcHBlbmRMaXRlcmFsKHdlYlNvY2tldENoYW5uZWxNb2RlKTsK
LSAgICAgICAgbW9kZS5hcHBlbmROdW1iZXIocnVuTG9vcC5jcmVhdGVVbmlxdWVJZCgpKTsKLSAg
ICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUod29y
a2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0cmluZygpKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSwgY2xpZW50KTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfU09DS0VUUykKClByb3BlcnR5
IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmNwcApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYlNv
Y2tldFByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViU29ja2V0
UHJvdmlkZXIuaAkocmV2aXNpb24gMjAzMjIzKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViU29j
a2V0UHJvdmlkZXIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4KLQot
Y2xhc3MgV2ViU29ja2V0UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U29ja2V0UHJv
dmlkZXIgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU29ja2V0UHJvdmlkZXI+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0UHJvdmlkZXIpOyB9Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVXZWJTb2NrZXRD
aGFubmVsKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJDb3JlOjpXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB+V2ViU29ja2V0UHJvdmlk
ZXIoKSB7IH0KLX07CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24gMjAzMjIzKQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJNYXJzaGFsbGluZ0hlbHBlcnMuaCIKICNpbmNsdWRlICJQbHVn
aW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKKyNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgogI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCiAjaW5jbHVkZSAiU3ViZnJhbWVM
b2FkZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTY5LDcgKzcwLDYgQEAKICNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oIgogI2luY2x1ZGUgIldlYlNjcmlwdFdvcmxkLmgiCi0jaW5jbHVkZSAiV2ViU29ja2V0
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJXZWJWaWV3R3JvdXAuaCIKICNpbmNsdWRlICJXZWJWaXNpdGVkTGlua1N0b3JlLmgi
CkBAIC0yOTIzLDcgKzI5MjMsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVD
VCBmcmFtCiAKICAgICBtX2luc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQo
dGhpcyk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKG1ha2VVbmlxdWVS
ZWY8V2ViRWRpdG9yQ2xpZW50Pih0aGlzKSwgV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsK
KyAgICBQYWdlQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKG1ha2VVbmlxdWVSZWY8V2ViRWRp
dG9yQ2xpZW50Pih0aGlzKSwgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsKICAgICBjb25maWd1
cmF0aW9uLmNocm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQodGhpcyk7CiAgICAgY29u
ZmlndXJhdGlvbi5jb250ZXh0TWVudUNsaWVudCA9IG5ldyBXZWJDb250ZXh0TWVudUNsaWVudCh0
aGlzKTsKICAgICBjb25maWd1cmF0aW9uLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0
aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283683</attachid>
            <date>2016-07-14 14:16:16 -0700</date>
            <delta_ts>2016-07-14 14:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159774-20160714141529.patch</filename>
            <type>text/plain</type>
            <size>82423</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE2LTA3LTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIFNvY2tl
dFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICBObyBjaGFuZ2Ug
aW4gYmVoYXZpb3VyLgorICAgICAgICAKKyAgICAgICAgSW4gcjIwMjkzMCBJIGludHJvZHVjZWQg
dGhlIFNvY2tldFByb3ZpZGVyLCBidXQgSSB1c2VkIGl0IHRvIG1ha2UgYSBXZWJTb2NrZXRDaGFu
bmVsCisgICAgICAgIGluc3RlYWQgb2YgYSBTb2NrZXRTdHJlYW1IYW5kbGUsIHdoaWNoIGlzIHRo
ZSBjbGFzcyBJIHdhbnQgdG8gbWFrZSBpbnRvIGFuIGludGVyZmFjZQorICAgICAgICBhbmQgcHJv
eHkgdGhlIHdlYiB0cmFmZmljIG92ZXIgdG8gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgSSByZW1vdmVkIHRoaXMgaW4g
MjAyOTMwLCBzbyB0aGlzIGlzIHJlc3RvcmluZyBpdCBmcm9tIHRoYXQgcGF0Y2gsIGhlbmNlIHRo
ZSBvbGQgY29weXJpZ2h0LgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6V2ViU29ja2V0Q2hhbm5l
bCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OldvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJy
aWRnZTo6QnJpZGdlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpCcmlkZ2U6On5CcmlkZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRn
ZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNyZWF0ZSk6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Om92
ZXJsYXlQYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZWdpc3RlclJlZG9TdGVwKToKKyAgICAgICAg
KFdlYkNvcmU6OkVtcHR5U29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNvY2tldENoYW5uZWwpOiBE
ZWxldGVkLgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdl
L1NvY2tldFByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKToKKyAgICAgICAgKiBwYWdlL1NvY2tldFBy
b3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRQcm92aWRlcjo6flNvY2tldFByb3Zp
ZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVh
bUhhbmRsZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorCiAyMDE2LTA3LTEzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENTU1N0eWxlU2hlZXQgbWVt
YmVycyBzaG91bGQgY2xlYXIgdGhlaXIgb3duZXIgbm9kZSB3aGVuIGRlc3Ryb3llZApJbmRleDog
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDMyLDYgKzEwMzIsNyBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmNwcAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TdGF0ZU1h
Y2hpbmUuY3BwCiAKKyAgICBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuY3BwCiAgICAgTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlci5jcHAKICAgICBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cAogICAgIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjA1Myw2
ICsyMDU0LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcAogICAgIHBhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwCiAgICAgcGFnZS9TZXR0aW5ncy5j
cHAKKyAgICBwYWdlL1NvY2tldFByb3ZpZGVyLmNwcAogICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRp
b24uY3BwCiAgICAgcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcAogICAgIHBhZ2UvVGV4dEluZGlj
YXRvci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTIgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQorI2luY2x1ZGUgIlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCIKKyNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVs
LmgiCisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIgorI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldv
cmtlclRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsPiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCwgU29ja2V0UHJv
dmlkZXImIHByb3ZpZGVyKQoreworICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4
dCkpIHsKKyAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0gZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBXb3JrZXJSdW5Mb29w
JiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpOworICAgICAg
ICByZXR1cm4gV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSh3b3JrZXJH
bG9iYWxTY29wZSwgY2xpZW50LCBtYWtlU3RyaW5nKCJ3ZWJTb2NrZXRDaGFubmVsTW9kZSIsIFN0
cmluZzo6bnVtYmVyKHJ1bkxvb3AuY3JlYXRlVW5pcXVlSWQoKSkpLCBwcm92aWRlcik7CisgICAg
fQorCisgICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCksIGNsaWVudCwgcHJvdmlkZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaAkocmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDExICs0NSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xh
c3MgVVJMOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNvY2tldFByb3Zp
ZGVyOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsKIAogY2xhc3MgVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsKTsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQmLCBTb2NrZXRQcm92aWRlciYpOwogICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsKCkgeyB9CiAKICAgICBlbnVtIFNlbmRSZXN1bHQgewpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAJKHJldmlzaW9uIDIwMzI0MCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTUsMTAgKzI1NSwxMCBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChj
b25zdCBTdHJpbmcmIHVyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXV0byBz
b2NrZXRQcm92aWRlciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c29ja2V0UHJvdmlkZXIo
KSkKLSAgICAgICAgbV9jaGFubmVsID0gc29ja2V0UHJvdmlkZXItPmNyZWF0ZVdlYlNvY2tldENo
YW5uZWwoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMpOworICAgIGlmIChhdXRvKiBw
cm92aWRlciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c29ja2V0UHJvdmlkZXIoKSkKKyAg
ICAgICAgbV9jaGFubmVsID0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZSgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgKnByb3ZpZGVyKTsKIAotICAgIC8vIE9ubHkg
YW4gRW1wdHlTb2NrZXRQcm92aWRlciBjYW4gcmV0dXJuIG51bGxwdHIsIGFuZCBldmVyeSBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IHNob3VsZCBoYXZlIGEgU29ja2V0UHJvdmlkZXIuCisgICAgLy8g
RXZlcnkgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzaG91bGQgaGF2ZSBhIFNvY2tldFByb3ZpZGVy
LgogICAgIFJFTEVBU0VfQVNTRVJUKG1fY2hhbm5lbCk7CiAKICAgICAvLyBGSVhNRTogVGhlcmUg
aXMgYSBkaXNhZ3JlZW1lbnQgYWJvdXQgcmVzdHJpY3Rpb24gb2Ygc3VicHJvdG9jb2xzIGJldHdl
ZW4gV2ViU29ja2V0IEFQSSBhbmQgaHliaS0xMCBwcm90b2NvbApJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAko
cmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBACiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJTb2NrZXRTdHJlYW1FcnJvci5oIgogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhh
bmRsZS5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKQEAgLTY0LDExICs2
NSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGRvdWJsZSBUQ1BNYXhpbXVtU2Vn
bWVudExpZmV0aW1lID0gMiAqIDYwLjA7CiAKLVdlYlNvY2tldENoYW5uZWw6OldlYlNvY2tldENo
YW5uZWwoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQp
CitXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKERvY3VtZW50JiBkb2N1bWVudCwg
V2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIp
CiAgICAgOiBtX2RvY3VtZW50KCZkb2N1bWVudCkKICAgICAsIG1fY2xpZW50KCZjbGllbnQpCiAg
ICAgLCBtX3Jlc3VtZVRpbWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lVGltZXJG
aXJlZCkKICAgICAsIG1fY2xvc2luZ1RpbWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6Y2xv
c2luZ1RpbWVyRmlyZWQpCisgICAgLCBtX3NvY2tldFByb3ZpZGVyKHByb3ZpZGVyKQogewogICAg
IGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQogICAgICAgICBtX2lkZW50aWZpZXIg
PSBwYWdlLT5wcm9ncmVzcygpLmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKQEAgLTk4LDcgKzEw
MCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwKICAgICAgICAg
ICAgIHJlZigpOwogICAgICAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CiAgICAg
ICAgICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gcGFnZSA/IHBhZ2UtPnNlc3Npb25JRCgpIDog
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7Ci0gICAgICAgICAgICBtX2hhbmRsZSA9IFNv
Y2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlKG1faGFuZHNoYWtlLT51cmwoKSwgKnRoaXMsICpuZXR3
b3JraW5nQ29udGV4dCwgc2Vzc2lvbklEKTsKKyAgICAgICAgICAgIG1faGFuZGxlID0gbV9zb2Nr
ZXRQcm92aWRlci0+Y3JlYXRlU29ja2V0U3RyZWFtSGFuZGxlKG1faGFuZHNoYWtlLT51cmwoKSwg
KnRoaXMsICpuZXR3b3JraW5nQ29udGV4dCwgc2Vzc2lvbklEKTsKICAgICAgICAgfQogICAgIH0K
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuaAkocmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAtNDks
NiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBGaWxlUmVhZGVyTG9hZGVyOworY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBjbGFz
cyBTb2NrZXRTdHJlYW1IYW5kbGU7CiBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsKIGNsYXNzIFdl
YlNvY2tldENoYW5uZWxDbGllbnQ7CkBAIC01OCw3ICs1OSw3IEBAIGNsYXNzIFdlYlNvY2tldENo
YW5uZWwgOiBwdWJsaWMgUmVmQ291bnQKIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQmIGNsaWVudCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJTb2NrZXRDaGFubmVsKGRvY3VtZW50LCBjbGllbnQpKTsgfQorICAgIHN0
YXRpYyBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgV2Vi
U29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBTb2NrZXRQcm92aWRlciYgcHJvdmlkZXIpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU29ja2V0Q2hhbm5lbChkb2N1bWVudCwgY2xpZW50LCBw
cm92aWRlcikpOyB9CiAgICAgdmlydHVhbCB+V2ViU29ja2V0Q2hhbm5lbCgpOwogCiAgICAgYm9v
bCBzZW5kKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpOwpAQCAtMTE5LDcgKzEyMCw3IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoKSBv
dmVycmlkZSB7IGRlcmVmKCk7IH0KIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBXZWJT
b2NrZXRDaGFubmVsKERvY3VtZW50JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYpOworICAgIFdF
QkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5uZWwoRG9jdW1lbnQmLCBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50JiwgU29ja2V0UHJvdmlkZXImKTsKIAogICAgIGJvb2wgYXBwZW5kVG9CdWZmZXIoY29u
c3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbik7CiAgICAgdm9pZCBza2lwQnVmZmVyKHNpemVfdCBs
ZW4pOwpAQCAtMjEzLDYgKzIxNCw3IEBAIHByaXZhdGU6CiAgICAgQmxvYkxvYWRlclN0YXR1cyBt
X2Jsb2JMb2FkZXJTdGF0dXMgeyBCbG9iTG9hZGVyTm90U3RhcnRlZCB9OwogCiAgICAgV2ViU29j
a2V0RGVmbGF0ZUZyYW1lciBtX2RlZmxhdGVGcmFtZXI7CisgICAgUmVmPFNvY2tldFByb3ZpZGVy
PiBtX3NvY2tldFByb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCShyZXZpc2lvbiAyMDMy
NDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNvY2tldFByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCiAjaW5jbHVkZSAi
V2ViU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIK
QEAgLTUwLDEwICs1MSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbChX
b3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50
LCBjb25zdCBTdHJpbmcmIHRhc2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKFdvcmtlckdsb2JhbFNjb3BlJiBj
b250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiBjbGllbnQsIGNvbnN0IFN0cmluZyYgdGFz
a01vZGUsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRlcikKICAgICA6IG1fd29ya2VyR2xvYmFsU2Nv
cGUoY29udGV4dCkKICAgICAsIG1fd29ya2VyQ2xpZW50V3JhcHBlcihUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmNyZWF0ZShjb250ZXh0LCBjbGllbnQpKQotICAgICwg
bV9icmlkZ2UoQnJpZGdlOjpjcmVhdGUobV93b3JrZXJDbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwg
bV93b3JrZXJHbG9iYWxTY29wZS5jb3B5UmVmKCksIHRhc2tNb2RlKSkKKyAgICAsIG1fYnJpZGdl
KEJyaWRnZTo6Y3JlYXRlKG1fd29ya2VyQ2xpZW50V3JhcHBlci5jb3B5UmVmKCksIG1fd29ya2Vy
R2xvYmFsU2NvcGUuY29weVJlZigpLCB0YXNrTW9kZSwgcHJvdmlkZXIpKQorICAgICwgbV9zb2Nr
ZXRQcm92aWRlcihwcm92aWRlcikKIHsKICAgICBtX2JyaWRnZS0+aW5pdGlhbGl6ZSgpOwogfQpA
QCAtMTQwLDEwICsxNDIsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6cgogICAgICAgICBtX2JyaWRnZS0+cmVzdW1lKCk7CiB9CiAKLVdvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpQZWVyKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI+JiYgY2xpZW50V3JhcHBlciwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRl
clByb3h5LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRh
c2tNb2RlKQorV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OlBlZXIoUmVm
PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiBjbGllbnRXcmFwcGVy
LCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGFza01vZGUsIFNvY2tldFByb3ZpZGVyJiBwcm92aWRl
cikKICAgICA6IG1fd29ya2VyQ2xpZW50V3JhcHBlcihXVEZNb3ZlKGNsaWVudFdyYXBwZXIpKQog
ICAgICwgbV9sb2FkZXJQcm94eShsb2FkZXJQcm94eSkKLSAgICAsIG1fbWFpbldlYlNvY2tldENo
YW5uZWwoV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KSwgKnRoaXMpKQorICAgICwgbV9tYWluV2ViU29ja2V0Q2hhbm5lbChXZWJTb2NrZXRDaGFubmVs
OjpjcmVhdGUoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCAqdGhpcywgcHJvdmlkZXIpKQog
ICAgICwgbV90YXNrTW9kZSh0YXNrTW9kZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwpAQCAtMzI5LDEyICszMzEsMTIgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6UAogICAgIH0sIG1fdGFza01vZGUpOwogfQogCi1Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6QnJpZGdlOjpCcmlkZ2UoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8V29ya2VyR2xvYmFsU2Nv
cGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFza01vZGUpCitXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpCcmlkZ2UoUmVmPFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiB3b3JrZXJDbGllbnRXcmFwcGVyLCBSZWY8
V29ya2VyR2xvYmFsU2NvcGU+JiYgd29ya2VyR2xvYmFsU2NvcGUsIGNvbnN0IFN0cmluZyYgdGFz
a01vZGUsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlcikKICAgICA6IG1fd29y
a2VyQ2xpZW50V3JhcHBlcihXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIpKQogICAgICwgbV93
b3JrZXJHbG9iYWxTY29wZShXVEZNb3ZlKHdvcmtlckdsb2JhbFNjb3BlKSkKICAgICAsIG1fbG9h
ZGVyUHJveHkobV93b3JrZXJHbG9iYWxTY29wZS0+dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHko
KSkKICAgICAsIG1fdGFza01vZGUodGFza01vZGUpCi0gICAgLCBtX3BlZXIobnVsbHB0cikKKyAg
ICAsIG1fc29ja2V0UHJvdmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCiB7CiB9CiAKQEAg
LTM0MywxNCArMzQ1LDE0IEBAIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlk
Z2UKICAgICBkaXNjb25uZWN0KCk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OkJyaWRnZTo6bWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBSZWY8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIGNsaWVudFdyYXBwZXIsIGNvbnN0
IFN0cmluZyYgdGFza01vZGUpCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
OjpCcmlkZ2U6Om1haW5UaHJlYWRJbml0aWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgUmVmPFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiBjbGllbnRXcmFwcGVyLCBjb25zdCBTdHJpbmcm
IHRhc2tNb2RlLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgcHJvdmlkZXIpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoY29udGV4dC5pc0RvY3VtZW50KCkpOwogCiAg
ICAgYm9vbCBzZW50ID0gbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxT
Y29wZSh7CiAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s6OkNsZWFudXBUYXNr
LAotICAgICAgICBbY2xpZW50V3JhcHBlciA9IGNsaWVudFdyYXBwZXIuY29weVJlZigpLCAmbG9h
ZGVyUHJveHksIHBlZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBlZXI+KGNsaWVudFdyYXBwZXIuY29w
eVJlZigpLCBsb2FkZXJQcm94eSwgY29udGV4dCwgdGFza01vZGUpXShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgW2NsaWVudFdyYXBwZXIgPSBjbGll
bnRXcmFwcGVyLmNvcHlSZWYoKSwgJmxvYWRlclByb3h5LCBwZWVyID0gc3RkOjptYWtlX3VuaXF1
ZTxQZWVyPihjbGllbnRXcmFwcGVyLmNvcHlSZWYoKSwgbG9hZGVyUHJveHksIGNvbnRleHQsIHRh
c2tNb2RlLCBXVEZNb3ZlKHByb3ZpZGVyKSldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIG11dGFibGUgewogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0
LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CiAgICAgICAgICAgICBpZiAoY2xpZW50V3JhcHBlci0+
ZmFpbGVkV2ViU29ja2V0Q2hhbm5lbENyZWF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICAvLyBJ
ZiBCcmlkZ2U6OmluaXRpYWxpemUoKSBxdWl0dGVkIGVhcmxpZXIsIHdlIG5lZWQgdG8ga2ljayBt
YWluVGhyZWFkRGVzdHJveSgpIHRvIGRlbGV0ZSB0aGUgcGVlci4KQEAgLTM3Myw4ICszNzUsOCBA
QCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCCiAgICAgc2V0TWV0aG9k
Tm90Q29tcGxldGVkKCk7CiAgICAgUmVmPEJyaWRnZT4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAK
LSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoWyZsb2FkZXJQcm94eSA9IG1fbG9h
ZGVyUHJveHksIHdvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIuY29w
eVJlZigpLCB0YXNrTW9kZSA9IG1fdGFza01vZGUuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICBtYWluVGhyZWFkSW5pdGlh
bGl6ZShjb250ZXh0LCBsb2FkZXJQcm94eSwgV1RGTW92ZSh3b3JrZXJDbGllbnRXcmFwcGVyKSwg
dGFza01vZGUpOworICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihbJmxvYWRlclBy
b3h5ID0gbV9sb2FkZXJQcm94eSwgd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50
V3JhcHBlci5jb3B5UmVmKCksIHRhc2tNb2RlID0gbV90YXNrTW9kZS5pc29sYXRlZENvcHkoKSwg
cHJvdmlkZXIgPSBtX3NvY2tldFByb3ZpZGVyLmNvcHlSZWYoKV0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgIG1haW5UaHJlYWRJbml0aWFsaXplKGNv
bnRleHQsIGxvYWRlclByb3h5LCBXVEZNb3ZlKHdvcmtlckNsaWVudFdyYXBwZXIpLCB0YXNrTW9k
ZSwgV1RGTW92ZShwcm92aWRlcikpOwogICAgIH0pOwogICAgIHdhaXRGb3JNZXRob2RDb21wbGV0
aW9uKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCShy
ZXZpc2lvbiAyMDMyNDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsOSAr
NTMsOSBAQCBjbGFzcyBXb3JrZXJSdW5Mb29wOwogY2xhc3MgV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbD4sIHB1YmxpYyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbD4gY3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29w
ZSwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHRhc2tNb2Rl
KQorICAgIHN0YXRpYyBSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZShXb3Jr
ZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUsIFdlYlNvY2tldENoYW5uZWxDbGllbnQm
IGNsaWVudCwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXImIHByb3ZpZGVy
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01vZGUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgdGFza01vZGUsIHByb3ZpZGVyKSk7CiAgICAg
fQogICAgIHZpcnR1YWwgfldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsKCk7CiAKQEAg
LTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIGNsYXNzIFBlZXIgOiBwdWJsaWMgV2ViU29ja2V0
Q2hhbm5lbENsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBlZXIpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFBlZXIoUmVmPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgV29ya2VyTG9hZGVyUHJveHkm
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAg
ICAgIFBlZXIoUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwg
V29ya2VyTG9hZGVyUHJveHkmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5n
JiB0YXNrTW9kZSwgU29ja2V0UHJvdmlkZXImKTsKICAgICAgICAgflBlZXIoKTsKIAogICAgICAg
ICB2b2lkIGNvbm5lY3QoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7CkBAIC0x
MTksOSArMTE5LDkgQEAgcHJpdmF0ZToKICAgICAvLyBCcmlkZ2UgZm9yIFBlZXIuICBSdW5uaW5n
IG9uIHRoZSB3b3JrZXIgdGhyZWFkLgogICAgIGNsYXNzIEJyaWRnZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEJyaWRnZT4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxCcmlkZ2U+IGNy
ZWF0ZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIHdvcmtl
ckNsaWVudFdyYXBwZXIsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJHbG9iYWxTY29w
ZSwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSkKKyAgICAgICAgc3RhdGljIFJlZjxCcmlkZ2U+IGNy
ZWF0ZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmIHdvcmtl
ckNsaWVudFdyYXBwZXIsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiB3b3JrZXJHbG9iYWxTY29w
ZSwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHByb3ZpZGVy
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCcmlkZ2UoV1RG
TW92ZSh3b3JrZXJDbGllbnRXcmFwcGVyKSwgV1RGTW92ZSh3b3JrZXJHbG9iYWxTY29wZSksIHRh
c2tNb2RlKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBCcmlkZ2UoV1RGTW92
ZSh3b3JrZXJDbGllbnRXcmFwcGVyKSwgV1RGTW92ZSh3b3JrZXJHbG9iYWxTY29wZSksIHRhc2tN
b2RlLCBXVEZNb3ZlKHByb3ZpZGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIH5CcmlkZ2UoKTsK
ICAgICAgICAgdm9pZCBpbml0aWFsaXplKCk7CkBAIC0xNDAsMTIgKzE0MCwxMiBAQCBwcml2YXRl
OgogICAgICAgICB1c2luZyBSZWZDb3VudGVkPEJyaWRnZT46OmRlcmVmOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgQnJpZGdlKFJlZjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI+JiYsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9k
ZSk7CisgICAgICAgIEJyaWRnZShSZWY8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyPiYmLCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+JiYsIGNvbnN0IFN0cmluZyYgdGFza01v
ZGUsIFJlZjxTb2NrZXRQcm92aWRlcj4mJik7CiAKICAgICAgICAgc3RhdGljIHZvaWQgc2V0V2Vi
U29ja2V0Q2hhbm5lbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQnJpZGdlKiB0aGlzUHRyLCBQ
ZWVyKiwgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJik7CiAK
ICAgICAgICAgLy8gRXhlY3V0ZWQgb24gdGhlIG1haW4gdGhyZWFkIHRvIGNyZWF0ZSBhIFBlZXIg
Zm9yIHRoaXMgYnJpZGdlLgotICAgICAgICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkSW5pdGlhbGl6
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya2VyTG9hZGVyUHJveHkmLCBSZWY8VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiYmLCBjb25zdCBTdHJpbmcmIHRhc2tN
b2RlKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFpblRocmVhZEluaXRpYWxpemUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFdvcmtlckxvYWRlclByb3h5JiwgUmVmPFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4mJiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmKTsKIAogICAgICAgICAvLyBFeGVjdXRlZCBvbiB0aGUgd29ya2VyIGNv
bnRleHQncyB0aHJlYWQuCiAgICAgICAgIHZvaWQgY2xlYXJDbGllbnRXcmFwcGVyKCk7CkBAIC0x
NTcsMTYgKzE1NywxOCBAQCBwcml2YXRlOgogICAgICAgICBSZWZQdHI8V29ya2VyR2xvYmFsU2Nv
cGU+IG1fd29ya2VyR2xvYmFsU2NvcGU7CiAgICAgICAgIFdvcmtlckxvYWRlclByb3h5JiBtX2xv
YWRlclByb3h5OwogICAgICAgICBTdHJpbmcgbV90YXNrTW9kZTsKLSAgICAgICAgUGVlciogbV9w
ZWVyOworICAgICAgICBQZWVyKiBtX3BlZXIgeyBudWxscHRyIH07CisgICAgICAgIFJlZjxTb2Nr
ZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFsU2NvcGUmLCBX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwoV29ya2VyR2xvYmFs
U2NvcGUmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50JiwgY29uc3QgU3RyaW5nJiB0YXNrTW9kZSwg
U29ja2V0UHJvdmlkZXImKTsKIAogICAgIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlRGlkSW5pdGlh
bGl6ZVRhc2s7CiAKICAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IG1fd29ya2VyR2xvYmFsU2Nv
cGU7CiAgICAgUmVmPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gbV93
b3JrZXJDbGllbnRXcmFwcGVyOwogICAgIFJlZlB0cjxCcmlkZ2U+IG1fYnJpZGdlOworICAgIFJl
ZjxTb2NrZXRQcm92aWRlcj4gbV9zb2NrZXRQcm92aWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQs
NiBAQAogCQkwMUU2QzJFNDExOTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMUU2QzJFMzEx
OTRCMjgyMDA1MDgyMUMgLyogU3BlbGxpbmdEb3RAMngucG5nICovOyB9OwogCQkwNTYyRjk2MTE1
NzNGODhGMDAzMUNBMTYgLyogUGxhdGZvcm1MYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDU2MkY5NjAxNTczRjg4RjAwMzFDQTE2IC8qIFBsYXRm
b3JtTGF5ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNUQ5MTNDRUVBQjJBNjA1MzQyMThBQ0YgLyogTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzRTYxQzY1
M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwICovOyB9OwotCQkx
NkVBMjRDRUVBQjJBNjA1MzQyMThBQ0YgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ0RjcyQzY1M0E2
NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwICovOyB9OwogCQkw
NUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlERjEyODQ1RDQzMDBCMkJFQjMg
LyogRE9NVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDYwMjdDQUQwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDYwMjdDQUMw
QjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MjI4Nzg0MEI0REIzMjIwMDBDMzRERiAv
KiBGb2N1c0RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDYyMjg3ODMwQjREQjMyMjAwMEMzNERGIC8qIEZvY3VzRGlyZWN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY2Niw2ICs2
NjUsNyBAQAogCQkxNUZDQzlGQzFCNERGN0YyMDBFNzIzMjYgLyogRE9NVVJMTWVkaWFTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0
RUQxOUVFMzY0MjAwRTVBMDQ1IC8qIERPTVVSTE1lZGlhU3RyZWFtLmNwcCAqLzsgfTsKIAkJMTVG
Q0M5RkUxQjRERjg1RTAwRTcyMzI2IC8qIERPTVVSTE1lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNUZDQzlGRDFCNERGODU2MDBFNzIz
MjYgLyogRE9NVVJMTWVkaWFTdHJlYW0uaCAqLzsgfTsKIAkJMTYzRTg4RjcxMThBMzlEMjAwRUQ5
MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTYzRTg4RjUxMThBMzlEMjAwRUQ5MjMxIC8qIFNpbXBs
ZUZvbnREYXRhQ29yZVRleHQuY3BwICovOyB9OworCQkxNkVBMjRDRUVBQjJBNjA1MzQyMThBQ0Yg
LyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ0RjcyQzY1M0E2NDgwN0E4M0U3NkZCOCAvKiBNYXRoTUxP
cGVyYXRvckRpY3Rpb25hcnkuY3BwICovOyB9OwogCQkxODVCQ0YyODBGMzI3OUNFMDAwRUEyNjIg
LyogVGhyZWFkVGltZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE4NUJDRjI2MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuY3BwICov
OyB9OwogCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0YyNzBGMzI3OUNF
MDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggKi87IH07CiAJCTE4ODYwNEIzMEYyRTY1NEEwMDBC
NjQ0MyAvKiBET01UaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxODg2MDRCMTBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3BwICovOyB9
OwpAQCAtMTk4MSw2ICsxOTgxLDggQEAKIAkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVk
aXRpbmdCZWhhdmlvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RjE1MzRERjExQjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlw
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
RjZGREQ2NDEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGNkZERDYyMTM0MURFREQw
MDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovOyB9OwogCQk0RjZGREQ2NTEzNDFE
RUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjZGREQ2MzEzNDFERUREMDAxRjhFRTMgLyogSW5z
cGVjdG9yUGFnZUFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNEZBNjVBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkE2
NUE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MU3BhY2VFbGVtZW50LmNwcCAqLzsgfTsKKwkJ
NEZBNjVBNkMxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNkExMTA4QUJFRDAw
MjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oICovOyB9OwogCQk0RkIzOTBBRDE1RUY2MUYz
MDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRl
ZEltYWdlLmNwcCAqLzsgfTsKIAkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJl
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RkFCNDg2NjE2NDNBNjdFMDBGNzBDMDcgLyogTm9kZVJhcmVEYXRhLmNwcCAqLzsgfTsKIAkJNEZG
QzAyMkQxNjQzQjcyNjAwNEUxNjM4IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkFCNDg2NDE2NDNBNjZEMDBGNzBD
MDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLzsgfTsKQEAgLTIwMDgsNyArMjAxMCw3IEBACiAJ
CTUxMEQ0QTMzMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMkQxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgKi87IH07CiAJCTUxMEQ0
QTM0MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTJFMTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAqLzsgfTsKIAkJNTEwRDRBMzYxMDMxNjVF
RTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzAxMDMxNjVFRTAwNDlFQTU0IC8q
IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwICovOyB9OwotCQk1MTBENEEzNzEwMzE2NUVFMDA0
OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tl
dFN0cmVhbUhhbmRsZUJhc2UuaCAqLzsgfTsKKwkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8q
IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1I
YW5kbGVCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRB
MzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMUVDMTI3MUM1MEFB
Q0EwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJT
ZXJpYWxpemF0aW9uLmNwcCAqLzsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElE
QlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87
IH07CkBAIC0yMjI2LDcgKzIyMjgsNyBAQAogCQk1MUE5RDlGNDE5NUI5NTAzMDAxQjJCNUMgLyog
SElER2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFBOUQ5RjAxOTVCOTUwMzAwMUIyQjVDIC8qIEhJREdhbWVwYWQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUFBM0Y2RjBCRDVBQTlFMDA4
OTI5NzEgLyogUmVzb3VyY2VMb2FkZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFBM0Y2RTBCRDVBQTlFMDA4OTI5NzEgLyogUmVzb3VyY2VM
b2FkZXJNYWMubW0gKi87IH07CiAJCTUxQUJBRTFCMTAzQzE4RkYwMDhDNTI2MCAvKiBTb2NrZXRT
dHJlYW1FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFBQkFFMUExMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggKi87IH07
Ci0JCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5
MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgfTsKKwkJNTFBQkFFMUUxMDND
MTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNv
Y2tldFN0cmVhbUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUxQUJBRTFGMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3Bw
ICovOyB9OwogCQk1MUFCRjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3RyYXRlZ3kuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkY2NEMx
NjM5MkUyODAwMTMyQTdBIC8qIExvYWRlclN0cmF0ZWd5LmNwcCAqLzsgfTsKIAkJNTFBRjUwMzYx
NkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUY1MDM1MTZGMTAwRjYwMDk1QjJFOCAv
KiBSZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTIzOTEsNiArMjM5Myw4IEBACiAJCTVDNDMwNEIxMTkxQUM5MDgw
MDBFMkJDMCAvKiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hh
ZGVyVGV4dHVyZUxPRC5oICovOyB9OwogCQk1QzQzMDRCNTE5MUFFRjQ2MDAwRTJCQzAgLyogSlNF
WFRTaGFkZXJUZXh0dXJlTE9ELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDNDMwNEIzMTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRlclRleHR1
cmVMT0QuY3BwICovOyB9OwogCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFk
ZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmgg
Ki87IH07CisJCTVDNjg4QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzY4OEFBMDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwICovOyB9OworCQk1QzY4OEFBMzFEMzgxNEJGMDAwQjU0RkEgLyogU29ja2V0UHJvdmlkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2ODhB
QTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJNUM3Qzg4
RDgxRDBGMUY0QTAwOUQyRjZEIC8qIFNvY2tldFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyog
U29ja2V0UHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1QzlBN0E3NTFBQTBGNkVBMDA5NThBQ0YgLyogREZBQnl0ZWNvZGVDb21waWxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzM5
MzA1RTFBQTBGNkE5MDAyOUM4MTYgLyogREZBQnl0ZWNvZGVDb21waWxlci5jcHAgKi87IH07CiAJ
CTVDOUE3QTc2MUFBMEY2RUQwMDk1OEFDRiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDYwMUFB
MEY2QTkwMDI5QzgxNiAvKiBERkFCeXRlY29kZUludGVycHJldGVyLmNwcCAqLzsgfTsKQEAgLTUz
OTUsNiArNTM5OSw3IEBACiAJCUI1N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVt
ZW50Qm94LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1N0NCNTJDMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmNwcCAqLzsgfTsK
IAkJQjU3Q0I1MkUxODJBM0VGQzAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1N0NCNTJCMTgyQTM3RjYw
MDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggKi87IH07CiAJCUI1OTVGRjQ3MTgyNENFRTMw
MEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjU5NUZGNDYxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJh
dG9yLmggKi87IH07CisJCUI1OUNBMzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxQYWRkZWRF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEI1OUNBNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcCAqLzsg
fTsKIAkJQjU5REQ2OTkxMTkwMjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjU5REQ2OTcxMTkw
MjlFNTAwN0U5Njg0IC8qIEpTRGF0YWJhc2VDYWxsYmFjay5oICovOyB9OwogCQlCNTlERDY5QTEx
OTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1OURENjk4MTE5MDI5RTUwMDdFOTY4NCAv
KiBKU0RhdGFiYXNlQ2FsbGJhY2suY3BwICovOyB9OwogCQlCNTlERDY5RDExOTAyQTQyMDA3RTk2
ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlERDY5QjExOTAyQTQyMDA3RTk2ODQgLyogSlNTUUxU
cmFuc2FjdGlvbkNhbGxiYWNrLmggKi87IH07CkBAIC02ODk0LDggKzY4OTksNiBAQAogCQlGOThG
RkY0NDExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOThGRkY0MjExQTI2NzYyMDBGNTQ4RTggLyog
Q1NTT01VdGlscy5jcHAgKi87IH07CiAJCUY5OEZGRjQ1MTFBMjY3NjIwMEY1NDhFOCAvKiBDU1NP
TVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
OThGRkY0MzExQTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5oICovOyB9OwogCQlGOUYwRUQ3
QTBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0Ey
MDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07Ci0JCTRGQTY1
QTZCMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBNjVBNjkxMTA4QUJFRDAwMjYx
NUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi87IH07Ci0JCTRGQTY1QTZDMTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxT
cGFjZUVsZW1lbnQuaCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhN
TFRleHRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZBNjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAg
Ki87IH07CiAJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRBNkEx
MTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi87IH07CiAJCUZBQkU3MkY0
MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBQkU3MkVEMTA1OUMxRUIwMEQ5OTlERCAvKiBN
YXRoTUxFbGVtZW50LmNwcCAqLzsgfTsKQEAgLTcyMTAsNyArNzIxMyw2IEBACiAJCUZFRDEzRDNE
MENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFRDEzRDNCMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlP
Uy5tbSAqLzsgfTsKIAkJRkVEMTNENDAwQ0VBOTM5NDAwRDg5NDY2IC8qIEljb25JT1MubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUQxM0QzRjBDRUE5
Mzk0MDBEODk0NjYgLyogSWNvbklPUy5tbSAqLzsgfTsKIAkJRkVEMTNENTIwQ0VBOTQ5NzAwRDg5
NDY2IC8qIFJlbmRlclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRUQxM0Q1MDBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVyVGhlbWVJT1Mu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCNTlD
QTM5MENFRDY2QzMyNTVGNzJDNTkgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlDQTU5QUYxNzBEOEZBQTVC
OENBQkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi87IH07CiAJCUZFRDQ4MzkwQ0VENjZD
MzI1NUY3MkM1OSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3NUEwNTlBRjE3MEQ4RkFBNUI4Q0FCRSAvKiBN
YXRoTUxTZWxlY3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRkVFMTgxMTMxNkMzMTlFODAwMDg0ODQ5
IC8qIFNRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUUxODExMTE2QzMxOUU4MDAwODQ4NDkgLyogU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kLmNwcCAqLzsgfTsKIAkJRkVFMTgxMTQxNkMzMTlFODAwMDg0ODQ5IC8qIFNR
TFRyYW5zYWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkVFMTgxMTIxNkMzMTlFODAwMDg0ODQ5IC8qIFNRTFRyYW5zYWN0aW9uQmFj
a2VuZC5oICovOyB9OwpAQCAtOTYxMiw2ICs5NjE0LDggQEAKIAkJNEYxNTM0REYxMUI1MzMwMjAw
MjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEVkaXRpbmdCZWhhdmlvclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUGFnZUFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEY2RkRENjMxMzQxREVERDAwMUY4
RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnNwZWN0b3JQYWdlQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEZBNjVBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RkE2NUE2QTExMDhBQkVEMDAyNjE1RTAgLyog
TWF0aE1MU3BhY2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1h
dGhNTFNwYWNlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkFCNDg2
NDE2NDNBNjZEMDBGNzBDMDcgLyogRWxlbWVudFJhcmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVsZW1lbnRSYXJlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTRGQUI0ODY2MTY0M0E2N0UwMEY3MEMwNyAvKiBOb2RlUmFyZURhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZVJhcmVEYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEZCMzkwQUMxNUVGNjFGMzAwN0FENTFG
IC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdlbmVyYXRlZEltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
MDMwLDcgKzEwMDM0LDYgQEAKIAkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTk1OEYxQ0IxMzQzOTE3QzAwODBCMzFGIC8qIFhNTFZpZXdlci5jc3MgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LmNzczsgcGF0aCA9IFhNTFZpZXdlci5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU5NThGMUNDMTM0MzkxN0MwMDgwQjMxRiAvKiBYTUxWaWV3ZXIuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBYTUxWaWV3ZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUI1OUNBODQ5RDQxRTZGNjVEODExOThCQyAvKiBNYXRoTUxQYWRkZWRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFBhZGRlZEVs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk3ODA4NDlENDFFNkY2NUQ4
MTE5OEJDIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWF0aE1MU2VsZWN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1OTgzNjVEQzEzNTVGNTNDMDAxQjE4NUQgLyogSlNQb3NpdGlvbkNhbGxiYWNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25DYWxsYmFjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTgzNjVERTEzNTVGNTYyMDAxQjE4NUQgLyogSlNQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMDcwLDYgKzEwMDczLDggQEAKIAkJNUM0MzA0QUYxOTFBQzkwODAwMEUyQkMwIC8qIEVYVFNo
YWRlclRleHR1cmVMT0QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVFNoYWRlclRleHR1
cmVMT0QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzQzMDRCMzE5MUFFRjQ2
MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDNDMwNEI0MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRl
clRleHR1cmVMT0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRTaGFk
ZXJUZXh0dXJlTE9ELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEwMUQz
ODA1MDkwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNjg4QUEyMUQzODEyNkYwMDBCNTRG
QSAvKiBTb2NrZXRQcm92aWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTb2NrZXRQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
N0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzlCODYwQjFDMjFFM0M2MDAxMTBGMzYgLyogUmVzb3VyY2VMb2FkVGltaW5n
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVzb3VyY2VMb2Fk
VGltaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IzN0ZGQzFDNjJEMjc4
MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzM4OCw2ICsxMzM5Myw4IEBACiAJCUI1N0NCNTJCMTgyQTM3RjYwMDc5
QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElubGluZUVsZW1lbnRCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU3
Q0I1MkMxODJBM0VFRDAwNzlBNjQ3IC8qIElubGluZUVsZW1lbnRCb3guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRWxlbWVudEJveC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OTVGRjQ2MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5kZXJJ
dGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJJdGVyYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENB
QkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQjU5Q0E4NDlENDFFNkY2NUQ4MTE5OEJDIC8qIE1hdGhNTFBhZGRlZEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MUGFkZGVkRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlERDY5NzExOTAyOUU1MDA3RTk2ODQg
LyogSlNEYXRhYmFzZUNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTRGF0YWJhc2VDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCNTlE
RDY5ODExOTAyOUU1MDA3RTk2ODQgLyogSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YWJhc2VDYWxsYmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUI1OURENjlCMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NR
TFRyYW5zYWN0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNDAxMiw3ICsxNDAxOSw2IEBACiAJCUMzQ0YxN0EyMTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRh
cmdldE9ic2VydmVyUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzNDRjE3QTMxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJZFRhcmdldE9ic2VydmVy
UmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNFNjFDNjUzQTY0ODA3
QTgzRTc2RkI4IC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3Bl
cmF0b3JEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM0MDBEMTA4MThGMUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudExvb3BJbnB1dC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFt
ZVNuYXBzaG90dGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
cmFtZVNuYXBzaG90dGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2
Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQzODUsNyArMTQzOTEsNiBAQAogCQlDRTI4NDk4ODFDQTM2MTQ2MDBC
NEE1N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0
aXZlTmFtZXMuY3BwOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5h
bWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U1Q0IxQjMxNEVEQUI2RjAw
QkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3
QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MTWVuY2xvc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCURGN0U5QTI5NEM3QUFDRTBBRDg5QjNERCAvKiBNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MT3Bl
cmF0b3JEaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkRBREY3
MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTZE
QURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTc5OUY5NTFD
NkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lT
b3VyY2VMaXN0LmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDgyLDYgKzE0NDg3LDcgQEAK
IAkJRDNGM0QzNjIxQTY5QjE5MDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMMlJlbmRlcmluZ0NvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDNGM0QzNjUxQTY5QjFBNTAwNTlG
QzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEM0YzRDM2NjFBNjlCMUE1MDA1OUZDMkIgLyogSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlENEY3MkM2NTNBNjQ4MDdBODNFNzZGQjggLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9u
YXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGhNTE9wZXJh
dG9yRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ2MTlBMzA1
MTQ0RTAwQkUwMDRCQzMwMiAvKiBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENjE5QTMwNjE0NEUwMEJFMDA0QkMzMDIgLyog
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDaGlsZExpc3RNdXRhdGlvblNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUQ2NDg5RDIzMTY2RkZDRjEwMDdDMDMxQiAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVGVtcGxhdGVFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTE3LDYgKzE0NTIzLDcgQEAK
IAkJREU0OUIzMDcxNjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREU0OUIzMDgx
NjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFQzI5NzVEMUI0REVCMkEwMDVGNTk0NSAvKiBK
U0N1c3RvbUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQ3VzdG9tRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlERjdFOUEyOTRDN0FBQ0UwQUQ4OUIzREQgLyogTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFy
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERjlBRkQ3MDEzRkMzMUQ4MDAxNUZF
QjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGOUFGRDcxMTNGQzMxRDgwMDE1RkVCNyAv
KiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTBGRUYzNzFCMDdDNTNFQUMxQzFG
QkVFIC8qIEV2ZW50U291cmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVudFNvdXJj
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA1Miw3ICsxNTA1OSw2IEBA
CiAJCUY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGF0YUxpc3RFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjU5MTY0M0M0MkMwMEQ2Q0I2OSAv
KiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RTBDNjVBMTY0M0M0MkMwMEQ2
Q0I2OSAvKiBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCNTlDQTU5QUYxNzBEOEZBQTVCOENB
QkUgLyogTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYXRoTUxQYWRkZWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjc1QTA1OUFGMTcwRDhGQUE1QjhDQUJFIC8qIE1hdGhNTFNlbGVjdEVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MU2VsZWN0RWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY4MjE2Mjk5MDI5RjRGQjUw
MTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEph
dmFTY3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJRjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTA2Myw4ICsxNTA2OSw2IEBACiAJCUY5RjBFRDc4MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGQTY1NEE2MzExMDhBQkI3MDAyNjE1RTAgLyogbWF0aG1sLmNzcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
Y3NzOyBwYXRoID0gbWF0aG1sLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2
NTRBNjcxMTA4QUJFMjAwMjYxNUUwIC8qIG1hdGhhdHRycy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBtYXRoYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRGQTY1QTY5
MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MU3BhY2VFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZBNjVBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNw
YWNlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXRoTUxTcGFj
ZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjkxMTA4QUJF
RDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1hdGhNTFRleHRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkE2NTRBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFRleHRFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZBNkU0NjZGQ0QwNDE4QTk5NjZBNUI2MCAv
KiBETlNSZXNvbHZlUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE5T
UmVzb2x2ZVF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODE3Myw2ICsx
ODE3Nyw3IEBACiAJCTY1QkYwMjE4MDk3NDgwNjMwMEM0MzE5NiAvKiBwYWdlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzY4OEFBMjFEMzgxMjZGMDAw
QjU0RkEgLyogU29ja2V0UHJvdmlkZXIuY3BwICovLAogCQkJCTMxNkZFMTA2MEU2RTFEODQwMEJG
NjA4OCAvKiBhbmltYXRpb24gKi8sCiAJCQkJNUQ1OTc1QjUxOTYzNjJCRTAwRDAwODc4IC8qIGNv
Y29hICovLAogCQkJCUNFMTdBRDE0MUM1ODUyMkYwMDVGNDc5OSAvKiBjc3AgKi8sCkBAIC0xOTkw
NSw2ICsxOTkxMCw3IEBACiAJCTk3QUFCQ0Y3MTRGQTA5QjUwMDc0NTdBRSAvKiB3ZWJzb2NrZXRz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzY4OEFB
MDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwICovLAog
CQkJCTk3QUFCQ0Y4MTRGQTA5RDUwMDc0NTdBRSAvKiBDbG9zZUV2ZW50LmggKi8sCiAJCQkJOTdB
QUJDRjkxNEZBMDlENTAwNzQ1N0FFIC8qIENsb3NlRXZlbnQuaWRsICovLAogCQkJCTk3QUFCQ0ZD
MTRGQTA5RDUwMDc0NTdBRSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oICovLApAQCAt
Mjk5MTcsNiArMjk5MjMsNyBAQAogCQkJCTg1QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01P
dmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRCRDUxMDQ0QTAxRTAwRUFF
QjUyIC8qIERPTVBhZ2VUcmFuc2l0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUNF
NTNFNzBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTVDNjg4QUExMUQzODBCRjgwMDBCNTRGQSAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTU0ODgxODE0RTQzMkExMDA2QUUwNUEgLyogRE9NUGF0
Y2hTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTAwMkY4MUI1NkQ3ODEwMDIwQUFG
NyAvKiBET01QYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEVCMEQ3NDVFMkIwMDY0
NDJFOSAvKiBET01QbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDc3MCw2ICszMDc3Nyw3
IEBACiAJCQkJQ0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTTWVkaWFLZXlzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBKU01lZGlhS2V5U2Vz
c2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzNDMzlCNjBDMEQzRDhEMDA1RjREN0EgLyog
SlNNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM2ODhBQTMxRDM4MTRCRjAwMEI1
NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQzQTk0QTQ2MTIy
REM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDNTM0M0ZDMTdCNzRCNjMwMDQyMzJGMCAvKiBKU01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzkwMjZCNjUxQjFDRjVGRTAwMUQ5OUE3IC8qIEpTTWVkaWFS
ZW1vdGVDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODY0LDcgKzg2NCw3IEBAIFBhZ2UqIEluc3BlY3Rvck92ZXJsYXk6Om92ZXJsYXlQYWdl
KCkKICAgICBpZiAobV9vdmVybGF5UGFnZSkKICAgICAgICAgcmV0dXJuIG1fb3ZlcmxheVBhZ2Uu
Z2V0KCk7CiAKLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5p
cXVlUmVmPEVtcHR5RWRpdG9yQ2xpZW50PigpLCBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGUo
KSk7CisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJl
ZjxFbXB0eUVkaXRvckNsaWVudD4oKSwgU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpKTsKICAgICBm
aWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgbV9vdmVybGF5UGFn
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAkocmV2aXNpb24gMjAz
MjQwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2NSwxMSArMjY1LDQgQEAgdm9pZCBFbXB0eUVkaXRvckNsaWVudDo6cmVnaXN0
ZXJSZWRvU3RlcAogewogfQogCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotUmVmUHRyPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsPiBFbXB0eVNvY2tldFByb3ZpZGVyOjpjcmVhdGVXZWJTb2Nr
ZXRDaGFubmVsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50
JikKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgotCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAyMDMyNDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0NiwxNSArNjQ2
LDYgQEAgY2xhc3MgRW1wdHlEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBmaW5hbAogICAgIHZvaWQg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgU2hvdWxkU2FtcGxlKSBvdmVycmlkZSB7IH0KIH07CiAKLWNsYXNz
IEVtcHR5U29ja2V0UHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgU29ja2V0UHJvdmlkZXIgewotcHVi
bGljOgotICAgIHZpcnR1YWwgfkVtcHR5U29ja2V0UHJvdmlkZXIoKSB7IH0KLSAgICBzdGF0aWMg
UmVmPEVtcHR5U29ja2V0UHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RW1wdHlTb2NrZXRQcm92aWRlcik7IH0KLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCi0gICAgUmVm
UHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsPiBjcmVhdGVXZWJTb2NrZXRDaGFubmVsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50Jikgb3ZlcnJpZGU7
Ci0jZW5kaWYKLX07Ci0KIHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNvbmZpZ3VyYXRp
b24mKTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTb2NrZXRQcm92aWRlci5oIgorCisjaWYgRU5BQkxFKFdFQl9TT0NL
RVRTKQorCisjaW5jbHVkZSAiU29ja2V0U3RyZWFtSGFuZGxlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICAKK1JlZjxTb2NrZXRTdHJlYW1IYW5kbGU+IFNvY2tldFByb3ZpZGVyOjpjcmVh
dGVTb2NrZXRTdHJlYW1IYW5kbGUoY29uc3QgVVJMJiB1cmwsIFNvY2tldFN0cmVhbUhhbmRsZUNs
aWVudCYgY2xpZW50LCBOZXR3b3JraW5nQ29udGV4dCYgY29udGV4dCwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKK3sKKyAgICByZXR1cm4gU29ja2V0U3RyZWFtSGFuZGxlOjpjcmVhdGUodXJsLCBjbGll
bnQsIGNvbnRleHQsIHNlc3Npb25JRCk7Cit9CisgICAgCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX1NPQ0tFVFMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Tb2NrZXRQcm92aWRlci5oCShyZXZp
c2lvbiAyMDMyNDApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NvY2tldFByb3ZpZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDE5ICsyNSwyMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBO
ZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci1jbGFzcyBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDsKLWNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQ7
CitjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGU7CitjbGFzcyBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQ7CitjbGFzcyBVUkw7CiAKLWNsYXNzIFNvY2tldFByb3ZpZGVyIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFNvY2tldFByb3ZpZGVyPiB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBTb2Nr
ZXRQcm92aWRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTb2NrZXRQcm92aWRlcj4g
ewogcHVibGljOgogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICB2aXJ0dWFsIFJlZlB0cjxU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gY3JlYXRlV2ViU29ja2V0Q2hhbm5lbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgV2ViU29ja2V0Q2hhbm5lbENsaWVudCYpID0gMDsKKyAgICBzdGF0
aWMgUmVmPFNvY2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNv
Y2tldFByb3ZpZGVyKTsgfQorICAgIHZpcnR1YWwgUmVmPFNvY2tldFN0cmVhbUhhbmRsZT4gY3Jl
YXRlU29ja2V0U3RyZWFtSGFuZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVu
dCYsIE5ldHdvcmtpbmdDb250ZXh0JiwgU2Vzc2lvbklEKTsKICNlbmRpZgogICAgIHZpcnR1YWwg
flNvY2tldFByb3ZpZGVyKCkgeyB9OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24g
MjAzMjQwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJl
YW1IYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgaW50IHBsYXRmb3JtU2VuZChjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DbG9zZSgpOwogCi0gICAgU29ja2V0U3RyZWFtSGFu
ZGxlKGNvbnN0IFVSTCYsIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudCYsIE5ldHdvcmtpbmdDb250
ZXh0JiwgU2Vzc2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTb2NrZXRTdHJlYW1IYW5kbGUo
Y29uc3QgVVJMJiwgU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50JiwgTmV0d29ya2luZ0NvbnRleHQm
LCBTZXNzaW9uSUQpOwogICAgIHZvaWQgY3JlYXRlU3RyZWFtcygpOwogICAgIHZvaWQgc2NoZWR1
bGVTdHJlYW1zKCk7CiAgICAgdm9pZCBjaG9vc2VQcm94eSgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCShyZXZpc2lvbiAyMDMyNDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODAs
NyArMzgwLDcgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUgogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmIChhbGxEYXRhUmVjZWl2ZWQpIHsKLSAgICAgICAg
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxFbXB0eUVk
aXRvckNsaWVudD4oKSwgRW1wdHlTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOworICAgICAgICBQ
YWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPEVtcHR5RWRp
dG9yQ2xpZW50PigpLCBTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOwogICAgICAgICBmaWxsV2l0
aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7CiAgICAgICAgIG1fY2hyb21lQ2xpZW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxTVkdJbWFnZUNocm9tZUNsaWVudD4odGhpcyk7CiAgICAgICAg
IHBhZ2VDb25maWd1cmF0aW9uLmNocm9tZUNsaWVudCA9IG1fY2hyb21lQ2xpZW50LmdldCgpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDctMTQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgU29ja2V0
UHJvdmlkZXIgdG8gY3JlYXRlIFNvY2tldFN0cmVhbUhhbmRsZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTc3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNv
Y2tldFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0UHJvdmlkZXI6OmNy
ZWF0ZVNvY2tldFN0cmVhbUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFByb3Zp
ZGVyOjpjcmVhdGVXZWJTb2NrZXRDaGFubmVsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuaDoKKwogMjAxNi0wNy0xNCAgQ3NhYmEgT3N6
dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aGUgIUVOQUJMRShX
RUJfU09DS0VUUykgYnVpbGQgYWZ0ZXIgcjIwMjkzMApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0UHJvdmlkZXIuY3BwCShyZXZp
c2lvbiAyMDMyNDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0UHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRTdHJlYW1IYW5kbGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oPgpAQCAtNDgsMjEgKzQ5LDEwIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIGNvbnN0IGNo
YXIgd2ViU29ja2V0Q2hhbm5lbE1vZGVbXSA9ICJ3ZWJTb2NrZXRDaGFubmVsTW9kZSI7Ci0KLVJl
ZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0
ZVdlYlNvY2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV2ViU29j
a2V0Q2hhbm5lbENsaWVudCYgY2xpZW50KQorUmVmPFNvY2tldFN0cmVhbUhhbmRsZT4gV2ViU29j
a2V0UHJvdmlkZXI6OmNyZWF0ZVNvY2tldFN0cmVhbUhhbmRsZShjb25zdCBVUkwmIHVybCwgU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50JiBjbGllbnQsIE5ldHdvcmtpbmdDb250ZXh0JiBjb250ZXh0
LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZXR1
cm4gYSBwcm94eSBzbyB3ZSBjYW4gZG8gdGhlIGFjdHVhbCBuZXR3b3JrIGludGVyYWN0aW9ucyBp
biB0aGUgTmV0d29ya1Byb2Nlc3MuCi0gICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250
ZXh0KSkgewotICAgICAgICBXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xvYmFsU2NvcGUgPSBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7Ci0gICAgICAgIFdvcmtlclJ1bkxv
b3AmIHJ1bkxvb3AgPSB3b3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5ydW5Mb29wKCk7Ci0gICAg
ICAgIFN0cmluZ0J1aWxkZXIgbW9kZTsKLSAgICAgICAgbW9kZS5hcHBlbmRMaXRlcmFsKHdlYlNv
Y2tldENoYW5uZWxNb2RlKTsKLSAgICAgICAgbW9kZS5hcHBlbmROdW1iZXIocnVuTG9vcC5jcmVh
dGVVbmlxdWVJZCgpKTsKLSAgICAgICAgcmV0dXJuIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpjcmVhdGUod29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCwgbW9kZS50b1N0cmluZygp
KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKGRvd25jYXN0
PERvY3VtZW50Pihjb250ZXh0KSwgY2xpZW50KTsKKyAgICByZXR1cm4gU29ja2V0U3RyZWFtSGFu
ZGxlOjpjcmVhdGUodXJsLCBjbGllbnQsIGNvbnRleHQsIHNlc3Npb25JRCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldFByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldFByb3ZpZGVyLmgJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRQcm92aWRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFdlYlNvY2tldFByb3ZpZGVyIGZpbmFs
IDogcHVibGljIFcKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFByb3ZpZGVyPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVyKTsgfQogI2lm
IEVOQUJMRShXRUJfU09DS0VUUykKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQmKSBvdmVycmlkZTsK
KyAgICBSZWY8V2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlPiBjcmVhdGVTb2NrZXRTdHJlYW1I
YW5kbGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlQ2xp
ZW50JiwgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQmLCBXZWJDb3JlOjpTZXNzaW9uSUQpIGZp
bmFsOwogI2VuZGlmCiAgICAgdmlydHVhbCB+V2ViU29ja2V0UHJvdmlkZXIoKSB7IH0KIH07Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNy0xNCAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBTb2NrZXRQcm92
aWRlciB0byBjcmVhdGUgU29ja2V0U3RyZWFtSGFuZGxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5Nzc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAg
KiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKwogMjAxNi0wNy0xMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW1dpbl0gRml4IGZvciBidWlsZCBlcnJvciB3aGVuIHRyeWluZyB0byB2
ZXJzaW9uIHN0YW1wIGRsbC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkocmV2aXNpb24g
MjAzMjQwKQorKysgU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFrZQkod29ya2luZyBjb3B5
KQpAQCAtMTE0LDcgKzExNCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgbWFj
L01pc2MvV2ViTlNWaWV3RXh0cmFzLm0KICAgICBtYWMvTWlzYy9XZWJOU1dpbmRvd0V4dHJhcy5t
CiAgICAgbWFjL01pc2MvV2ViU2hhcmluZ1NlcnZpY2VQaWNrZXJDb250cm9sbGVyLm1tCi0gICAg
bWFjL01pc2MvV2ViU29ja2V0UHJvdmlkZXIubW0KICAgICBtYWMvTWlzYy9XZWJTdHJpbmdUcnVu
Y2F0b3IubW0KICAgICBtYWMvTWlzYy9XZWJVc2VyQ29udGVudFVSTFBhdHRlcm4ubW0KIApJbmRl
eDogU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCShyZXZpc2lvbiAyMDMyNDApCisrKyBTb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtV2luLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUsNyArMTk1LDYgQEAg
bGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVNfQ2xhc3NlcwogICAgIHdpbi9XZWJTY3JpcHRXb3Js
ZC5jcHAKICAgICB3aW4vV2ViU2VjdXJpdHlPcmlnaW4uY3BwCiAgICAgd2luL1dlYlNlcmlhbGl6
ZWRKU1ZhbHVlLmNwcAotICAgIHdpbi9XZWJTb2NrZXRQcm92aWRlci5jcHAKICAgICB3aW4vV2Vi
VGV4dFJlbmRlcmVyLmNwcAogICAgIHdpbi9XZWJVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5j
cHAKICAgICB3aW4vV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIuY3BwCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDIwMzI0MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw5ICsxNDcsNyBAQAogCQk1OThBRDkyODEy
MDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OThBRDkyNzEyMDFD
RjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0gKi87IH07
CiAJCTU5OEFEOTJBMTIwMUNGM0IwMEFCQUU0RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblByb3Zp
ZGVyTW9ja0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1OThBRDkyOTEyMDFDRjNCMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Q
cm92aWRlck1vY2tJbnRlcm5hbC5oICovOyB9OwogCQk1OThBREE0NjEyMDIyNzUwMDBBQkFFNEUg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTk4QURBNDUxMjAyMjc1MDAwQUJBRTRFIC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk1Qzc3MDY3MDFEMTExQjAyMDAxMjcwMEYgLyogV2ViU29ja2V0
UHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1Qzc3MDY2RjFEMTExQjAyMDAxMjcwMEYgLyogV2ViU29ja2V0UHJvdmlkZXIubW0gKi87IH07
CiAJCTVDNzcwNjcyMUQxMTFCMjIwMDEyNzAwRiAvKiBRdWlja0RyYXdDb21wYXRpYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc3MDY3MTFE
MTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJpbGl0eS5oICovOyB9OwotCQk1QzdD
ODhEQTFEMEYzQkYyMDA5RDJGNkQgLyogV2ViU29ja2V0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M4OEQ5MUQwRjNCRjIwMDlEMkY2
RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovOyB9OwogCQk1RDdCRjgxNDBDMkExRDkwMDA4Q0Uw
NkQgLyogV2ViSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUQ3QkY4MTUw
QzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEN0JGODEzMEMyQTFEOTAwMDhDRTA2RCAvKiBXZWJJ
bnNwZWN0b3IubW0gKi87IH07CiAJCTVERTgzQTdBMEQwRjdGOTQwMENBRDEyQSAvKiBXZWJKYXZh
U2NyaXB0VGV4dElucHV0UGFuZWwubmliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1REU4M0E3NDBEMEY3Rjk0MDBDQUQxMkEgLyogV2ViSmF2YVNjcmlw
dFRleHRJbnB1dFBhbmVsLm5pYiAqLzsgfTsKQEAgLTY1MSw5ICs2NDksNyBAQAogCQk1OThBRDky
NzEyMDFDRjMyMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2subW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRh
dGlvblByb3ZpZGVyTW9jay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTk4QUQ5
MjkxMjAxQ0YzQjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50
YXRpb25Qcm92aWRlck1vY2tJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1OThBREE0NTEyMDIyNzUwMDBBQkFFNEUgLyogV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlv
blByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNzcwNjZGMUQxMTFC
MDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYlNvY2tldFByb3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0
aWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWlja0RyYXdDb21w
YXRpYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDN0M4OEQ5MUQwRjNC
RjIwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJTb2NrZXRQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1RDdCRjgxMjBDMkExRDkwMDA4Q0UwNkQgLyogV2ViSW5zcGVjdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUQ3QkY4MTMwQzJBMUQ5MDAwOENFMDZEIC8qIFdlYkluc3BlY3Rvci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJJbnNwZWN0b3Iu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVERTgzQTc1MEQwRjdGOTQwMENBRDEy
QSAvKiBFbmdsaXNoICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gd3JhcHBlci5uaWI7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlzaC5scHJvai9X
ZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubmliOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CkBAIC0xMDk4LDggKzEwOTQsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKIAkJCQk1Qzc3MDY3MTFEMTExQjIyMDAxMjcwMEYgLyogUXVpY2tEcmF3Q29tcGF0aWJp
bGl0eS5oICovLAotCQkJCTVDNzcwNjZGMUQxMTFCMDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92
aWRlci5tbSAqLywKLQkJCQk1QzdDODhEOTFEMEYzQkYyMDA5RDJGNkQgLyogV2ViU29ja2V0UHJv
dmlkZXIuaCAqLywKIAkJCQlBMTBDMUQyMDE4MjAyRkFGMDAzNjg4M0EgLyogaW9zICovLAogCQkJ
CTFDQ0ZGRDEyMEIxRjgxRjIwMDJFRTkyNiAvKiBPbGRXZWJBc3NlcnRpb25zLmMgKi8sCiAJCQkJ
MjlBRUY5NUQxMzRDNzU1NDAwRkU1MDk2IC8qIE91dGxvb2tRdWlya3NVc2VyU2NyaXB0LmpzICov
LApAQCAtMTgwNiw3ICsxODAwLDYgQEAKIAkJCQk5Mzk4MTA1MzA4MjRCRjAxMDA4REYwMzggLyog
V2ViRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTgxMDlDMDgyNEJGMDEwMDhERjAzOCAv
KiBXZWJGcmFtZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ2QjE4MjAzMDBF
MDAzNjg4M0EgLyogV2ViRnJhbWVJT1MuaCBpbiBIZWFkZXJzICovLAotCQkJCTVDN0M4OERBMUQw
RjNCRjIwMDlEMkY2RCAvKiBXZWJTb2NrZXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTEwQzFENkQxODIwMzAwRTAwMzY4ODNBIC8qIFdlYkZyYW1lSVBob25lLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5Mzk4MTA1QjA4MjRCRjAxMDA4REYwMzggLyogV2ViRnJhbWVMb2FkRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUMwQjg4RThCMTBBMDhGM0QwMEZCQjNGNSAvKiBXZWJGcmFt
ZUxvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjI3OCw3ICsyMjcxLDYg
QEAKIAkJCQkxQzBENDA4ODBBQzFDOEY0MDAwOUMxMTMgLyogV2ViS2l0VmVyc2lvbkNoZWNrcy5t
IGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1Qjk1MjQxMTFCNzI1QTAwNDcyMjk4IC8qIFdlYkxvY2Fs
aXphYmxlU3RyaW5ncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDJEMzREMTMxRUQzODgwMDc1
RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5tbSBpbiBTb3VyY2VzICovLAot
CQkJCTVDNzcwNjcwMUQxMTFCMDIwMDEyNzAwRiAvKiBXZWJTb2NrZXRQcm92aWRlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFENzMxODIwMzAwRTAw
MzY4ODNBIC8qIFdlYk1JTUVUeXBlUmVnaXN0cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTg1
RjYyODEwNzEyQjk3MDA3QUEzOTMgLyogV2ViTmF2aWdhdGlvbkRhdGEubW0gaW4gU291cmNlcyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA3
LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgVXNlIFNvY2tldFByb3ZpZGVyIHRvIGNyZWF0ZSBTb2NrZXRTdHJlYW1IYW5kbGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk3NzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViU29j
a2V0UHJvdmlkZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNaXNjL1dlYlNvY2tldFByb3ZpZGVy
Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToK
KyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1l
OnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwogMjAxNi0wNy0xNCAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0aGUgIUVOQUJMRShXRUJfU09D
S0VUUykgYnVpbGQgYWZ0ZXIgcjIwMjkzMApJbmRleDogU291cmNlL1dlYktpdC9tYWMvTWlzYy9X
ZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01pc2Mv
V2ViU29ja2V0UHJvdmlkZXIuaAkocmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYktpdC9t
YWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5oCShub25leGlzdGVudCkKQEAgLTEsMzcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW1wb3J0IDxXZWJDb3JlL1NvY2tldFBy
b3ZpZGVyLmg+Ci0KLWNsYXNzIFdlYlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlNvY2tldFByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNvY2tldFBy
b3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFByb3ZpZGVy
KTsgfQotI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGllbnQmKSBv
dmVycmlkZTsKLSNlbmRpZgotICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkgeyB9Ci19
OwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJTb2NrZXRQcm92aWRlci5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3ZpZGVyLm1tCShy
ZXZpc2lvbiAyMDMyNDApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYlNvY2tldFByb3Zp
ZGVyLm1tCShub25leGlzdGVudCkKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMiBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJXZWJT
b2NrZXRQcm92aWRlci5oIgotCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotCi0jaW1wb3J0IDxX
ZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWwuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Xb3Jr
ZXJHbG9iYWxTY29wZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9Xb3JrZXJSdW5Mb29wLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1dvcmtlclRocmVhZC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oPgotI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIGNvbnN0IGNoYXIgd2Vi
U29ja2V0Q2hhbm5lbE1vZGVbXSA9ICJ3ZWJTb2NrZXRDaGFubmVsTW9kZSI7Ci0KLVJlZlB0cjxU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNv
Y2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCYgY2xpZW50KQotewotICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29u
dGV4dCkpIHsKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAgICAgICBXb3JrZXJSdW5M
b29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpOwotICAg
ICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7Ci0gICAgICAgIG1vZGUuYXBwZW5kTGl0ZXJhbCh3ZWJT
b2NrZXRDaGFubmVsTW9kZSk7Ci0gICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1bkxvb3AuY3Jl
YXRlVW5pcXVlSWQoKSk7Ci0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUudG9TdHJpbmco
KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VC
X1NPQ0tFVFMpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YlNvY2tldFByb3ZpZGVyLm1tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAt
MSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjAzMjQwKQorKysgU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAs
NyArMTAwLDYgQEAKICNpbXBvcnQgIldlYlNjcmlwdERlYnVnRGVsZWdhdGUuaCIKICNpbXBvcnQg
IldlYlNjcmlwdFdvcmxkSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlNlbGVjdGlvblNlcnZpY2VD
b250cm9sbGVyLmgiCi0jaW1wb3J0ICJXZWJTb2NrZXRQcm92aWRlci5oIgogI2ltcG9ydCAiV2Vi
U3RvcmFnZU1hbmFnZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViU3RvcmFnZU5hbWVzcGFjZVBy
b3ZpZGVyLmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKQEAgLTE3OSw2ICsxNzgs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TZWN1cml0eVBvbGljeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3Bl
cnRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgpAQCAtOTk2LDcgKzk5Niw3IEBAIC0gKHZvaWQpX2Nv
bW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmEKICAgICBfcHJpdmF0ZS0+Z3JvdXAgPSBXZWJW
aWV3R3JvdXA6OmdldE9yQ3JlYXRlKGdyb3VwTmFtZSwgX3ByaXZhdGUtPnByZWZlcmVuY2VzLl9s
b2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgpOwogICAgIF9wcml2YXRlLT5ncm91cC0+YWRkV2ViVmll
dyhzZWxmKTsKIAotICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uKG1ha2VV
bmlxdWVSZWY8V2ViRWRpdG9yQ2xpZW50PihzZWxmKSwgV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0
ZSgpKTsKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbihtYWtlVW5pcXVl
UmVmPFdlYkVkaXRvckNsaWVudD4oc2VsZiksIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBu
ZXcgV2ViQ2hyb21lQ2xpZW50KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNvbnRleHRN
ZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHNlbGYpOwpAQCAtMTI0Niw3ICsx
MjQ2LDcgQEAgLSAoaWQpaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTooTgogICAgIF9w
cml2YXRlLT5ncm91cCA9IFdlYlZpZXdHcm91cDo6Z2V0T3JDcmVhdGUoZ3JvdXBOYW1lLCBfcHJp
dmF0ZS0+cHJlZmVyZW5jZXMuX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCk7CiAgICAgX3ByaXZh
dGUtPmdyb3VwLT5hZGRXZWJWaWV3KHNlbGYpOwogCi0gICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFn
ZUNvbmZpZ3VyYXRpb24obWFrZVVuaXF1ZVJlZjxXZWJFZGl0b3JDbGllbnQ+KHNlbGYpLCBXZWJT
b2NrZXRQcm92aWRlcjo6Y3JlYXRlKCkpOworICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25m
aWd1cmF0aW9uKG1ha2VVbmlxdWVSZWY8V2ViRWRpdG9yQ2xpZW50PihzZWxmKSwgU29ja2V0UHJv
dmlkZXI6OmNyZWF0ZSgpKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBu
ZXcgV2ViQ2hyb21lQ2xpZW50SU9TKHNlbGYpOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYp
OwpJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMjQwKQorKysgU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDct
MTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBVc2UgU29ja2V0UHJvdmlkZXIgdG8gY3JlYXRlIFNvY2tldFN0cmVhbUhhbmRsZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTc3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViU29ja2V0UHJv
dmlkZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlNvY2tldFByb3ZpZGVyLmg6IFJlbW92
ZWQuCisgICAgICAgICogV2ViVmlldy5jcHA6IFJlcGxhY2VkIFdlYlNvY2tldFByb3ZpZGVyIHdp
dGggU29ja2V0UHJvdmlkZXIgYXMgd2UgZGlkIGluIFdlYkNvcmUuCisKIDIwMTYtMDctMTQgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGhlICFF
TkFCTEUoV0VCX1NPQ0tFVFMpIGJ1aWxkIGFmdGVyIHIyMDI5MzAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJTb2NrZXRQcm92aWRlci5jcHAJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTIgR29vZ2xlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlNvY2tldFByb3Zp
ZGVyLmgiCi0KLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0Rv
Y3VtZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldENoYW5uZWwuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlckds
b2JhbFNjb3BlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJSdW5Mb29wLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9Xb3JrZXJUaHJlYWQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3RhdGljIGNvbnN0IGNoYXIgd2Vi
U29ja2V0Q2hhbm5lbE1vZGVbXSA9ICJ3ZWJTb2NrZXRDaGFubmVsTW9kZSI7Ci0KLVJlZlB0cjxU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbD4gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZVdlYlNv
Y2tldENoYW5uZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCYgY2xpZW50KQotewotICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29u
dGV4dCkpIHsKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUmIHdvcmtlckdsb2JhbFNjb3BlID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwotICAgICAgICBXb3JrZXJSdW5M
b29wJiBydW5Mb29wID0gd29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkucnVuTG9vcCgpOwotICAg
ICAgICBTdHJpbmdCdWlsZGVyIG1vZGU7Ci0gICAgICAgIG1vZGUuYXBwZW5kTGl0ZXJhbCh3ZWJT
b2NrZXRDaGFubmVsTW9kZSk7Ci0gICAgICAgIG1vZGUuYXBwZW5kTnVtYmVyKHJ1bkxvb3AuY3Jl
YXRlVW5pcXVlSWQoKSk7Ci0gICAgICAgIHJldHVybiBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKHdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQsIG1vZGUudG9TdHJpbmco
KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZShkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCksIGNsaWVudCk7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VC
X1NPQ0tFVFMpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJTb2Nr
ZXRQcm92aWRlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICsw
LDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJTb2NrZXRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmgJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNvdXJj
ZS9XZWJLaXQvd2luL1dlYlNvY2tldFByb3ZpZGVyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1Nv
Y2tldFByb3ZpZGVyLmg+Ci0KLWNsYXNzIFdlYlNvY2tldFByb3ZpZGVyIGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OlNvY2tldFByb3ZpZGVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlNv
Y2tldFByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNvY2tldFBy
b3ZpZGVyKTsgfQotI2lmIEVOQUJMRShXRUJfU09DS0VUUykKLSAgICBSZWZQdHI8V2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw+IGNyZWF0ZVdlYlNvY2tldENoYW5uZWwoV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxDbGll
bnQmKSBvdmVycmlkZTsKLSNlbmRpZgotICAgIHZpcnR1YWwgfldlYlNvY2tldFByb3ZpZGVyKCkg
eyB9Ci19OwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDIwMzI0MCkKKysrIFNv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiTWFyc2hhbGxpbmdIZWxwZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0
YWJhc2UuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCisjaW5jbHVkZSAiU29ja2V0UHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgogI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVy
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC02OSw3ICs3MCw2IEBACiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCIKICNpbmNsdWRlICJXZWJTY3JpcHRXb3JsZC5oIgotI2luY2x1ZGUgIldlYlNvY2tldFByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiV2ViVmlld0dyb3VwLmgiCiAjaW5jbHVkZSAiV2ViVmlzaXRlZExpbmtTdG9yZS5oIgpAQCAt
MjkyMyw3ICsyOTIzLDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJh
bQogCiAgICAgbV9pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHRoaXMp
OwogCi0gICAgUGFnZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPFdl
YkVkaXRvckNsaWVudD4odGhpcyksIFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CisgICAg
UGFnZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbihtYWtlVW5pcXVlUmVmPFdlYkVkaXRvckNs
aWVudD4odGhpcyksIFNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSk7CiAgICAgY29uZmlndXJhdGlv
bi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwogICAgIGNvbmZpZ3Vy
YXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7
CiAgICAgY29uZmlndXJhdGlvbi5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7
Cg==
</data>
<flag name="review"
          id="307352"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>