<?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>166678</bug_id>
          
          <creation_ts>2017-01-04 01:45:07 -0800</creation_ts>
          <short_desc>Use ThreadName to specify long and short names</short_desc>
          <delta_ts>2017-01-14 17:26:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1263732</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 01:45:07 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263749</commentid>
    <comment_count>1</comment_count>
      <attachid>298009</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 06:39:16 -0800</bug_when>
    <thetext>Created attachment 298009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263792</commentid>
    <comment_count>2</comment_count>
      <attachid>298009</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-04 09:53:42 -0800</bug_when>
    <thetext>Comment on attachment 298009
Patch

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

&gt; Source/WTF/wtf/AutomaticThread.h:134
&gt; +    AutomaticThread(const LockHolder&amp;, Box&lt;Lock&gt;, RefPtr&lt;AutomaticThreadCondition&gt;, ASCIILiteral threadName = ASCIILiteral(&quot;WTF::AutomaticThread&quot;));

It seems desirable to force users to name the threads, so I would omit the default value here. Your call.

&gt; Source/WTF/wtf/ParallelHelperPool.h:183
&gt; +    WTF_EXPORT_PRIVATE ParallelHelperPool(ASCIILiteral threadName = ASCIILiteral(&quot;WTF::ParallelHelperPool&quot;));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263795</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 09:55:52 -0800</bug_when>
    <thetext>Please keep in mind that thread names will be seen by many, many people who are not working on WebKit and they will need context so they can understand these are part of WebKit or JavaScriptCore or whatever. Given that, I think we need to carefully choose thread names that are easy to understand. I would like to review them as a set and make sure they are clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263830</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-04 11:02:42 -0800</bug_when>
    <thetext>It should be pretty clear that the threads are WebKit threads when the base frames are all inside WebKit, no...?

I understand the desire for more-descriptive names on Darwin, which is difficult to reconcile with the very low character limit on Linux. One option is to require passing a long name and a short name for each thread, that way the long name can be used on Darwin and the shorter names on Linux and Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263856</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 12:00:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; It should be pretty clear that the threads are WebKit threads when the base
&gt; frames are all inside WebKit, no...?

The point here is to quickly help someone understand what’s going on. Quickly give you the right idea.

It’s true that if you are familiar with the symbol names from WebKit and its related frameworks, have symbols in your backtrace, and can quickly look over the backtrace ignoring the unimportant frames and spotting the significant ones, then you can determine it’s a WebKit-created thread. But that’s actually the problem statement!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263956</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 18:07:27 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; It should be pretty clear that the threads are WebKit threads when the base
&gt; &gt; frames are all inside WebKit, no...?
&gt; 
&gt; The point here is to quickly help someone understand what’s going on.
&gt; Quickly give you the right idea.
&gt; 
&gt; It’s true that if you are familiar with the symbol names from WebKit and its
&gt; related frameworks, have symbols in your backtrace, and can quickly look
&gt; over the backtrace ignoring the unimportant frames and spotting the
&gt; significant ones, then you can determine it’s a WebKit-created thread. But
&gt; that’s actually the problem statement!

I think the names picked for this patch is OK. &quot;jsc.dfg-worklist&quot; is descriptive I think.
And after https://bugs.webkit.org/show_bug.cgi?id=166676 patch is landed, in Linux environment, this name will become &quot;dfg-worklist&quot; due to 15 characters limitation. But we still keep &quot;jsc.dfg-worklist&quot; name in macOS!

BTW, I found so many different thread name forms in the current WebKit.
I think it is worth discussing in the mailing list.
Once this, and the above thread name patch is landed, I&apos;ll post the mail about the thread name conventions in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263963</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-04 18:45:38 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &quot;jsc.dfg-worklist&quot; is descriptive I think.

We are definitely thinking differently about these names! That name would mean nothing to me as a programmer who just happened to be using WebKit. Neither &quot;jsc&quot; nor &quot;dfg&quot; sound like they have anything to do with WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263971</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 19:14:18 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; &quot;jsc.dfg-worklist&quot; is descriptive I think.
&gt; 
&gt; We are definitely thinking differently about these names! That name would
&gt; mean nothing to me as a programmer who just happened to be using WebKit.
&gt; Neither &quot;jsc&quot; nor &quot;dfg&quot; sound like they have anything to do with WebKit.

I see. So we should have some good name policy for that.
There are several names in the current ToT WebKit. I picked some of them.

In WebCore,
    IDB server is &quot;IndexedDatabase Server&quot;
    AsyncAudioDecoder is &quot;Audio Decoder&quot;
    GCController is &quot;WebCore: GCController&quot;
    Icon Database is &quot;WebCore: IconDatabase&quot;
    Audio&apos;s ReverbConvolver is &quot;convolution background thread&quot;
The thread name used by WorkQueue in WebCore is,
    Crypto Queue is &quot;com.apple.WebKit.CryptoQueue&quot;
    Image decoder is &quot;org.webkit.ImageDecoder&quot;
    Blob utility is &quot;org.webkit.BlobUtility&quot;
    Data URL decoder is &quot;org.webkit.DataURLDecoder&quot;
In JSC
    Before this patch, all the AutomaticThreads (including JIT worklist / DFG worklist) is &quot;WTF::AutomaticThread&quot;
    Super Sampler thread is &quot;JSC Super Sampler&quot;
    Asychronous Disasm is &quot;Asynchronous Disassembler&quot;
    Sampling profiler is &quot;jsc.sampling-profiler.thread&quot;
    WASM compiler thread is &quot;jsc.wasm-b3-compilation.thread&quot;
In WebKit2
    Network Cache is &quot;IOChannel::readSync&quot;
    IPC workqueue is &quot;com.apple.IPC.ReceiveQueue&quot;

We should have consistent name policy for that. Some of the currently used threads do not include any information related to WebKit.

I think the most descriptive thing is WorkQueue&apos;s name like &quot;org.webkit.ImageDecoder&quot;. It includes the information, like

1. It is related to WebKit
2. It is related to ImageDecoder

And these forms are correctly handled in Linux. In Linux, the above name will be converted to &quot;ImageDecoder&quot;.

So, I suggest the name form, like,

&quot;org.webkit.jsc.BaselineCompiler&quot;
&quot;org.webkit.jsc.DFGCompiler&quot;
&quot;org.webkit.jsc.HeapHelper&quot; (This can be used for any heap related purpose)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263972</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 19:15:56 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; &quot;jsc.dfg-worklist&quot; is descriptive I think.
&gt; &gt; 
&gt; &gt; We are definitely thinking differently about these names! That name would
&gt; &gt; mean nothing to me as a programmer who just happened to be using WebKit.
&gt; &gt; Neither &quot;jsc&quot; nor &quot;dfg&quot; sound like they have anything to do with WebKit.
&gt; 
&gt; I see. So we should have some good name policy for that.
&gt; There are several names in the current ToT WebKit. I picked some of them.
&gt; 
&gt; In WebCore,
&gt;     IDB server is &quot;IndexedDatabase Server&quot;
&gt;     AsyncAudioDecoder is &quot;Audio Decoder&quot;
&gt;     GCController is &quot;WebCore: GCController&quot;
&gt;     Icon Database is &quot;WebCore: IconDatabase&quot;
&gt;     Audio&apos;s ReverbConvolver is &quot;convolution background thread&quot;
&gt; The thread name used by WorkQueue in WebCore is,
&gt;     Crypto Queue is &quot;com.apple.WebKit.CryptoQueue&quot;
&gt;     Image decoder is &quot;org.webkit.ImageDecoder&quot;
&gt;     Blob utility is &quot;org.webkit.BlobUtility&quot;
&gt;     Data URL decoder is &quot;org.webkit.DataURLDecoder&quot;
&gt; In JSC
&gt;     Before this patch, all the AutomaticThreads (including JIT worklist /
&gt; DFG worklist) is &quot;WTF::AutomaticThread&quot;
&gt;     Super Sampler thread is &quot;JSC Super Sampler&quot;
&gt;     Asychronous Disasm is &quot;Asynchronous Disassembler&quot;
&gt;     Sampling profiler is &quot;jsc.sampling-profiler.thread&quot;
&gt;     WASM compiler thread is &quot;jsc.wasm-b3-compilation.thread&quot;
&gt; In WebKit2
&gt;     Network Cache is &quot;IOChannel::readSync&quot;
&gt;     IPC workqueue is &quot;com.apple.IPC.ReceiveQueue&quot;
&gt; 
&gt; We should have consistent name policy for that. Some of the currently used
&gt; threads do not include any information related to WebKit.
&gt; 
&gt; I think the most descriptive thing is WorkQueue&apos;s name like
&gt; &quot;org.webkit.ImageDecoder&quot;. It includes the information, like
&gt; 
&gt; 1. It is related to WebKit
&gt; 2. It is related to ImageDecoder
&gt; 
&gt; And these forms are correctly handled in Linux. In Linux, the above name
&gt; will be converted to &quot;ImageDecoder&quot;.
&gt; 
&gt; So, I suggest the name form, like,
&gt; 
&gt; &quot;org.webkit.jsc.BaselineCompiler&quot;
&gt; &quot;org.webkit.jsc.DFGCompiler&quot;
&gt; &quot;org.webkit.jsc.HeapHelper&quot; (This can be used for any heap related purpose)

Unfortunately, BaselineCompiler is 16 length. &quot;BaselineCompile&quot; is also OK I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263974</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 19:31:34 -0800</bug_when>
    <thetext>Or &quot;JITCompiler&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263976</commentid>
    <comment_count>11</comment_count>
      <attachid>298059</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 19:40:40 -0800</bug_when>
    <thetext>Created attachment 298059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263993</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 20:30:41 -0800</bug_when>
    <thetext>I&apos;ve posted the mail about thread naming policy.
https://lists.webkit.org/pipermail/webkit-dev/2017-January/028585.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264027</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-04 23:24:28 -0800</bug_when>
    <thetext>I&apos;ll rename this &quot;jsc&quot; to &quot;JavaScriptCore&quot;.
This is based on the directory name of the module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264033</commentid>
    <comment_count>14</comment_count>
      <attachid>298072</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-05 00:15:58 -0800</bug_when>
    <thetext>Created attachment 298072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264397</commentid>
    <comment_count>15</comment_count>
      <attachid>298191</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-06 03:43:19 -0800</bug_when>
    <thetext>Created attachment 298191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264400</commentid>
    <comment_count>16</comment_count>
      <attachid>298193</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-06 03:50:13 -0800</bug_when>
    <thetext>Created attachment 298193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264960</commentid>
    <comment_count>17</comment_count>
      <attachid>298350</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 06:19:48 -0800</bug_when>
    <thetext>Created attachment 298350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264970</commentid>
    <comment_count>18</comment_count>
      <attachid>298354</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 07:03:59 -0800</bug_when>
    <thetext>Created attachment 298354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264974</commentid>
    <comment_count>19</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-01-09 07:15:38 -0800</bug_when>
    <thetext>I think this could be done without macro. For example, WTF::createThread can be replaced with inline wrapper, taking two const char* arguments, and choosing one of them with #if. Same for other functions taking thread names as C string, there seems to be not many of them (I&apos;ve spotted initializeCurrentThreadInternal and WorkQueue::create)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264975</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 07:17:56 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; I think this could be done without macro. For example, WTF::createThread can
&gt; be replaced with inline wrapper, taking two const char* arguments, and
&gt; choosing one of them with #if. Same for other functions taking thread names
&gt; as C string, there seems to be not many of them (I&apos;ve spotted
&gt; initializeCurrentThreadInternal and WorkQueue::create)

The reason why I use the macro here is that we would like to add the prefix `&quot;WebKit: &quot;` without allocating additional memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264976</commentid>
    <comment_count>21</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-01-09 07:23:17 -0800</bug_when>
    <thetext>Got it, though this allocation overhead can probably be neglected as compared to thread creation that follows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265020</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-01-09 09:24:11 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; I think this could be done without macro. For example, WTF::createThread can
&gt; &gt; be replaced with inline wrapper, taking two const char* arguments, and
&gt; &gt; choosing one of them with #if. Same for other functions taking thread names
&gt; &gt; as C string, there seems to be not many of them (I&apos;ve spotted
&gt; &gt; initializeCurrentThreadInternal and WorkQueue::create)
&gt; 
&gt; The reason why I use the macro here is that we would like to add the prefix
&gt; `&quot;WebKit: &quot;` without allocating additional memory.

Why do we think this is important?

I suspect it&apos;s not (e.g. The computational and memory overhead of creating a thread will always be *substantially* more expensive than a simple string concat)

And I truly hate the way a new ALL_CAPS_MACRO looks in code in comparison to just creating an object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265025</commentid>
    <comment_count>23</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 09:30:10 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #19)
&gt; &gt; &gt; I think this could be done without macro. For example, WTF::createThread can
&gt; &gt; &gt; be replaced with inline wrapper, taking two const char* arguments, and
&gt; &gt; &gt; choosing one of them with #if. Same for other functions taking thread names
&gt; &gt; &gt; as C string, there seems to be not many of them (I&apos;ve spotted
&gt; &gt; &gt; initializeCurrentThreadInternal and WorkQueue::create)
&gt; &gt; 
&gt; &gt; The reason why I use the macro here is that we would like to add the prefix
&gt; &gt; `&quot;WebKit: &quot;` without allocating additional memory.
&gt; 
&gt; Why do we think this is important?
&gt; 
&gt; I suspect it&apos;s not (e.g. The computational and memory overhead of creating a
&gt; thread will always be *substantially* more expensive than a simple string
&gt; concat)
&gt; 
&gt; And I truly hate the way a new ALL_CAPS_MACRO looks in code in comparison to
&gt; just creating an object.

The largest reason I used this macro is that this does not allocate any memory even if we use it in bmalloc&apos;s AsyncTask.
I don&apos;t like allocating memory dynamically in the malloc implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265034</commentid>
    <comment_count>24</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 09:43:10 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; (In reply to comment #19)
&gt; &gt; &gt; &gt; I think this could be done without macro. For example, WTF::createThread can
&gt; &gt; &gt; &gt; be replaced with inline wrapper, taking two const char* arguments, and
&gt; &gt; &gt; &gt; choosing one of them with #if. Same for other functions taking thread names
&gt; &gt; &gt; &gt; as C string, there seems to be not many of them (I&apos;ve spotted
&gt; &gt; &gt; &gt; initializeCurrentThreadInternal and WorkQueue::create)
&gt; &gt; &gt; 
&gt; &gt; &gt; The reason why I use the macro here is that we would like to add the prefix
&gt; &gt; &gt; `&quot;WebKit: &quot;` without allocating additional memory.
&gt; &gt; 
&gt; &gt; Why do we think this is important?
&gt; &gt; 
&gt; &gt; I suspect it&apos;s not (e.g. The computational and memory overhead of creating a
&gt; &gt; thread will always be *substantially* more expensive than a simple string
&gt; &gt; concat)
&gt; &gt; 
&gt; &gt; And I truly hate the way a new ALL_CAPS_MACRO looks in code in comparison to
&gt; &gt; just creating an object.
&gt; 
&gt; The largest reason I used this macro is that this does not allocate any
&gt; memory even if we use it in bmalloc&apos;s AsyncTask.
&gt; I don&apos;t like allocating memory dynamically in the malloc implementation.

Or, another way is just using such a macro for bmalloc and use `ThreadName(&quot;longName&quot;, &quot;shortName&quot;)` elsewhere.
I think it&apos;s ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265035</commentid>
    <comment_count>25</comment_count>
      <attachid>298354</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-09 09:43:11 -0800</bug_when>
    <thetext>Comment on attachment 298354
Patch

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

I would like to review the set of revised thread names separately from the patch that introduces all of them. Just a list. Maybe even on webkit-dev.

I think all the threads that are for JavaScriptCore need to have one of &quot;JavaScript&quot;, &quot;JavaScriptCore&quot;, or &quot;JS&quot; in their names for clarity. Maybe even &quot;JavaScriptCore:&quot; instead of &quot;WebKit:&quot;, but maybe &quot;WebKit: JS xxx&quot; would be enough context.

I think we should bias a lot more toward an approach that lets us write thread names that are a single string except in the rare cases where we can’t do that. As discussed elsewhere, we should be willing to do a little runtime work to prepend the &quot;WebKit: &quot; prefix to the long time, to strip spaces to make the short name. We might event do something exotic like choosing a meta-character to say &quot;start/end of short name&quot; if a lot of short names are substrings (minus spaces) of the long string.

Then we would only provide a separate short string in the rare case where none of those tricks will work. One downside to my ideas is that we would not know at compile time if the short name is short enough, but otherwise, I think those ideas will work well.

&gt; Source/WTF/wtf/text/ASCIILiteral.h:30
&gt; +class ASCIILiteral {

Great to move this into its own separate file.

Some day I would like to figure out how to make it so actual compiler literals can turn into this automatically, and we only need to specify it explicitly when the variable goes through some layer that just calls it a const char*. No idea if there is any language mechanism that could make that practical some day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265038</commentid>
    <comment_count>26</comment_count>
      <attachid>298354</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 09:55:18 -0800</bug_when>
    <thetext>Comment on attachment 298354
Patch

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

&gt;&gt; Source/WTF/wtf/text/ASCIILiteral.h:30
&gt;&gt; +class ASCIILiteral {
&gt; 
&gt; Great to move this into its own separate file.
&gt; 
&gt; Some day I would like to figure out how to make it so actual compiler literals can turn into this automatically, and we only need to specify it explicitly when the variable goes through some layer that just calls it a const char*. No idea if there is any language mechanism that could make that practical some day.

What do you think of using user-defined literal in C++11?
Like, `&quot;ASCIILiteral&quot;al`

ASCIILiteral operator &quot;&quot; al(const char_t* literal, size_t length) { return ASCIILiteral(literal); };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265039</commentid>
    <comment_count>27</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-01-09 09:58:39 -0800</bug_when>
    <thetext>[snip]
&gt; &gt; The largest reason I used this macro is that this does not allocate any
&gt; &gt; memory even if we use it in bmalloc&apos;s AsyncTask.
&gt; &gt; I don&apos;t like allocating memory dynamically in the malloc implementation.

You can also do it with static allocation, e.g. limit max size of thread name to e.g. 100 and use preallocated buffer for concatenation.

&gt; 
&gt; Or, another way is just using such a macro for bmalloc and use
&gt; `ThreadName(&quot;longName&quot;, &quot;shortName&quot;)` elsewhere.

I still think it would be better to have 2 const char* arguments in createThread, will save some punctuation.

&gt; I think it&apos;s ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265041</commentid>
    <comment_count>28</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 10:17:17 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; [snip]
&gt; &gt; &gt; The largest reason I used this macro is that this does not allocate any
&gt; &gt; &gt; memory even if we use it in bmalloc&apos;s AsyncTask.
&gt; &gt; &gt; I don&apos;t like allocating memory dynamically in the malloc implementation.
&gt; 
&gt; You can also do it with static allocation, e.g. limit max size of thread
&gt; name to e.g. 100 and use preallocated buffer for concatenation.

Right, but it introduces the additional limitation that cannot be checked at the compile time.

&gt; 
&gt; &gt; 
&gt; &gt; Or, another way is just using such a macro for bmalloc and use
&gt; &gt; `ThreadName(&quot;longName&quot;, &quot;shortName&quot;)` elsewhere.
&gt; 
&gt; I still think it would be better to have 2 const char* arguments in
&gt; createThread, will save some punctuation.

Do you mean passing 2 const char* arguments instead of passing one ThreadName?
I think the efficiency is the same since the current ThreadName always selects &amp; holds one of two names when constructing it.

&gt; 
&gt; &gt; I think it&apos;s ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265051</commentid>
    <comment_count>29</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 10:38:48 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 298354 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=298354&amp;action=review
&gt; 
&gt; I would like to review the set of revised thread names separately from the
&gt; patch that introduces all of them. Just a list. Maybe even on webkit-dev.

OK, I&apos;ll upload the patch that just introduces the mechanism.
And later, I&apos;ll upload the patch that changes the thread names.

&gt; 
&gt; I think all the threads that are for JavaScriptCore need to have one of
&gt; &quot;JavaScript&quot;, &quot;JavaScriptCore&quot;, or &quot;JS&quot; in their names for clarity. Maybe
&gt; even &quot;JavaScriptCore:&quot; instead of &quot;WebKit:&quot;, but maybe &quot;WebKit: JS xxx&quot;
&gt; would be enough context.

Sounds nice.

&gt; 
&gt; I think we should bias a lot more toward an approach that lets us write
&gt; thread names that are a single string except in the rare cases where we
&gt; can’t do that. As discussed elsewhere, we should be willing to do a little
&gt; runtime work to prepend the &quot;WebKit: &quot; prefix to the long time, to strip
&gt; spaces to make the short name. We might event do something exotic like
&gt; choosing a meta-character to say &quot;start/end of short name&quot; if a lot of short
&gt; names are substrings (minus spaces) of the long string.
&gt; 
&gt; Then we would only provide a separate short string in the rare case where
&gt; none of those tricks will work. One downside to my ideas is that we would
&gt; not know at compile time if the short name is short enough, but otherwise, I
&gt; think those ideas will work well.

I think just using the `longName` and `shortName` is good for the first implementation. Once we ensured that almost all the names are representable by one name, we just implement the transformation mechanism.

One good thing: we can still check the length of the short names if we implement the transforming function (or counting function) in constexpr function form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265053</commentid>
    <comment_count>30</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-01-09 10:51:30 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (In reply to comment #27)
[snip]
&gt; &gt; 
&gt; &gt; You can also do it with static allocation, e.g. limit max size of thread
&gt; &gt; name to e.g. 100 and use preallocated buffer for concatenation.
&gt; 
&gt; Right, but it introduces the additional limitation that cannot be checked at
&gt; the compile time.

You can get literal length at compile time by using template function with const char[]-reference argument, like what equalLettersIgnoringASCIICase does, at the cost of some code bloat.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Or, another way is just using such a macro for bmalloc and use
&gt; &gt; &gt; `ThreadName(&quot;longName&quot;, &quot;shortName&quot;)` elsewhere.
&gt; &gt; 
&gt; &gt; I still think it would be better to have 2 const char* arguments in
&gt; &gt; createThread, will save some punctuation.
&gt; 
&gt; Do you mean passing 2 const char* arguments instead of passing one
&gt; ThreadName?
&gt; I think the efficiency is the same since the current ThreadName always
&gt; selects &amp; holds one of two names when constructing it.

I&apos;m not after efficiency here, just wanting to reduce some punctuational noise in common case ({&quot;longName&quot;, &quot;shortName&quot;} -&gt; &quot;longName&quot;, &quot;shortName&quot;). Though it&apos;s just my preference, others might not like it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265081</commentid>
    <comment_count>31</comment_count>
      <attachid>298375</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 11:52:39 -0800</bug_when>
    <thetext>Created attachment 298375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265083</commentid>
    <comment_count>32</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2017-01-09 12:00:38 -0800</bug_when>
    <thetext>I think you should better use { &quot;x&quot;, &quot;y&quot; } instead of ThreadName { &quot;x&quot;, &quot;y&quot; },</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265084</commentid>
    <comment_count>33</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 12:03:27 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; I think you should better use { &quot;x&quot;, &quot;y&quot; } instead of ThreadName { &quot;x&quot;, &quot;y&quot;
&gt; },


OK. Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265086</commentid>
    <comment_count>34</comment_count>
      <attachid>298376</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 12:05:40 -0800</bug_when>
    <thetext>Created attachment 298376
Patch

Fix build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265091</commentid>
    <comment_count>35</comment_count>
      <attachid>298377</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 12:25:14 -0800</bug_when>
    <thetext>Created attachment 298377
Patch

Fix build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265092</commentid>
    <comment_count>36</comment_count>
      <attachid>298378</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-09 12:32:21 -0800</bug_when>
    <thetext>Created attachment 298378
Patch

Fix build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265760</commentid>
    <comment_count>37</comment_count>
      <attachid>298583</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-11 07:33:29 -0800</bug_when>
    <thetext>Created attachment 298583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265764</commentid>
    <comment_count>38</comment_count>
      <attachid>298585</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-11 07:42:35 -0800</bug_when>
    <thetext>Created attachment 298585
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266807</commentid>
    <comment_count>39</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-14 09:05:56 -0800</bug_when>
    <thetext>OK, ready :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266843</commentid>
    <comment_count>40</comment_count>
      <attachid>298585</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-14 13:47:02 -0800</bug_when>
    <thetext>Comment on attachment 298585
Patch

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

Mechanism looks fine, but I think we should review the thread names first. Can we compile all the thread names into a list? I’d like to review the thread names in a context outside the whole patch. Sorry to suggest this, but maybe the thread names should be reviewed on webkit-dev?

&gt; Source/WTF/wtf/ThreadName.h:44
&gt; +#if OS(LINUX)
&gt; +        static_assert((shortNameCount - 1) &lt;= (16 - 1), &quot;&quot;);
&gt; +#else
&gt; +        static_assert((stringLength(&quot;WebKit: &quot;) + (shortNameCount - 1)) &lt;= (32 - 1), &quot;&quot;);
&gt; +#endif

I think we want these static assertions to be done all the time, not just when compiling for Linux or Windows. I don’t want to break the Linux or Windows build by changing a thread name and find out only when we compile for that platform.

&gt; Source/WTF/wtf/ThreadName.h:69
&gt; +    template&lt;unsigned stringCount&gt;
&gt; +    static constexpr unsigned stringLength(const char (&amp;)[stringCount])
&gt; +    {
&gt; +        return stringCount - 1;
&gt; +    }

Seems peculiar to have this as a member of this class. Seems of more general usefulness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266844</commentid>
    <comment_count>41</comment_count>
      <attachid>298585</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-14 13:48:17 -0800</bug_when>
    <thetext>Comment on attachment 298585
Patch

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

&gt; Source/WTF/wtf/ThreadName.h:33
&gt; +class ThreadName {

I suggest adding a single argument constructor for names short enough to be be used as both the short name and the long name. Unless that never comes up in our thread names. I suppose I will find out when we review the thread names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266856</commentid>
    <comment_count>42</comment_count>
      <attachid>298585</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-14 15:15:10 -0800</bug_when>
    <thetext>Comment on attachment 298585
Patch

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

What do you think of reviewing the thread names in the different patch?
In this patch, I just introduced the mechanism, and I didn&apos;t change thread names for macOS case.
For short names, I defined it, but I think this is ok because,

1. These names will be changed in the subsequent patch that changes all the thread names.
2. In Linux, threads are not named until recently.

&gt;&gt; Source/WTF/wtf/ThreadName.h:33
&gt;&gt; +class ThreadName {
&gt; 
&gt; I suggest adding a single argument constructor for names short enough to be be used as both the short name and the long name. Unless that never comes up in our thread names. I suppose I will find out when we review the thread names.

OK, added.

&gt;&gt; Source/WTF/wtf/ThreadName.h:44
&gt;&gt; +#endif
&gt; 
&gt; I think we want these static assertions to be done all the time, not just when compiling for Linux or Windows. I don’t want to break the Linux or Windows build by changing a thread name and find out only when we compile for that platform.

Sounds nice. We should always do that for short names!

&gt;&gt; Source/WTF/wtf/ThreadName.h:69
&gt;&gt; +    }
&gt; 
&gt; Seems peculiar to have this as a member of this class. Seems of more general usefulness.

Sounds nice. I think moving it to StdLibExtras.h is nice because these functions can be used for char*.
For example, if we define it in WTFString.h, we cannot use it for String low level libraries like StringHasher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266860</commentid>
    <comment_count>43</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-14 15:33:48 -0800</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; I think you should better use { &quot;x&quot;, &quot;y&quot; } instead of ThreadName { &quot;x&quot;, &quot;y&quot;
&gt; &gt; },
&gt; 
&gt; 
&gt; OK. Changed.

After considering about it, I think `ThreadName { }` is better since it is clearer in the caller side.
And after landing this patch, we can easily extract ThreadNames by grepping it if we use ThreadName { } form.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266861</commentid>
    <comment_count>44</comment_count>
      <attachid>298864</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-14 15:44:56 -0800</bug_when>
    <thetext>Created attachment 298864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266862</commentid>
    <comment_count>45</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-01-14 15:46:17 -0800</bug_when>
    <thetext>And all the thread names.
https://gist.github.com/Constellation/5499e6a8f1d1e5e995be814a64b439de</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266872</commentid>
    <comment_count>46</comment_count>
      <attachid>298864</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-14 17:26:42 -0800</bug_when>
    <thetext>Comment on attachment 298864
Patch

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

I think this does change the thread names on macOS and iOS, by adding the &quot;WebKit: &quot; prefix that I asked for. I am not so happy about adding that to all the names without removing the &quot;org.webkit.&quot;, &quot;com.apple.WebKit.&quot;, and &quot;WebCore: &quot; prefixes that we have in various thread names already. I wouldn’t really be happy with that making its way into a WebKit release on macOS and iOS. Because of that I am not saying review-, but that is the only reason.

&gt; Source/WTF/wtf/Hasher.h:4
&gt; - *
&gt; - * This library is free software; you can redistribute it and/or
&gt; - * modify it under the terms of the GNU Library General Public
&gt; + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public

Mandatory: Please revert this accidental change before landing anything.

&gt; Source/WTF/wtf/StdLibExtras.h:415
&gt; +template&lt;typename CharType&gt;
&gt; +static constexpr unsigned stringLiteralLength(const CharType* characters)
&gt; +{
&gt; +    return (characters[0] == &apos;\0&apos;) ? 0 : 1 + stringLiteralLength(characters + 1);
&gt; +}

Looks good for use on actual constant expressions.

But if I accidentally call this on a const char* that is not a string literal, what will happen? I think we want a compilation error, but is that what we will get?

&gt; Source/WTF/wtf/ThreadName.h:2
&gt; + * Copyright (C) 2015-2016 Yusuke Suzuki &lt;utatane.tea@gmail.com&gt;.

Did you really publish part of this in 2015? Normally we think of checking something into the open source project as “publication” and so use that when deciding on copyright dates. Maybe just 2017 would be what you want here.

&gt; Source/WTF/wtf/ThreadName.h:33
&gt; +class ThreadName {

Important: This header needs a comment explaining the policy it intends to implement. Something roughly like this, I think:

- We define a short name that is 16 or fewer characters.
- On Windows, the short name is used instead, with the WebKit prefix added. This falls below the 32-character limit on thread names on Windows.
- On Linux, the short name is used without the WebKit prefix. This falls below the 16-character limit on thread names on Linux.
- Otherwise, the long name is used with a WebKit prefix added.

But my numbers about the thread name limits could be wrong.

&gt; Source/WTF/wtf/ThreadName.h:39
&gt; +        static_assert((shortNameCount - 1) &lt;= (16 - 1), &quot;&quot;);

Optional: Could we put something like &quot;thread name is too long&quot; in there instead of &quot;&quot;?

Optional: Is there an easy way to get this assertion in all three cases without writing it out three different times?

Optional: Why is this written with the two &quot;-1&quot; in two sides of the expression? Seems peculiar. Since shortNameCount is actually the length of the string plus one, I understand why the left &quot;-1&quot; is there, to turn char array size into the string length, but no idea why &quot;&lt;= 16-1&quot; is the correct thing to assert. The parentheses also look excessive to my eyes. I am used to numeric expressions on either side of a relational operator and operator precedence is quite clear in that case; the parentheses make me wonder if something different and special is going on and I don’t think there is anything.

&gt; Source/WTF/wtf/ThreadName.h:70
&gt; +        constexpr unsigned prefixLength = stringLiteralLength(&quot;WebKit: &quot;);

Optional: Reading this code, I just remembered that clang and gcc constant fold the strlen function in cases like this, and turn its result into a compile time constant if passed a string literal. That might mean that stringLiteralLength is less valuable than we previously thought: it’s a workaround for the lack of that feature in the compiler on Windows, and possibly it’s a way to assert that something is a literal. Might not be needed at all. But also, see below, not sure we need to optimize so much.

It’s also strange that we can’t use the constexpr function above for the short name assertion, instead just hard-coding in the &quot;-1&quot;. Would be good there for clarity, I think.

Maybe we just don’t need it at all.

&gt; Source/WTF/wtf/ThreadName.h:73
&gt; +        CString string = CString::newUninitialized(prefixLength + contentLength, buffer);

Optional: Probably cleaner to add a helper function or constructor for CString that takes two &quot;const char*&quot;. Even though I probably would write it this way, it’s kind of annoying to have this low level string manipulation code here and we’re probably going overboard optimizing it, too. In fact, there’s no good reason to inline this function or the name function; if we had a cpp file that went with this header I would say we should put both of these functions in there. Would be nice if the #if OS(LINUX) in the name() function wasn’t in the header and the class definition was a little cleaner.

It’s nice that we inline the constructor, so we can get the compile time assertion, along with the completely trivial pointer construction.

&gt; Source/WTF/wtf/ThreadName.h:74
&gt; +        memcpy(buffer, &quot;WebKit: &quot;, prefixLength);

Optional: Not so elegant to repeat the prefix here and also above. Can we structure this so it appears only once?

&gt; Source/WTF/wtf/ThreadName.h:76
&gt; +        buffer += prefixLength;
&gt; +        memcpy(buffer, content, contentLength);

Optional: Would be better without +=; just:

    memcpy(buffer + prefixLength, content, contentLength);

&gt; Source/WTF/wtf/ThreadingPthreads.cpp:199
&gt; +    auto name = threadName.name();
&gt; +    pthread_setname_np(name.data());

No need for a local variable here. This works fine and reads fine too:

    pthread_setname_np(threadName.name().data());

&gt; Source/WTF/wtf/ThreadingPthreads.cpp:202
&gt; +    auto name = threadName.name();
&gt; +    prctl(PR_SET_NAME, name.data());

No need for a local variable here. This works fine and reads fine too:

    prctl(PR_SET_NAME, threadName.name().data());

&gt; Source/WTF/wtf/ThreadingWin.cpp:133
&gt; +    auto name = threadName.name();
&gt;      THREADNAME_INFO info;
&gt;      info.dwType = 0x1000;
&gt; -    info.szName = normalizeThreadName(szThreadName);
&gt; +    info.szName = name.data();

Same comment applies here too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298009</attachid>
            <date>2017-01-04 06:39:16 -0800</date>
            <delta_ts>2017-01-04 19:40:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170104233749.patch</filename>
            <type>text/plain</type>
            <size>16138</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZDBhNzcyZjIyYjY4OGYyM2VlYzZjMGRjNGQwZDEwZDZmNmM4N2I2Li5kNTU2MDllMzhmZjNjMTgx
OTk2ZmQyZTY1MDA5ZGEwNmMzMWEwODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBdXRvbWF0aWNUaHJlYWQgc2hvdWxkIGhhdmUgYSB3YXkgdG8gc2V0
IHRocmVhZCBuYW1lIGZvciBkZWJ1Z2dpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5hbWUgdGhvc2UgQXV0b21hdGljVGhyZWFkcyBhbmQgUGFyYWxs
ZWxIZWxwZXJQb29scy4KKworICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6V29ya2xpc3Q6OlRocmVhZEJvZHk6OlRocmVhZEJvZHkpOgorICAgICAgICAq
IGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OlRocmVhZDo6VGhyZWFkKToKKyAg
ICAgICAgKiBoZWFwL0hlYXBIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKEpTQzo6aGVhcEhlbHBl
clBvb2wpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisKIDIwMTctMDEtMDMgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTAyNDQpOiBSZWxl
YXNlIEpTQyBTdHJlc3MgdGVzdCBmYWlsdXJlOiB3YXNtLnlhbWwvd2FzbS9qcy1hcGkvd2FzbS10
by13YXNtLmpzLmRlZmF1bHQtd2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlYmFkYTY0NDU4ZDc5ZTY2YTM5OGYyM2FkY2U2
OWUwNzg4NTAwNzdkLi5jNmE3Mjk0YzJhODI2NDQ2ZTg2MTU5ZjhhZTI2YTlkNjg5NDEwYTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTAxLTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgorCisgICAgICAgIEF1dG9tYXRpY1RocmVhZCBzaG91bGQgaGF2ZSBhIHdh
eSB0byBzZXQgdGhyZWFkIG5hbWUgZm9yIGRlYnVnZ2luZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgd2F5IHRvIG5hbWUg
QXV0b21hdGljVGhyZWFkIGFuZCBQYXJhbGxlbEhlbHBlclBvb2wuCisgICAgICAgIFRoaXMgbmFt
ZSB3aWxsIGJlIHNob3duIGluIEdEQiBhbmQgaXQgaXMgcXVpdGUgdXNlZnVsIGZvciBkZWJ1Z2dp
bmcuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiB3dGYvQXV0b21hdGljVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFk
OjpBdXRvbWF0aWNUaHJlYWQpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0
KToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAgICogd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFy
YWxsZWxIZWxwZXJQb29sKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpUaHJl
YWQ6OlRocmVhZCk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oOgorICAgICAg
ICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OnRocmVhZE5hbWUpOgorICAgICAgICAqIHd0Zi90
ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlM
aXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFy
Kik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFTQ0lJ
TGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlMaXRl
cmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisKIDIwMTctMDEtMDMgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVXNlIHByY3RsIHRv
IG5hbWUgdGhyZWFkIG9uIExpbnV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuY3BwCmluZGV4IDkxZDA2NDRmNjY5ZWMwZjU3NGNhMzczMDRmMWI4YjhiYjJhZWJiODEuLjYw
ZThmNjkwNjUzNTlkNjY2MzU1NjFiZGVkNjY1NjU5MDczYjU3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9s
ZGVyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExv
Y2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50
IHJlbGF0aXZlUHJpb3JpdHkpCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9j
aywgY29uZGl0aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNv
bmRpdGlvbiwgQVNDSUlMaXRlcmFsKCJqc2MuZGZnLXdvcmtsaXN0IikpCiAgICAgICAgICwgbV93
b3JrbGlzdCh3b3JrbGlzdCkKICAgICAgICAgLCBtX2RhdGEoZGF0YSkKICAgICAgICAgLCBtX3Jl
bGF0aXZlUHJpb3JpdHkocmVsYXRpdmVQcmlvcml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAKaW5kZXggMmMyOGQ0MzVhZWU2YzA4MDlkNDBiNGVjZjBhZTFiYjZmNGFiMmZhNS4uZmRl
MzliOWE4NzI5M2E2ZDFlYWVkOTQwOTIwMGYwN2QwNzFlNzFjZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBjbGFzcyBUaW1pbmdTY29wZSB7CiBj
bGFzcyBIZWFwOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAg
ICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBIZWFwJiBoZWFwKQotICAgICAgICA6
IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJlYWRMb2NrLCBoZWFwLm1fdGhyZWFk
Q29uZGl0aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJl
YWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uLCBBU0NJSUxpdGVyYWwoImpzYy5oZWFwIikp
CiAgICAgICAgICwgbV9oZWFwKGhlYXApCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAppbmRleCA3OTFhYTc1NmY5NWUxY2I1NjQw
ZmMzM2I0NTY3NzQ1MWVlMWEyNTM2Li5jZjQyYWJjNDBjNzY0YzY0NDI3YzU0ZTRkNjliMDc1MTYz
MTI3MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVy
UG9vbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wu
Y3BwCkBAIC0zOCw3ICszOCw3IEBAIFBhcmFsbGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2wo
KQogICAgIHN0ZDo6Y2FsbF9vbmNlKAogICAgICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VG
bGFnLAogICAgICAgICBbXSB7Ci0gICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVs
SGVscGVyUG9vbCgpOworICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBl
clBvb2woQVNDSUlMaXRlcmFsKCJqc2MuaGVhcC1oZWxwZXIiKSk7CiAgICAgICAgICAgICBoZWxw
ZXJQb29sLT5lbnN1cmVUaHJlYWRzKE9wdGlvbnM6Om51bWJlck9mR0NNYXJrZXJzKCkgLSAxKTsK
ICAgICAgICAgfSk7CiAgICAgcmV0dXJuICpoZWxwZXJQb29sOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFmNzdkOTYxNmFj
ZWQwNGNhN2Y1MWE2Li4xMzM4YThhNjVjODE2ODQ3OGYzMzY0NzdhNGY4MTQzZTJmNjQxMzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAtMTAwLDcgKzEw
MCw3IEBAIGNsYXNzIEpJVFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEpJVFdvcmtsaXN0OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVi
bGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xk
ZXImIGxvY2tlciwgSklUV29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1dG9tYXRpY1Ro
cmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRpb24pCisgICAg
ICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5t
X2NvbmRpdGlvbiwgQVNDSUlMaXRlcmFsKCJqc2Muaml0LXdvcmtsaXN0IikpCiAgICAgICAgICwg
bV93b3JrbGlzdCh3b3JrbGlzdCkKICAgICB7CiAgICAgICAgIG1fd29ya2xpc3QubV9udW1BdmFp
bGFibGVUaHJlYWRzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAxMjRhNGI3YzEyMDNjNGJlZmZlZTA3MWE2OWJhZmJjNzJmOWI4MjliLi5mMzllZmZhY2Uw
NmU5M2RkYTBiMWI0ZDBmOTU2MjNkNDY3OTJiYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTM2MSw2ICszNjEsNyBAQAogCQlGRTg5MjVCMDFEMDBEQUVD
MDA0NjkwN0UgLyogSW5kZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oICovOyB9
OwogCQlGRURBQ0QzRDE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURBQ0QzQjE2MzBGODNGMDBD
Njk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi87IH07CiAJCUZFREFDRDNFMTYzMEY4M0YwMEM2OTYz
NCAvKiBTdGFja1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oICovOyB9Owor
CQk4QUQ4OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRlcmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5
Q0MgLyogQVNDSUlMaXRlcmFsLmggKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24g
Ki8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAgLTczNCw2
ICs3MzUsNyBAQAogCQlGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RhY2tTdGF0cy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFREFDRDNDMTYzMEY4M0YwMEM2OTYzNCAvKiBT
dGFja1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNrU3RhdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzFBOUJENDVFMDYzNEIyNEIyQUYzOUND
IC8qIEFTQ0lJTGl0ZXJhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBU0NJ
SUxpdGVyYWwuaDsgcGF0aCA9IEFTQ0lJTGl0ZXJhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMjA1LDYgKzEyMDcsNyBAQAogCQkJ
CTcwRUNBNjBDMUIwMjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovLAogCQkJ
CUE4QTQ3MzJEMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuY3BwICovLAogCQkJCUE4QTQ3
MzJFMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuaCAqLywKKwkJCQk3MUE5QkQ0NUUwNjM0
QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRleHQ7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTUzNSw2ICsxNTM4LDcgQEAKIAkJCQlB
OEE0NzQ0NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0U3M0UwMjUxOURDQjdBQjAwNTgwRDVDIC8qIFhQQ1NQSS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3Bw
IGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCA5ZDNmOWFhMTkyNTlj
NjQ5NjhjMmQyYjI2OWM5OTQzYTM0NzNkNmVlLi5lZTNlZTk5YWNjOWIzZTI0MzRlZTRmZDcyMDUy
YzA4MGUwOTViMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTk4LDkgKzk4
LDEwIEBAIGJvb2wgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjb250YWlucyhjb25zdCBMb2Nr
SG9sZGVyJiwgQXV0b21hdGljVGhyZWFkKiB0aHJlCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250
YWlucyh0aHJlYWQpOwogfQogCi1BdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25z
dCBMb2NrSG9sZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uPiBjb25kaXRpb24pCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIEFTQ0lJTGl0ZXJhbCB0aHJlYWROYW1lKQog
ICAgIDogbV9sb2NrKGxvY2spCiAgICAgLCBtX2NvbmRpdGlvbihjb25kaXRpb24pCisgICAgLCBt
X3RocmVhZE5hbWUodGhyZWFkTmFtZSkKIHsKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgZGF0
YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBBbGxvY2F0ZWQgQXV0b21hdGljVGhyZWFkLlxuIik7
CkBAIC0xNzYsNyArMTc3LDcgQEAgdm9pZCBBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KGNvbnN0IExv
Y2tIb2xkZXImKQogICAgIG1faGFzVW5kZXJseWluZ1RocmVhZCA9IHRydWU7CiAgICAgCiAgICAg
VGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJXVEY6OkF1
dG9tYXRpY1RocmVhZCIsCisgICAgICAgIG1fdGhyZWFkTmFtZSwKICAgICAgICAgWz1dICgpIHsK
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coUmF3UG9p
bnRlcih0aGlzKSwgIjogUnVubmluZyBhdXRvbWF0aWMgdGhyZWFkIVxuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5oCmluZGV4IGQzMzYzYmMwYThjYzZhYzZmMDQ4NDFhMTlhNmZjYjEzMzkyMzAy
ZDUuLmZlZjg3ZDI3N2Q1ZTc3MWQzOTMzNDJiN2Y3MDk0M2NjY2NjMmQ1ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKQEAgLTEzMCw3ICsxMzEsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUg
QXV0b21hdGljVGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwog
cHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwgYnV0
IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUKICAg
ICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5vdGlm
eUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+
LCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPik7CisgICAgQXV0b21hdGljVGhyZWFk
KGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9jaz4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+LCBBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSA9IEFTQ0lJTGl0ZXJhbCgiV1RGOjpBdXRv
bWF0aWNUaHJlYWQiKSk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFu
ZCBXb3JrUmVzdWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNh
bGxlZCBsaWtlCiAgICAgLy8gc286CkBAIC0xODUsNiArMTg2LDcgQEAgY2xhc3MgV1RGX0VYUE9S
VF9QUklWQVRFIEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxB
dXRvbWF0aWMKICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07CiAgICAg
Q29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKICAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25k
aXRpb247CisgICAgQVNDSUlMaXRlcmFsIG1fdGhyZWFkTmFtZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKaW5kZXggOTQ5MmZkZGRm
MTk2NDlkNjViNTEwYjFlNDNjMDJhYTk1MTRjMDczMS4uODg4NGE0ZDQ0MDU3ZTQwYjRlNjU1NmE2
ZGU1NGI4ODY4NjNkNmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxw
ZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBA
IC0xMjMsOSArMTIzLDEwIEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soUmVm
UHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IHRhc2spCiAgICAgfQogfQogCi1QYXJhbGxlbEhlbHBl
clBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCgpCitQYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVs
SGVscGVyUG9vbChBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSkKICAgICA6IG1fbG9jayhCb3g8TG9j
az46OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCisgICAgLCBtX3RocmVhZE5hbWUodGhyZWFkTmFtZSkK
IHsKIH0KIApAQCAtMTcxLDcgKzE3Miw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkb1Nv
bWVIZWxwaW5nKCkKIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbDo6VGhyZWFkIDogcHVibGljIEF1
dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxv
Y2tlciwgUGFyYWxsZWxIZWxwZXJQb29sJiBwb29sKQotICAgICAgICA6IEF1dG9tYXRpY1RocmVh
ZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbikKKyAg
ICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtB
dmFpbGFibGVDb25kaXRpb24sIHBvb2wudGhyZWFkTmFtZSgpKQogICAgICAgICAsIG1fcG9vbChw
b29sKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhl
bHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCmluZGV4IDgx
NjM1YmI3ODE5MDAzYWM5ZDdmNGE2ODFjYzU1NDRlOTBkYTdkOTEuLjA0ZmMzMDM1NDc0NGJlZjdi
MzY5YmY5MGQ5YmRlMWZlZWVmZDNhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1JhbmRvbS5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtMTc5LDcgKzE4
MCw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyQ2xpZW50IHsKIAogY2xhc3MgUGFyYWxsZWxIZWxw
ZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4g
ewogcHVibGljOgotICAgIFdURl9FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKEFTQ0lJTGl0ZXJhbCB0
aHJlYWROYW1lID0gQVNDSUlMaXRlcmFsKCJXVEY6OlBhcmFsbGVsSGVscGVyUG9vbCIpKTsKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOwogCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsKQEAg
LTE4OCw2ICsxODksOCBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZG9Tb21lSGVscGluZygpOwogCisgICAgQVNDSUlMaXRlcmFsIHRocmVh
ZE5hbWUoKSBjb25zdCB7IHJldHVybiBtX3RocmVhZE5hbWU7IH0KKwogcHJpdmF0ZToKICAgICBm
cmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CiAgICAgY2xhc3MgVGhyZWFkOwpAQCAt
MjA3LDYgKzIxMCw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICAKICAgICBWZWN0b3I8UGFy
YWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVudHM7CiAgICAgVmVjdG9yPFJlZlB0cjxBdXRvbWF0
aWNUaHJlYWQ+PiBtX3RocmVhZHM7CisgICAgQVNDSUlMaXRlcmFsIG1fdGhyZWFkTmFtZTsKICAg
ICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8vIFRoaXMgY2FuIGJlIGxhcmdlciB0aGFu
IG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFydCB0aHJlYWRzIG9ubHkgb25jZSB0aGVy
ZSBpcyB3b3JrLgogICAgIGJvb2wgbV9pc0R5aW5nIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oIGIvU291cmNlL1dURi93dGYvdGV4
dC9BU0NJSUxpdGVyYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTQ2YTkyOTg0Zjk0NGIxMzVkNzAyOWY1MzFk
ZDcxYjhjYTY5OTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BU0NJ
SUxpdGVyYWwuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFl1
c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBBU0NJSUxpdGVyYWwgeworcHVibGljOgorICAgIGV4cGxpY2l0IGNvbnN0ZXhwciBB
U0NJSUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykKKyAgICAgICAgOiBtX2NoYXJhY3Rl
cnMoY2hhcmFjdGVycykKKyAgICB7CisgICAgfQorCisgICAgY29uc3RleHByIG9wZXJhdG9yIGNv
bnN0IGNoYXIqKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NoYXJhY3RlcnM7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IGNoYXIqIG1fY2hhcmFjdGVyczsKK307CisKK30K
KwordXNpbmcgV1RGOjpBU0NJSUxpdGVyYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCAw
MWM3NjgxMGJkNmNkMWVkYmJlZjhhZmVkODQyZjgwODBkZjdkYWQzLi44MGU2NDQ3MWZlZDA4ODc0
MDUzMzY1M2Y2ZjRlNjk2ZWFlMDRiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTI2
LDYgKzI2LDcgQEAKIC8vIG9uIHN5c3RlbXMgd2l0aG91dCBjYXNlLXNlbnNpdGl2ZSBmaWxlIHN5
c3RlbXMuCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvQVNDSUlMaXRlcmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5o
PgogCiAjaWZkZWYgX19PQkpDX18KQEAgLTM0LDggKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdURiB7
CiAKLWNsYXNzIEFTQ0lJTGl0ZXJhbDsKLQogLy8gRGVjbGFyYXRpb25zIG9mIHN0cmluZyBvcGVy
YXRpb25zCiAKIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBpbnQgY2hhcmFjdGVyc1RvSW50U3RyaWN0
KGNvbnN0IExDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTAp
OwpAQCAtNjgxLDE1ICs2ODAsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxTdHJp
bmc+IHsKIAogdGVtcGxhdGUgPD4gc3RydWN0IFZlY3RvclRyYWl0czxTdHJpbmc+IDogU2ltcGxl
Q2xhc3NWZWN0b3JUcmFpdHMgeyB9OwogCi1jbGFzcyBBU0NJSUxpdGVyYWwgewotcHVibGljOgot
ICAgIGV4cGxpY2l0IEFTQ0lJTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKSA6IG1fY2hh
cmFjdGVycyhjaGFyYWN0ZXJzKSB7IH0KLSAgICBvcGVyYXRvciBjb25zdCBjaGFyKigpIHsgcmV0
dXJuIG1fY2hhcmFjdGVyczsgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IGNoYXIqIG1fY2hhcmFj
dGVyczsKLX07Ci0KIC8vIFNoYXJlZCBnbG9iYWwgZW1wdHkgc3RyaW5nLgogV1RGX0VYUE9SVF9T
VFJJTkdfQVBJIGNvbnN0IFN0cmluZyYgZW1wdHlTdHJpbmcoKTsKIApAQCAtNzM4LDcgKzcyOCw2
IEBAIHVzaW5nIFdURjo6ZmluZDsKIHVzaW5nIFdURjo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVyczsK
IHVzaW5nIFdURjo6aXNTcGFjZU9yTmV3bGluZTsKIHVzaW5nIFdURjo6cmV2ZXJzZUZpbmQ7Ci11
c2luZyBXVEY6OkFTQ0lJTGl0ZXJhbDsKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298059</attachid>
            <date>2017-01-04 19:40:40 -0800</date>
            <delta_ts>2017-01-05 00:15:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170105123912.patch</filename>
            <type>text/plain</type>
            <size>20336</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZmYwMzc1MDg3YmU4MGNlNGEwYTllYzZmNjkyOTcwNzg0NWRjNmNkLi5hZTBmY2Y5YWI1YTgzYzE1
MTYyNWM4NmIwYTE5NjVhODU0MDVlNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNy0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBdXRvbWF0aWNUaHJlYWQgc2hvdWxkIGhhdmUgYSB3YXkgdG8gc2V0
IHRocmVhZCBuYW1lIGZvciBkZWJ1Z2dpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5hbWUgdGhvc2UgQXV0b21hdGljVGhyZWFkcyBhbmQgUGFyYWxs
ZWxIZWxwZXJQb29scy4KKworICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6V29ya2xpc3Q6OlRocmVhZEJvZHk6OlRocmVhZEJvZHkpOgorICAgICAgICAo
SlNDOjpERkc6OldvcmtsaXN0OjpXb3JrbGlzdCk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xp
c3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxERkdXb3JrbGlzdCk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QpOgorICAgICAgICAqIGRmZy9ERkdX
b3JrbGlzdC5oOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6
OlRocmVhZDo6VGhyZWFkKToKKyAgICAgICAgKiBoZWFwL0hlYXBIZWxwZXJQb29sLmNwcDoKKyAg
ICAgICAgKEpTQzo6aGVhcEhlbHBlclBvb2wpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5j
cHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisKIDIwMTYt
MTItMjEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogdGVhY2ggdGhlIHByb3RvY29sIGdlbmVyYXRvciBhYm91dCBwbGF0Zm9ybS1zcGVjaWZp
YyB0eXBlcywgZXZlbnRzLCBhbmQgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNDhmNTljYzZiN2YyNDMxZTYyZTk3
NGM4MWM2ZWU3MDY3YjQ1MGU3ZS4uYTc4ZjllMWJjODYxOWU3OTJmMzQ2MTEwMDY2NmIzZmRmYTE3
NmFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAxNy0wMS0wNCAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBBdXRvbWF0aWNUaHJlYWQgc2hvdWxkIGhh
dmUgYSB3YXkgdG8gc2V0IHRocmVhZCBuYW1lIGZvciBkZWJ1Z2dpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHdheSB0
byBuYW1lIEF1dG9tYXRpY1RocmVhZCBhbmQgUGFyYWxsZWxIZWxwZXJQb29sLgorICAgICAgICBU
aGlzIG5hbWUgd2lsbCBiZSBzaG93biBpbiBHREIgYW5kIGl0IGlzIHF1aXRlIHVzZWZ1bCBmb3Ig
ZGVidWdnaW5nLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9tYXRp
Y1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFk
OjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBv
b2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9v
bDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaDoK
KyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjp0aHJlYWROYW1lKToKKyAgICAgICAg
KiB3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwLgorICAgICAgICAoV1RGOjpBU0NJSUxpdGVyYWw6
OkFTQ0lJTGl0ZXJhbCk6CisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6b3BlcmF0b3IgY29u
c3QgY2hhciopOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAoV1RG
OjpBU0NJSUxpdGVyYWw6OkFTQ0lJTGl0ZXJhbCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkFT
Q0lJTGl0ZXJhbDo6b3BlcmF0b3IgY29uc3QgY2hhciopOiBEZWxldGVkLgorCisyMDE3LTAxLTA0
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIExpbWl0
IHRocmVhZCBuYW1lIGFwcHJvcHJpYXRlbHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NjY3NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCmluZGV4IDkxZDA2NDRmNjY5ZWMwZjU3NGNhMzczMDRmMWI4YjhiYjJhZWJi
ODEuLjk2Nzc4NzQzZTMwNzk2MjBlNDBhMGFjYmM3NGNiMWY3Y2ViZDRjMjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkg
OiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0
IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWREYXRhJiBkYXRh
LCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0
aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9j
a2VyLCBsb2NrLCBjb25kaXRpb24pCisgICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBs
b2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxv
Y2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0
aXZlUHJpb3JpdHksIEFTQ0lJTGl0ZXJhbCB0aHJlYWROYW1lKQorICAgICAgICA6IEF1dG9tYXRp
Y1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbiwgdGhyZWFkTmFtZSkKICAgICAgICAgLCBt
X3dvcmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAsIG1fZGF0YShkYXRhKQogICAgICAgICAsIG1f
cmVsYXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9yaXR5KQpAQCAtMTcxLDggKzE3MSw4IEBAIGNs
YXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiAgICAg
UmVmUHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nIHdv
cmtsaXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFtZSh0b0NTdHJpbmcod29ya2xpc3ROYW1lLCAi
IFdvcmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpXb3JrbGlzdChBU0NJSUxpdGVyYWwgdGhyZWFk
TmFtZSkKKyAgICA6IG1fdGhyZWFkTmFtZSh0aHJlYWROYW1lKQogICAgICwgbV9sb2NrKEJveDxM
b2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246OmNyZWF0ZSgpKQogICAgICwgbV9udW1iZXJPZkFjdGl2ZVRocmVhZHMoMCkKQEAgLTE5
OCwxNCArMTk4LDE0IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51
bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIoKm1fbG9jayk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07
KSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKLSAgICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9w
dFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5F
bnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOworICAgICAgICBkYXRhLT5tX3RocmVhZCA9IGFk
b3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tlciwgKnRoaXMsICpkYXRhLCBtX2xvY2ssIG1fcGxh
bkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5LCBtX3RocmVhZE5hbWUpKTsKICAgICAgICAgbV90
aHJlYWRzLmFwcGVuZChXVEZNb3ZlKGRhdGEpKTsKICAgICB9CiB9CiAKLVJlZjxXb3JrbGlzdD4g
V29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZU
aHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNy
ZWF0ZShBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBp
bnQgcmVsYXRpdmVQcmlvcml0eSkKIHsKLSAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0
UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3ROYW1lKSk7CisgICAgUmVmPFdvcmtsaXN0PiByZXN1
bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0KHRocmVhZE5hbWUpKTsKICAgICByZXN1bHQtPmZp
bmlzaENyZWF0aW9uKG51bWJlck9mVGhyZWFkcywgcmVsYXRpdmVQcmlvcml0eSk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KQEAgLTUxNCw3ICs1MTQsNyBAQCBXb3JrbGlzdCYgZW5zdXJlR2xvYmFs
REZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xv
YmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFs
V29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZX
b3JrbGlzdDo6Y3JlYXRlKCJERkcgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBp
bGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMo
KSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6
Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgib3JnLndlYmtpdC5qc2MuREZHQ29tcGlsZXIiKSwgT3B0aW9u
czo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9m
REZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKICAgICByZXR1cm4gKnRo
ZUdsb2JhbERGR1dvcmtsaXN0OwogfQpAQCAtNTMwLDcgKzUzMCw3IEBAIFdvcmtsaXN0JiBlbnN1
cmVHbG9iYWxGVExXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRp
YWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxp
emVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbEZUTFdvcmts
aXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9m
RlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVy
VGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbEZUTFdvcmtsaXN0ID0gJldv
cmtsaXN0OjpjcmVhdGUoQVNDSUlMaXRlcmFsKCJvcmcud2Via2l0LmpzYy5GVExDb21waWxlciIp
LCBPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0
eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJl
dHVybiAqdGhlR2xvYmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1dvcmtsaXN0LmgKaW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2ZmMzMjIxOWIwZmE0NGY2ZjExYzdm
OC4uNDczYTYxM2QxZTdhYjBiNzA0YjZiYzQ0ZmFhOGYxMjI5MTgyYTY5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3Jr
bGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB+V29ya2xpc3QoKTsK
ICAgICAKLSAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5h
bWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsK
KyAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQVNDSUlMaXRlcmFsIHRocmVhZE5hbWUs
IHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsKICAg
ICAKICAgICB2b2lkIGVucXVldWUoUGFzc1JlZlB0cjxQbGFuPik7CiAgICAgCkBAIC04Miw3ICs4
Miw3IEBAIGNsYXNzIFdvcmtsaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKICAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgV29y
a2xpc3QoQ1N0cmluZyB3b3JrbGlzdE5hbWUpOworICAgIFdvcmtsaXN0KEFTQ0lJTGl0ZXJhbCB0
aHJlYWROYW1lKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhy
ZWFkcywgaW50KTsKICAgICAKICAgICBjbGFzcyBUaHJlYWRCb2R5OwpAQCAtOTUsNyArOTUsNyBA
QCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB2
b2lkIGR1bXAoY29uc3QgTG9ja0hvbGRlciYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCi0g
ICAgQ1N0cmluZyBtX3RocmVhZE5hbWU7CisgICAgQVNDSUlMaXRlcmFsIG1fdGhyZWFkTmFtZTsK
ICAgICAKICAgICAvLyBVc2VkIHRvIGluZm9ybSB0aGUgdGhyZWFkIGFib3V0IHdoYXQgd29yayB0
aGVyZSBpcyBsZWZ0IHRvIGRvLgogICAgIERlcXVlPFJlZlB0cjxQbGFuPj4gbV9xdWV1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggMmMyOGQ0MzVhZWU2YzA4MDlkNDBiNGVj
ZjBhZTFiYjZmNGFiMmZhNS4uMzNlYjZkZjAxZTBkMDhhYzQ2NDgwYWQwMjAzNjFiYjUwMDYxZmU1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBj
bGFzcyBUaW1pbmdTY29wZSB7CiBjbGFzcyBIZWFwOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGlj
VGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBI
ZWFwJiBoZWFwKQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJl
YWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVh
ZChsb2NrZXIsIGhlYXAubV90aHJlYWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uLCBBU0NJ
SUxpdGVyYWwoIm9yZy53ZWJraXQuanNjLkhlYXBDb2xsZWN0b3IiKSkKICAgICAgICAgLCBtX2hl
YXAoaGVhcCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cEhlbHBlclBvb2wuY3BwCmluZGV4IDc5MWFhNzU2Zjk1ZTFjYjU2NDBmYzMzYjQ1Njc3NDUxZWUx
YTI1MzYuLjYyNDlkNGI0OTdjYTMzM2FkZDQ5MjhmZTE2YzU3YjMzMWY1OTUwNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKQEAgLTM4LDcgKzM4
LDcgQEAgUGFyYWxsZWxIZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgpCiAgICAgc3RkOjpjYWxs
X29uY2UoCiAgICAgICAgIGluaXRpYWxpemVIZWxwZXJQb29sT25jZUZsYWcsCiAgICAgICAgIFtd
IHsKLSAgICAgICAgICAgIGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29sKCk7Cisg
ICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbChBU0NJSUxpdGVy
YWwoIm9yZy53ZWJraXQuanNjLkhlYXBIZWxwZXIiKSk7CiAgICAgICAgICAgICBoZWxwZXJQb29s
LT5lbnN1cmVUaHJlYWRzKE9wdGlvbnM6Om51bWJlck9mR0NNYXJrZXJzKCkgLSAxKTsKICAgICAg
ICAgfSk7CiAgICAgcmV0dXJuICpoZWxwZXJQb29sOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFdvcmtsaXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFmNzdkOTYxNmFjZWQwNGNh
N2Y1MWE2Li40NmExYWVlZTE0NGZiMTExNWI1ZDI5ZmZmOWQxMTA0OTdiMGE5M2Y0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBA
IGNsYXNzIEpJVFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpJ
VFdvcmtsaXN0OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVibGljIEF1
dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxv
Y2tlciwgSklUV29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChs
b2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRpb24pCisgICAgICAgIDog
QXV0b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5tX2NvbmRp
dGlvbiwgQVNDSUlMaXRlcmFsKCJvcmcud2Via2l0LmpzYy5KSVRDb21waWxlciIpKQogICAgICAg
ICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgewogICAgICAgICBtX3dvcmtsaXN0Lm1fbnVt
QXZhaWxhYmxlVGhyZWFkcysrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMTI0YTRiN2MxMjAzYzRiZWZmZWUwNzFhNjliYWZiYzcyZjliODI5Yi4uZjM5ZWZm
YWNlMDZlOTNkZGEwYjFiNGQwZjk1NjIzZDQ2NzkyYmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjEsNiArMzYxLDcgQEAKIAkJRkU4OTI1QjAxRDAw
REFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCAq
LzsgfTsKIAkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0IxNjMwRjgz
RjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovOyB9OwogCQlGRURBQ0QzRTE2MzBGODNGMDBD
Njk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAqLzsg
fTsKKwkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBOUJENDVFMDYzNEIyNEIy
QUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0
aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC03
MzQsNiArNzM1LDcgQEAKIAkJRkU4OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUZFREFDRDNCMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YWNrU3RhdHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQg
LyogU3RhY2tTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja1N0
YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxQTlCRDQ1RTA2MzRCMjRCMkFG
MzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
QVNDSUlMaXRlcmFsLmg7IHBhdGggPSBBU0NJSUxpdGVyYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4g
UEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTIwNSw2ICsxMjA3LDcgQEAK
IAkJCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCAqLywK
IAkJCQlBOEE0NzMyRDE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCAqLywKIAkJCQlB
OEE0NzMyRTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggKi8sCisJCQkJNzFBOUJENDVF
MDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovLAogCQkJKTsKIAkJCXBhdGggPSB0
ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE1MzUsNiArMTUzOCw3IEBACiAJ
CQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIwMDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAvKiBBU0NJSUxpdGVyYWwuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFk
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggOWQzZjlhYTE5
MjU5YzY0OTY4YzJkMmIyNjljOTk0M2EzNDczZDZlZS4uZWUzZWU5OWFjYzliM2UyNDM0ZWU0ZmQ3
MjA1MmMwODBlMDk1YjFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC05OCw5
ICs5OCwxMCBAQCBib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3Qg
TG9ja0hvbGRlciYsIEF1dG9tYXRpY1RocmVhZCogdGhyZQogICAgIHJldHVybiBtX3RocmVhZHMu
Y29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQo
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uKQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNU
aHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBBU0NJSUxpdGVyYWwgdGhyZWFkTmFt
ZSkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRpb24oY29uZGl0aW9uKQorICAg
ICwgbV90aHJlYWROYW1lKHRocmVhZE5hbWUpCiB7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
IGRhdGFMb2coUmF3UG9pbnRlcih0aGlzKSwgIjogQWxsb2NhdGVkIEF1dG9tYXRpY1RocmVhZC5c
biIpOwpAQCAtMTc2LDcgKzE3Nyw3IEBAIHZvaWQgQXV0b21hdGljVGhyZWFkOjpzdGFydChjb25z
dCBMb2NrSG9sZGVyJikKICAgICBtX2hhc1VuZGVybHlpbmdUaHJlYWQgPSB0cnVlOwogICAgIAog
ICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAiV1RG
OjpBdXRvbWF0aWNUaHJlYWQiLAorICAgICAgICBtX3RocmVhZE5hbWUsCiAgICAgICAgIFs9XSAo
KSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKFJh
d1BvaW50ZXIodGhpcyksICI6IFJ1bm5pbmcgYXV0b21hdGljIHRocmVhZCFcbiIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9B
dXRvbWF0aWNUaHJlYWQuaAppbmRleCBkMzM2M2JjMGE4Y2M2YWM2ZjA0ODQxYTE5YTZmY2IxMzM5
MjMwMmQ1Li5hYWI2OGYwNjc3N2I4OGQ5YmY3ZDg0OTQ0M2I2ZTRhOTJlOGE5MTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9BdXRvbWF0aWNUaHJlYWQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlMaXRlcmFsLmg+CiAKIG5h
bWVzcGFjZSBXVEYgewogCkBAIC0xMzAsNyArMTMxLDcgQEAgY2xhc3MgV1RGX0VYUE9SVF9QUklW
QVRFIEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdXRvbWF0
aWMKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVzIHRoZSB0aHJlYWQs
IGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1bnRpbCBzb21lb25l
CiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoKSBvciBu
b3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYsIEJveDxM
b2NrPiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4pOworICAgIEF1dG9tYXRpY1Ro
cmVhZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiwgQVNDSUlMaXRlcmFsIHRocmVhZE5hbWUpOwogICAgIAogICAgIC8vIFRvIHVu
ZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29ya1Jlc3VsdCwgaW1hZ2luZSB0aGF0IHBvbGwoKSBh
bmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQgbGlrZQogICAgIC8vIHNvOgpAQCAtMTg1LDYgKzE4
Niw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBdXRvbWF0aWNUaHJlYWQgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21hdGljCiAgICAgYm9vbCBtX2hhc1VuZGVybHlpbmdU
aHJlYWQgeyBmYWxzZSB9OwogICAgIENvbmRpdGlvbiBtX3dhaXRDb25kaXRpb247CiAgICAgQ29u
ZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9uOworICAgIEFTQ0lJTGl0ZXJhbCBtX3RocmVhZE5h
bWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BhcmFsbGVsSGVscGVyUG9vbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBv
b2wuY3BwCmluZGV4IDk0OTJmZGRkZjE5NjQ5ZDY1YjUxMGIxZTQzYzAyYWE5NTE0YzA3MzEuLjg4
ODRhNGQ0NDA1N2U0MGI0ZTY1NTZhNmRlNTRiODg2ODYzZDZlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFy
YWxsZWxIZWxwZXJQb29sLmNwcApAQCAtMTIzLDkgKzEyMywxMCBAQCB2b2lkIFBhcmFsbGVsSGVs
cGVyQ2xpZW50OjpydW5UYXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrKQogICAg
IH0KIH0KIAotUGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woKQorUGFyYWxs
ZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woQVNDSUlMaXRlcmFsIHRocmVhZE5hbWUp
CiAgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fd29ya0F2YWlsYWJs
ZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQorICAgICwgbV90
aHJlYWROYW1lKHRocmVhZE5hbWUpCiB7CiB9CiAKQEAgLTE3MSw3ICsxNzIsNyBAQCB2b2lkIFBh
cmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBv
b2w6OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYgcG9vbCkKLSAg
ICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtB
dmFpbGFibGVDb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgcG9v
bC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLCBwb29sLnRocmVhZE5hbWUo
KSkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxl
bEhlbHBlclBvb2wuaAppbmRleCA4MTYzNWJiNzgxOTAwM2FjOWQ3ZjRhNjgxY2M1NTQ0ZTkwZGE3
ZDkxLi5kYmJlMzg1ZWRjYTliYTkzOTM0ZmQ4NWNhMzY4YjkyMGRkYTc2ZjJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtS
YW5kb20uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KIAogbmFtZXNwYWNl
IFdURiB7CiAKQEAgLTE3OSw3ICsxODAsNyBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudCB7
CiAKIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKIHB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
UGFyYWxsZWxIZWxwZXJQb29sKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVs
cGVyUG9vbChBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IH5QYXJhbGxlbEhlbHBlclBvb2woKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVu
c3VyZVRocmVhZHModW5zaWduZWQgbnVtVGhyZWFkcyk7CkBAIC0xODgsNiArMTg5LDggQEAgY2xh
c3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFs
bGVsSGVscGVyUG9vbD4gewogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRvU29t
ZUhlbHBpbmcoKTsKIAorICAgIEFTQ0lJTGl0ZXJhbCB0aHJlYWROYW1lKCkgY29uc3QgeyByZXR1
cm4gbV90aHJlYWROYW1lOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhcmFsbGVs
SGVscGVyQ2xpZW50OwogICAgIGNsYXNzIFRocmVhZDsKQEAgLTIwNyw2ICsyMTAsNyBAQCBjbGFz
cyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxs
ZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgVmVjdG9yPFBhcmFsbGVsSGVscGVyQ2xpZW50Kj4g
bV9jbGllbnRzOwogICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4gbV90aHJlYWRz
OworICAgIEFTQ0lJTGl0ZXJhbCBtX3RocmVhZE5hbWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJl
YWRzIHsgMCB9OyAvLyBUaGlzIGNhbiBiZSBsYXJnZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJl
Y2F1c2Ugd2Ugc3RhcnQgdGhyZWFkcyBvbmx5IG9uY2UgdGhlcmUgaXMgd29yay4KICAgICBib29s
IG1faXNEeWluZyB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9BU0NJSUxpdGVyYWwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzk0NmE5Mjk4NGY5NDRiMTM1ZDcwMjlmNTMxZGQ3MWI4Y2E2OTk2NAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQVNDSUlMaXRlcmFs
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBjb25zdGV4cHIgQVNDSUlMaXRlcmFsKGNvbnN0IGNo
YXIqIGNoYXJhY3RlcnMpCisgICAgICAgIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCisgICAg
eworICAgIH0KKworICAgIGNvbnN0ZXhwciBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9jaGFyYWN0ZXJzOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBjb25zdCBjaGFyKiBtX2NoYXJhY3RlcnM7Cit9OworCit9CisKK3VzaW5nIFdURjo6QVNDSUlM
aXRlcmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDFjNzY4MTBiZDZjZDFlZGJiZWY4
YWZlZDg0MmY4MDgwZGY3ZGFkMy4uODBlNjQ0NzFmZWQwODg3NDA1MzM2NTNmNmY0ZTY5NmVhZTA0
YjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC0yNiw2ICsyNiw3IEBACiAvLyBvbiBz
eXN0ZW1zIHdpdGhvdXQgY2FzZS1zZW5zaXRpdmUgZmlsZSBzeXN0ZW1zLgogCiAjaW5jbHVkZSA8
d3RmL3RleHQvQVNDSUlGYXN0UGF0aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJh
bC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19f
CkBAIC0zNCw4ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBBU0NJSUxpdGVy
YWw7Ci0KIC8vIERlY2xhcmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwogCiBXVEZfRVhQT1JU
X1NUUklOR19BUEkgaW50IGNoYXJhY3RlcnNUb0ludFN0cmljdChjb25zdCBMQ2hhciosIHNpemVf
dCwgYm9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKTsKQEAgLTY4MSwxNSArNjgwLDYg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8U3RyaW5nPiB7CiAKIHRlbXBsYXRlIDw+
IHN0cnVjdCBWZWN0b3JUcmFpdHM8U3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsg
fTsKIAotY2xhc3MgQVNDSUlMaXRlcmFsIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBU0NJSUxp
dGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykgOiBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykg
eyB9Ci0gICAgb3BlcmF0b3IgY29uc3QgY2hhciooKSB7IHJldHVybiBtX2NoYXJhY3RlcnM7IH0K
LQotcHJpdmF0ZToKLSAgICBjb25zdCBjaGFyKiBtX2NoYXJhY3RlcnM7Ci19OwotCiAvLyBTaGFy
ZWQgZ2xvYmFsIGVtcHR5IHN0cmluZy4KIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBjb25zdCBTdHJp
bmcmIGVtcHR5U3RyaW5nKCk7CiAKQEAgLTczOCw3ICs3MjgsNiBAQCB1c2luZyBXVEY6OmZpbmQ7
CiB1c2luZyBXVEY6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnM7CiB1c2luZyBXVEY6OmlzU3BhY2VP
ck5ld2xpbmU7CiB1c2luZyBXVEY6OnJldmVyc2VGaW5kOwotdXNpbmcgV1RGOjpBU0NJSUxpdGVy
YWw7CiAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298072</attachid>
            <date>2017-01-05 00:15:58 -0800</date>
            <delta_ts>2017-01-06 03:43:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170105171430.patch</filename>
            <type>text/plain</type>
            <size>20361</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZmYwMzc1MDg3YmU4MGNlNGEwYTllYzZmNjkyOTcwNzg0NWRjNmNkLi5kOTdmNTdkMWNkZTIzNTJl
ZmIwMzI1YWFiMGUyNTFlNTAwZmMyYzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNy0wMS0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBdXRvbWF0aWNUaHJlYWQgc2hvdWxkIGhhdmUgYSB3YXkgdG8gc2V0
IHRocmVhZCBuYW1lIGZvciBkZWJ1Z2dpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5hbWUgdGhvc2UgQXV0b21hdGljVGhyZWFkcyBhbmQgUGFyYWxs
ZWxIZWxwZXJQb29scy4KKworICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6V29ya2xpc3Q6OlRocmVhZEJvZHk6OlRocmVhZEJvZHkpOgorICAgICAgICAo
SlNDOjpERkc6OldvcmtsaXN0OjpXb3JrbGlzdCk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xp
c3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxERkdXb3JrbGlzdCk6CisgICAgICAg
IChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QpOgorICAgICAgICAqIGRmZy9ERkdX
b3JrbGlzdC5oOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6
OlRocmVhZDo6VGhyZWFkKToKKyAgICAgICAgKiBoZWFwL0hlYXBIZWxwZXJQb29sLmNwcDoKKyAg
ICAgICAgKEpTQzo6aGVhcEhlbHBlclBvb2wpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5j
cHA6CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisKIDIwMTYt
MTItMjEgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogdGVhY2ggdGhlIHByb3RvY29sIGdlbmVyYXRvciBhYm91dCBwbGF0Zm9ybS1zcGVjaWZp
YyB0eXBlcywgZXZlbnRzLCBhbmQgY29tbWFuZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggN2IzNmMzYmI3NzUwNzFmMjY2ZmFl
YTYzMTEzYTg0MjUzMzg5NjZmOC4uNDY3ZmQ1MTljOWRhYWVmNjNiMzZmM2NiMWY2ZmZlNDYwM2Q5
NGI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNy0wMS0wNSAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBBdXRvbWF0aWNUaHJlYWQgc2hvdWxkIGhh
dmUgYSB3YXkgdG8gc2V0IHRocmVhZCBuYW1lIGZvciBkZWJ1Z2dpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIHdheSB0
byBuYW1lIEF1dG9tYXRpY1RocmVhZCBhbmQgUGFyYWxsZWxIZWxwZXJQb29sLgorICAgICAgICBU
aGlzIG5hbWUgd2lsbCBiZSBzaG93biBpbiBHREIgYW5kIGl0IGlzIHF1aXRlIHVzZWZ1bCBmb3Ig
ZGVidWdnaW5nLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9tYXRp
Y1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFk
OjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBv
b2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9v
bDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaDoK
KyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjp0aHJlYWROYW1lKToKKyAgICAgICAg
KiB3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwLgorICAgICAgICAoV1RGOjpBU0NJSUxpdGVyYWw6
OkFTQ0lJTGl0ZXJhbCk6CisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6b3BlcmF0b3IgY29u
c3QgY2hhciopOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAoV1RG
OjpBU0NJSUxpdGVyYWw6OkFTQ0lJTGl0ZXJhbCk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkFT
Q0lJTGl0ZXJhbDo6b3BlcmF0b3IgY29uc3QgY2hhciopOiBEZWxldGVkLgorCiAyMDE3LTAxLTA0
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUGFzc1Jl
ZlB0ciB1c2UgZnJvbSB0aGUgImh0bWwiIGRpcmVjdG9yeSwgb3RoZXIgaW1wcm92ZW1lbnRzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDkxZDA2NDRmNjY5
ZWMwZjU3NGNhMzczMDRmMWI4YjhiYjJhZWJiODEuLjI3NmQyZjQ0MmU5ZTRiMmIzMjA5ODUwMWFm
ZjlkYTJjZTA2YWY4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3Qu
Y3BwCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAog
Y2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1
YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3Qm
IHdvcmtsaXN0LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKLSAg
ICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBjb25kaXRpb24pCisgICAgVGhy
ZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhy
ZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0aXZlUHJpb3JpdHksIEFTQ0lJTGl0ZXJhbCB0aHJl
YWROYW1lKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlv
biwgdGhyZWFkTmFtZSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAs
IG1fZGF0YShkYXRhKQogICAgICAgICAsIG1fcmVsYXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9y
aXR5KQpAQCAtMTcxLDggKzE3MSw4IEBAIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVi
bGljIEF1dG9tYXRpY1RocmVhZCB7CiAgICAgUmVmUHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdv
cmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFt
ZSh0b0NTdHJpbmcod29ya2xpc3ROYW1lLCAiIFdvcmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpX
b3JrbGlzdChBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSkKKyAgICA6IG1fdGhyZWFkTmFtZSh0aHJl
YWROYW1lKQogICAgICwgbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5F
bnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAgICwgbV9udW1i
ZXJPZkFjdGl2ZVRocmVhZHMoMCkKQEAgLTE5OCwxNCArMTk4LDE0IEBAIHZvaWQgV29ya2xpc3Q6
OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJp
b3JpdHkpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fbG9jayk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07KSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxU
aHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKLSAg
ICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0
aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOwor
ICAgICAgICBkYXRhLT5tX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tlciwg
KnRoaXMsICpkYXRhLCBtX2xvY2ssIG1fcGxhbkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5LCBt
X3RocmVhZE5hbWUpKTsKICAgICAgICAgbV90aHJlYWRzLmFwcGVuZChXVEZNb3ZlKGRhdGEpKTsK
ICAgICB9CiB9CiAKLVJlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmts
aXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkK
K1JlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSwg
dW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKIHsKLSAgICBS
ZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3ROYW1l
KSk7CisgICAgUmVmPFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0KHRo
cmVhZE5hbWUpKTsKICAgICByZXN1bHQtPmZpbmlzaENyZWF0aW9uKG51bWJlck9mVGhyZWFkcywg
cmVsYXRpdmVQcmlvcml0eSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTUxNCw3ICs1MTQs
NyBAQCBXb3JrbGlzdCYgZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6
OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAg
ICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJERkcgV29ya2xpc3Qi
LCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0
eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9i
YWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgib3JnLndlYmtp
dC5KYXZhU2NyaXB0Q29yZS5ERkdDb21waWxlciIpLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBp
bGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMo
KSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiAqdGhlR2xvYmFsREZHV29ya2xpc3Q7
CiB9CkBAIC01MzAsNyArNTMwLDcgQEAgV29ya2xpc3QmIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0
KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0
T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25j
ZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNy
ZWF0ZSgiRlRMIFdvcmtsaXN0IiwgT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMo
KSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYo
KTsKKyAgICAgICAgdGhlR2xvYmFsRlRMV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZShBU0NJ
SUxpdGVyYWwoIm9yZy53ZWJraXQuSmF2YVNjcmlwdENvcmUuRlRMQ29tcGlsZXIiKSwgT3B0aW9u
czo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9m
RlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKICAgICByZXR1cm4gKnRo
ZUdsb2JhbEZUTFdvcmtsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5oCmluZGV4IGQ5MDFlNzJkYTBkODdmMWUyNmZjMzIyMTliMGZhNDRmNmYxMWM3ZjguLjQ3M2E2
MTNkMWU3YWIwYjcwNGI2YmM0NGZhYThmMTIyOTE4MmE2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV29ya2xpc3QgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogCiAgICAgfldvcmtsaXN0KCk7CiAgICAgCi0g
ICAgc3RhdGljIFJlZjxXb3JrbGlzdD4gY3JlYXRlKENTdHJpbmcgd29ya2xpc3ROYW1lLCB1bnNp
Z25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CisgICAgc3Rh
dGljIFJlZjxXb3JrbGlzdD4gY3JlYXRlKEFTQ0lJTGl0ZXJhbCB0aHJlYWROYW1lLCB1bnNpZ25l
ZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAgICAgCiAgICAg
dm9pZCBlbnF1ZXVlKFBhc3NSZWZQdHI8UGxhbj4pOwogICAgIApAQCAtODIsNyArODIsNyBAQCBj
bGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFdvcmtsaXN0KENT
dHJpbmcgd29ya2xpc3ROYW1lKTsKKyAgICBXb3JrbGlzdChBU0NJSUxpdGVyYWwgdGhyZWFkTmFt
ZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGlu
dCk7CiAgICAgCiAgICAgY2xhc3MgVGhyZWFkQm9keTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3Mg
V29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogCiAgICAgdm9pZCBkdW1w
KGNvbnN0IExvY2tIb2xkZXImLCBQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIENTdHJp
bmcgbV90aHJlYWROYW1lOworICAgIEFTQ0lJTGl0ZXJhbCBtX3RocmVhZE5hbWU7CiAgICAgCiAg
ICAgLy8gVXNlZCB0byBpbmZvcm0gdGhlIHRocmVhZCBhYm91dCB3aGF0IHdvcmsgdGhlcmUgaXMg
bGVmdCB0byBkby4KICAgICBEZXF1ZTxSZWZQdHI8UGxhbj4+IG1fcXVldWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDJjMjhkNDM1YWVlNmMwODA5ZDQwYjRlY2YwYWUxYmI2
ZjRhYjJmYTUuLjAzNWM1NTQ4Mjg4MTdhZTFmMGIzZmE2OThkYmU0NWRkOThjODY2MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgY2xhc3MgVGlt
aW5nU2NvcGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7
CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgSGVhcCYgaGVh
cCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywg
aGVhcC5tX3RocmVhZENvbmRpdGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2Vy
LCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbiwgQVNDSUlMaXRlcmFs
KCJvcmcud2Via2l0LkphdmFTY3JpcHRDb3JlLkhlYXBDb2xsZWN0b3IiKSkKICAgICAgICAgLCBt
X2hlYXAoaGVhcCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcEhlbHBlclBvb2wuY3BwCmluZGV4IDc5MWFhNzU2Zjk1ZTFjYjU2NDBmYzMzYjQ1Njc3NDUx
ZWUxYTI1MzYuLmZhMjViY2RkYmQ3MmU2ODk5YjRhMzVmMDI3NjYzYTk0MGQzODViNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKQEAgLTM4LDcg
KzM4LDcgQEAgUGFyYWxsZWxIZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgpCiAgICAgc3RkOjpj
YWxsX29uY2UoCiAgICAgICAgIGluaXRpYWxpemVIZWxwZXJQb29sT25jZUZsYWcsCiAgICAgICAg
IFtdIHsKLSAgICAgICAgICAgIGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29sKCk7
CisgICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbChBU0NJSUxp
dGVyYWwoIm9yZy53ZWJraXQuSmF2YVNjcmlwdENvcmUuSGVhcEhlbHBlciIpKTsKICAgICAgICAg
ICAgIGhlbHBlclBvb2wtPmVuc3VyZVRocmVhZHMoT3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMo
KSAtIDEpOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKmhlbHBlclBvb2w7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCmluZGV4IDJjMjJkYTM4OThiYzI4NzliYWY3
N2Q5NjE2YWNlZDA0Y2E3ZjUxYTYuLjZmNGE4NDRlMWUzMGU5MzgxMjEyOTEwYTJiOTY1ODZhNTJj
NzgxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCkBAIC0x
MDAsNyArMTAwLDcgQEAgY2xhc3MgSklUV29ya2xpc3Q6OlBsYW4gOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8SklUV29ya2xpc3Q6OlBsYW4+IHsKIGNsYXNzIEpJVFdvcmtsaXN0OjpUaHJl
YWQgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3Qg
TG9ja0hvbGRlciYgbG9ja2VyLCBKSVRXb3JrbGlzdCYgd29ya2xpc3QpCi0gICAgICAgIDogQXV0
b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5tX2NvbmRpdGlv
bikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdv
cmtsaXN0Lm1fY29uZGl0aW9uLCBBU0NJSUxpdGVyYWwoIm9yZy53ZWJraXQuSmF2YVNjcmlwdENv
cmUuSklUQ29tcGlsZXIiKSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgIHsK
ICAgICAgICAgbV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVhZHMrKzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEyNGE0YjdjMTIwM2M0YmVmZmVlMDcx
YTY5YmFmYmM3MmY5YjgyOWIuLmYzOWVmZmFjZTA2ZTkzZGRhMGIxYjRkMGY5NTYyM2Q0Njc5MmJi
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzYxLDYg
KzM2MSw3IEBACiAJCUZFODkyNUIwMUQwMERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU4OTI1QUYxRDAwREFF
QzAwNDY5MDdFIC8qIEluZGVudGVyLmggKi87IH07CiAJCUZFREFDRDNEMTYzMEY4M0YwMEM2OTYz
NCAvKiBTdGFja1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFREFDRDNCMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLzsg
fTsKIAkJRkVEQUNEM0UxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREFDRDNDMTYzMEY4M0YwMEM2
OTYzNCAvKiBTdGFja1N0YXRzLmggKi87IH07CisJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAv
KiBBU0NJSUxpdGVyYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLzsgfTsK
IC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJ
dGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtNzM0LDYgKzczNSw3IEBACiAJCUZFODkyNUFGMUQwMERB
RUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmRlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQjE2MzBG
ODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdGFja1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFTQ0lJTGl0ZXJhbC5oOyBwYXRoID0gQVNDSUlMaXRl
cmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5j
ZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24g
Ki8KQEAgLTEyMDUsNiArMTIwNyw3IEBACiAJCQkJNzBFQ0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8q
IFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8sCiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlN0cmluZy5jcHAgKi8sCiAJCQkJQThBNDczMkUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0
cmluZy5oICovLAorCQkJCTcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwu
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGV4dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xNTM1LDYgKzE1MzgsNyBAQAogCQkJCUE4QTQ3NDQ2MTUxQTgyNUIwMDQxMjNGRiAvKiBX
VEZTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTczRTAyNTE5RENCN0FCMDA1
ODBENUMgLyogWFBDU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk4QUQ4OTJGMEQ1ODU0NkQxODZD
RUQ4QzggLyogQVNDSUlMaXRlcmFsLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNU
aHJlYWQuY3BwCmluZGV4IDlkM2Y5YWExOTI1OWM2NDk2OGMyZDJiMjY5Yzk5NDNhMzQ3M2Q2ZWUu
LmVlM2VlOTlhY2M5YjNlMjQzNGVlNGZkNzIwNTJjMDgwZTA5NWIxZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXV0
b21hdGljVGhyZWFkLmNwcApAQCAtOTgsOSArOTgsMTAgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb246OmNvbnRhaW5zKGNvbnN0IExvY2tIb2xkZXImLCBBdXRvbWF0aWNUaHJlYWQqIHRo
cmUKICAgICByZXR1cm4gbV90aHJlYWRzLmNvbnRhaW5zKHRocmVhZCk7CiB9CiAKLUF1dG9tYXRp
Y1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgQm94PExv
Y2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbikKK0F1
dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwg
Qm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlv
biwgQVNDSUlMaXRlcmFsIHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2sobG9jaykKICAgICAsIG1f
Y29uZGl0aW9uKGNvbmRpdGlvbikKKyAgICAsIG1fdGhyZWFkTmFtZSh0aHJlYWROYW1lKQogewog
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6IEFs
bG9jYXRlZCBBdXRvbWF0aWNUaHJlYWQuXG4iKTsKQEAgLTE3Niw3ICsxNzcsNyBAQCB2b2lkIEF1
dG9tYXRpY1RocmVhZDo6c3RhcnQoY29uc3QgTG9ja0hvbGRlciYpCiAgICAgbV9oYXNVbmRlcmx5
aW5nVGhyZWFkID0gdHJ1ZTsKICAgICAKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGNy
ZWF0ZVRocmVhZCgKLSAgICAgICAgIldURjo6QXV0b21hdGljVGhyZWFkIiwKKyAgICAgICAgbV90
aHJlYWROYW1lLAogICAgICAgICBbPV0gKCkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICAgICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBSdW5uaW5nIGF1dG9t
YXRpYyB0aHJlYWQhXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1Ro
cmVhZC5oIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKaW5kZXggZDMzNjNiYzBh
OGNjNmFjNmYwNDg0MWExOWE2ZmNiMTMzOTIzMDJkNS4uYWFiNjhmMDY3NzdiODhkOWJmN2Q4NDk0
NDNiNmU0YTkyZThhOTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmgKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtMTMwLDcgKzEzMSw3
IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBdXRvbWF0aWNUaHJlYWQgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21hdGljCiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBsb2dp
Y2FsbHkgY3JlYXRlcyB0aGUgdGhyZWFkLCBidXQgaW4gcmVhbGl0eSB0aGUgdGhyZWFkIHdvbid0
IGJlIGNyZWF0ZWQgdW50aWwgc29tZW9uZQogICAgIC8vIGNhbGxzIEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbjo6bm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuCi0gICAgQXV0b21hdGljVGhyZWFk
KGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9jaz4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+KTsKKyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYsIEJveDxMb2Nr
PiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4sIEFTQ0lJTGl0ZXJhbCB0aHJlYWRO
YW1lKTsKICAgICAKICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1
bHQsIGltYWdpbmUgdGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UK
ICAgICAvLyBzbzoKQEAgLTE4NSw2ICsxODYsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUg
QXV0b21hdGljVGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwog
ICAgIGJvb2wgbV9oYXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKICAgICBDb25kaXRpb24g
bV93YWl0Q29uZGl0aW9uOwogICAgIENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlvbjsKKyAg
ICBBU0NJSUxpdGVyYWwgbV90aHJlYWROYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwIGIvU291cmNl
L1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA5NDkyZmRkZGYxOTY0OWQ2NWI1
MTBiMWU0M2MwMmFhOTUxNGMwNzMxLi44ODg0YTRkNDQwNTdlNDBiNGU2NTU2YTZkZTU0Yjg4Njg2
M2Q2ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAgLTEyMyw5ICsx
MjMsMTAgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhSZWZQdHI8U2hhcmVk
VGFzazx2b2lkICgpPj4gdGFzaykKICAgICB9CiB9CiAKLVBhcmFsbGVsSGVscGVyUG9vbDo6UGFy
YWxsZWxIZWxwZXJQb29sKCkKK1BhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29s
KEFTQ0lJTGl0ZXJhbCB0aHJlYWROYW1lKQogICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX3dvcmtBdmFpbGFibGVDb25kaXRpb24oQXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uOjpjcmVhdGUoKSkKKyAgICAsIG1fdGhyZWFkTmFtZSh0aHJlYWROYW1lKQogewogfQogCkBA
IC0xNzEsNyArMTcyLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBpbmco
KQogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGljVGhy
ZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBQYXJh
bGxlbEhlbHBlclBvb2wmIHBvb2wpCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwg
cG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKQorICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJsZUNv
bmRpdGlvbiwgcG9vbC50aHJlYWROYW1lKCkpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAg
ewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
IGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggODE2MzViYjc4MTkw
MDNhYzlkN2Y0YTY4MWNjNTU0NGU5MGRhN2Q5MS4uZGJiZTM4NWVkY2E5YmE5MzkzNGZkODVjYTM2
OGI5MjBkZGE3NmYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUmFuZG9tLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQVND
SUlMaXRlcmFsLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC0xNzksNyArMTgwLDcgQEAgY2xh
c3MgUGFyYWxsZWxIZWxwZXJDbGllbnQgewogCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiBwdWJsaWM6
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgIFdURl9F
WFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woQVNDSUlMaXRlcmFsIHRocmVhZE5hbWUp
OwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxsZWxIZWxwZXJQb29sKCk7CiAKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMp
OwpAQCAtMTg4LDYgKzE4OSw4IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICAKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5nKCk7CiAKKyAgICBBU0NJSUxpdGVyYWwg
dGhyZWFkTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkTmFtZTsgfQorCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudDsKICAgICBjbGFzcyBUaHJlYWQ7
CkBAIC0yMDcsNiArMjEwLDcgQEAgY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogICAgIAogICAgIFZlY3Rv
cjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1fY2xpZW50czsKICAgICBWZWN0b3I8UmVmUHRyPEF1
dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAgICBBU0NJSUxpdGVyYWwgbV90aHJlYWROYW1l
OwogICAgIHVuc2lnbmVkIG1fbnVtVGhyZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2Vy
IHRoYW4gbV90aHJlYWRzLnNpemUoKSBiZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNl
IHRoZXJlIGlzIHdvcmsuCiAgICAgYm9vbCBtX2lzRHlpbmcgeyBmYWxzZSB9OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NDZhOTI5ODRmOTQ0YjEzNWQ3MDI5
ZjUzMWRkNzFiOGNhNjk5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0FTQ0lJTGl0ZXJhbC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdU
RiB7CisKK2NsYXNzIEFTQ0lJTGl0ZXJhbCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgY29uc3Rl
eHByIEFTQ0lJTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAgICAgICA6IG1fY2hh
cmFjdGVycyhjaGFyYWN0ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgb3BlcmF0
b3IgY29uc3QgY2hhciooKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY2hhcmFjdGVy
czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOworfTsK
KworfQorCit1c2luZyBXVEY6OkFTQ0lJTGl0ZXJhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmlu
ZGV4IDAxYzc2ODEwYmQ2Y2QxZWRiYmVmOGFmZWQ4NDJmODA4MGRmN2RhZDMuLjgwZTY0NDcxZmVk
MDg4NzQwNTMzNjUzZjZmNGU2OTZlYWUwNGIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApA
QCAtMjYsNiArMjYsNyBAQAogLy8gb24gc3lzdGVtcyB3aXRob3V0IGNhc2Utc2Vuc2l0aXZlIGZp
bGUgc3lzdGVtcy4KIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJ
bXBsLmg+CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMzQsOCArMzUsNiBAQAogCiBuYW1lc3BhY2Ug
V1RGIHsKIAotY2xhc3MgQVNDSUlMaXRlcmFsOwotCiAvLyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5n
IG9wZXJhdGlvbnMKIAogV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGludCBjaGFyYWN0ZXJzVG9JbnRT
dHJpY3QoY29uc3QgTENoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2Ug
PSAxMCk7CkBAIC02ODEsMTUgKzY4MCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNo
PFN0cmluZz4gewogCiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFN0cmluZz4gOiBT
aW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07CiAKLWNsYXNzIEFTQ0lJTGl0ZXJhbCB7Ci1wdWJs
aWM6Ci0gICAgZXhwbGljaXQgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpIDog
bV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpIHsgfQotICAgIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkg
eyByZXR1cm4gbV9jaGFyYWN0ZXJzOyB9Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgY2hhciogbV9j
aGFyYWN0ZXJzOwotfTsKLQogLy8gU2hhcmVkIGdsb2JhbCBlbXB0eSBzdHJpbmcuCiBXVEZfRVhQ
T1JUX1NUUklOR19BUEkgY29uc3QgU3RyaW5nJiBlbXB0eVN0cmluZygpOwogCkBAIC03MzgsNyAr
NzI4LDYgQEAgdXNpbmcgV1RGOjpmaW5kOwogdXNpbmcgV1RGOjppc0FsbFNwZWNpYWxDaGFyYWN0
ZXJzOwogdXNpbmcgV1RGOjppc1NwYWNlT3JOZXdsaW5lOwogdXNpbmcgV1RGOjpyZXZlcnNlRmlu
ZDsKLXVzaW5nIFdURjo6QVNDSUlMaXRlcmFsOwogCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298191</attachid>
            <date>2017-01-06 03:43:19 -0800</date>
            <delta_ts>2017-01-06 03:50:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170106204149.patch</filename>
            <type>text/plain</type>
            <size>101256</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
M2NlYzE4ZGNkODkzMWFlMTM0Yjc1YTZhNDQzMmUzNWM4ZGU4NDllLi4xNmIzZWY1YzgxN2Q4Zjc4
Mjg4NGIyYTQzNWY4MzNhZjcyNmMxODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBh
bmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHA6CisgICAgICAgICh0ZXN0
Q29tcGFyZUFuZFN3YXApOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6cnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKyAgICAgICAgKiBieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwOgorICAg
ICAgICAoSlNDOjppbml0aWFsaXplU3VwZXJTYW1wbGVyKToKKyAgICAgICAgKiBkZmcvREZHV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpUaHJlYWRCb2R5OjpUaHJl
YWRCb2R5KToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAg
ICAoSlNDOjpERkc6OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRG
Rzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZH
V29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToK
KyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkaXNhc3NlbWJsZXIvRGlz
YXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpI
ZWFwOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChKU0M6OkhlYXA6Om5vdGlmeUlzU2FmZVRv
Q29sbGVjdCk6CisgICAgICAgICogaGVhcC9IZWFwSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChK
U0M6OmhlYXBIZWxwZXJQb29sKToKKyAgICAgICAgKiBqaXQvSUNTdGF0cy5jcHA6CisgICAgICAg
IChKU0M6OklDU3RhdHM6OklDU3RhdHMpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6
CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKHN0YXJ0VGltZW91dFRocmVhZElmTmVlZGVkKToKKyAgICAgICAg
KiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcnVudGltZS9XYXRj
aGRvZy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpXYXRjaGRvZyk6CisgICAgICAgICog
d2FzbS9XYXNtUGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlBsYW46OnJ1bik6CisKIDIw
MTctMDEtMDUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBBdXRv
bWF0aWNUaHJlYWQgdGltZW91dCBzaHV0ZG93biBsZWF2ZXMgYSBzbWFsbCB3aW5kb3cgd2hlcmUg
bm90aWZ5KCkgd291bGQgdGhpbmsgdGhhdCB0aGUgdGhyZWFkIGlzIHN0aWxsIHJ1bm5pbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5k
ZXggNTllN2EzNzI0MzQ0MGVlMWM1NDJkNTQxMGFiYWRiZjZiNTRmMTc5MS4uODY1NjBmYjY4NjBj
ZTE4MjkwYjRmYzE0Yjg4ZGM4ZjQ1MDE0Y2UzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxNy0w
MS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBV
c2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW50cm9kdWNlcyBDUkVBVEVfVEhSRUFEX05BTUUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWlu
ZworICAgICAgICBwb2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIENSRUFU
RV9USFJFQURfTkFNRSB0YWtlcyAyIG5hbWVzLCBzaG9ydCBhbmQgbG9uZyBuYW1lcy4gVGhlIGxv
bmcgbmFtZQorICAgICAgICBpcyB1c2VkIGZvciBtYWNPUyBhbmQgaU9TIHNpbmNlIHRoZXkgZG8g
bm90IGhhdmUgdGhlIGxpbWl0YXRpb24uIE9uIHRoZQorICAgICAgICBvdGhlciBoYW5kLCBMaW51
eCBvbmx5IGFsbG93cyAxNSBjaGFyYWN0ZXJzIGZvciB0aHJlYWQgbmFtZXMuIFNvIGZvcgorICAg
ICAgICBMaW51eCwgd2UgdXNlIHRoZSBzaG9ydCBuYW1lLiBXaW5kb3dzIGFsc28gaGFzIDMxIGNo
YXJhY3RlcnMgbGltaXRhdGlvbi4KKyAgICAgICAgV2luZG93cyBhbHNvIHVzZXMgdGhlIHNob3J0
IG5hbWUuCisKKyAgICAgICAgV2hlbiB5b3Ugc3BlY2lmeSB0aGUgbmFtZSBsaWtlLAorCisgICAg
ICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jaHJvbm91cyBEaXNhc3NlbWJsZXIiLCAi
QXN5bmNEaXNhc20iKSwKKworICAgICAgICBUaGUgdGhyZWFkIG5hbWUgYmVjb21lcywKKworICAg
ICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIFdpbmRvd3M6ICJXZWJL
aXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1MgYW5kIGlPUzogIldlYktpdDogQXN5
bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUgY2hl
Y2tzIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0IG5hbWUgaXMgPD0gMTUgYXQgY29tcGlsZQorICAg
ICAgICB0aW1lLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LCBjb21waWxlIGVycm9yIG9j
Y3Vycy4KKworICAgICAgICBUaGUgIldlYktpdDogIiBwcmVmaXggaXMgYXV0b21hdGljYWxseSBh
ZGRlZCBieSBDUkVBVEVfVEhSRUFEX05BTUUgbWFjcm8KKyAgICAgICAgd2l0aG91dCBhbGxvY2F0
aW5nIGFueSBhZGRpdGlvbmFsIG1lbW9yeSBhdCBydW50aW1lLiBUaGlzIHByZWZpeCBpcyBpbXBv
cnRhbnQKKyAgICAgICAgc2luY2UgaXQgY2FuIHNheSB0aGF0IHRoaXMgdGhyZWFkIGlzIHJlbGF0
ZWQgdG8gV2ViS2l0LiBXaGVuIHVzaW5nIFdlYktpdAorICAgICAgICBhcyBmcmFtZXdvcmssIFdl
YktpdCByZWxhdGVkIHRocmVhZHMgd2lsbCBiZSBsYXVuY2hlZCBhbG9uZyB3aXRoIHVzZXIKKyAg
ICAgICAgYXBwbGljYXRpb24ncyB0aHJlYWRzLiBXaXRob3V0ICJXZWJLaXQ6ICIgcHJlZml4LCBp
dCBpcyBhIGJpdCBkaWZmaWN1bHQKKyAgICAgICAgdG8gZGlzdGluZ3Vpc2ggdXNlcidzIHRocmVh
ZHMgZnJvbSBXZWJLaXQgcmVsYXRlZCBvbmVzLgorCisgICAgICAgIFdlIGFwcGx5IHRoaXMgcG9s
aWN5IHRvIGFsbCB0aGUgV2ViS2l0IHRocmVhZCBuYW1lcyBleGNlcHQgZm9yIGJtYWxsb2MncyBv
bmUuCisgICAgICAgIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGluIFsxXS4KKworICAgICAgICBbMV06
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2ODQKKworICAgICAg
ICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJlbmNobWFya3Mv
Q29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tGYWlybmVz
c1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAg
ICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1Ro
cmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFkOjpz
dGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0Zi9Q
YXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6
OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6
VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaDoKKyAg
ICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAgICAgKiB3dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJvbm1lbnQ6
OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9UaHJlYWROYW1lLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwLgorICAg
ICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAgICAgICAgKFdURjo6VGhyZWFk
TmFtZTo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmcuY3Bw
OgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpub3JtYWxpemVU
aHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6CisgICAgICAg
ICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlVGhyZWFk
SW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFs
KToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlh
bGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0ZVRocmVhZElu
dGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFdURjo6V29y
a1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtRdWV1ZSk6Cisg
ICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAgICAgKiB3dGYv
V29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcDoKKyAg
ICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0
Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpUaHJl
YWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVhdGUpOgorICAg
ICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0Zi9lZmwvV29y
a1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxp
emUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgorICAgICAg
ICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90ZXh0L0FT
Q0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
SGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFs
KToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6Cisg
ICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJh
bDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpv
cGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVl
dWVXaW4uY3BwOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6
CisKIDIwMTctMDEtMDUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBDYXJldHMgY2FuIHNwbGl0IHVwIG1hcnJpYWdlcyBhbmQgZmFtaWxpZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhNzI5MzFlOGIzZWU1ODFlMzc2Y2Y2NTA1MjZhZGE0MjRlZTdmMDg1Li5kMmU1
YmViZWZjOTg4YzM2MjNjMDcwYjQ4YTc3YmYxZjllNTNlNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTYgQEAKKzIwMTctMDEtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgVXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5k
IHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OklEQlNlcnZlcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
c3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpnYXJiYWdlQ29s
bGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5nKToKKyAgICAgICAgKiBjcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5
cHRvKToKKyAgICAgICAgKiBmaWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYWxsT25GaWxlVGhyZWFkKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpvcGVuKToKKyAgICAg
ICAgKiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNl
TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1Jl
dmVyYkNvbnZvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OlJl
dmVyYkNvbnZvbHZlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9t
QXVkaW9GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlv
RmlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6ZGVjb2RpbmdRdWV1ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2xpbnV4L01lbW9yeVBy
ZXNzdXJlSGFuZGxlckxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6RXZlbnRGRFBvbGxlcik6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsb2JV
dGlsaXR5UXVldWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OmRlY29kZVF1ZXVlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpsb2FkZXJSdW5Mb29wKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybERvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFn
ZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdGFydCk6CisK
IDIwMTctMDEtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBU
ZXh0RnJhZ21lbnRJdGVyYXRvcjo6cnVuV2lkdGggZG9lcyBub3QgbmVlZCB0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPD4gYW55bW9yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjVmZDg1Y2FhZmU0ZWQ4ZWU0OGE1MWJk
MTc1YzZiNDZkNWM2ZWYxZi4uZWE4N2Y4MGJhYTVkZDdmMDhhYjFiOTcyNmE5ZmY3MzkwZmQ1M2U0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMS0wNiAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1F
IHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wNSAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQ29tcGls
ZSBlcnJvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYzkwYWE3MjI3YTExMDU4NTJmOWQ3NDUzNjY1MTJjNzI5
OTAzZmQyLi45N2Q0MzQ0ZmFkMjhkMDRjYjI0MzgwZTYwYmQxMTZhYzJjMWVlOGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTctMDEtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVj
aWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OkRhdGFiYXNlUHJvY2Vzcyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6ZGVsZXRlRHVtcEZpbGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RhdGlzdGljczo6U3RhdGlzdGljcyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6U3RvcmFnZSk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0
aW9uOjpDb25uZWN0aW9uKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6aW5zdGFsbEluY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKToKKyAg
ICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29t
cG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V29ya1F1ZXVlUG9vbDo6Z2V0
T3JDcmVhdGVXb3JrUXVldWVGb3JDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0
ZW1TaGltLmNwcDoKKyAgICAgICAgKFdlYktpdDo6d29ya1F1ZXVlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwOgorICAgICAgICAoQVBJ
OjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKToK
KyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6flVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUpOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpjb25zdHJ1Y3RlZFBhdGgpOiBE
ZWxldGVkLgorICAgICAgICAoQVBJOjpDb250ZW50RXh0ZW5zaW9uTWV0YURhdGE6OmZpbGVTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6ZW5jb2RlQ29udGVudEV4dGVuc2lvbk1ldGFEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6ZGVjb2RlQ29udGVudEV4dGVuc2lvbk1ldGFEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6b3BlbkFuZE1hcENvbnRlbnRFeHRlbnNpb24pOiBE
ZWxldGVkLgorICAgICAgICAoQVBJOjp3cml0ZURhdGFUb0ZpbGUpOiBEZWxldGVkLgorICAgICAg
ICAoQVBJOjpjb21waWxlZFRvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChBUEk6OmNyZWF0ZUV4
dGVuc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmU6Omxvb2t1cENvbnRlbnRFeHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlOjpjb21waWxlQ29udGVudEV4dGVuc2lvbik6IERlbGV0ZWQu
CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnJlbW92ZUNvbnRlbnRF
eHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlOjpzeW5jaHJvbm91c1JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6aW52YWxpZGF0ZUNvbnRlbnRF
eHRlbnNpb25WZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6dXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZUVycm9yQ2F0ZWdvcnkpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFn
ZXI6OlN0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lbW9yeVByZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVNb25pdG9yKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
ZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtU2hpbVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNw
YXRjaGVyKToKKwogMjAxNy0wMS0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIE5ldHdvcmsgcHJvY2VzcyBjcmFzaCBpbiBXZWJL
aXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlckltcGw6OmRpZEZhaWxXaXRoRXJyb3IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cAppbmRleCBlNzgwODZjM2E5NjEyYTJmMGI0ZDdhYWYxYWRjN2JhMWExMDFjNTQ3Li4zZjcxMGM3
M2NlMWM0ODMwMjRiOTIyOTI4NDBmYTM2NjM0ZjgxZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCkBAIC0xMDcs
NyArMTA3LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZUFuZFN3YXAoKQogICAgICAgICBkYXRhW2ldLmlk
ID0gaTsKICAgICAgICAgZGF0YVtpXS5udW1UaHJlYWRzID0gbnVtVGhyZWFkczsKICAgICAgICAg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRocmVhZEZ1bmMgPSBzdGQ6OmJpbmQoc2V0Qml0VGhyZWFk
RnVuYywgJmRhdGFbaV0pOwotICAgICAgICB0aHJlYWRJRHNbaV0gPSBjcmVhdGVUaHJlYWQoInNl
dEJpdFRocmVhZEZ1bmMiLCB0aHJlYWRGdW5jKTsKKyAgICAgICAgdGhyZWFkSURzW2ldID0gY3Jl
YXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRU
aHJlYWRGdW5jIiksIHRocmVhZEZ1bmMpOwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBm
b3IgJWQgdGhyZWFkcyB0byBqb2luXG4iLCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4
NGQ0NTc2Y2Y0NGYuLmRkZDQ5ZTFlYzg0NjI1MzdiMTdlZTU1NzEwY2EyNWJkMGIzYTExZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEz
LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9
IGZpbHRlciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAg
ICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAg
ICAgICAgICAidGVzdGIzIHRocmVhZCIsCisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9O
QU1FKCJUZXN0QjMgV29ya2VyIiwgIlRlc3RCM1dvcmtlciIpLAogICAgICAgICAgICAgICAgIFsm
XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCmluZGV4IGZjMzNjNmZjZmFkZjg5MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1
ZTEuLjZmYWIzYTc3MDhhM2EzZDA1OGJjNjAzYmRmZWVhMmI2NDdjNTVmYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0xNTY2MSw3ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNv
bnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RG
OjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBl
bmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0
aHJlYWQiLAorICAgICAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiVGVzdEIzIFdvcmtl
ciIsICJUZXN0QjNXb3JrZXIiKSwKICAgICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAg
ICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U2hh
cmVkVGFzazx2b2lkKCk+PiB0YXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRleCBhNGUyMWY5ZmEzY2Q0NzIxZWEyNjc1ZTA2ZTRkNTMw
YzViYTk1YjM1Li43NTljZjM0NTY0YzQ3ZjE1YTMyNWRkYzI4NWIwZTliYTQ3Yjc0ZWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcApAQCAt
NDcsNyArNDcsNyBAQCB2b2lkIGluaXRpYWxpemVTdXBlclNhbXBsZXIoKQogICAgICAgICByZXR1
cm47CiAKICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJKU0MgU3VwZXIgU2FtcGxlciIsCisg
ICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiU3VwZXIgU2FtcGxlciIsICJTdXBlclNhbXBsZXIi
KSwKICAgICAgICAgW10gKCkgewogICAgICAgICAgICAgY29uc3QgaW50IHNsZWVwUXVhbnR1bSA9
IDEwOwogICAgICAgICAgICAgY29uc3QgaW50IHByaW50aW5nUGVyaW9kID0gMTAwMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggNWUzMzhmMDEyYjg5OTRk
OTg2NTQ0NmU4NzgxNDc4NGQ4ZTg1NTA3Yi4uNDM5NTdiOGE1YmFjZmQ4ZGYzOThkMDcyZDg3N2Yx
YTUwZTFjZmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAK
QEAgLTQwLDggKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFz
cyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGlj
OgotICAgIFRocmVhZEJvZHkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29y
a2xpc3QsIFRocmVhZERhdGEmIGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5KQotICAgICAg
ICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbikKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWRE
YXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSwgVGhyZWFkTmFtZSB0aHJlYWROYW1l
KQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbiwgdGhy
ZWFkTmFtZSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAsIG1fZGF0
YShkYXRhKQogICAgICAgICAsIG1fcmVsYXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9yaXR5KQpA
QCAtMTczLDggKzE3Myw4IEBAIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1
dG9tYXRpY1RocmVhZCB7CiAgICAgUmVmUHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdvcmtsaXN0
OjpXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFtZSh0b0NT
dHJpbmcod29ya2xpc3ROYW1lLCAiIFdvcmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpXb3JrbGlz
dChUaHJlYWROYW1lIHRocmVhZE5hbWUpCisgICAgOiBtX3RocmVhZE5hbWUodGhyZWFkTmFtZSkK
ICAgICAsIG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQo
QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fbnVtYmVyT2ZBY3Rp
dmVUaHJlYWRzKDApCkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hD
cmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQog
ICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51
bWJlck9mVGhyZWFkczsgaS0tOykgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0
YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7Ci0gICAgICAgIGRh
dGEtPm1fdGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJvZHkobG9ja2VyLCAqdGhpcywgKmRh
dGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1ZWQsIHJlbGF0aXZlUHJpb3JpdHkpKTsKKyAgICAgICAg
ZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAq
ZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSwgbV90aHJlYWRO
YW1lKSk7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7CiAgICAgfQog
fQogCi1SZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUs
IHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCitSZWY8V29y
a2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoVGhyZWFkTmFtZSB0aHJlYWROYW1lLCB1bnNpZ25lZCBu
dW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogewotICAgIFJlZjxXb3JrbGlz
dD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBS
ZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3QodGhyZWFkTmFtZSkp
OwogICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVBy
aW9yaXR5KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNTE2LDcgKzUxNiw3IEBAIFdvcmts
aXN0JiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNl
KGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2Jh
bERGR1dvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6
Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRG
R0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmts
aXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJERkcgQ29tcGlsZXIg
V29ya2VyIiwgIkRGR0NvbXBpbGVyIiksIE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJl
YWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFr
UmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAg
LTUzMiw3ICs1MzIsNyBAQCBXb3JrbGlzdCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewog
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxh
ZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywg
W10gewotICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJG
VEwgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRp
b25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAg
ICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKENSRUFURV9USFJF
QURfTkFNRSgiRlRMIENvbXBpbGVyIFdvcmtlciIsICJGVExDb21waWxlciIpLCBPcHRpb25zOjpu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExD
b21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiAqdGhlR2xv
YmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgK
aW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2ZmMzMjIxOWIwZmE0NGY2ZjExYzdmOC4uYzEwNDcyN2Y5
YmIwZjExOGMwOWI5ZWZiNzNiZDdkMzQ4NzVlMDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAKLSAgICBz
dGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVk
IG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsKKyAgICBzdGF0aWMg
UmVmPFdvcmtsaXN0PiBjcmVhdGUoVGhyZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRz
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNz
UmVmUHRyPFBsYW4+KTsKICAgICAKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgV29ya2xpc3QgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYp
IGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFt
ZSk7CisgICAgV29ya2xpc3QoVGhyZWFkTmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCk7CiAgICAgCiAgICAgY2xhc3MgVGhyZWFkQm9k
eTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrbGlzdD4gewogCiAgICAgdm9pZCBkdW1wKGNvbnN0IExvY2tIb2xkZXImLCBQcmludFN0cmVh
bSYpIGNvbnN0OwogICAgIAotICAgIENTdHJpbmcgbV90aHJlYWROYW1lOworICAgIFRocmVhZE5h
bWUgbV90aHJlYWROYW1lOwogICAgIAogICAgIC8vIFVzZWQgdG8gaW5mb3JtIHRoZSB0aHJlYWQg
YWJvdXQgd2hhdCB3b3JrIHRoZXJlIGlzIGxlZnQgdG8gZG8uCiAgICAgRGVxdWU8UmVmUHRyPFBs
YW4+PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxl
ci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4IDc4OGE2YzM2MjM2OWM1OGRhZDI5YTYwYTM4NzEwNDRl
NDY0ZWQzMDUuLmE4YWViODRkZjRiZjllZGRmNTQ4ZGRlZjIzNDk2ZTBiZTg2OTlmZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5j
cHAKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVyIHsKIHB1
YmxpYzoKICAgICBBc3luY2hyb25vdXNEaXNhc3NlbWJsZXIoKQogICAgIHsKLSAgICAgICAgY3Jl
YXRlVGhyZWFkKCJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgWyZdICgpIHsgcnVuKCk7IH0p
OworICAgICAgICBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJBc3luY2hyb25vdXMg
RGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlzYXNtIiksIFsmXSAoKSB7IHJ1bigpOyB9KTsKICAgICB9
CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+
IHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDJjMjhkNDM1YWVlNmMw
ODA5ZDQwYjRlY2YwYWUxYmI2ZjRhYjJmYTUuLjlkYjU4MzY5YjJlNGE0OGM0ZjBlYzZiNmY1MWQ4
YWUxYWRjZjRkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzksNyAr
MjM5LDcgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXIm
IGxvY2tlciwgSGVhcCYgaGVhcCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBo
ZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbikKKyAgICAgICAgOiBBdXRv
bWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRp
dGlvbiwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJIZWFwIENvbGxlY3RvciIsICJIZWFwQ29sbGVjdG9y
IikpCiAgICAgICAgICwgbV9oZWFwKGhlYXApCiAgICAgewogICAgIH0KQEAgLTIxNjQsNyArMjE2
NCw3IEBAIHZvaWQgSGVhcDo6bm90aWZ5SXNTYWZlVG9Db2xsZWN0KCkKICAgICAKICAgICBpZiAo
T3B0aW9uczo6Y29sbGVjdENvbnRpbnVvdXNseSgpKSB7CiAgICAgICAgIG1fY29sbGVjdENvbnRp
bnVvdXNseVRocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJKU0MgREVCVUcgQ29u
dGludW91cyBHQyIsCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkpTQyBERUJVRyBD
b250aW51b3VzIEdDIiwgIkNvbnRpbnVvdXNHQyIpLAogICAgICAgICAgICAgW3RoaXNdICgpIHsK
ICAgICAgICAgICAgICAgICBNb25vdG9uaWNUaW1lIGluaXRpYWxUaW1lID0gTW9ub3RvbmljVGlt
ZTo6bm93KCk7CiAgICAgICAgICAgICAgICAgU2Vjb25kcyBwZXJpb2QgPSBTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3VzbHlQZXJpb2RNUygpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAppbmRleCA3OTFh
YTc1NmY5NWUxY2I1NjQwZmMzM2I0NTY3NzQ1MWVlMWEyNTM2Li42ZTk2YzRjYzM3MzEwYWQ5YzU4
N2FiMTcxOGUwNDgzN2NiZTRmOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcEhlbHBlclBvb2wuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFBhcmFsbGVsSGVscGVyUG9vbCYg
aGVhcEhlbHBlclBvb2woKQogICAgIHN0ZDo6Y2FsbF9vbmNlKAogICAgICAgICBpbml0aWFsaXpl
SGVscGVyUG9vbE9uY2VGbGFnLAogICAgICAgICBbXSB7Ci0gICAgICAgICAgICBoZWxwZXJQb29s
ID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5l
dyBQYXJhbGxlbEhlbHBlclBvb2woQ1JFQVRFX1RIUkVBRF9OQU1FKCJIZWFwIEhlbHBlciIsICJI
ZWFwSGVscGVyIikpOwogICAgICAgICAgICAgaGVscGVyUG9vbC0+ZW5zdXJlVGhyZWFkcyhPcHRp
b25zOjpudW1iZXJPZkdDTWFya2VycygpIC0gMSk7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAq
aGVscGVyUG9vbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3BwCmluZGV4IDIwODBj
ZDkzNDU4MzNkMmQyMzJiOGE5Y2Q2ZjNkYmZlYmUwNWNiMjMuLjkzNzZkNDllZDg0YTkyMTZlMWM4
NzBiZDg3YmQyNzRmODYzYTk2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSUNTdGF0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmNw
cApAQCAtNTksNyArNTksNyBAQCBBdG9taWM8SUNTdGF0cyo+IElDU3RhdHM6OnNfaW5zdGFuY2U7
CiBJQ1N0YXRzOjpJQ1N0YXRzKCkKIHsKICAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAg
ICAgICAgIkpTQyBJQ1N0YXRzIiwKKyAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJKU0MgSUNT
dGF0cyIsICJJQ1N0YXRzIiksCiAgICAgICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFm
NzdkOTYxNmFjZWQwNGNhN2Y1MWE2Li4zMzNjYTNiYTk0MzYzYmMxMjdkODgzODc1N2MwZTNkMjdj
MzdhNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIGNsYXNzIEpJVFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEpJVFdvcmtsaXN0OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhy
ZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0
IExvY2tIb2xkZXImIGxvY2tlciwgSklUV29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRp
b24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3
b3JrbGlzdC5tX2NvbmRpdGlvbiwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJCYXNlbGluZSBKSVQgQ29t
cGlsZXIgV29ya2VyIiwgIkpJVENvbXBpbGVyIikpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3Jr
bGlzdCkKICAgICB7CiAgICAgICAgIG1fd29ya2xpc3QubV9udW1BdmFpbGFibGVUaHJlYWRzKys7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNhN2EzZjQ3MjdkMDIwMmU3MmU1YThlZWZlMDMyODc2
MjA4MjViMzMuLjNmMzRiNGZhY2NmNzEyNTI5NDEyNzY0YjlhODM0ZTA5MDYyNjk1MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCkBAIC0yNzE5LDcgKzI3MTksNyBAQCBzdGF0aWMgdm9pZCBzdGFydFRp
bWVvdXRUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgICAgICBkYXRhTG9nKCJXQVJOSU5HOiB0aW1l
b3V0IHN0cmluZyBpcyBtYWxmb3JtZWQsIGdvdCAiLCB0aW1lb3V0U3RyaW5nLAogICAgICAgICAg
ICAgICAgICIgYnV0IGV4cGVjdGVkIGEgbnVtYmVyLiBOb3QgdXNpbmcgYSB0aW1lb3V0LlxuIik7
CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY3JlYXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRN
YWluLCAwLCAianNjIFRpbWVvdXQgVGhyZWFkIik7CisgICAgICAgICAgICBjcmVhdGVUaHJlYWQo
dGltZW91dFRocmVhZE1haW4sIDAsIENSRUFURV9USFJFQURfTkFNRSgiSlNDIFRpbWVvdXQgVGhy
ZWFkIiwgIlRpbWVvdXRUaHJlYWQiKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDcwMzRkYzY5NmI5
ZTExNDkyODhjN2JiOWVkZGVmZTJhYjE2YjE3Y2EuLmZmMDM3YWZjOTRhZGQ3ZTExNWFmYWM1ZTdi
OGRhMDZiOGE4NzQzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTYW1wbGluZ1By
b2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFNhbXBsaW5nUHJvZmlsZXI+IHByb2ZpbGVyID0gdGhp
czsKLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoImpzYy5zYW1wbGluZy1w
cm9maWxlci50aHJlYWQiLCBbcHJvZmlsZXJdIHsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBj
cmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJTYW1wbGluZyBQcm9maWxlciIsICJTYW1w
bGluZyIpLCBbcHJvZmlsZXJdIHsKICAgICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwogICAg
IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hk
b2cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmluZGV4
IGY2MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0OGY2MGM5NTcyNTZjYjVjMjMuLmNhYmU0YTUxYmY0MjZi
YTMyMDNiNDM5Y2RkMzlhZjY5MjU1NjMwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XYXRjaGRvZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkK
ICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9j
YWxsYmFja0RhdGEyKDApCi0gICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpz
Yy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFP
Uzo6VXRpbGl0eSkpCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRF
X1RIUkVBRF9OQU1FKCJXYXRjaGRvZyIsICJXYXRjaGRvZyIpLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5jcHAKaW5kZXggNTk4MGI1MWU4NzQyMjIzNzU1Y2UwYzNkZjJjMTZi
MWRlOWVjOGYxMi4uMWQ4MGFiZDIyYjk4MWRjMWFlOWI0Zjk5M2ZhYTE0YTI3ZGVlNWRmMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBA
IHZvaWQgUGxhbjo6cnVuKCkKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gdGhyZWFkczsK
ICAgICB0aHJlYWRzLnJlc2VydmVDYXBhY2l0eShudW1Xb3JrZXJUaHJlYWRzKTsKICAgICBmb3Ig
KHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtV29ya2VyVGhyZWFkczsgaSsrKQotICAgICAgICB0aHJl
YWRzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVUaHJlYWQoImpzYy53YXNtLWIzLWNvbXBpbGF0aW9u
LnRocmVhZCIsIGRvV29yaykpOworICAgICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVh
dGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXYXNtIEIzIENvbXBpbGVyIiwgIldhc21CM0Nv
bXBpbGVyIiksIGRvV29yaykpOwogCiAgICAgZG9Xb3JrKCk7IC8vIExldCB0aGUgbWFpbiB0aHJl
YWQgZG8gc29tZSB3b3JrIHRvby4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTI0YTRiN2MxMjAzYzRiZWZmZWUwNzFhNjliYWZiYzcyZjliODI5Yi4uZjM5
ZWZmYWNlMDZlOTNkZGEwYjFiNGQwZjk1NjIzZDQ2NzkyYmI4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjEsNiArMzYxLDcgQEAKIAkJRkU4OTI1QjAx
RDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIu
aCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0IxNjMw
RjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovOyB9OwogCQlGRURBQ0QzRTE2MzBGODNG
MDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAq
LzsgfTsKKwkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBOUJENDVFMDYzNEIy
NEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBz
ZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBA
IC03MzQsNiArNzM1LDcgQEAKIAkJRkU4OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFREFDRDNCMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0
YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YWNrU3RhdHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQzE2MzBGODNGMDBDNjk2
MzQgLyogU3RhY2tTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFj
a1N0YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxQTlCRDQ1RTA2MzRCMjRC
MkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQVNDSUlMaXRlcmFsLmg7IHBhdGggPSBBU0NJSUxpdGVyYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVn
aW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTIwNSw2ICsxMjA3LDcg
QEAKIAkJCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCAq
LywKIAkJCQlBOEE0NzMyRDE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCAqLywKIAkJ
CQlBOEE0NzMyRTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggKi8sCisJCQkJNzFBOUJE
NDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSB0ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE1MzUsNiArMTUzOCw3IEBA
CiAJCQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIwMDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAvKiBBU0NJSUxpdGVyYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRp
dGlvblNwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRU
ZXN0LmNwcAppbmRleCBjYjFkMTAxZTg1NjUyOWU4YWFlYTZhYmY2MGVjMzhlYTBiOGRkZTcyLi41
NzhhYTk1MDgyNGQyZjZhZDUyMjdhM2Y1ZDUzYzAxNGJkOGZlZmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lk
IHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29uc3VtZXJzOyBpLS07
KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRo
cmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAgICAgICAgQ1JFQVRF
X1RIUkVBRF9OQU1FKCJDb25zdW1lciIsICJDb25zdW1lciIpLAogICAgICAgICAgICAgWyZdICgp
IHsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHJlc3VsdDsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIHJ1blRlc3QoCiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRlbnRp
ZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIlByb2R1
Y2VyIFRocmVhZCIsCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIlByb2R1Y2VyIiwg
IlByb2R1Y2VyIiksCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBtdXN0Tm90aWZ5ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNo
bWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKaW5kZXggZjA4MzIxYzBmNjg4MzY1MzVkODNjYjZi
Yzc1MTE4NDhiYjUyZDk0Zi4uNWI2ODUyMjdlODQ1NDg0Zjk3NjNkYTA2ZWZjY2Y2Y2I1OWNmNzgy
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcApAQCAtNzEs
NyArNzEsNyBAQCBzdHJ1Y3QgQmVuY2htYXJrIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCB0aHJl
YWRJbmRleCA9IG51bVRocmVhZHM7IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICBjb3Vu
dHNbdGhyZWFkSW5kZXhdID0gMDsKICAgICAgICAgICAgIHRocmVhZHNbdGhyZWFkSW5kZXhdID0g
Y3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICJCZW5jaG1hcmsgVGhyZWFkIiwKKyAgICAg
ICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkJlbmNobWFyayBSdW5uZXIiLCAiQmVuY2ht
YXJrUnVubmVyIiksCiAgICAgICAgICAgICAgICAgWyYsIHRocmVhZEluZGV4XSAoKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICghbWljcm9zZWNvbmRzSW5Dcml0aWNhbFNlY3Rpb24pIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChrZWVwR29pbmcpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2ht
YXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAppbmRleCA1NDVkMmUwYjA0ODhmMzM4OTRhNTk2ODhmZDkx
YjBkM2EzODdjY2EyLi5hODc3ZTNkOTk1NDFhZGRlMTg1MGU0MDg1NGFhZmY5MzY2Mjc5MmVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKKysrIGIv
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCkBAIC05MSw3ICs5MSw3IEBA
IHN0cnVjdCBCZW5jaG1hcmsgewogCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZElu
ZGV4ID0gbnVtVGhyZWFkc1Blckdyb3VwOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAg
ICAgIHRocmVhZHNbdGhyZWFkR3JvdXBJbmRleCAqIG51bVRocmVhZHNQZXJHcm91cCArIHRocmVh
ZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAgICAgIkJlbmNobWFyayB0
aHJlYWQiLAorICAgICAgICAgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkJlbmNobWFy
ayBSdW5uZXIiLCAiQmVuY2htYXJrUnVubmVyIiksCiAgICAgICAgICAgICAgICAgICAgIFt0aHJl
YWRHcm91cEluZGV4LCAmbG9ja3MsICZ3b3JkcywgJmtlZXBHb2luZywgJm51bUl0ZXJhdGlvbnNM
b2NrLCAmbnVtSXRlcmF0aW9uc10gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgZG91Ymxl
IGxvY2FsV29yZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUgPSAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggNGQ4ZmI4NDg5Zjk5Y2I4ZjY3ZTdj
YzJkMTNiZjQxNTVlZTg3ZTVjNS4uYzY0YzYwODZkNTllOTlhZTUxN2E3ZDQxZmNkNjlmYWEwZDUy
OTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC05OCw5ICs5OCwxMCBAQCBi
b29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgTG9ja0hvbGRlciYs
IEF1dG9tYXRpY1RocmVhZCogdGhyZQogICAgIHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhy
ZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hv
bGRlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbj4gY29uZGl0aW9uKQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3Qg
TG9ja0hvbGRlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4gY29uZGl0aW9uLCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCiAgICAgOiBtX2xv
Y2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKGNvbmRpdGlvbikKKyAgICAsIG1fbmFtZSh0aHJl
YWROYW1lKQogewogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIo
dGhpcyksICI6IEFsbG9jYXRlZCBBdXRvbWF0aWNUaHJlYWQuXG4iKTsKQEAgLTE1Niw3ICsxNTcs
NyBAQCB2b2lkIEF1dG9tYXRpY1RocmVhZDo6c3RhcnQoY29uc3QgTG9ja0hvbGRlciYpCiAgICAg
bV9oYXNVbmRlcmx5aW5nVGhyZWFkID0gdHJ1ZTsKICAgICAKICAgICBUaHJlYWRJZGVudGlmaWVy
IHRocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIldURjo6QXV0b21hdGljVGhyZWFkIiwK
KyAgICAgICAgbV9uYW1lLAogICAgICAgICBbPV0gKCkgewogICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBSdW5uaW5n
IGF1dG9tYXRpYyB0aHJlYWQhXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5oIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKaW5kZXggNjky
NmY2MjM2NTNkNGM1OTIxMzcwY2M0ZDljZWM4ZDA2YzMzZWRhOC4uNzE5ZmNiZGRkNzBjYmNjZDRk
ZTlmYWI5NDVkN2IzYTgwMTllOWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21h
dGljVGhyZWFkLmgKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKQEAgLTEz
MCw3ICsxMzAsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhyZWFkIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogcHJvdGVjdGVkOgogICAgIC8v
IFRoaXMgbG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwgYnV0IGluIHJlYWxpdHkgdGhlIHRo
cmVhZCB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUKICAgICAvLyBjYWxscyBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLgotICAgIEF1dG9t
YXRpY1RocmVhZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPik7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXIm
LCBCb3g8TG9jaz4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+LCBUaHJlYWROYW1l
KTsKICAgICAKICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQs
IGltYWdpbmUgdGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAg
ICAvLyBzbzoKQEAgLTE4Miw2ICsxODIsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0
b21hdGljVGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogICAg
IGJvb2wgbV9oYXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKICAgICBDb25kaXRpb24gbV93
YWl0Q29uZGl0aW9uOwogICAgIENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlvbjsKKyAgICBU
aHJlYWROYW1lIG1fbmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Bh
cmFsbGVsSGVscGVyUG9vbC5jcHAKaW5kZXggOTQ5MmZkZGRmMTk2NDlkNjViNTEwYjFlNDNjMDJh
YTk1MTRjMDczMS4uMmMzYmYwNzQwODhlMjlhOTkxOGYyOWZhZmY5NGNkMGM1YjYyZDEzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjMsOSArMTIzLDEwIEBAIHZv
aWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAo
KT4+IHRhc2spCiAgICAgfQogfQogCi1QYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVy
UG9vbCgpCitQYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1l
IHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1f
d29ya0F2YWlsYWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQorICAgICwgbV9uYW1lKHRocmVhZE5hbWUpCiB7CiB9CiAKQEAgLTE3MSw3ICsxNzIsNyBAQCB2
b2lkIFBhcmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiBjbGFzcyBQYXJhbGxlbEhl
bHBlclBvb2w6OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAg
IFRocmVhZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYgcG9v
bCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5t
X3dvcmtBdmFpbGFibGVDb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tl
ciwgcG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLCBwb29sLm5hbWUo
KSkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxl
bEhlbHBlclBvb2wuaAppbmRleCA4MTYzNWJiNzgxOTAwM2FjOWQ3ZjRhNjgxY2M1NTQ0ZTkwZGE3
ZDkxLi5lZGMxYWVlMWEyNGFkN2I4MDQ2NTIyMTU1YWY2NGJhMDRkYmNiYmUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuaApAQCAtMTc5LDcgKzE3OSw3IEBAIGNsYXNzIFBhcmFsbGVs
SGVscGVyQ2xpZW50IHsKIAogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVh
ZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogcHVibGljOgotICAgIFdURl9F
WFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgUGFyYWxsZWxIZWxwZXJQb29sKFRocmVhZE5hbWUpOwogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB+UGFyYWxsZWxIZWxwZXJQb29sKCk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBl
bnN1cmVUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOwpAQCAtMTg4LDYgKzE4OCw4IEBAIGNs
YXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJh
bGxlbEhlbHBlclBvb2w+IHsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkb1Nv
bWVIZWxwaW5nKCk7CiAKKyAgICBUaHJlYWROYW1lIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7
CiAgICAgY2xhc3MgVGhyZWFkOwpAQCAtMjA3LDYgKzIwOSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVs
cGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+
IHsKICAgICAKICAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVudHM7CiAg
ICAgVmVjdG9yPFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+PiBtX3RocmVhZHM7CisgICAgVGhyZWFk
TmFtZSBtX25hbWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlzIGNh
biBiZSBsYXJnZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhyZWFk
cyBvbmx5IG9uY2UgdGhlcmUgaXMgd29yay4KICAgICBib29sIG1faXNEeWluZyB7IGZhbHNlIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCA0MDIzZjQzZTZm
MjBhMzhlMTAzZTdjOWEyZTRmMGY3ZTA2MTA1NzE0Li5jODFhNjgyNWM1ZTI0MTNkNTVmMDc5ODdl
ZTRkYTgyNzdmNWRlYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNH
ZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApA
QCAtOTQsNyArOTQsNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6
OnRyeUxvY2tGb3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogICAgIH0KIAogICAgIGlm
ICghbV90aHJlYWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgmUGFyYWxs
ZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCAiUGFyYWxs
ZWwgd29ya2VyIik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoJlBhcmFsbGVs
RW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCwgdGhpcywgQ1JFQVRFX1RI
UkVBRF9OQU1FKCJQYXJhbGxlbCBXb3JrZXIiLCAiUGFyYWxsZWxXb3JrZXIiKSk7CiAKICAgICBp
ZiAobV90aHJlYWRJRCkKICAgICAgICAgbV9wYXJlbnQgPSBwYXJlbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDY3YjQyNTZjNzk4ODY0NDhkOWIxYmI0OGIwZmMyMDI3YzRjMmIwMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUuaApAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPi4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvUGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFRocmVhZE5hbWUgewor
cHVibGljOgorICAgIGVudW0gSW5pdGlhbGl6ZVRhZyB7IEluaXRpYWxpemUgfTsKKyAgICB0ZW1w
bGF0ZTx1bnNpZ25lZCBjaGFyYWN0ZXJzQ291bnQ+CisgICAgZXhwbGljaXQgY29uc3RleHByIFRo
cmVhZE5hbWUoSW5pdGlhbGl6ZVRhZywgY29uc3QgY2hhciAoJm5hbWUpW2NoYXJhY3RlcnNDb3Vu
dF0pCisgICAgICAgIDogbV9uYW1lKG5hbWUpCisgICAgeworI2lmIE9TKExJTlVYKQorICAgICAg
ICBzdGF0aWNfYXNzZXJ0KGNoYXJhY3RlcnNDb3VudCA8PSAxNiwgIiIpOworI2VsaWYgT1MoV0lO
RE9XUykKKyAgICAgICAgc3RhdGljX2Fzc2VydChjaGFyYWN0ZXJzQ291bnQgPD0gMzIsICIiKTsK
KyNlbmRpZgorICAgIH0KKworICAgIGNvbnN0ZXhwciBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9uYW1lOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBjb25zdCBjaGFyKiBtX25hbWU7Cit9OworCisjaWYgT1MoTElOVVgpCisjZGVmaW5lIENSRUFU
RV9USFJFQURfTkFNRShsb25nTmFtZSwgc2hvcnROYW1lKSBXVEY6OlRocmVhZE5hbWUgeyBXVEY6
OlRocmVhZE5hbWU6OkluaXRpYWxpemUsIHNob3J0TmFtZSB9CisjZWxpZiBPUyhXSU5ET1dTKQor
I2RlZmluZSBDUkVBVEVfVEhSRUFEX05BTUUobG9uZ05hbWUsIHNob3J0TmFtZSkgV1RGOjpUaHJl
YWROYW1lIHsgV1RGOjpUaHJlYWROYW1lOjpJbml0aWFsaXplLCAiV2ViS2l0OiAiICMgc2hvcnRO
YW1lIH0KKyNlbHNlCisjZGVmaW5lIENSRUFURV9USFJFQURfTkFNRShsb25nTmFtZSwgc2hvcnRO
YW1lKSBXVEY6OlRocmVhZE5hbWUgeyBXVEY6OlRocmVhZE5hbWU6OkluaXRpYWxpemUsICJXZWJL
aXQ6ICIgIyBsb25nTmFtZSB9CisjZW5kaWYKKworfQorCit1c2luZyBXVEY6OlRocmVhZE5hbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmNwcAppbmRleCA0MGNlMzlhNDVkMzU0MGEyM2ZkNTg3OGNmOTA2N2VhZmQ3
NjgxMzNjLi4xM2RmNTMyYzM5NGEzMTMzMzU0YTU0MzBiODA0OGMwMjJhYTgzMGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZy5jcHAKQEAgLTM2LDM4ICszNiwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKIHN0cnVjdCBO
ZXdUaHJlYWRDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIFRocmVhZE5hbWUgbmFtZTsKICAgICBzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gZW50cnlQb2ludDsKICAgICBNdXRleCBjcmVhdGlvbk11dGV4OwogfTsK
IAotY29uc3QgY2hhciogbm9ybWFsaXplVGhyZWFkTmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1l
KQotewotI2lmIEhBVkUoUFRIUkVBRF9TRVROQU1FX05QKQotICAgIHJldHVybiB0aHJlYWROYW1l
OwotI2Vsc2UKLSAgICAvLyBUaGlzIG5hbWUgY2FuIGJlIGNvbS5hcHBsZS5XZWJLaXQuUHJvY2Vz
c0xhdW5jaGVyIG9yIGNvbS5hcHBsZS5Db3JlSVBDLlJlY2VpdmVRdWV1ZS4KLSAgICAvLyBXZSBh
cmUgdXNpbmcgdGhvc2UgbmFtZXMgZm9yIHRoZSB0aHJlYWQgbmFtZSwgYnV0IGJvdGggYXJlIGxv
bmdlciB0aGFuIHRoZSBsaW1pdCBvZgotICAgIC8vIHRoZSBwbGF0Zm9ybSB0aHJlYWQgbmFtZSBs
ZW5ndGgsIDMyIGZvciBXaW5kb3dzIGFuZCAxNiBmb3IgTGludXguCi0gICAgU3RyaW5nVmlldyBy
ZXN1bHQodGhyZWFkTmFtZSk7Ci0gICAgc2l6ZV90IHNpemUgPSByZXN1bHQucmV2ZXJzZUZpbmQo
Jy4nKTsKLSAgICBpZiAoc2l6ZSAhPSBub3RGb3VuZCkKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0
LnN1YnN0cmluZyhzaXplICsgMSk7Ci0KLSNpZiBPUyhXSU5ET1dTKQotICAgIGNvbnN0ZXhwciBj
b25zdCBzaXplX3Qga1Zpc3VhbFN0dWRpb1RocmVhZE5hbWVMaW1pdCA9IDMyIC0gMTsKLSAgICBp
ZiAocmVzdWx0Lmxlbmd0aCgpID4ga1Zpc3VhbFN0dWRpb1RocmVhZE5hbWVMaW1pdCkKLSAgICAg
ICAgcmVzdWx0ID0gcmVzdWx0LnJpZ2h0KGtWaXN1YWxTdHVkaW9UaHJlYWROYW1lTGltaXQpOwot
I2VsaWYgT1MoTElOVVgpCi0gICAgY29uc3RleHByIGNvbnN0IHNpemVfdCBrTGludXhUaHJlYWRO
YW1lTGltaXQgPSAxNiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtMaW51eFRocmVh
ZE5hbWVMaW1pdCkKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJpZ2h0KGtMaW51eFRocmVhZE5h
bWVMaW1pdCk7Ci0jZW5kaWYKLSAgICBBU1NFUlQocmVzdWx0LmNoYXJhY3RlcnM4KClbcmVzdWx0
Lmxlbmd0aCgpXSA9PSAnXDAnKTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBj
aGFyKj4ocmVzdWx0LmNoYXJhY3RlcnM4KCkpOwotI2VuZGlmCi19Ci0KIHN0YXRpYyB2b2lkIHRo
cmVhZEVudHJ5UG9pbnQodm9pZCogY29udGV4dERhdGEpCiB7CiAgICAgTmV3VGhyZWFkQ29udGV4
dCogY29udGV4dCA9IHN0YXRpY19jYXN0PE5ld1RocmVhZENvbnRleHQqPihjb250ZXh0RGF0YSk7
CkBAIC04OCw3ICs2MSw3IEBAIHN0YXRpYyB2b2lkIHRocmVhZEVudHJ5UG9pbnQodm9pZCogY29u
dGV4dERhdGEpCiAgICAgZW50cnlQb2ludCgpOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0
ZVRocmVhZChjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50cnlQb2lu
dCkKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQpCiB7CiAgICAgTmV3VGhyZWFkQ29udGV4dCogY29u
dGV4dCA9IG5ldyBOZXdUaHJlYWRDb250ZXh0IHsgbmFtZSwgV1RGTW92ZShlbnRyeVBvaW50KSwg
eyB9IH07CiAKQEAgLTk4LDcgKzcxLDcgQEAgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQo
Y29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQKICAgICBy
ZXR1cm4gY3JlYXRlVGhyZWFkSW50ZXJuYWwodGhyZWFkRW50cnlQb2ludCwgY29udGV4dCwgbmFt
ZSk7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uIGVu
dHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIG5hbWUpCitUaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBUaHJl
YWROYW1lIG5hbWUpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZChuYW1lLCBbZW50cnlQb2lu
dCwgZGF0YV0gewogICAgICAgICBlbnRyeVBvaW50KGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCAz
MDUwZGQ4ZGY4NDhiNmU1YTA5YzhlNzNhYWFjZjU0MDdmOGE0YjY1Li5kYzNhZWFiNzkyNzBhYmEz
NTJmNjU5OGM2ODAwZjg1NzFhOGNjZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWROYW1lLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZ1ByaW1pdGl2ZXMuaD4KIApAQCAtNTUsNyArNTYsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAKIC8vIFJldHVybnMgMCBpZiB0aHJlYWQgY3Jl
YXRpb24gZmFpbGVkLgogLy8gVGhlIHRocmVhZCBuYW1lIG11c3QgYmUgYSBsaXRlcmFsIHNpbmNl
IG9uIHNvbWUgcGxhdGZvcm1zIGl0J3MgcGFzc2VkIGluIHRvIHRoZSB0aHJlYWQuCi1XVEZfRVhQ
T1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogdGhy
ZWFkTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKK1dURl9FWFBPUlRfUFJJVkFURSBUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4pOwogCiAvLyBNYXJrIHRoZSBjdXJyZW50IHRocmVhZCBhcyByZXF1aXJpbmcgVUkgcmVzcG9u
c2l2ZW5lc3MuCiAvLyByZWxhdGl2ZVByaW9yaXR5IGlzIGEgdmFsdWUgaW4gdGhlIHJhbmdlIFst
MTUsIDBdIHdoZXJlIGEgbG93ZXIgdmFsdWUgaW5kaWNhdGVzIGEgbG93ZXIgcHJpb3JpdHkuCkBA
IC02OCwxNiArNjksMTQgQEAgV1RGX0VYUE9SVF9QUklWQVRFIGludCB3YWl0Rm9yVGhyZWFkQ29t
cGxldGlvbihUaHJlYWRJZGVudGlmaWVyKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRldGFj
aFRocmVhZChUaHJlYWRJZGVudGlmaWVyKTsKIAogLy8gRGVwcmVjYXRlZCBmdW5jdGlvbi1wb2lu
dGVyLWJhc2VkIHRocmVhZCBjcmVhdGlvbi4KLVdURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIGNvbnN0IGNoYXIqIHRo
cmVhZE5hbWUpOworV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhy
ZWFkKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgVGhyZWFkTmFtZSk7CiAKIC8vIEludGVybmFsIHBs
YXRmb3JtLXNwZWNpZmljIGNyZWF0ZVRocmVhZCBpbXBsZW1lbnRhdGlvbi4KLVRocmVhZElkZW50
aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBjb25zdCBj
aGFyKiB0aHJlYWROYW1lKTsKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwo
VGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBUaHJlYWROYW1lKTsKIAogLy8gQ2FsbGVkIGluIHRoZSB0
aHJlYWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLgogLy8gSGVscGZ1bCBmb3IgcGxhdGZvcm1zIHdo
ZXJlIHRoZSB0aHJlYWQgbmFtZSBtdXN0IGJlIHNldCBmcm9tIHdpdGhpbiB0aGUgdGhyZWFkLgot
dm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5h
bWUpOwotCi1jb25zdCBjaGFyKiBub3JtYWxpemVUaHJlYWROYW1lKGNvbnN0IGNoYXIqIHRocmVh
ZE5hbWUpOwordm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUp
OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
CmluZGV4IDBmOWYyZmM3MmM5ZDNlODkwYzczYWFkYTczOTE1MDRhOTFhNzQyODAuLjM2NDI0OWYw
MzhiYzMzNjc2OWYzNTllOTdmZWU0NTUxMjU0NWIzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQ
dGhyZWFkcy5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCBzdGF0aWMgdm9pZCogd3RmVGhyZWFkRW50
cnlQb2ludCh2b2lkKiBwYXJhbSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVGhyZWFkSWRl
bnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2
b2lkKiBkYXRhLCBjb25zdCBjaGFyKikKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50
ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSkK
IHsKICAgICBhdXRvIGludm9jYXRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZEZ1bmN0aW9u
SW52b2NhdGlvbj4oZW50cnlQb2ludCwgZGF0YSk7CiAgICAgcHRocmVhZF90IHRocmVhZEhhbmRs
ZTsKQEAgLTE5MiwxMiArMTkyLDEyIEBAIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50
ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uCiAgICAgcmV0
dXJuIGVzdGFibGlzaElkZW50aWZpZXJGb3JQdGhyZWFkSGFuZGxlKHRocmVhZEhhbmRsZSk7CiB9
CiAKLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJl
YWROYW1lKQordm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUg
dGhyZWFkTmFtZSkKIHsKICNpZiBIQVZFKFBUSFJFQURfU0VUTkFNRV9OUCkKLSAgICBwdGhyZWFk
X3NldG5hbWVfbnAobm9ybWFsaXplVGhyZWFkTmFtZSh0aHJlYWROYW1lKSk7CisgICAgcHRocmVh
ZF9zZXRuYW1lX25wKHRocmVhZE5hbWUpOwogI2VsaWYgT1MoTElOVVgpCi0gICAgcHJjdGwoUFJf
U0VUX05BTUUsIG5vcm1hbGl6ZVRocmVhZE5hbWUodGhyZWFkTmFtZSkpOworICAgIHByY3RsKFBS
X1NFVF9OQU1FLCB0aHJlYWROYW1lKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5h
bWUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
IGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAppbmRleCA1NGI0M2VmZWYzNWNkNjYz
MmE3MDA4MTUwN2E1YjM3OTlkZWZiNmZiLi5lYzYzZThjNGRkOTdkZWQ3OTJjNWJlYmI5MjI4YzFk
MmRjZDVjOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKQEAgLTEyMSwxNSArMTIxLDE1IEBA
IHR5cGVkZWYgc3RydWN0IHRhZ1RIUkVBRE5BTUVfSU5GTyB7CiB9IFRIUkVBRE5BTUVfSU5GTzsK
ICNwcmFnbWEgcGFjayhwb3ApCiAKLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5h
bChjb25zdCBjaGFyKiBzelRocmVhZE5hbWUpCit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFk
SW50ZXJuYWwoVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogI2lmIENPTVBJTEVSKE1JTkdXKQog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhyZWFkIG5hbWUgc2V0dGluZyB3aXRoIE1pbmdXLgot
ICAgIFVOVVNFRF9QQVJBTShzelRocmVhZE5hbWUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRO
YW1lKTsKICNlbHNlCiAgICAgVEhSRUFETkFNRV9JTkZPIGluZm87CiAgICAgaW5mby5kd1R5cGUg
PSAweDEwMDA7Ci0gICAgaW5mby5zek5hbWUgPSBub3JtYWxpemVUaHJlYWROYW1lKHN6VGhyZWFk
TmFtZSk7CisgICAgaW5mby5zek5hbWUgPSB0aHJlYWROYW1lOwogICAgIGluZm8uZHdUaHJlYWRJ
RCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOwogICAgIGluZm8uZHdGbGFncyA9IDA7CiAKQEAgLTE5
OSw3ICsxOTksNyBAQCBzdGF0aWMgdW5zaWduZWQgX19zdGRjYWxsIHd0ZlRocmVhZEVudHJ5UG9p
bnQodm9pZCogcGFyYW0pCiAgICAgcmV0dXJuIDA7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3Jl
YXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwg
Y29uc3QgY2hhciogdGhyZWFkTmFtZSkKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50
ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSB0
aHJlYWROYW1lKQogewogICAgIHVuc2lnbmVkIHRocmVhZElkZW50aWZpZXIgPSAwOwogICAgIFRo
cmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
V29ya1F1ZXVlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKaW5kZXggYjJhMGE3
OWY0YWI1YWFjMjg5YjE2OWY5MmJiYzFhODA1ODUyY2EzMi4uMjMzZDM4MDQ1NWQ3NmZlYTQ5MzRi
YTBmZjljYzA1YmQ4NTg2ZGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVl
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCkBAIC0zOSwxMiArMzksMTIg
QEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVJlZjxXb3JrUXVldWU+IFdvcmtRdWV1ZTo6Y3JlYXRl
KGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK1JlZjxXb3JrUXVldWU+IFdv
cmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtRdWV1ZShuYW1lLCB0eXBlLCBxb3MpKTsKIH0K
IAotV29ya1F1ZXVlOjpXb3JrUXVldWUoY29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1Mg
cW9zKQorV29ya1F1ZXVlOjpXb3JrUXVldWUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFP
UyBxb3MpCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKG5hbWUsIHR5cGUsIHFvcyk7CiB9CkBA
IC03NCw3ICs3NCw3IEBAIHZvaWQgV29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0
ZXJhdGlvbnMsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZCAoc2l6CiAKICAgICAgICAgICAgIG1f
d29ya2Vycy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRocmVhZENvdW50KTsKICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0aHJlYWRDb3VudDsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVhdGVUaHJlYWQoU3RyaW5nOjpmb3JtYXQoIlRocmVh
ZFBvb2wgV29ya2VyICV1IiwgaSkudXRmOCgpLmRhdGEoKSwgW3RoaXNdIHsKKyAgICAgICAgICAg
ICAgICBtX3dvcmtlcnMuYXBwZW5kKGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05BTUUoIlRo
cmVhZFBvb2wgQ29uY3VycmVudCBBcHBseSBXb3JrZXIiLCAiQ29uY3VycmVudEFwcGx5IiksIFt0
aGlzXSB7CiAgICAgICAgICAgICAgICAgICAgIHRocmVhZEJvZHkoKTsKICAgICAgICAgICAgICAg
ICB9KSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVl
dWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmluZGV4IGQ5MTg0YjQ4MjdiZjEwYmEz
OGE0ODE0ODA1YjJmMzM2NDZkNzZlMDMuLjQyNzI0YWY2ODNkZGExNzZhNmQ2ZTA2YzQ5YjQ4ZjY4
OTNkYjQ5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQpAQCAtNjcs
NyArNjgsNyBAQCBjbGFzcyBXb3JrUXVldWUgZmluYWwgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRj
aGVyIHsKICAgICAgICAgQmFja2dyb3VuZAogICAgIH07CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlID0g
VHlwZTo6U2VyaWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgUmVmPFdvcmtRdWV1ZT4gY3JlYXRlKFRocmVhZE5hbWUsIFR5cGUgPSBUeXBlOjpT
ZXJpYWwsIFFPUyA9IFFPUzo6RGVmYXVsdCk7CiAgICAgdmlydHVhbCB+V29ya1F1ZXVlKCk7CiAK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYm
KSBvdmVycmlkZTsKQEAgLTg1LDkgKzg2LDkgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDogcHVi
bGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBXb3JrUXVldWUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKTsKKyAgICBleHBsaWNpdCBX
b3JrUXVldWUoVGhyZWFkTmFtZSwgVHlwZSwgUU9TKTsKIAotICAgIHZvaWQgcGxhdGZvcm1Jbml0
aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoVGhyZWFkTmFtZSwgVHlwZSwgUU9TKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxp
ZGF0ZSgpOwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NvY29h
L1dvcmtRdWV1ZUNvY29hLmNwcAppbmRleCA4ZWRiZjIzYzU1ODg4ODI5NmMxNGM4YzlkMGVlMGM0
ZjYzMzBiMzIzLi5lMTU3MTVkMTcyMTU0NGQ2OGRhYzVhZWNjNTE2YmViMTM1MGQ3YWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0
YXRpYyBkaXNwYXRjaF9xdWV1ZV90IHRhcmdldFF1ZXVlRm9yUU9TQ2xhc3MoV29ya1F1ZXVlOjpR
T1MgcW9zKQogfQogI2VuZGlmCiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUo
Y29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQordm9pZCBXb3JrUXVldWU6OnBs
YXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKIHsK
ICAgICBkaXNwYXRjaF9xdWV1ZV9hdHRyX3QgYXR0ciA9IHR5cGUgPT0gVHlwZTo6Q29uY3VycmVu
dCA/IERJU1BBVENIX1FVRVVFX0NPTkNVUlJFTlQgOiBESVNQQVRDSF9RVUVVRV9TRVJJQUw7CiAj
aWYgSEFWRShRT1NfQ0xBU1NFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNw
YXRjaFF1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNw
cAppbmRleCBiNGFkMmJkYzQzOGY5ZDk0NTdlM2Y3ZmI0OTIyNGM2ODE1OTc2ZGFmLi4yZjEwYjAy
YTBlMTkzYzJmMjkyZWM5MGMyYmMyYjI4ZTRlZDNjODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZsL0Rp
c3BhdGNoUXVldWVFZmwuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIHdh
a2VVcFRocmVhZE1lc3NhZ2UgPSAnVyc7CiAKIGNsYXNzIERpc3BhdGNoUXVldWU6OlRocmVhZENv
bnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHN0YXJ0KGNvbnN0IGNoYXIqIG5hbWUs
IFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSkKKyAgICBzdGF0aWMgdm9p
ZCBzdGFydChUaHJlYWROYW1lIG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0
Y2hRdWV1ZSkKICAgICB7CiAgICAgICAgIC8vIFRoZSBEaXNwYXRjaFF1ZXVlVGhyZWFkQ29udGV4
dCBpbnN0YW5jZSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdGhyZWFkIGZ1bmN0aW9uIGFuZCBkZWxl
dGVkIGluIGl0LgogICAgICAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHJlaW50ZXJwcmV0
X2Nhc3Q8V1RGOjpUaHJlYWRGdW5jdGlvbj4oJlRocmVhZENvbnRleHQ6OmZ1bmN0aW9uKSwgbmV3
IFRocmVhZENvbnRleHQoZGlzcGF0Y2hRdWV1ZSksIG5hbWUpKTsKQEAgLTYxLDcgKzYxLDcgQEAg
Y2xhc3MgRGlzcGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dCB7CiAgICAgUmVmUHRyPERpc3BhdGNo
UXVldWU+IG1fZGlzcGF0Y2hRdWV1ZTsKIH07CiAKLVBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4g
RGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpCitQYXNzUmVmUHRyPERpc3Bh
dGNoUXVldWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUpCiB7CiAgICAg
UmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUgPSBhZG9wdFJlZjxEaXNwYXRjaFF1
ZXVlPihuZXcgRGlzcGF0Y2hRdWV1ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
ZWZsL0Rpc3BhdGNoUXVldWVFZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVl
RWZsLmgKaW5kZXggZmM1NTUxOWIwMWNlZThmZTA0OWMxM2MxZTVmY2ZjN2Q5OTc5NGYyNi4uMmNl
YmRmNDJlZDFmNDAyMjQ0MjUzN2ZjNjMyZDQyNDA0Mzg0M2Y3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwv
RGlzcGF0Y2hRdWV1ZUVmbC5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFdvcmtJdGVtOwogCiBj
bGFzcyBEaXNwYXRjaFF1ZXVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BhdGNo
UXVldWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBj
cmVhdGUoY29uc3QgY2hhciogbmFtZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGlzcGF0Y2hR
dWV1ZT4gY3JlYXRlKFRocmVhZE5hbWUpOwogICAgIH5EaXNwYXRjaFF1ZXVlKCk7CiAKICAgICB2
b2lkIGRpc3BhdGNoKHN0ZDo6dW5pcXVlX3B0cjxXb3JrSXRlbT4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29y
a1F1ZXVlRWZsLmNwcAppbmRleCBkYTkxM2JmMDRjZTcyNzMxMDc2N2VmNDc5NGZkZDJiODc4YTVm
NGVkLi44MzI1ZjVkNmMzMTRkNGZiYjgzMzNmMjE5MGQzZmJjZjE5NDdlMTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcApAQCAtMjUsNyArMjUsNyBAQAogCiBuYW1lc3BhY2UgV1RG
IHsKIAotdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1l
LCBUeXBlLCBRT1MpCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5h
bWUgbmFtZSwgVHlwZSwgUU9TKQogewogICAgIG1fZGlzcGF0Y2hRdWV1ZSA9IERpc3BhdGNoUXVl
dWU6OmNyZWF0ZShuYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMv
V29ya1F1ZXVlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdl
bmVyaWMuY3BwCmluZGV4IGY1OTRlMjQwMTE2ZDRlMDQzZDRkYzNhM2Y2Y2Y3YzA3ZDRiMjM0NDIu
LmRmNmUwNzIyZDFlNDAzYzdhYjk3MDA3MGQ1N2Y2M2I2MjYxMjQyMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVldWU6
OnBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAg
IG1fd29ya1F1ZXVlVGhyZWFkID0gY3JlYXRlVGhyZWFkKG5hbWUsIFt0aGlzXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oIGIvU291cmNlL1dURi93dGYv
dGV4dC9BU0NJSUxpdGVyYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTQ2YTkyOTg0Zjk0NGIxMzVkNzAyOWY1
MzFkZDcxYjhjYTY5OTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9B
U0NJSUxpdGVyYWwuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXVEYg
eworCitjbGFzcyBBU0NJSUxpdGVyYWwgeworcHVibGljOgorICAgIGV4cGxpY2l0IGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwoY29uc3QgY2hhciogY2hhcmFjdGVycykKKyAgICAgICAgOiBtX2NoYXJh
Y3RlcnMoY2hhcmFjdGVycykKKyAgICB7CisgICAgfQorCisgICAgY29uc3RleHByIG9wZXJhdG9y
IGNvbnN0IGNoYXIqKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2NoYXJhY3RlcnM7
CisgICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IGNoYXIqIG1fY2hhcmFjdGVyczsKK307CisK
K30KKwordXNpbmcgV1RGOjpBU0NJSUxpdGVyYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRl
eCAwMWM3NjgxMGJkNmNkMWVkYmJlZjhhZmVkODQyZjgwODBkZjdkYWQzLi44MGU2NDQ3MWZlZDA4
ODc0MDUzMzY1M2Y2ZjRlNjk2ZWFlMDRiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAg
LTI2LDYgKzI2LDcgQEAKIC8vIG9uIHN5c3RlbXMgd2l0aG91dCBjYXNlLXNlbnNpdGl2ZSBmaWxl
IHN5c3RlbXMuCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQVNDSUlMaXRlcmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1w
bC5oPgogCiAjaWZkZWYgX19PQkpDX18KQEAgLTM0LDggKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdU
RiB7CiAKLWNsYXNzIEFTQ0lJTGl0ZXJhbDsKLQogLy8gRGVjbGFyYXRpb25zIG9mIHN0cmluZyBv
cGVyYXRpb25zCiAKIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBpbnQgY2hhcmFjdGVyc1RvSW50U3Ry
aWN0KGNvbnN0IExDaGFyKiwgc2l6ZV90LCBib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0g
MTApOwpAQCAtNjgxLDE1ICs2ODAsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxT
dHJpbmc+IHsKIAogdGVtcGxhdGUgPD4gc3RydWN0IFZlY3RvclRyYWl0czxTdHJpbmc+IDogU2lt
cGxlQ2xhc3NWZWN0b3JUcmFpdHMgeyB9OwogCi1jbGFzcyBBU0NJSUxpdGVyYWwgewotcHVibGlj
OgotICAgIGV4cGxpY2l0IEFTQ0lJTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKSA6IG1f
Y2hhcmFjdGVycyhjaGFyYWN0ZXJzKSB7IH0KLSAgICBvcGVyYXRvciBjb25zdCBjaGFyKigpIHsg
cmV0dXJuIG1fY2hhcmFjdGVyczsgfQotCi1wcml2YXRlOgotICAgIGNvbnN0IGNoYXIqIG1fY2hh
cmFjdGVyczsKLX07Ci0KIC8vIFNoYXJlZCBnbG9iYWwgZW1wdHkgc3RyaW5nLgogV1RGX0VYUE9S
VF9TVFJJTkdfQVBJIGNvbnN0IFN0cmluZyYgZW1wdHlTdHJpbmcoKTsKIApAQCAtNzM4LDcgKzcy
OCw2IEBAIHVzaW5nIFdURjo6ZmluZDsKIHVzaW5nIFdURjo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVy
czsKIHVzaW5nIFdURjo6aXNTcGFjZU9yTmV3bGluZTsKIHVzaW5nIFdURjo6cmV2ZXJzZUZpbmQ7
Ci11c2luZyBXVEY6OkFTQ0lJTGl0ZXJhbDsKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IGY0YzRiOGM3N2Rj
ZTk5NWY1N2YyNTY3MDJjMWY5Y2VmOGM2NWE1YWEuLjcxMjRhY2ZjOTdkY2FlOWEyMjE0ODQyNjgy
OWI4NGQzNmQ4MmMyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVX
aW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCkBAIC03MSw3
ICs3MSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpwZXJmb3JtV29ya09uUmVnaXN0ZXJlZFdvcmtUaHJl
YWQoKQogICAgIG1fZnVuY3Rpb25RdWV1ZUxvY2sudW5sb2NrKCk7CiB9CiAKLXZvaWQgV29ya1F1
ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9p
ZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFP
UykKIHsKICAgICBtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQgPSAwOwogICAgIG1fdGltZXJRdWV1
ZSA9IDo6Q3JlYXRlVGltZXJRdWV1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCA4NzQ3NjQzOGNhZTY1YTYz
ODdkOTAxYTc1Mjg4MTVlYzk1NDdmMjMyLi4zMWYzNTY4ZjgzMTg3ZmFjYjg5OTYzNjBhYTg2MjU1
MmEyODZiYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBJREJTZXJ2ZXI6OklEQlNl
cnZlcihJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCiAg
ICAgOiBtX2JhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyKGZpbGVIYW5kbGVyKQogewog
ICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7Ci0g
ICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50
cnksIHRoaXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIik7CisgICAgbV90aHJlYWRJRCA9IGNy
ZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMsIENSRUFURV9U
SFJFQURfTkFNRSgiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIsICJJREJTZXJ2ZXIiKSk7CiB9CiAK
IElEQlNlcnZlcjo6SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
LCBJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCkBAIC02
Niw3ICs2Niw3IEBAIElEQlNlcnZlcjo6SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLCBJREJCYWNraW5nU3RvcmVUZW1wb3JhCiAgICAgTE9HKEluZGV4ZWREQiwg
IklEQlNlcnZlciBjcmVhdGVkIGF0IHBhdGggJXMiLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgudXRm
OCgpLmRhdGEoKSk7CiAKICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VUaHJlYWRD
cmVhdGlvbkxvY2spOwotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoSURCU2VydmVyOjpk
YXRhYmFzZVRocmVhZEVudHJ5LCB0aGlzLCAiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIpOworICAg
IG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoSURCU2VydmVyOjpkYXRhYmFzZVRocmVhZEVudHJ5
LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiLCAiSURC
U2VydmVyIikpOwogfQogCiB2b2lkIElEQlNlcnZlcjo6cmVnaXN0ZXJDb25uZWN0aW9uKElEQkNv
bm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKaW5kZXggMjkyZjA1YjhjZDUw
NmUyMjlhZTZiOGJkODYyOWMwOTU0ZDE4NDU5Yi4uMGNhYTQ2N2EzNzUzM2ZjNGVjMTAyMmQzZjZk
NmYwMTE1N2Y1MjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgQXN5bmNBdWRpb0Rl
Y29kZXI6OkFzeW5jQXVkaW9EZWNvZGVyKCkKIHsKICAgICAvLyBTdGFydCB3b3JrZXIgdGhyZWFk
LgogICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0ZXgpOwotICAgIG1fdGhy
ZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlz
LCAiQXVkaW8gRGVjb2RlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNB
dWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkF1ZGlv
IERlY29kZXIiLCAiQXVkaW9EZWNvZGVyIikpOwogfQogCiBBc3luY0F1ZGlvRGVjb2Rlcjo6fkFz
eW5jQXVkaW9EZWNvZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA1MDUy
MzA0MTk3Y2RlZGRlNDdmZGNiYjkxMmVjNDc0MDU1Nzk3NDI4Li5mNWYzMzU3MDIzM2U2YWZmZjI5
NjVjN2NhMWVkNjk0ZTE1OGM0M2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBA
IC04Myw3ICs4Myw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZygpCiAgICAgaWYgKCFtX3N0YXJ0ZWRSZW5kZXJpbmcpIHsKICAgICAgICAgbV9zdGFy
dGVkUmVuZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgcmVmKCk7IC8vIFNlZSBjb3JyZXNwb25kaW5n
IGRlcmVmKCkgY2FsbCBpbiBub3RpZnlDb21wbGV0ZURpc3BhdGNoKCkuCi0gICAgICAgIG1fcmVu
ZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2Zm
bGluZVJlbmRlckVudHJ5LCB0aGlzLCAib2ZmbGluZSByZW5kZXJlciIpOworICAgICAgICBtX3Jl
bmRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9m
ZmxpbmVSZW5kZXJFbnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJPZmZsaW5lIFJlbmRl
cmVyIiwgIk9mZmxpbmVSZW5kZXJlciIpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAKaW5kZXggMGRk
ZTVmNzI2OGVlNjQyYzAwNDMwNWNlZmUzNmIxYzllNDRiODdkMy4uZDAyNGYzNDRkMzc5NTQ5MDk5
YzZlNjdkZGEyM2NjNTNjYTEyYWUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgYm9v
bCBEYXRhYmFzZVRocmVhZDo6c3RhcnQoKQogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoRGF0YWJhc2VUaHJl
YWQ6OmRhdGFiYXNlVGhyZWFkU3RhcnQsIHRoaXMsICJXZWJDb3JlOiBEYXRhYmFzZSIpOworICAg
IG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoRGF0YWJhc2VUaHJlYWQ6OmRhdGFiYXNlVGhyZWFk
U3RhcnQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiV2ViRGF0YWJhc2UiLCAiV2ViREIiKSk7
CiAKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDZmOWZjYTY3ZjNjNDdhZGRjODNkZWM4Y2IwZDVlYjhj
Y2I0MGQ3NDMuLjE0ZjIwZWU4MTAwNGVkYjhhNzcyMDdkYTc5NmQ1OTc4ZTIyYTA3OWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtMTAxLDcgKzEw
MSw3IEBAIHZvaWQgR0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE5vd0lmTm90RG9uZVJlY2Vu
dGx5KCkKIAogdm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJl
YWRGb3JEZWJ1Z2dpbmcoYm9vbCB3YWl0VW50aWxEb25lKQogewotICAgIFRocmVhZElkZW50aWZp
ZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29sbGVjdCwgMCwgIldlYkNvcmU6IEdDQ29udHJv
bGxlciIpOworICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29s
bGVjdCwgMCwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJHQyBDb250cm9sbGVyIiwgIkdDQ29udHJvbGxl
ciIpKTsKIAogICAgIGlmICh3YWl0VW50aWxEb25lKSB7CiAgICAgICAgIHdhaXRGb3JUaHJlYWRD
b21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9T
dWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
aW5kZXggZjY5MWY2YjA5ZjI2YTVkNjk1NGNlMTYzN2IzMjcyNjYwYjE2OWMwMC4uODk4MjRmMzkw
ZmY4MGRkZDk2ZDJlNzRmYTdkZDQwMWZlOGMwZmVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBT
dWJ0bGVDcnlwdG86OlN1YnRsZUNyeXB0byhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCi0gICAgLCBtX3dv
cmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DcnlwdG9RdWV1ZSIp
KQorICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1F
KCJDcnlwdG8gUXVldWUiLCAiQ3J5cHRvUXVldWUiKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcAppbmRleCA1YjgxMzYxMTJhZGRlYTE0NWM5NTU5
MGE4YTNjMTc2MWYxYjFiOTgzLi43YjYzNjdlOTg0MWY1ZThkYTE5ZTIwNGRjODRiYjcxYzM4ODVm
N2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCkBAIC03
NCw3ICs3NCw3IEBAIHN0YXRpYyB2b2lkIGNhbGxPbkZpbGVUaHJlYWQoRnVuY3Rpb248dm9pZCAo
KT4mJiBmdW5jdGlvbikKIAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBjcmVhdGVGaWxlVGhy
ZWFkT25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShjcmVhdGVGaWxlVGhyZWFkT25jZSwgW10gewot
ICAgICAgICBjcmVhdGVUaHJlYWQoIldlYkNvcmU6IEFzeW5jRmlsZVN0cmVhbSIsIFtdIHsKKyAg
ICAgICAgY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiQXN5bmNocm9ub3VzIEZpbGUg
U3RyZWFtIiwgIkFzeW5jRmlsZVN0cmVhbSIpLCBbXSB7CiAgICAgICAgICAgICBmb3IgKDs7KSB7
CiAgICAgICAgICAgICAgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IGVlNDM3ZTg2MjhlYmY0ZTg2MzI3
Y2M3NzAzMGY1ZjY5NGUzMGJiMmQuLjNiZjM4OTZlYmIwYmNlNDQ1MDMzY2FkN2JjYzUxMTc5Y2Vi
NGMzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcApA
QCAtMTQxLDcgKzE0MSw3IEBAIGJvb2wgSWNvbkRhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYg
ZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQogICAgIC8vIExvY2sgaGVyZSBhcyB3
ZWxsIGFzIGZpcnN0IHRoaW5nIGluIHRoZSB0aHJlYWQgc28gdGhlIHRocmVhZCBkb2Vzbid0IGFj
dHVhbGx5IGNvbW1lbmNlIHVudGlsIHRoZSBjcmVhdGVUaHJlYWQoKSBjYWxsIAogICAgIC8vIGNv
bXBsZXRlcyBhbmQgbV9zeW5jVGhyZWFkUnVubmluZyBpcyBwcm9wZXJseSBzZXQKICAgICBtX3N5
bmNMb2NrLmxvY2soKTsKLSAgICBtX3N5bmNUaHJlYWQgPSBjcmVhdGVUaHJlYWQoSWNvbkRhdGFi
YXNlOjppY29uRGF0YWJhc2VTeW5jVGhyZWFkU3RhcnQsIHRoaXMsICJXZWJDb3JlOiBJY29uRGF0
YWJhc2UiKTsKKyAgICBtX3N5bmNUaHJlYWQgPSBjcmVhdGVUaHJlYWQoSWNvbkRhdGFiYXNlOjpp
Y29uRGF0YWJhc2VTeW5jVGhyZWFkU3RhcnQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiSWNv
biBEYXRhYmFzZSIsICJJY29uREIiKSk7CiAgICAgbV9zeW5jVGhyZWFkUnVubmluZyA9IG1fc3lu
Y1RocmVhZDsKICAgICBtX3N5bmNMb2NrLnVubG9jaygpOwogICAgIGlmICghbV9zeW5jVGhyZWFk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKaW5kZXggOTEy
MDBjMzQ1ZjQ1NWY5NmQ0OTRiZmQyYWQ3MDNmMjhjNWM2MjlkMS4uMThkNGIyNGYxYTlkMzQ0N2U0
NDc3ZGZmYTE2MGI4NDM1OTVlZTU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
ZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VUaHJlYWQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdlVGhy
ZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fdm0g
PSAmY29tbW9uVk0oKTsKLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhy
ZWFkQ2FsbGJhY2ssIHRoaXMsICJXZWJDb3JlOiBSZXNvdXJjZVVzYWdlIik7CisgICAgbV90aHJl
YWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCBDUkVBVEVf
VEhSRUFEX05BTUUoIlJlc291cmNlIFVzYWdlIiwgIlJlc291cmNlVXNhZ2UiKSk7CiB9CiAKIHZv
aWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6dGhyZWFkQ2FsbGJhY2sodm9pZCogcmVzb3VyY2VVc2Fn
ZVRocmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
aHJlYWQuY3BwCmluZGV4IDczMGMwYTZiZDkzZjQ1NzhkMWVkYmY5YWNlMWNkODY1NjZlNmM5ODgu
LmY4ZjA3NDAxZTU3YWJjZmM1Y2RiYWUxNWIwYzhlNDY5MzJjNWQ3NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcApAQCAtODEsNyAr
ODEsNyBAQCB2b2lkIFNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogICAg
IHsKICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6ZVJ1bkxv
b3BNdXRleCk7CiAKLSAgICAgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRo
cmVhZENhbGxiYWNrLCB0aGlzLCAiV2ViQ29yZTogU2Nyb2xsaW5nIik7CisgICAgICAgIG1fdGhy
ZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgQ1JFQVRF
X1RIUkVBRF9OQU1FKCJTY3JvbGxpbmciLCAiU2Nyb2xsaW5nIikpOwogICAgICAgICAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlh
YmxlLndhaXQobG9jaywgW3RoaXNdeyByZXR1cm4gbV90aHJlYWRSdW5Mb29wOyB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3Bw
CmluZGV4IGY3MTMzM2M1YTM3YTk5ODk2NGYzYTc0MWM3MzE1MmU5NTE0NjZjZjYuLjNhYzg0MWZi
MWExYjMzNzA5NGMzNWQ3ZWZjNmQ1MDAzZTQxYmU3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcApAQCAtMTA2LDcgKzEw
Niw3IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoKQogICAg
IAogICAgIGlmICghbV9ocnRmRGF0YWJhc2UuZ2V0KCkgJiYgIW1fZGF0YWJhc2VMb2FkZXJUaHJl
YWQpIHsKICAgICAgICAgLy8gU3RhcnQgdGhlIGFzeW5jaHJvbm91cyBkYXRhYmFzZSBsb2FkaW5n
IHByb2Nlc3MuCi0gICAgICAgIG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQo
ZGF0YWJhc2VMb2FkZXJFbnRyeSwgdGhpcywgIkhSVEYgZGF0YWJhc2UgbG9hZGVyIik7CisgICAg
ICAgIG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoZGF0YWJhc2VMb2FkZXJF
bnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJIUlRGIERhdGFiYXNlIExvYWRlciIsICJI
UlRGREJMb2FkZXIiKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAppbmRleCA5NmYzMzA4MjgwNzlhNzlhZDY0ODIw
ZDA3MjFjNTljNWVhMTZmZGIxLi4wZDhiOWI4NWVmNjcyZjhlNDY0MDZhZGE1NmMwNTAyMmMwOGU2
ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252
b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBSZXZlcmJDb252b2x2ZXI6OlJldmVyYkNvbnZv
bHZlcihBdWRpb0NoYW5uZWwqIGltcHVsc2VSZXNwb25zZSwgc2l6ZV90IHJlbmRlclNsaQogICAg
IC8vIFN0YXJ0IHVwIGJhY2tncm91bmQgdGhyZWFkCiAgICAgLy8gRklYTUU6IHdvdWxkIGJlIGJl
dHRlciB0byB1cCB0aGUgdGhyZWFkIHByaW9yaXR5IGhlcmUuICBJdCBkb2Vzbid0IG5lZWQgdG8g
YmUgcmVhbC10aW1lLCBidXQgaGlnaGVyIHRoYW4gdGhlIGRlZmF1bHQuLi4KICAgICBpZiAodGhp
cy0+dXNlQmFja2dyb3VuZFRocmVhZHMoKSAmJiBtX2JhY2tncm91bmRTdGFnZXMuc2l6ZSgpID4g
MCkKLSAgICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkID0gY3JlYXRlVGhyZWFkKFdlYkNvcmU6OmJh
Y2tncm91bmRUaHJlYWRFbnRyeSwgdGhpcywgImNvbnZvbHV0aW9uIGJhY2tncm91bmQgdGhyZWFk
Iik7CisgICAgICAgIG1fYmFja2dyb3VuZFRocmVhZCA9IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpi
YWNrZ3JvdW5kVGhyZWFkRW50cnksIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiQ29udm9sdXRp
b24iLCAiQ29udm9sdXRpb24iKSk7CiB9CiAKIFJldmVyYkNvbnZvbHZlcjo6flJldmVyYkNvbnZv
bHZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxMjk0
OTgxNjBmMWJlM2U2Y2ZlN2YwNDc2NGI0ZDc5ZDQ4ZjhmM2YuLjhkNmE3MWQzYmI4OTM5NDAzNDQ5
YmUzZTczM2ZkYmIyMWI2OWY2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFt
ZXIuY3BwCkBAIC0zNzAsNyArMzcwLDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxl
UmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBh
dGgsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRp
b0J1cz4gcmV0dXJuVmFsdWU7Ci0gICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVk
aW9GaWxlUmVhZGVyIiwgWyZyZXR1cm5WYWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxl
UmF0ZV0geworICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9O
QU1FKCJBdWRpbyBGaWxlIFJlYWRlciIsICJBdWRpb0ZpbGVSZWFkZXIiKSwgWyZyZXR1cm5WYWx1
ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0gewogICAgICAgICByZXR1cm5WYWx1
ZSA9IEF1ZGlvRmlsZVJlYWRlcihmaWxlUGF0aCkuY3JlYXRlQnVzKHNhbXBsZVJhdGUsIG1peFRv
TW9ubyk7CiAgICAgfSk7CiAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSUQpOwpA
QCAtMzgwLDcgKzM4MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21BdWRp
b0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25vCiBQYXNzUmVmUHRyPEF1
ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwg
c2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAg
ICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwotICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVh
dGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXpl
LCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRvIHRocmVhZElEID0gY3JlYXRlVGhy
ZWFkKENSRUFURV9USFJFQURfTkFNRSgiQXVkaW8gRmlsZSBSZWFkZXIiLCAiQXVkaW9GaWxlUmVh
ZGVyIiksIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBsZVJh
dGVdIHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZGF0YSwgZGF0YVNp
emUpLmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAgIHdhaXRG
b3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCmluZGV4IDgxZmIxZjk4NjhmMzEw
ZTUzNTlkMTYxZGMyZGFjYTVjYzdkM2FlZDcuLjRkYjFkYTM0MDA0ZTUzOTJlOTJlMzQxMWE2MGI4
NDA3Y2Y0YTU5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlRnJhbWVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VGcmFtZUNhY2hlLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSW1hZ2VGcmFt
ZUNhY2hlOjpjYWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KE5hdGl2ZUltYWdlUHRyJiYgbmF0
aXZlSW1hZ2UsCiBSZWY8V29ya1F1ZXVlPiBJbWFnZUZyYW1lQ2FjaGU6OmRlY29kaW5nUXVldWUo
KQogewogICAgIGlmICghbV9kZWNvZGluZ1F1ZXVlKQotICAgICAgICBtX2RlY29kaW5nUXVldWUg
PSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5JbWFnZURlY29kZXIiLCBXb3JrUXVldWU6
OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSk7CisgICAgICAg
IG1fZGVjb2RpbmdRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgi
SW1hZ2UgRGVjb2RlciIsICJJbWFnZURlY29kZXIiKSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWws
IFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpOwogICAgIAogICAgIHJldHVybiAqbV9k
ZWNvZGluZ1F1ZXVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVy
LmNwcAppbmRleCAwZGE0YTg4NTczYmExYjU1YjRmZWE1MjM4OWU0YzI1MmZkZTk4NDM0Li5hODMz
OGQxOTRlODNiZDk2NWFkZDI3ZTdlOGNhOGQyOWNiZWQzYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVh
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
V2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgUmVzb3Vy
Y2VIYW5kbGVTdHJlYW1pbmdDbGllbnQ6OlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KFdl
YktpdFdlYlNyYyogc3JjLAogICAgIDogU3RyZWFtaW5nQ2xpZW50KHNyYykKIHsKICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwotICAgIG1f
dGhyZWFkID0gY3JlYXRlVGhyZWFkKCJSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsIFt0
aGlzLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0geworICAgIG1fdGhyZWFkID0gY3JlYXRl
VGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiUmVzb3VyY2UgSGFuZGxlIFN0cmVhbWluZyBDbGll
bnQiLCAiUlN0cmVhbWluZyIpLCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldIHsK
ICAgICAgICAgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVu
TG9vcENvbmRpdGlvbk11dGV4KTsKICAgICAgICAgICAgIG1fcnVuTG9vcCA9ICZSdW5Mb29wOjpj
dXJyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1v
cnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51
eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXggNGNkMWJkZGYzYWI3NjZhMDAw
NDhmOGFjNTc2ZmEyODQ3ZWM2MjcwZC4uNTAyN2E1MmY3M2VlMmQyYWM4ZGU0N2Y5MDc1N2Y1NTRj
ZjU5MTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6RXZlbnRGRFBvbGxlcihpbnQgZmQs
IHN0ZDo6ZnVuY3Rpb248dm9pZCAoCiAgICAgfSwgdGhpcywgbnVsbHB0cik7CiAgICAgZ19zb3Vy
Y2VfYXR0YWNoKG1fc291cmNlLmdldCgpLCBudWxscHRyKTsKICNlbHNlCi0gICAgbV90aHJlYWRJ
RCA9IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogTWVtb3J5UHJlc3N1cmVIYW5kbGVyIiwgW3RoaXNd
IHsgcmVhZEFuZE5vdGlmeSgpOyB9CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChDUkVB
VEVfVEhSRUFEX05BTUUoIk1lbW9yeSBQcmVzc3VyZSBIYW5kbGVyIiwgIk1lbVByZXNzSGFuZGxl
ciIpLCBbdGhpc10geyByZWFkQW5kTm90aWZ5KCk7IH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAppbmRl
eCBlMTQzNDUxZmRhYTMzOGMzNzEwMTBiN2ZlZGZkZTA1MmE1ZTM5OWY3Li5lYzNjZjdiMmUzMTBk
YWJhOGFiNTE5MThmYjEzYzc3ZTQ3ZTljMzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTI0Myw3ICsyNDMsNyBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5SW1wbDo6YmxvYlNpemUoY29uc3QgVVJM
JiB1cmwpCiAKIHN0YXRpYyBXb3JrUXVldWUmIGJsb2JVdGlsaXR5UXVldWUoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1ZXVlPj4gcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoIm9yZy53ZWJraXQuQmxvYlV0aWxpdHkiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29y
a1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVm
PFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgi
QmxvYiBVdGlsaXR5IiwgIkJsb2JVdGlsaXR5IiksIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBX
b3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpOwogICAgIHJldHVybiBxdWV1ZS5nZXQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVj
b2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVy
LmNwcAppbmRleCBhYmZiNDZjZWNmODIxNDNiOWZmYWNkMDFiZTU3ODZhNTNhMDA4ZWMwLi5mYjhj
MDIyMjZiZmRiZDgzYzdmOWVjZWJiMWY1NWEzNWI1NjE2NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApAQCAtNDAsNyArNDAs
NyBAQCBuYW1lc3BhY2UgRGF0YVVSTERlY29kZXIgewogCiBzdGF0aWMgV29ya1F1ZXVlJiBkZWNv
ZGVRdWV1ZSgpCiB7Ci0gICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUo
Im9yZy53ZWJraXQuRGF0YVVSTERlY29kZXIiKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1dG8m
IHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJEYXRhIFVSTCBE
ZWNvZGVyIiwgIkRhdGFVUkxEZWNvZGVyIikpLmxlYWtSZWYoKTsKICAgICByZXR1cm4gcXVldWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9h
ZGVyUnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9h
ZGVyUnVuTG9vcENGLmNwcAppbmRleCA0NmI4OTk0YTg0MWVmNzFlYTI3OWNlNzdjYmM4ZmI0M2My
OWYwYTYyLi5jZTExMmE4ZDE2NjkyMzdiNTg3MGRiNzBlNjI1N2QwMzcwMGIyMDdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29w
Q0YuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIENGUnVuTG9vcFJlZiBsb2FkZXJSdW5Mb29wKCkKICAg
ICBzdGQ6OnVuaXF1ZV9sb2NrPFN0YXRpY0xvY2s+IGxvY2sobG9hZGVyUnVuTG9vcE11dGV4KTsK
IAogICAgIGlmICghbG9hZGVyUnVuTG9vcE9iamVjdCkgewotICAgICAgICBjcmVhdGVUaHJlYWQo
cnVuTG9hZGVyVGhyZWFkLCAwLCAiV2ViQ29yZTogQ0ZOZXR3b3JrIExvYWRlciIpOworICAgICAg
ICBjcmVhdGVUaHJlYWQocnVuTG9hZGVyVGhyZWFkLCAwLCBDUkVBVEVfVEhSRUFEX05BTUUoIkNG
TmV0d29yayBMb2FkZXIiLCAiQ0ZOZXR3b3JrTG9hZGVyIikpOwogCiAgICAgICAgIGxvYWRlclJ1
bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFtdIHsgcmV0dXJuIGxvYWRlclJ1bkxv
b3BPYmplY3Q7IH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKaW5kZXggNDQwOGNkMTk4NzA1YmE4NmNjOGMx
OTg2ZmIzZTJjYWRlNzk2ZGNjNi4uOWJmYmFkODFhOTlhZDczZTQyZTViYTkzOGNjYTQyNTY3YWUx
M2YyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxEb3dubG9hZC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBDdXJsRG93bmxvYWRNYW5h
Z2VyOjpzdGFydFRocmVhZElmTmVlZGVkKCkKICAgICAgICAgaWYgKG1fdGhyZWFkSWQpCiAgICAg
ICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihtX3RocmVhZElkKTsKICAgICAgICAgc2V0
UnVuVGhyZWFkKHRydWUpOwotICAgICAgICBtX3RocmVhZElkID0gY3JlYXRlVGhyZWFkKGRvd25s
b2FkVGhyZWFkLCB0aGlzLCAiZG93bmxvYWRUaHJlYWQiKTsKKyAgICAgICAgbV90aHJlYWRJZCA9
IGNyZWF0ZVRocmVhZChkb3dubG9hZFRocmVhZCwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJE
b3dubG9hZGVyIiwgIkRvd25sb2FkZXIiKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1
cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxDdXJsLmNwcAppbmRleCBlOTRmODRhNjgyMzM5NTJkNGMyYzY1MmM2YjJhZmYy
NWQyNjZkYzZiLi4zNmY4MDliZDBmOWFjOGEyYThlMzJkY2FmMWE5ODU5MmUwMWUzODMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFt
SGFuZGxlSW1wbEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCB2
b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhyZWFkKCkKIAogICAgIHJlZigpOyAv
LyBzdG9wVGhyZWFkKCkgd2lsbCBjYWxsIGRlcmVmKCkuCiAKLSAgICBtX3dvcmtlclRocmVhZCA9
IGNyZWF0ZVRocmVhZCgiV2ViU29ja2V0IHRocmVhZCIsIFt0aGlzXSB7CisgICAgbV93b3JrZXJU
aHJlYWQgPSBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXZWJTb2NrZXQiLCAiV2Vi
U29ja2V0IiksIFt0aGlzXSB7CiAKICAgICAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA1MWY0MmY1ZmZmZjJm
YTZkYTY4NDU3ZTRkMjI2ZWI2ZjM3NmM0MGRhLi4wNzA4YzUzOTBlMmI1MDE0OTFhNDg0ZWUyODkw
N2Q2NjcwN2ZhNGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCkBA
IC0xMzcsNyArMTM3LDcgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnN0YXJ0KCkKICAgICBpZiAobV90
aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQsIHRoaXMsICJXZWJDb3JlOiBX
b3JrZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFdvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkU3RhcnQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiV2ViV29ya2VyIiwgIldl
YldvcmtlciIpKTsKIAogICAgIHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlL1N0b3JhZ2VUaHJlYWQuY3BwCmluZGV4IGJiNjZmY2VhN2U1MjhiYzI3ZjYzM2EzZTUyODc4
YjUwMWVmMGUxODcuLjkwMTUyNDFmYjFlZmM5NGUxODRhM2ZkOTRhNjQ4ZjA0MTM1NDUxYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAg
Ym9vbCBTdG9yYWdlVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJl
YWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0aGlzLCAiV2ViQ29y
ZTogTG9jYWxTdG9yYWdlIik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoU3Rv
cmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0aGlzLCBDUkVBVEVfVEhSRUFE
X05BTUUoIkxvY2FsU3RvcmFnZSIsICJMb2NhbFN0b3JhZ2UiKSk7CiAgICAgYWN0aXZlU3RvcmFn
ZVRocmVhZHMoKS5hZGQodGhpcyk7CiAgICAgcmV0dXJuIG1fdGhyZWFkSUQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4
IGQ1ZWFkYjBiM2I0MWFhNDM5NjBmMDE4NWFjMmEzYmI1ZjJhZWZhNjQuLmQ0NjkwYTE0YmNhNTBh
MDM5M2YxZGQwNWE5NDVlNzY3ODVhY2U0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC01Myw3ICs1Myw3IEBAIERhdGFi
YXNlUHJvY2VzcyYgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKQogfQogCiBEYXRhYmFzZVBy
b2Nlc3M6OkRhdGFiYXNlUHJvY2VzcygpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlUHJvY2VzcyIpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkRhdGFiYXNlIFByb2Nlc3MiLCAiREJQ
cm9jZXNzIikpKQogewogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRGOEVuY29kaW5nIGVuY29kaW5n
IGFuZCB0aGUgdGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0aGUgbWFpbiB0
aHJlYWQgYmVmb3JlIGEgYmFja2dyb3VuZCB0aHJlYWQgbmVlZHMgaXQuCiAgICAgLy8gRklYTUU6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzNjUgLSBOZWVkIGEg
bW9yZSBleHBsaWNpdCB3YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVzIGFjY2Vzc2luZyB0aGUgVVRG
OEVuY29kaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAKaW5kZXggYTgwMjkxZmMxZDFkNTljN2MxZGI2MDIxYjk0Y2NlODI0
YzUxYzU5Ny4uZTcyOWIwMGNmNDkyZDMxOTA1YWI0OGJmNDY5MWRjOTY4MGEzZjg2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwCkBAIC01ODMsNyArNTgzLDcgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKCkK
IAogdm9pZCBDYWNoZTo6ZGVsZXRlRHVtcEZpbGUoKQogewotICAgIFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIpLT5kaXNwYXRjaChbcGF0aCA9IGR1bXBG
aWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CisgICAgV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRF
X1RIUkVBRF9OQU1FKCJDYWNoZSBEZWxldGVyIiwgIkNhY2hlRGVsZXRlciIpKS0+ZGlzcGF0Y2go
W3BhdGggPSBkdW1wRmlsZVBhdGgoKS5pc29sYXRlZENvcHkoKV0gewogICAgICAgICBXZWJDb3Jl
OjpkZWxldGVGaWxlKHBhdGgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxT
b3VwLmNwcAppbmRleCBlZjdiYTg5OTgyMDIzMjU4OWU3MzkxZjI3ZmNkM2Q2ZTE2OWY2ODk0Li41
N2IxZDUxYmNkNGMyOWViMTk0YzFlNzgwYmU2ZThjNDM0NzYwNDY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxTb3VwLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgSU9DaGFubmVsOjpy
ZWFkU3luY0luVGhyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUqIHF1
ZXVlLCBzCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBSZWZQdHI8SU9DaGFu
bmVsPiBjaGFubmVsKHRoaXMpOwotICAgIGRldGFjaFRocmVhZChjcmVhdGVUaHJlYWQoIklPQ2hh
bm5lbDo6cmVhZFN5bmMiLCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRpb25IYW5kbGVy
XSB7CisgICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05BTUUoIklP
Q2hhbm5lbCByZWFkU3luYyIsICJJT0NSZWFkU3luYyIpLCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUs
IGNvbXBsZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gc3RkOjpt
aW4oc2l6ZSwgZ0RlZmF1bHRSZWFkQnVmZmVyU2l6ZSk7CiAgICAgICAgIHVpbnQ4X3QqIGJ1ZmZl
ckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhidWZmZXJTaXplKSk7CiAg
ICAgICAgIEdSZWZQdHI8U291cEJ1ZmZlcj4gcmVhZEJ1ZmZlciA9IGFkb3B0R1JlZihzb3VwX2J1
ZmZlcl9uZXdfd2l0aF9vd25lcihidWZmZXJEYXRhLCBidWZmZXJTaXplLCBidWZmZXJEYXRhLCBm
YXN0RnJlZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAppbmRleCAxMGE1MjAzZWZkODE4
MGUwYWNhMzRiZTU0ZGY1MjU4MmY1OWM5NWY3Li41ZjcxYjczY2M4MGE1YzZlNzMxM2ZjODg5NmFh
ODM5ODcwYjU1ZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcApAQCAtODIsNyArODIs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U3RhdGlzdGljcz4gU3RhdGlzdGljczo6b3Blbihjb25zdCBT
dHJpbmcmIGNhY2hlUGF0aCkKIH0KIAogU3RhdGlzdGljczo6U3RhdGlzdGljcyhjb25zdCBTdHJp
bmcmIGRhdGFiYXNlUGF0aCkKLSAgICA6IG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RhdGlzdGljcy5CYWNrZ3JvdW5k
IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkK
KyAgICA6IG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRF
X1RIUkVBRF9OQU1FKCJDYWNoZSBTdGF0aXN0aWNzIEJhY2tncm91bmQiLCAiQ2FjaGVTdGF0c0JH
IiksIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkp
CiAgICAgLCBtX3dyaXRlVGltZXIoKnRoaXMsICZTdGF0aXN0aWNzOjp3cml0ZVRpbWVyRmlyZWQp
CiB7CiAgICAgaW5pdGlhbGl6ZShkYXRhYmFzZVBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcApp
bmRleCA4ZjdjNGYzYmUwZmFhNGQ4YmUzNjI2YjY5NGRiMjAzYjVhODI5YTYxLi40MDFmMGQ5NGY1
YTgzZGYyYzViNWQyYmQwZWM2YTU5MjM2NTJiOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcApA
QCAtMjEzLDkgKzIxMyw5IEBAIFN0b3JhZ2U6OlN0b3JhZ2UoY29uc3QgU3RyaW5nJiBiYXNlRGly
ZWN0b3J5UGF0aCwgU2FsdCBzYWx0KQogICAgICwgbV9zYWx0KHNhbHQpCiAgICAgLCBtX3JlYWRP
cGVyYXRpb25UaW1lb3V0VGltZXIoKnRoaXMsICZTdG9yYWdlOjpjYW5jZWxBbGxSZWFkT3BlcmF0
aW9ucykKICAgICAsIG1fd3JpdGVPcGVyYXRpb25EaXNwYXRjaFRpbWVyKCp0aGlzLCAmU3RvcmFn
ZTo6ZGlzcGF0Y2hQZW5kaW5nV3JpdGVPcGVyYXRpb25zKQotICAgICwgbV9pb1F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCBXb3JrUXVldWU6
OlR5cGU6OkNvbmN1cnJlbnQpKQotICAgICwgbV9iYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlLmJhY2tncm91bmQiLCBXb3Jr
UXVldWU6OlR5cGU6OkNvbmN1cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKLSAg
ICAsIG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBs
ZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5zZXJpYWxCYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBl
OjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1faW9RdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkNhY2hlIFN0b3JhZ2UgRm9yZWdy
b3VuZCIsICJDYWNoZVN0b3JhZ2VGRyIpLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQor
ICAgICwgbV9iYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFE
X05BTUUoIkNhY2hlIFN0b3JhZ2UgQmFja2dyb3VuZCIsICJDYWNoZVN0b3JhZ2VCRyIpLCBXb3Jr
UXVldWU6OlR5cGU6OkNvbmN1cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAg
ICAsIG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RI
UkVBRF9OQU1FKCJDYWNoZSBTdG9yYWdlIFNlcmlhbCBCYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFn
ZVNCRyIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91
bmQpKQogICAgICwgbV9ibG9iU3RvcmFnZShtYWtlQmxvYkRpcmVjdG9yeVBhdGgoYmFzZURpcmVj
dG9yeVBhdGgpLCBtX3NhbHQpCiB7CiAgICAgZGVsZXRlT2xkVmVyc2lvbnMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCBkYThlYTNmYmIwNWUzZGZm
ZTQ5YmUzMzJhNjYwMWUyN2FiZmNhZjQxLi41OTc1ZjY0NDFjM2UxZDY2ZTcxZmRlOTE0YWRiMTZk
NGJhN2EzM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
CkBAIC0yMzEsNyArMjMxLDcgQEAgQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCYgY2xpZW50KQogICAgICwgbV9zaG91bGRF
eGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJlKGZhbHNlKQogICAgICwgbV9kaWRDbG9zZU9uQ29u
bmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKDApCiAgICAgLCBtX2lzQ29ubmVjdGVkKGZhbHNlKQot
ICAgICwgbV9jb25uZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5JUEMu
UmVjZWl2ZVF1ZXVlIikpCisgICAgLCBtX2Nvbm5lY3Rpb25RdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZShDUkVBVEVfVEhSRUFEX05BTUUoIklQQyBSZWNlaXZlIFF1ZXVlIiwgIklQQ1JlY2VpdmVRdWV1
ZSIpKSkKICAgICAsIG1faW5TZW5kU3luY0NvdW50KDApCiAgICAgLCBtX2luRGlzcGF0Y2hNZXNz
YWdlQ291bnQoMCkKICAgICAsIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5X
YWl0aW5nRm9yU3luY1JlcGx5Q291bnQoMCkKQEAgLTcyMCw3ICs3MjAsNyBAQCB1aW50NjRfdCBD
b25uZWN0aW9uOjppbnN0YWxsSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrKHN0ZDo6ZnVuY3Rp
b248dm9pZCAoKT4gYwogICAgIG1fbmV4dEluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja0lEKys7
CiAKICAgICBpZiAoIW1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUpCi0gICAgICAg
IG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5JUEMuSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiKTsK
KyAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiSVBDIEluY29taW5nIFN5bmMgTWVzc2FnZSBDYWxs
YmFjayBRdWV1ZSIsICJJU3luY01zZ0NCUXVldWUiKSk7CiAKICAgICBtX2luY29taW5nU3luY01l
c3NhZ2VDYWxsYmFja3MuYWRkKG1fbmV4dEluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja0lELCBj
YWxsYmFjayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKaW5kZXggMTc1
Nzg5ZmI5YWU3MTNmMTZlZWVkYmZhYmUwMGQ2ZjMzZTYzY2YyMy4uMmQxODZlMDZhMDUxYmVkNThj
ZTgxYmQxOWYxYjBhOTZkNWQwYTc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIHZvaWQgZGlkQ2xvc2VPbkNvbm5lY3Rpb25X
b3JrUXVldWUoSVBDOjpDb25uZWN0aW9uKikKICAgICAvLyB0aGUgcHJvY2VzcyB3aWxsIGV4aXQg
Zm9yY2libHkuCiAgICAgYXV0byB3YXRjaGRvZ0RlbGF5ID0gc3RkOjpjaHJvbm86OnNlY29uZHMo
MTApOwogCi0gICAgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2hpbGRQcm9j
ZXNzLldhdGNoRG9nUXVldWUiKS0+ZGlzcGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7Cisg
ICAgV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJDaGlsZCBQcm9jZXNzIFdh
dGNoZG9nIFF1ZXVlIiwgIkNoaWxkV2RvZ1F1ZXVlIikpLT5kaXNwYXRjaEFmdGVyKHdhdGNoZG9n
RGVsYXksIFtdIHsKICAgICAgICAgLy8gV2UgdXNlIF9leGl0IGhlcmUgc2luY2UgdGhlIHdhdGNo
ZG9nIGNhbGxiYWNrIGlzIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkIGFuZCB3ZSBkb24ndCB3
YW50CiAgICAgICAgIC8vIGdsb2JhbCBkZXN0cnVjdG9ycyBvciBhdGV4aXQgaGFuZGxlcnMgdG8g
YmUgY2FsbGVkIGZyb20gdGhpcyB0aHJlYWQgd2hpbGUgdGhlIG1haW4gdGhyZWFkIGlzIGJ1c3kK
ICAgICAgICAgLy8gZG9pbmcgaXRzIHRoaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5n
UnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAppbmRleCA0MGRjNGY0NDU2
YzI4ZmM5MzdkOWExNjZhYTIyMTljZjdlOGVjNTMwLi4zN2MwYjcxYmQ3MTViODdlNDcwMzNlOGNl
NmFkMWM2OGE0YTc1YzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAtOTIsNyArOTIsNyBAQCBjbGFzcyBX
b3JrUXVldWVQb29sIHsKICAgICAgICAgICAgICAgICBBU1NFUlQobV9zaGFyZWRXb3JrUXVldWUp
OwogICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBtX3NoYXJlZFdv
cmtRdWV1ZTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWRkUmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LlRocmVhZGVk
Q29tcG9zaXRvcldvcmtRdWV1ZSIpOworICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlRocmVhZGVk
IENvbXBvc2l0b3IgV29yayBRdWV1ZSIsICJUaHJlYWRlZENvbXAiKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKCFtX3RocmVhZENvdW50KQogICAgICAgICAgICAgICAgICAgICBtX3NoYXJlZFdvcmtR
dWV1ZSA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAgICAgICAgICAgbV90aHJl
YWRDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVt
U2hpbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRl
eCA4NTQzM2JkNTk4NmMxMzZhOGJlY2M5ODFiZmQ3MGQ4NGVlNDdkNDZhLi41MzQ1ODcwNmJkZTcy
ZTI3NmY2M2Y5ZWE1YThjMDk1NjAwNWU1YjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1NlY0l0ZW1TaGltLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgV29ya1F1ZXVlJiB3b3Jr
UXVldWUoKQogICAgIHN0YXRpYyBXb3JrUXVldWUqIHdvcmtRdWV1ZTsKICAgICBzdGF0aWMgZGlz
cGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57
Ci0gICAgICAgIHdvcmtRdWV1ZSA9ICZXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5TZWNJdGVtU2hpbSIpLmxlYWtSZWYoKTsKKyAgICAgICAgd29ya1F1ZXVlID0gJldvcmtRdWV1
ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiU2VjSXRlbVNoaW0iLCAiU2VjSXRlbVNoaW0i
KSkubGVha1JlZigpOwogCiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCmluZGV4
IDg2YzMzMjQ0N2JlZDFmODNkZjk0NGYyYjFmMDllZWU5ZmFjZDllNjEuLjgxZDNlYWUyMTA0ZGYx
ZTZkNDc3NzM2OTFmNTIxMzNjOWEyNTNkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcApA
QCAtNjQsOSArNjQsOSBAQCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlKCkKIAogVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6VXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoKQogICAgIDogbV9zdG9y
ZVBhdGgoc3RvcmVQYXRoKQotICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
IlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIsIFdvcmtRdWV1ZTo6VHlw
ZTo6Q29uY3VycmVudCkpCi0gICAgLCBtX3JlYWRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZWFkIFF1ZXVlIikpCi0gICAgLCBtX3JlbW92ZVF1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlbW92ZSBRdWV1
ZSIpKQorICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVB
RF9OQU1FKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIENvbXBpbGUgUXVldWUiLCAiVUNFeFN0
Q29tcFF1ZXVlIiksIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBtX3JlYWRR
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUgUmVhZCBRdWV1ZSIsICJVQ0V4U3RSZFF1ZXVlIikpKQorICAgICwgbV9yZW1v
dmVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlVzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmUgUmVtb3ZlIFF1ZXVlIiwgIlVDRXhTdFJtUXVldWUiKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwCmluZGV4IDFmZTEwMjU0ZDdjNTYwYWNmYTY5MDUxNmE1MzM4ZGU0NGIwZmQzY2EuLmEyNWNl
ZWJkMGQ4ZGY2NDk4NGRmNDY2Yzg0ZjlmMGM1NGQxMjI1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTQ1Miw3ICs0
NTIsNyBAQCBSZWY8U3RvcmFnZU1hbmFnZXI+IFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoY29uc3Qg
U3RyaW5nJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpCiB9CiAKIFN0b3JhZ2VNYW5hZ2VyOjpTdG9y
YWdlTWFuYWdlcihjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkKLSAgICA6IG1f
cXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZU1hbmFnZXIi
KSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJT
dG9yYWdlIE1hbmFnZXIiLCAiU3RvcmFnZU1nciIpKSkKICAgICAsIG1fbG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyKExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6Y3JlYXRlKG1fcXVldWUu
Y29weVJlZigpLCBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKQogewogICAgIC8vIE1ha2Ugc3VyZSB0
aGUgZW5jb2RpbmcgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIHdlIHN0YXJ0IGRpc3BhdGNoaW5nIHRo
aW5ncyB0byB0aGUgcXVldWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IGMyZjhlNmE0YmE3
MzUwYTQ2M2E0NTlkZTQ4ZTU2YWFkZmJkMmEyNTAuLjVlYTU2ZDIxNmFjYzBmMDg4ZmIyOTBlM2E4
MWYzM2Q4ODdlNzY4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IFJlZjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Y3JlYXRlKGNvbnN0CiAKIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKICAgICA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzU3RvcmUo
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoKSkKLSAgICAsIG1fc3RhdGlzdGlj
c1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
UHJvY2VzcyBEYXRhIFF1ZXVlIikpCisgICAgLCBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZSBQcm9jZXNzIERhdGEgUXVldWUiLCAiV2ViUnNTdGF0UXVldWUiKSkpCiAgICAgLCBtX3N0b3Jh
Z2VQYXRoKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggN2E4NDNiMWYwNDNiZjdkMGVjN2VjM2Y2YjNkMTc5MTAzM2RmZWUxYy4uZGU4
NTZlN2RjNTc0MmNlZDIwNjdlOTY2NTViOGExMGUwNjNkOThmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtODAsNyArODAsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKENv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKQogICAgICwgbV9zdG9yYWdlTWFuYWdlcihTdG9yYWdlTWFuYWdlcjo6
Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKQogICAgICwgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3Jl
YXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSkKLSAg
ICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURh
dGFTdG9yZSIpKQorICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFE
X05BTUUoIldlYnNpdGUgRGF0YVN0b3JlIiwgIldlYkRhdGFTdG9yZSIpKSkKIHsKICAgICBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKIH0KQEAgLTg5LDcgKzg5LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6
V2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9p
ZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKCkKLSAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFTdG9yZSIpKQorICAgICwgbV9xdWV1
ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIldlYnNpdGUgRGF0YVN0b3Jl
IiwgIldlYkRhdGFTdG9yZSIpKSkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1v
bml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJl
TW9uaXRvci5jcHAKaW5kZXggMDYwOGFiNzJmOTkyNDhlZjI0Y2QyZDUyNDVlZTUzMzNhMDBkOWQw
ZC4uOWYwMTY4NjA3OThiOWYyMmVjZGQ1MjYzNDFjMzc4Nzc5MDI1NWU2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRv
ci5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBNZW1vcnlQcmVzc3VyZU1vbml0b3I6Ok1lbW9yeVBy
ZXNzdXJlTW9uaXRvcigpCiAgICAgaWYgKG1fZXZlbnRGRCA9PSAtMSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFk
KCJNZW1vcnlQcmVzc3VyZU1vbml0b3IiLCBbdGhpc10geworICAgIFRocmVhZElkZW50aWZpZXIg
dGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05BTUUoIk1lbW9y
eSBQcmVzc3VyZSBNb25pdG9yIiwgIk1lbVByZXNzTW9uaXRvciIpLCBbdGhpc10gewogICAgICAg
ICBkb3VibGUgcG9sbEludGVydmFsID0gc19tYXhQb2xsaW5nSW50ZXJ2YWxJblNlY29uZHM7CiAg
ICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBzbGVlcChwb2xsSW50ZXJ2YWwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAK
aW5kZXggMjFlYTdiMDEyYjE4OThkMjEwMTJiMjI4NzI1YmVlMTA2ZmNhNmRiNC4uNjFjZjA2ZTc2
MzAyMDBmZjA5OTdiY2Y1MDYzZWY5OGJhOTMwNDRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFNl
Y0l0ZW1TaGltUHJveHkmIFNlY0l0ZW1TaGltUHJveHk6OnNpbmdsZXRvbigpCiB9CiAKIFNlY0l0
ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbVByb3h5IikpCisgICAgOiBtX3F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiU2VjSXRlbVNoaW1Qcm94
eSIsICJTZWNJdGVtU2hpbVAiKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlci5jcHAKaW5kZXggY2JjNGYwZTNlODQyOWJhYWQ1ZTg4Y2FhZTM2ZDVmYjM1MTlkODg2
Yi4uZWQ3YTVjNzlkODI5YmQ2OGY3OTdiNWQwYzg5Mzg0YmRhOGRjODMzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgUmVmPFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
OjpjcmVhdGUoKQogfQogCiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlcigpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciIpKQorICAg
IDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlBsdWdpblBy
b2Nlc3MgQ29ubmVjdGlvbiBNYW5hZ2VyIiwgIlBsdWdpbkNvbm5NZ3IiKSkpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKaW5kZXggMWYyMjI2NThjOTA2YjczZjc1NTQxYWNhMzcyZThlZjUwOTk4ZDE3YS4uNjg2
MDBiMGFiMDIyYzJhZTQ0MjQxOTgyZmFjNGFlNDIxYzM2YWVmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTUz
LDcgKzUzLDcgQEAgUmVmPEV2ZW50RGlzcGF0Y2hlcj4gRXZlbnREaXNwYXRjaGVyOjpjcmVhdGUo
KQogfQogCiBFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hlcigpCi0gICAgOiBtX3F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkV2ZW50RGlzcGF0Y2hlciIsIFdv
cmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkK
KyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJFdmVu
dCBEaXNwYXRjaGVyIiwgIkV2ZW50RGlzcGF0Y2giKSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWws
IFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogICAgICwgbV9yZWNlbnRXaGVlbEV2
ZW50RGVsdGFGaWx0ZXIoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpjcmVhdGUoKSkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlz
cGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0
ZURpc3BhdGNoZXIuY3BwCmluZGV4IGM4ZTM2Mzg2MWYyMDU3YTA4NmEzZjc4ZDVkYjQ1YjIzYTBj
NWI4NmEuLmNmOTA5ODdhOWIyZDA2MTlkYjBiZmUzZGVjYmZlNDUzZTIwNjQwOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVE
aXNwYXRjaGVyLmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+
IFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpjcmVhdGUoKQogfQogCiBWaWV3VXBkYXRlRGlzcGF0Y2hl
cjo6Vmlld1VwZGF0ZURpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYktpdC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIpKQorICAgIDogbV9xdWV1
ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlZpZXcgVXBkYXRlIERpc3Bh
dGNoZXIiLCAiVlVwZGF0ZURpc3BhdGNoIikpKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTEzZDJlNmIxMmUwOTg2OGY1ZGU3OGZm
ZWI2OWU0OGY0MzdmMTg3Yi4uZGY5YjQxYzUwZTY2NjcxMWUwZDQwYWJlZTQ3ZWYyZDRiYWQ1ZTU4
YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDE3LTAxLTA2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFVzZSBDUkVBVEVfVEhSRUFEX05BTUUgdG8gc3BlY2lmeSBsb25n
IGFuZCBzaG9ydCBuYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6cnVuTG9ja1Rlc3QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Bh
cmtpbmdMb3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9u
aXplZEZpeGVkUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VG9VcHBlckNvbnZl
cnRlcjo6cHJvZHVjZVF1ZXVlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRvVXBwZXJDb252
ZXJ0ZXI6OmNvbnN1bWVRdWV1ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJL
aXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdFNlcnZlcjo6
V2ViS2l0VGVzdFNlcnZlcik6CisKIDIwMTctMDEtMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2FybmluZyBhYm91dCB1bmNvbm5lY3RhYmxlIG91
dGxldHMgd2hlbiBvcGVuaW5nIGEgTWluaUJyb3dzZXIgd2luZG93CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAppbmRleCA4NDg1MjczNTFmNjA2M2ZjMjYzNjg3
ODA1NmQ5YzI0ZGJhYmU4M2RjLi4wZGJjMjYwYWUwM2VmZGY1YTUzZWUxY2NlODg0N2NlNzNkZjI4
MDIwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24u
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKQEAg
LTk3LDcgKzk3LDcgQEAgdm9pZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9
IG51bUNvbnN1bWVyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElk
ZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhyZWFkIiwK
KyAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiQ29uc3VtZXIiLCAiQ29uc3VtZXIiKSwK
ICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBy
dW5UZXN0KAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CiAg
ICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgK
LSAgICAgICAgICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgQ1JFQVRFX1RIUkVB
RF9OQU1FKCJQcm9kdWNlciIsICJQcm9kdWNlciIpLAogICAgICAgICAgICAgWyZdICgpIHsKICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9k
dWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0gZmFs
c2U7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwCmluZGV4IDU1NzYzMDJkNjkw
ZGZjYTM1OTkyOTI4YjFjODUzYzc2MjJlNDVmYjkuLmZjYmJiOTdkMWRmN2ViOTI5NWEyYTgwYWNi
NzNiODQ2YzUzMGFjM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0xvY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwCkBA
IC01Myw3ICs1Myw3IEBAIHZvaWQgcnVuTG9ja1Rlc3QodW5zaWduZWQgbnVtVGhyZWFkR3JvdXBz
LCB1bnNpZ25lZCBudW1UaHJlYWRzUGVyR3JvdXAsIHVuc2lnbmVkCiAKICAgICAgICAgZm9yICh1
bnNpZ25lZCB0aHJlYWRJbmRleCA9IG51bVRocmVhZHNQZXJHcm91cDsgdGhyZWFkSW5kZXgtLTsp
IHsKICAgICAgICAgICAgIHRocmVhZHNbdGhyZWFkR3JvdXBJbmRleCAqIG51bVRocmVhZHNQZXJH
cm91cCArIHRocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAiTG9j
ayB0ZXN0IHRocmVhZCIsCisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJMb2Nr
IFRlc3RlciIsICJMb2NrVGVzdGVyIiksCiAgICAgICAgICAgICAgICAgW3RocmVhZEdyb3VwSW5k
ZXgsICZsb2NrcywgJndvcmRzLCBudW1JdGVyYXRpb25zLCB3b3JrUGVyQ3JpdGljYWxTZWN0aW9u
XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bUl0ZXJhdGlv
bnM7IGktLTspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tzW3RocmVhZEdyb3VwSW5k
ZXhdLmxvY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Bh
cmtpbmdMb3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5j
cHAKaW5kZXggYzY3ZTFlMDgxNWE4M2FmYTkzMzNlMmFjOWEyYmQ3OGI2N2IxNjQ1Yi4uYjcwZWQ1
OTY1NzBkMjliNzA0NjNkZTk2ZWZjMWFiZDQ1MGQ5OWY2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IFNp
bmdsZUxhdGNoVGVzdCB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bVRocmVhZHM7IGkt
LTspIHsKICAgICAgICAgICAgIHRocmVhZHMuYXBwZW5kKAogICAgICAgICAgICAgICAgIGNyZWF0
ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAgICAgIlBhcmtpbmcgVGVzdCBUaHJlYWQiLAorICAg
ICAgICAgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIlBhcmtpbmcgVGVzdGVyIiwgIlBh
cmtpbmdUZXN0ZXIiKSwKICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwgY3VycmVudFRocmVhZCgpKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVl
LmNwcAppbmRleCAzMTQzNmJjMjIzMDdmOWRkNzNmNjkxOGIyNGFkYjQwZTc4OWZiNWVjLi5hYmQ3
MjUzZDYzMzg5ZGYwZTkyZWI1YWU3NWJkZmY4YWFjZjI3N2M0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcApA
QCAtNjIsMTQgKzYyLDE0IEBAIGNsYXNzIFRvVXBwZXJDb252ZXJ0ZXIgewogICAgIFdvcmtRdWV1
ZSogcHJvZHVjZVF1ZXVlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9wcm9kdWNlUXVldWUpCi0g
ICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0
LlByb2R1Y2UiKTsKKyAgICAgICAgICAgIG1fcHJvZHVjZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJQcm9kdWNlciIsICJQcm9kdWNlciIpKTsKICAgICAgICAg
cmV0dXJuIG1fcHJvZHVjZVF1ZXVlLmdldCgpOwogICAgIH0KIAogICAgIFdvcmtRdWV1ZSogY29u
c3VtZVF1ZXVlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9jb25zdW1lUXVldWUpCi0gICAgICAg
ICAgICBtX2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkNvbnN1
bWUiKTsKKyAgICAgICAgICAgIG1fY29uc3VtZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JF
QVRFX1RIUkVBRF9OQU1FKCJDb25zdW1lciIsICJDb25zdW1lciIpKTsKICAgICAgICAgcmV0dXJu
IG1fY29uc3VtZVF1ZXVlLmdldCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dvcmtRdWV1ZS5jcHAKaW5kZXggN2UyNzdlOTRjNDdjZTNjZTJmYjgyNTJmNmNkYzNh
NTVhZjM3YmU3OS4uNWZhMjliNzUwNmU3MGMyODAyN2I3OTdhMjU0MTFhNzQyOWIxOGJhOSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCkBAIC01NCw3ICs1
NCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBsb25nVGVzdExhYmVsID0gImxvbmdUZXN0IjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdGhp
cmRUZXN0TGFiZWwgPSAidGhpcmRUZXN0IjsKIAotICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIpOworICAgIGF1dG8gcXVldWUg
PSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlNpbXBsZSBUZXN0IiwgIlNp
bXBsZVRlc3QiKSk7CiAgICAgaW50IGluaXRpYWxSZWZDb3VudCA9IHF1ZXVlLT5yZWZDb3VudCgp
OwogICAgIEVYUEVDVF9FUSgxLCBpbml0aWFsUmVmQ291bnQpOwogCkBAIC0xMDYsOCArMTA2LDgg
QEAgVEVTVChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgYm9vbCBjYWxsZWRMb25nVGVz
dCA9IGZhbHNlOwogICAgIGJvb2wgY2FsbGVkVGhpcmRUZXN0ID0gZmFsc2U7CiAgICAgCi0gICAg
YXV0byBxdWV1ZTEgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LnR3
b1F1ZXVlczEiKTsKLSAgICBhdXRvIHF1ZXVlMiA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMiIpOworICAgIGF1dG8gcXVldWUxID0gV29ya1F1ZXVl
OjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJUd29RdWV1ZXMxIFRlc3QiLCAiVHdvUXVldWVz
MVRlc3QiKSk7CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhS
RUFEX05BTUUoIlR3b1F1ZXVlczIgVGVzdCIsICJUd29RdWV1ZXMyVGVzdCIpKTsKIAogICAgIEVY
UEVDVF9FUSgxLCBxdWV1ZTEtPnJlZkNvdW50KCkpOwogICAgIEVYUEVDVF9FUSgxLCBxdWV1ZTIt
PnJlZkNvdW50KCkpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGlz
cGF0Y2hBZnRlcikKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsKICAgICBib29s
IGNhbGxlZERpc3BhdGNoQWZ0ZXJUZXN0ID0gZmFsc2U7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29y
a1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVyIik7Cisg
ICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRGlz
cGF0Y2hBZnRlciBUZXN0IiwgIkRpc3BhdGNoQWZ0ZXIiKSk7CiAKICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2xvY2spOwogCkBAIC0yMTEsNyArMjExLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBE
ZXN0cm95T25TZWxmKQogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobG9jayk7CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiKTsKKyAgICAgICAgICAgIGF1dG8gcXVl
dWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkRlc3Ryb3lPblNlbGYg
VGVzdCIsICJEZXN0cm95T25TZWxmIikpOwogICAgICAgICAgICAgcXVldWUtPmRpc3BhdGNoQWZ0
ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewogICAgICAgICAg
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgIGRpc3BhdGNo
QWZ0ZXJUZXN0U3RhcnRlZC53YWl0KGxvY2ssIFsmXSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAppbmRleCA5OTIzZDY1ODAw
ZWQ3MTRiYTY4MDZiMTNmN2U1MWZlZTU4MDM1YWQwLi4zMGVjYzA1ZjZlOTJhM2JkMGQ2ZDcxYmFl
NTYxMWU0NjNkOTAzNWQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVTVChXVEZfV29y
a1F1ZXVlLCBBc3luY0lPKQogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAg
ICAgfSBjb250ZXh0OwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6
OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jSU8gVGVzdCIsICJBc3luY0lPVGVzdCIp
KTsKICAgICBjb250ZXh0Lm1fbWFpbkNvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7
CiAgICAgRVhQRUNUX0ZBTFNFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRU
ZXN0U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0
VGVzdFNlcnZlci5jcHAKaW5kZXggZGU5NDY2YzM5ZDcxY2ZjMmFiZjQ0OWZjZmRlMzg5YjU0NDlk
ZjMyNy4uZTlkOGMzNDJhYWMxYjA4YTE5ZDVlOWVhMjJkZjU4NmY5MTZkYTRlYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2
ZXIuY3BwCkBAIC0yOCw3ICsyOCw3IEBAIFdlYktpdFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2
ZXIoU2VydmVyT3B0aW9ucyBvcHRpb25zKQogewogICAgIGlmIChvcHRpb25zICYgU2VydmVyUnVu
SW5UaHJlYWQpIHsKICAgICAgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgICAg
IG1fcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiV2ViS2l0VGVzdFNlcnZlciIpOworICAgICAg
ICBtX3F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXZWJLaXQg
VGVzdCBTZXJ2ZXIiLCAiVGVzdFNlcnZlciIpKTsKICAgICB9CiAKICAgICBHVW5pcXVlUHRyPGNo
YXI+IHNzbENlcnRpZmljYXRlRmlsZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298193</attachid>
            <date>2017-01-06 03:50:13 -0800</date>
            <delta_ts>2017-01-09 06:19:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170106204843.patch</filename>
            <type>text/plain</type>
            <size>101933</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
M2NlYzE4ZGNkODkzMWFlMTM0Yjc1YTZhNDQzMmUzNWM4ZGU4NDllLi4xNmIzZWY1YzgxN2Q4Zjc4
Mjg4NGIyYTQzNWY4MzNhZjcyNmMxODMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBh
bmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHA6CisgICAgICAgICh0ZXN0
Q29tcGFyZUFuZFN3YXApOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6cnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKyAgICAgICAgKiBieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwOgorICAg
ICAgICAoSlNDOjppbml0aWFsaXplU3VwZXJTYW1wbGVyKToKKyAgICAgICAgKiBkZmcvREZHV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpUaHJlYWRCb2R5OjpUaHJl
YWRCb2R5KToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAg
ICAoSlNDOjpERkc6OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRG
Rzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZH
V29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToK
KyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkaXNhc3NlbWJsZXIvRGlz
YXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpI
ZWFwOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChKU0M6OkhlYXA6Om5vdGlmeUlzU2FmZVRv
Q29sbGVjdCk6CisgICAgICAgICogaGVhcC9IZWFwSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChK
U0M6OmhlYXBIZWxwZXJQb29sKToKKyAgICAgICAgKiBqaXQvSUNTdGF0cy5jcHA6CisgICAgICAg
IChKU0M6OklDU3RhdHM6OklDU3RhdHMpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6
CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKHN0YXJ0VGltZW91dFRocmVhZElmTmVlZGVkKToKKyAgICAgICAg
KiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcnVudGltZS9XYXRj
aGRvZy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpXYXRjaGRvZyk6CisgICAgICAgICog
d2FzbS9XYXNtUGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlBsYW46OnJ1bik6CisKIDIw
MTctMDEtMDUgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBBdXRv
bWF0aWNUaHJlYWQgdGltZW91dCBzaHV0ZG93biBsZWF2ZXMgYSBzbWFsbCB3aW5kb3cgd2hlcmUg
bm90aWZ5KCkgd291bGQgdGhpbmsgdGhhdCB0aGUgdGhyZWFkIGlzIHN0aWxsIHJ1bm5pbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5k
ZXggNTllN2EzNzI0MzQ0MGVlMWM1NDJkNTQxMGFiYWRiZjZiNTRmMTc5MS4uODY1NjBmYjY4NjBj
ZTE4MjkwYjRmYzE0Yjg4ZGM4ZjQ1MDE0Y2UzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAxNy0w
MS0wNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBV
c2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
aW50cm9kdWNlcyBDUkVBVEVfVEhSRUFEX05BTUUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWlu
ZworICAgICAgICBwb2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIENSRUFU
RV9USFJFQURfTkFNRSB0YWtlcyAyIG5hbWVzLCBzaG9ydCBhbmQgbG9uZyBuYW1lcy4gVGhlIGxv
bmcgbmFtZQorICAgICAgICBpcyB1c2VkIGZvciBtYWNPUyBhbmQgaU9TIHNpbmNlIHRoZXkgZG8g
bm90IGhhdmUgdGhlIGxpbWl0YXRpb24uIE9uIHRoZQorICAgICAgICBvdGhlciBoYW5kLCBMaW51
eCBvbmx5IGFsbG93cyAxNSBjaGFyYWN0ZXJzIGZvciB0aHJlYWQgbmFtZXMuIFNvIGZvcgorICAg
ICAgICBMaW51eCwgd2UgdXNlIHRoZSBzaG9ydCBuYW1lLiBXaW5kb3dzIGFsc28gaGFzIDMxIGNo
YXJhY3RlcnMgbGltaXRhdGlvbi4KKyAgICAgICAgV2luZG93cyBhbHNvIHVzZXMgdGhlIHNob3J0
IG5hbWUuCisKKyAgICAgICAgV2hlbiB5b3Ugc3BlY2lmeSB0aGUgbmFtZSBsaWtlLAorCisgICAg
ICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jaHJvbm91cyBEaXNhc3NlbWJsZXIiLCAi
QXN5bmNEaXNhc20iKSwKKworICAgICAgICBUaGUgdGhyZWFkIG5hbWUgYmVjb21lcywKKworICAg
ICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIFdpbmRvd3M6ICJXZWJL
aXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1MgYW5kIGlPUzogIldlYktpdDogQXN5
bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUgY2hl
Y2tzIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0IG5hbWUgaXMgPD0gMTUgYXQgY29tcGlsZQorICAg
ICAgICB0aW1lLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LCBjb21waWxlIGVycm9yIG9j
Y3Vycy4KKworICAgICAgICBUaGUgIldlYktpdDogIiBwcmVmaXggaXMgYXV0b21hdGljYWxseSBh
ZGRlZCBieSBDUkVBVEVfVEhSRUFEX05BTUUgbWFjcm8KKyAgICAgICAgd2l0aG91dCBhbGxvY2F0
aW5nIGFueSBhZGRpdGlvbmFsIG1lbW9yeSBhdCBydW50aW1lLiBUaGlzIHByZWZpeCBpcyBpbXBv
cnRhbnQKKyAgICAgICAgc2luY2UgaXQgY2FuIHNheSB0aGF0IHRoaXMgdGhyZWFkIGlzIHJlbGF0
ZWQgdG8gV2ViS2l0LiBXaGVuIHVzaW5nIFdlYktpdAorICAgICAgICBhcyBmcmFtZXdvcmssIFdl
YktpdCByZWxhdGVkIHRocmVhZHMgd2lsbCBiZSBsYXVuY2hlZCBhbG9uZyB3aXRoIHVzZXIKKyAg
ICAgICAgYXBwbGljYXRpb24ncyB0aHJlYWRzLiBXaXRob3V0ICJXZWJLaXQ6ICIgcHJlZml4LCBp
dCBpcyBhIGJpdCBkaWZmaWN1bHQKKyAgICAgICAgdG8gZGlzdGluZ3Vpc2ggdXNlcidzIHRocmVh
ZHMgZnJvbSBXZWJLaXQgcmVsYXRlZCBvbmVzLgorCisgICAgICAgIFdlIGFwcGx5IHRoaXMgcG9s
aWN5IHRvIGFsbCB0aGUgV2ViS2l0IHRocmVhZCBuYW1lcyBleGNlcHQgZm9yIGJtYWxsb2MncyBv
bmUuCisgICAgICAgIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGluIFsxXS4KKworICAgICAgICBbMV06
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2ODQKKworICAgICAg
ICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJlbmNobWFya3Mv
Q29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tGYWlybmVz
c1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6CisgICAg
ICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1Ro
cmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFkOjpz
dGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0Zi9Q
YXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6
OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6
VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaDoKKyAg
ICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAgICAgKiB3dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJvbm1lbnQ6
OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9UaHJlYWROYW1lLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwLgorICAg
ICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAgICAgICAgKFdURjo6VGhyZWFk
TmFtZTo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmcuY3Bw
OgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpub3JtYWxpemVU
aHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6CisgICAgICAg
ICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlVGhyZWFk
SW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFs
KToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlh
bGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0ZVRocmVhZElu
dGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFdURjo6V29y
a1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtRdWV1ZSk6Cisg
ICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAgICAgKiB3dGYv
V29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcDoKKyAg
ICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0
Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpUaHJl
YWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVhdGUpOgorICAg
ICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0Zi9lZmwvV29y
a1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxp
emUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgorICAgICAg
ICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90ZXh0L0FT
Q0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
SGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFs
KToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6Cisg
ICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJh
bDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpv
cGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVl
dWVXaW4uY3BwOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6
CisKIDIwMTctMDEtMDUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBDYXJldHMgY2FuIHNwbGl0IHVwIG1hcnJpYWdlcyBhbmQgZmFtaWxpZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhNzI5MzFlOGIzZWU1ODFlMzc2Y2Y2NTA1MjZhZGE0MjRlZTdmMDg1Li5kMmU1
YmViZWZjOTg4YzM2MjNjMDcwYjQ4YTc3YmYxZjllNTNlNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTYgQEAKKzIwMTctMDEtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgVXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5k
IHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OklEQlNlcnZlcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
c3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0Nv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpnYXJiYWdlQ29s
bGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5nKToKKyAgICAgICAgKiBjcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5
cHRvKToKKyAgICAgICAgKiBmaWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjYWxsT25GaWxlVGhyZWFkKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpvcGVuKToKKyAgICAg
ICAgKiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNl
TG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1Jl
dmVyYkNvbnZvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OlJl
dmVyYkNvbnZvbHZlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlv
RmlsZVJlYWRlckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9t
QXVkaW9GaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlv
RmlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6ZGVjb2RpbmdRdWV1ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1l
ci5jcHA6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VI
YW5kbGVTdHJlYW1pbmdDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2xpbnV4L01lbW9yeVBy
ZXNzdXJlSGFuZGxlckxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6RXZlbnRGRFBvbGxlcik6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsb2JV
dGlsaXR5UXVldWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OmRlY29kZVF1ZXVlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpsb2FkZXJSdW5Mb29wKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybERvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFn
ZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3Jr
ZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdGFydCk6CisK
IDIwMTctMDEtMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBU
ZXh0RnJhZ21lbnRJdGVyYXRvcjo6cnVuV2lkdGggZG9lcyBub3QgbmVlZCB0eXBlbmFtZSBDaGFy
YWN0ZXJUeXBlPD4gYW55bW9yZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjVmZDg1Y2FhZmU0ZWQ4ZWU0OGE1MWJk
MTc1YzZiNDZkNWM2ZWYxZi4uZWE4N2Y4MGJhYTVkZDdmMDhhYjFiOTcyNmE5ZmY3MzkwZmQ1M2U0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMS0wNiAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1F
IHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wNSAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQ29tcGls
ZSBlcnJvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYzkwYWE3MjI3YTExMDU4NTJmOWQ3NDUzNjY1MTJjNzI5
OTAzZmQyLi45N2Q0MzQ0ZmFkMjhkMDRjYjI0MzgwZTYwYmQxMTZhYzJjMWVlOGM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTctMDEtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVj
aWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OkRhdGFiYXNlUHJvY2Vzcyk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhY2hlOjpDYWNoZTo6ZGVsZXRlRHVtcEZpbGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RhdGlzdGljczo6U3RhdGlzdGljcyk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6U3RvcmFnZSk6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0
aW9uOjpDb25uZWN0aW9uKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6aW5zdGFsbEluY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKToKKyAg
ICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29t
cG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V29ya1F1ZXVlUG9vbDo6Z2V0
T3JDcmVhdGVXb3JrUXVldWVGb3JDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0
ZW1TaGltLmNwcDoKKyAgICAgICAgKFdlYktpdDo6d29ya1F1ZXVlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwOgorICAgICAgICAoQVBJ
OjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKToK
KyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6flVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUpOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpjb25zdHJ1Y3RlZFBhdGgpOiBE
ZWxldGVkLgorICAgICAgICAoQVBJOjpDb250ZW50RXh0ZW5zaW9uTWV0YURhdGE6OmZpbGVTaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6ZW5jb2RlQ29udGVudEV4dGVuc2lvbk1ldGFEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6ZGVjb2RlQ29udGVudEV4dGVuc2lvbk1ldGFEYXRh
KTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6b3BlbkFuZE1hcENvbnRlbnRFeHRlbnNpb24pOiBE
ZWxldGVkLgorICAgICAgICAoQVBJOjp3cml0ZURhdGFUb0ZpbGUpOiBEZWxldGVkLgorICAgICAg
ICAoQVBJOjpjb21waWxlZFRvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChBUEk6OmNyZWF0ZUV4
dGVuc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmU6Omxvb2t1cENvbnRlbnRFeHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlOjpjb21waWxlQ29udGVudEV4dGVuc2lvbik6IERlbGV0ZWQu
CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OnJlbW92ZUNvbnRlbnRF
eHRlbnNpb24pOiBEZWxldGVkLgorICAgICAgICAoQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlOjpzeW5jaHJvbm91c1JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6aW52YWxpZGF0ZUNvbnRlbnRF
eHRlbnNpb25WZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEFQSTo6dXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZUVycm9yQ2F0ZWdvcnkpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFn
ZXI6OlN0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lbW9yeVByZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVNb25pdG9yKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
ZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtU2hpbVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hl
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNw
YXRjaGVyKToKKwogMjAxNy0wMS0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIE5ldHdvcmsgcHJvY2VzcyBjcmFzaCBpbiBXZWJL
aXQ6OkN1c3RvbVByb3RvY29sTWFuYWdlckltcGw6OmRpZEZhaWxXaXRoRXJyb3IKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cAppbmRleCBlNzgwODZjM2E5NjEyYTJmMGI0ZDdhYWYxYWRjN2JhMWExMDFjNTQ3Li4zZjcxMGM3
M2NlMWM0ODMwMjRiOTIyOTI4NDBmYTM2NjM0ZjgxZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCkBAIC0xMDcs
NyArMTA3LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZUFuZFN3YXAoKQogICAgICAgICBkYXRhW2ldLmlk
ID0gaTsKICAgICAgICAgZGF0YVtpXS5udW1UaHJlYWRzID0gbnVtVGhyZWFkczsKICAgICAgICAg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRocmVhZEZ1bmMgPSBzdGQ6OmJpbmQoc2V0Qml0VGhyZWFk
RnVuYywgJmRhdGFbaV0pOwotICAgICAgICB0aHJlYWRJRHNbaV0gPSBjcmVhdGVUaHJlYWQoInNl
dEJpdFRocmVhZEZ1bmMiLCB0aHJlYWRGdW5jKTsKKyAgICAgICAgdGhyZWFkSURzW2ldID0gY3Jl
YXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRU
aHJlYWRGdW5jIiksIHRocmVhZEZ1bmMpOwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBm
b3IgJWQgdGhyZWFkcyB0byBqb2luXG4iLCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4
NGQ0NTc2Y2Y0NGYuLmRkZDQ5ZTFlYzg0NjI1MzdiMTdlZTU1NzEwY2EyNWJkMGIzYTExZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEz
LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9
IGZpbHRlciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAg
ICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAg
ICAgICAgICAidGVzdGIzIHRocmVhZCIsCisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9O
QU1FKCJUZXN0QjMgV29ya2VyIiwgIlRlc3RCM1dvcmtlciIpLAogICAgICAgICAgICAgICAgIFsm
XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCmluZGV4IGZjMzNjNmZjZmFkZjg5MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1
ZTEuLjZmYWIzYTc3MDhhM2EzZDA1OGJjNjAzYmRmZWVhMmI2NDdjNTVmYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0xNTY2MSw3ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNv
bnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RG
OjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBl
bmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0
aHJlYWQiLAorICAgICAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiVGVzdEIzIFdvcmtl
ciIsICJUZXN0QjNXb3JrZXIiKSwKICAgICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAg
ICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U2hh
cmVkVGFzazx2b2lkKCk+PiB0YXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRleCBhNGUyMWY5ZmEzY2Q0NzIxZWEyNjc1ZTA2ZTRkNTMw
YzViYTk1YjM1Li43NTljZjM0NTY0YzQ3ZjE1YTMyNWRkYzI4NWIwZTliYTQ3Yjc0ZWRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcApAQCAt
NDcsNyArNDcsNyBAQCB2b2lkIGluaXRpYWxpemVTdXBlclNhbXBsZXIoKQogICAgICAgICByZXR1
cm47CiAKICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJKU0MgU3VwZXIgU2FtcGxlciIsCisg
ICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiU3VwZXIgU2FtcGxlciIsICJTdXBlclNhbXBsZXIi
KSwKICAgICAgICAgW10gKCkgewogICAgICAgICAgICAgY29uc3QgaW50IHNsZWVwUXVhbnR1bSA9
IDEwOwogICAgICAgICAgICAgY29uc3QgaW50IHByaW50aW5nUGVyaW9kID0gMTAwMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggNWUzMzhmMDEyYjg5OTRk
OTg2NTQ0NmU4NzgxNDc4NGQ4ZTg1NTA3Yi4uNDM5NTdiOGE1YmFjZmQ4ZGYzOThkMDcyZDg3N2Yx
YTUwZTFjZmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAK
QEAgLTQwLDggKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFz
cyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGlj
OgotICAgIFRocmVhZEJvZHkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29y
a2xpc3QsIFRocmVhZERhdGEmIGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5KQotICAgICAg
ICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbikKKyAgICBUaHJlYWRC
b2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWRE
YXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSwgVGhyZWFkTmFtZSB0aHJlYWROYW1l
KQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbiwgdGhy
ZWFkTmFtZSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAsIG1fZGF0
YShkYXRhKQogICAgICAgICAsIG1fcmVsYXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9yaXR5KQpA
QCAtMTczLDggKzE3Myw4IEBAIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1
dG9tYXRpY1RocmVhZCB7CiAgICAgUmVmUHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdvcmtsaXN0
OjpXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFtZSh0b0NT
dHJpbmcod29ya2xpc3ROYW1lLCAiIFdvcmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpXb3JrbGlz
dChUaHJlYWROYW1lIHRocmVhZE5hbWUpCisgICAgOiBtX3RocmVhZE5hbWUodGhyZWFkTmFtZSkK
ICAgICAsIG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQo
QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fbnVtYmVyT2ZBY3Rp
dmVUaHJlYWRzKDApCkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hD
cmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQog
ICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51
bWJlck9mVGhyZWFkczsgaS0tOykgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0
YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7Ci0gICAgICAgIGRh
dGEtPm1fdGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJvZHkobG9ja2VyLCAqdGhpcywgKmRh
dGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1ZWQsIHJlbGF0aXZlUHJpb3JpdHkpKTsKKyAgICAgICAg
ZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAq
ZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSwgbV90aHJlYWRO
YW1lKSk7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7CiAgICAgfQog
fQogCi1SZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUs
IHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCitSZWY8V29y
a2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoVGhyZWFkTmFtZSB0aHJlYWROYW1lLCB1bnNpZ25lZCBu
dW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogewotICAgIFJlZjxXb3JrbGlz
dD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBS
ZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3QodGhyZWFkTmFtZSkp
OwogICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVBy
aW9yaXR5KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNTE2LDcgKzUxNiw3IEBAIFdvcmts
aXN0JiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNl
KGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2Jh
bERGR1dvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6
Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRG
R0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmts
aXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJERkcgQ29tcGlsZXIg
V29ya2VyIiwgIkRGR0NvbXBpbGVyIiksIE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJl
YWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFr
UmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAg
LTUzMiw3ICs1MzIsNyBAQCBXb3JrbGlzdCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewog
ICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxh
ZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywg
W10gewotICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJG
VEwgV29ya2xpc3QiLCBPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRp
b25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAg
ICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKENSRUFURV9USFJF
QURfTkFNRSgiRlRMIENvbXBpbGVyIFdvcmtlciIsICJGVExDb21waWxlciIpLCBPcHRpb25zOjpu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExD
b21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiAqdGhlR2xv
YmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgK
aW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2ZmMzMjIxOWIwZmE0NGY2ZjExYzdmOC4uYzEwNDcyN2Y5
YmIwZjExOGMwOWI5ZWZiNzNiZDdkMzQ4NzVlMDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAKLSAgICBz
dGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVk
IG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsKKyAgICBzdGF0aWMg
UmVmPFdvcmtsaXN0PiBjcmVhdGUoVGhyZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRz
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNz
UmVmUHRyPFBsYW4+KTsKICAgICAKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgV29ya2xpc3QgOiBw
dWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYp
IGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFt
ZSk7CisgICAgV29ya2xpc3QoVGhyZWFkTmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCk7CiAgICAgCiAgICAgY2xhc3MgVGhyZWFkQm9k
eTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrbGlzdD4gewogCiAgICAgdm9pZCBkdW1wKGNvbnN0IExvY2tIb2xkZXImLCBQcmludFN0cmVh
bSYpIGNvbnN0OwogICAgIAotICAgIENTdHJpbmcgbV90aHJlYWROYW1lOworICAgIFRocmVhZE5h
bWUgbV90aHJlYWROYW1lOwogICAgIAogICAgIC8vIFVzZWQgdG8gaW5mb3JtIHRoZSB0aHJlYWQg
YWJvdXQgd2hhdCB3b3JrIHRoZXJlIGlzIGxlZnQgdG8gZG8uCiAgICAgRGVxdWU8UmVmUHRyPFBs
YW4+PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxl
ci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4IDc4OGE2YzM2MjM2OWM1OGRhZDI5YTYwYTM4NzEwNDRl
NDY0ZWQzMDUuLmE4YWViODRkZjRiZjllZGRmNTQ4ZGRlZjIzNDk2ZTBiZTg2OTlmZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5j
cHAKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVyIHsKIHB1
YmxpYzoKICAgICBBc3luY2hyb25vdXNEaXNhc3NlbWJsZXIoKQogICAgIHsKLSAgICAgICAgY3Jl
YXRlVGhyZWFkKCJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgWyZdICgpIHsgcnVuKCk7IH0p
OworICAgICAgICBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJBc3luY2hyb25vdXMg
RGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlzYXNtIiksIFsmXSAoKSB7IHJ1bigpOyB9KTsKICAgICB9
CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+
IHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDJjMjhkNDM1YWVlNmMw
ODA5ZDQwYjRlY2YwYWUxYmI2ZjRhYjJmYTUuLjlkYjU4MzY5YjJlNGE0OGM0ZjBlYzZiNmY1MWQ4
YWUxYWRjZjRkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzksNyAr
MjM5LDcgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXIm
IGxvY2tlciwgSGVhcCYgaGVhcCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBo
ZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbikKKyAgICAgICAgOiBBdXRv
bWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRp
dGlvbiwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJIZWFwIENvbGxlY3RvciIsICJIZWFwQ29sbGVjdG9y
IikpCiAgICAgICAgICwgbV9oZWFwKGhlYXApCiAgICAgewogICAgIH0KQEAgLTIxNjQsNyArMjE2
NCw3IEBAIHZvaWQgSGVhcDo6bm90aWZ5SXNTYWZlVG9Db2xsZWN0KCkKICAgICAKICAgICBpZiAo
T3B0aW9uczo6Y29sbGVjdENvbnRpbnVvdXNseSgpKSB7CiAgICAgICAgIG1fY29sbGVjdENvbnRp
bnVvdXNseVRocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJKU0MgREVCVUcgQ29u
dGludW91cyBHQyIsCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkpTQyBERUJVRyBD
b250aW51b3VzIEdDIiwgIkNvbnRpbnVvdXNHQyIpLAogICAgICAgICAgICAgW3RoaXNdICgpIHsK
ICAgICAgICAgICAgICAgICBNb25vdG9uaWNUaW1lIGluaXRpYWxUaW1lID0gTW9ub3RvbmljVGlt
ZTo6bm93KCk7CiAgICAgICAgICAgICAgICAgU2Vjb25kcyBwZXJpb2QgPSBTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3VzbHlQZXJpb2RNUygpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAppbmRleCA3OTFh
YTc1NmY5NWUxY2I1NjQwZmMzM2I0NTY3NzQ1MWVlMWEyNTM2Li42ZTk2YzRjYzM3MzEwYWQ5YzU4
N2FiMTcxOGUwNDgzN2NiZTRmOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcEhlbHBlclBvb2wuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFBhcmFsbGVsSGVscGVyUG9vbCYg
aGVhcEhlbHBlclBvb2woKQogICAgIHN0ZDo6Y2FsbF9vbmNlKAogICAgICAgICBpbml0aWFsaXpl
SGVscGVyUG9vbE9uY2VGbGFnLAogICAgICAgICBbXSB7Ci0gICAgICAgICAgICBoZWxwZXJQb29s
ID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5l
dyBQYXJhbGxlbEhlbHBlclBvb2woQ1JFQVRFX1RIUkVBRF9OQU1FKCJIZWFwIEhlbHBlciIsICJI
ZWFwSGVscGVyIikpOwogICAgICAgICAgICAgaGVscGVyUG9vbC0+ZW5zdXJlVGhyZWFkcyhPcHRp
b25zOjpudW1iZXJPZkdDTWFya2VycygpIC0gMSk7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAq
aGVscGVyUG9vbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3BwCmluZGV4IDIwODBj
ZDkzNDU4MzNkMmQyMzJiOGE5Y2Q2ZjNkYmZlYmUwNWNiMjMuLjkzNzZkNDllZDg0YTkyMTZlMWM4
NzBiZDg3YmQyNzRmODYzYTk2OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSUNTdGF0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmNw
cApAQCAtNTksNyArNTksNyBAQCBBdG9taWM8SUNTdGF0cyo+IElDU3RhdHM6OnNfaW5zdGFuY2U7
CiBJQ1N0YXRzOjpJQ1N0YXRzKCkKIHsKICAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAg
ICAgICAgIkpTQyBJQ1N0YXRzIiwKKyAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJKU0MgSUNT
dGF0cyIsICJJQ1N0YXRzIiksCiAgICAgICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFm
NzdkOTYxNmFjZWQwNGNhN2Y1MWE2Li4zMzNjYTNiYTk0MzYzYmMxMjdkODgzODc1N2MwZTNkMjdj
MzdhNmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIGNsYXNzIEpJVFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEpJVFdvcmtsaXN0OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhy
ZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0
IExvY2tIb2xkZXImIGxvY2tlciwgSklUV29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRp
b24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3
b3JrbGlzdC5tX2NvbmRpdGlvbiwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJCYXNlbGluZSBKSVQgQ29t
cGlsZXIgV29ya2VyIiwgIkpJVENvbXBpbGVyIikpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3Jr
bGlzdCkKICAgICB7CiAgICAgICAgIG1fd29ya2xpc3QubV9udW1BdmFpbGFibGVUaHJlYWRzKys7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNhN2EzZjQ3MjdkMDIwMmU3MmU1YThlZWZlMDMyODc2
MjA4MjViMzMuLjNmMzRiNGZhY2NmNzEyNTI5NDEyNzY0YjlhODM0ZTA5MDYyNjk1MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCkBAIC0yNzE5LDcgKzI3MTksNyBAQCBzdGF0aWMgdm9pZCBzdGFydFRp
bWVvdXRUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgICAgICBkYXRhTG9nKCJXQVJOSU5HOiB0aW1l
b3V0IHN0cmluZyBpcyBtYWxmb3JtZWQsIGdvdCAiLCB0aW1lb3V0U3RyaW5nLAogICAgICAgICAg
ICAgICAgICIgYnV0IGV4cGVjdGVkIGEgbnVtYmVyLiBOb3QgdXNpbmcgYSB0aW1lb3V0LlxuIik7
CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY3JlYXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRN
YWluLCAwLCAianNjIFRpbWVvdXQgVGhyZWFkIik7CisgICAgICAgICAgICBjcmVhdGVUaHJlYWQo
dGltZW91dFRocmVhZE1haW4sIDAsIENSRUFURV9USFJFQURfTkFNRSgiSlNDIFRpbWVvdXQgVGhy
ZWFkIiwgIlRpbWVvdXRUaHJlYWQiKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDcwMzRkYzY5NmI5
ZTExNDkyODhjN2JiOWVkZGVmZTJhYjE2YjE3Y2EuLmZmMDM3YWZjOTRhZGQ3ZTExNWFmYWM1ZTdi
OGRhMDZiOGE4NzQzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTYW1wbGluZ1By
b2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFNhbXBsaW5nUHJvZmlsZXI+IHByb2ZpbGVyID0gdGhp
czsKLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoImpzYy5zYW1wbGluZy1w
cm9maWxlci50aHJlYWQiLCBbcHJvZmlsZXJdIHsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBj
cmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJTYW1wbGluZyBQcm9maWxlciIsICJTYW1w
bGluZyIpLCBbcHJvZmlsZXJdIHsKICAgICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwogICAg
IH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hk
b2cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmluZGV4
IGY2MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0OGY2MGM5NTcyNTZjYjVjMjMuLmNhYmU0YTUxYmY0MjZi
YTMyMDNiNDM5Y2RkMzlhZjY5MjU1NjMwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XYXRjaGRvZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkK
ICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9j
YWxsYmFja0RhdGEyKDApCi0gICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpz
Yy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFP
Uzo6VXRpbGl0eSkpCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRF
X1RIUkVBRF9OQU1FKCJXYXRjaGRvZyIsICJXYXRjaGRvZyIpLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGxhbi5jcHAKaW5kZXggNTk4MGI1MWU4NzQyMjIzNzU1Y2UwYzNkZjJjMTZi
MWRlOWVjOGYxMi4uMWQ4MGFiZDIyYjk4MWRjMWFlOWI0Zjk5M2ZhYTE0YTI3ZGVlNWRmMSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBA
IHZvaWQgUGxhbjo6cnVuKCkKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gdGhyZWFkczsK
ICAgICB0aHJlYWRzLnJlc2VydmVDYXBhY2l0eShudW1Xb3JrZXJUaHJlYWRzKTsKICAgICBmb3Ig
KHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtV29ya2VyVGhyZWFkczsgaSsrKQotICAgICAgICB0aHJl
YWRzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVUaHJlYWQoImpzYy53YXNtLWIzLWNvbXBpbGF0aW9u
LnRocmVhZCIsIGRvV29yaykpOworICAgICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVh
dGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXYXNtIEIzIENvbXBpbGVyIiwgIldhc21CM0Nv
bXBpbGVyIiksIGRvV29yaykpOwogCiAgICAgZG9Xb3JrKCk7IC8vIExldCB0aGUgbWFpbiB0aHJl
YWQgZG8gc29tZSB3b3JrIHRvby4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTI0YTRiN2MxMjAzYzRiZWZmZWUwNzFhNjliYWZiYzcyZjliODI5Yi4uZjNj
NjhiNTA3NjE0NWM2YmNkMTJhYzBlMDk4MzZlY2E3ZDc3ZjExMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjEsNiArMzYxLDggQEAKIAkJRkU4OTI1QjAx
RDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIu
aCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0IxNjMw
RjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovOyB9OwogCQlGRURBQ0QzRTE2MzBGODNG
MDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAq
LzsgfTsKKwkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBOUJENDVFMDYzNEIy
NEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovOyB9OworCQk4OTY2RTQxODZCOUY0RUMxQUND
MjI1Q0EgLyogVGhyZWFkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLzsg
fTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtNzM0LDYgKzczNiw4IEBACiAJCUZFODkyNUFGMUQw
MERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbmRlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQjE2
MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTdGFja1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFTQ0lJTGl0ZXJhbC5oOyBwYXRoID0gQVNDSUlM
aXRlcmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYxRTJFNURFNkVENjQ0Q0E5
MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFRocmVhZE5hbWUuaDsgcGF0aCA9IFRocmVhZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
RnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTExNyw2ICsxMTIxLDcgQEAKIAkJ
CQlFNEEwQUQzODFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmggKi8sCiAJCQkJQThBNDcz
N0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuY3BwICovLAogCQkJCUE4QTQ3MzdC
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8sCisJCQkJRjFFMkU1REU2RUQ2
NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd3RmOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyMDUsNiArMTIxMCw3IEBACiAJCQkJNzBF
Q0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8sCiAJCQkJQThB
NDczMkQxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgKi8sCiAJCQkJQThBNDczMkUx
NTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oICovLAorCQkJCTcxQTlCRDQ1RTA2MzRCMjRC
MkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGV4dDsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNTM1LDYgKzE1NDEsOCBAQAogCQkJCUE4QTQ3
NDQ2MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRTczRTAyNTE5RENCN0FCMDA1ODBENUMgLyogWFBDU1BJLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4QUQ4OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRlcmFsLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4OTY2RTQxODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3Bl
ZWRUZXN0LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3Bw
CmluZGV4IGNiMWQxMDFlODU2NTI5ZThhYWVhNmFiZjYwZWMzOGVhMGI4ZGRlNzIuLjU3OGFhOTUw
ODI0ZDJmNmFkNTIyN2EzZjVkNTNjMDE0YmQ4ZmVmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
YmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2ht
YXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgcnVuVGVz
dCgKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Db25zdW1lcnM7IGktLTspIHsKICAg
ICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAot
ICAgICAgICAgICAgIkNvbnN1bWVyIHRocmVhZCIsCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFE
X05BTUUoIkNvbnN1bWVyIiwgIkNvbnN1bWVyIiksCiAgICAgICAgICAgICBbJl0gKCkgewogICAg
ICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVz
dWx0OwpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bVByb2R1Y2VyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRo
cmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJvZHVjZXIgVGhy
ZWFkIiwKKyAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiUHJvZHVjZXIiLCAiUHJvZHVj
ZXIiKSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsraSkgewogICAgICAgICAgICAg
ICAgICAgICBib29sIG11c3ROb3RpZnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
YmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9M
b2NrRmFpcm5lc3NUZXN0LmNwcAppbmRleCBmMDgzMjFjMGY2ODgzNjUzNWQ4M2NiNmJjNzUxMTg0
OGJiNTJkOTRmLi41YjY4NTIyN2U4NDU0ODRmOTc2M2RhMDZlZmNjZjZjYjU5Y2Y3ODI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKKysrIGIv
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIHN0cnVjdCBCZW5jaG1hcmsgewogICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4
ID0gbnVtVGhyZWFkczsgdGhyZWFkSW5kZXgtLTspIHsKICAgICAgICAgICAgIGNvdW50c1t0aHJl
YWRJbmRleF0gPSAwOwogICAgICAgICAgICAgdGhyZWFkc1t0aHJlYWRJbmRleF0gPSBjcmVhdGVU
aHJlYWQoCi0gICAgICAgICAgICAgICAgIkJlbmNobWFyayBUaHJlYWQiLAorICAgICAgICAgICAg
ICAgIENSRUFURV9USFJFQURfTkFNRSgiQmVuY2htYXJrIFJ1bm5lciIsICJCZW5jaG1hcmtSdW5u
ZXIiKSwKICAgICAgICAgICAgICAgICBbJiwgdGhyZWFkSW5kZXhdICgpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtaWNyb3NlY29uZHNJbkNyaXRpY2FsU2VjdGlvbikgewogICAgICAgICAg
ICAgICAgICAgICAgICAgd2hpbGUgKGtlZXBHb2luZykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xv
Y2tTcGVlZFRlc3QuY3BwCmluZGV4IDU0NWQyZTBiMDQ4OGYzMzg5NGE1OTY4OGZkOTFiMGQzYTM4
N2NjYTIuLmE4NzdlM2Q5OTU0MWFkZGUxODUwZTQwODU0YWFmZjkzNjYyNzkyZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgc3RydWN0
IEJlbmNobWFyayB7CiAKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBu
dW1UaHJlYWRzUGVyR3JvdXA7IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgdGhy
ZWFkc1t0aHJlYWRHcm91cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhd
ID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICAgICAiQmVuY2htYXJrIHRocmVhZCIs
CisgICAgICAgICAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiQmVuY2htYXJrIFJ1bm5l
ciIsICJCZW5jaG1hcmtSdW5uZXIiKSwKICAgICAgICAgICAgICAgICAgICAgW3RocmVhZEdyb3Vw
SW5kZXgsICZsb2NrcywgJndvcmRzLCAma2VlcEdvaW5nLCAmbnVtSXRlcmF0aW9uc0xvY2ssICZu
dW1JdGVyYXRpb25zXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9jYWxX
b3JkID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2YWx1ZSA9IDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIvU291cmNlL1dURi93
dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCA0ZDhmYjg0ODlmOTljYjhmNjdlN2NjMmQxM2Jm
NDE1NWVlODdlNWM1Li5jNjRjNjA4NmQ1OWU5OWFlNTE3YTdkNDFmY2Q2OWZhYTBkNTI5ODlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTk4LDkgKzk4LDEwIEBAIGJvb2wgQXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjb250YWlucyhjb25zdCBMb2NrSG9sZGVyJiwgQXV0b21h
dGljVGhyZWFkKiB0aHJlCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwog
fQogCi1BdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBMb2NrSG9sZGVyJiBs
b2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBj
b25kaXRpb24pCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBMb2NrSG9s
ZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uPiBjb25kaXRpb24sIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKICAgICA6IG1fbG9jayhsb2Nr
KQogICAgICwgbV9jb25kaXRpb24oY29uZGl0aW9uKQorICAgICwgbV9uYW1lKHRocmVhZE5hbWUp
CiB7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coUmF3UG9pbnRlcih0aGlzKSwg
IjogQWxsb2NhdGVkIEF1dG9tYXRpY1RocmVhZC5cbiIpOwpAQCAtMTU2LDcgKzE1Nyw3IEBAIHZv
aWQgQXV0b21hdGljVGhyZWFkOjpzdGFydChjb25zdCBMb2NrSG9sZGVyJikKICAgICBtX2hhc1Vu
ZGVybHlpbmdUaHJlYWQgPSB0cnVlOwogICAgIAogICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFk
ID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAiV1RGOjpBdXRvbWF0aWNUaHJlYWQiLAorICAgICAg
ICBtX25hbWUsCiAgICAgICAgIFs9XSAoKSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6IFJ1bm5pbmcgYXV0b21h
dGljIHRocmVhZCFcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAppbmRleCA2OTI2ZjYyMzY1
M2Q0YzU5MjEzNzBjYzRkOWNlYzhkMDZjMzNlZGE4Li43MTlmY2JkZGQ3MGNiY2NkNGRlOWZhYjk0
NWQ3YjNhODAxOWU5ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJl
YWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaApAQCAtMTMwLDcgKzEz
MCw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBdXRvbWF0aWNUaHJlYWQgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21hdGljCiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBs
b2dpY2FsbHkgY3JlYXRlcyB0aGUgdGhyZWFkLCBidXQgaW4gcmVhbGl0eSB0aGUgdGhyZWFkIHdv
bid0IGJlIGNyZWF0ZWQgdW50aWwgc29tZW9uZQogICAgIC8vIGNhbGxzIEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6bm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuCi0gICAgQXV0b21hdGljVGhy
ZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9jaz4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+KTsKKyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYsIEJveDxM
b2NrPiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4sIFRocmVhZE5hbWUpOwogICAg
IAogICAgIC8vIFRvIHVuZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29ya1Jlc3VsdCwgaW1hZ2lu
ZSB0aGF0IHBvbGwoKSBhbmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQgbGlrZQogICAgIC8vIHNv
OgpAQCAtMTgyLDYgKzE4Miw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBdXRvbWF0aWNU
aHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21hdGljCiAgICAgYm9vbCBt
X2hhc1VuZGVybHlpbmdUaHJlYWQgeyBmYWxzZSB9OwogICAgIENvbmRpdGlvbiBtX3dhaXRDb25k
aXRpb247CiAgICAgQ29uZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9uOworICAgIFRocmVhZE5h
bWUgbV9uYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxI
ZWxwZXJQb29sLmNwcAppbmRleCA5NDkyZmRkZGYxOTY0OWQ2NWI1MTBiMWU0M2MwMmFhOTUxNGMw
NzMxLi4yYzNiZjA3NDA4OGUyOWE5OTE4ZjI5ZmFmZjk0Y2QwYzViNjJkMTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAgLTEyMyw5ICsxMjMsMTAgQEAgdm9pZCBQYXJh
bGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gdGFz
aykKICAgICB9CiB9CiAKLVBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKCkK
K1BhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKFRocmVhZE5hbWUgdGhyZWFk
TmFtZSkKICAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZh
aWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCisgICAg
LCBtX25hbWUodGhyZWFkTmFtZSkKIHsKIH0KIApAQCAtMTcxLDcgKzE3Miw3IEBAIHZvaWQgUGFy
YWxsZWxIZWxwZXJQb29sOjpkb1NvbWVIZWxwaW5nKCkKIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9v
bDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFk
KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgUGFyYWxsZWxIZWxwZXJQb29sJiBwb29sKQotICAg
ICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2
YWlsYWJsZUNvbmRpdGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29s
Lm1fbG9jaywgcG9vbC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24sIHBvb2wubmFtZSgpKQogICAg
ICAgICAsIG1fcG9vbChwb29sKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVy
UG9vbC5oCmluZGV4IDgxNjM1YmI3ODE5MDAzYWM5ZDdmNGE2ODFjYzU1NDRlOTBkYTdkOTEuLmVk
YzFhZWUxYTI0YWQ3YjgwNDY1MjIxNTVhZjY0YmEwNGRiY2JiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5oCkBAIC0xNzksNyArMTc5LDcgQEAgY2xhc3MgUGFyYWxsZWxIZWxwZXJD
bGllbnQgewogCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiBwdWJsaWM6Ci0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBQYXJh
bGxlbEhlbHBlclBvb2woVGhyZWFkTmFtZSk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIH5QYXJh
bGxlbEhlbHBlclBvb2woKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGVuc3VyZVRo
cmVhZHModW5zaWduZWQgbnVtVGhyZWFkcyk7CkBAIC0xODgsNiArMTg4LDggQEAgY2xhc3MgUGFy
YWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVs
cGVyUG9vbD4gewogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRvU29tZUhlbHBp
bmcoKTsKIAorICAgIFRocmVhZE5hbWUgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQor
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudDsKICAgICBj
bGFzcyBUaHJlYWQ7CkBAIC0yMDcsNiArMjA5LDcgQEAgY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29s
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogICAg
IAogICAgIFZlY3RvcjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1fY2xpZW50czsKICAgICBWZWN0
b3I8UmVmUHRyPEF1dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAgICBUaHJlYWROYW1lIG1f
bmFtZTsKICAgICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8vIFRoaXMgY2FuIGJlIGxh
cmdlciB0aGFuIG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFydCB0aHJlYWRzIG9ubHkg
b25jZSB0aGVyZSBpcyB3b3JrLgogICAgIGJvb2wgbV9pc0R5aW5nIHsgZmFsc2UgfTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmluZGV4IDQwMjNmNDNlNmYyMGEzOGUx
MDNlN2M5YTJlNGYwZjdlMDYxMDU3MTQuLmM4MWE2ODI1YzVlMjQxM2Q1NWYwNzk4N2VlNGRhODI3
N2Y1ZGVjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCkBAIC05NCw3
ICs5NCw3IEBAIGJvb2wgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9j
a0ZvcihQYXJhbGxlbEVudmlyb25tZW50KiBwYXJlbnQpCiAgICAgfQogCiAgICAgaWYgKCFtX3Ro
cmVhZElEKQotICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKCZQYXJhbGxlbEVudmly
b25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQsIHRoaXMsICJQYXJhbGxlbCB3b3Jr
ZXIiKTsKKyAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgmUGFyYWxsZWxFbnZpcm9u
bWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCBDUkVBVEVfVEhSRUFEX05B
TUUoIlBhcmFsbGVsIFdvcmtlciIsICJQYXJhbGxlbFdvcmtlciIpKTsKIAogICAgIGlmIChtX3Ro
cmVhZElEKQogICAgICAgICBtX3BhcmVudCA9IHBhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1RocmVhZE5hbWUuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNjdiNDI1NmM3OTg4NjQ0OGQ5YjFiYjQ4YjBmYzIwMjdjNGMyYjAyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkTmFtZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9QbGF0
Zm9ybS5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgVGhyZWFkTmFtZSB7CitwdWJsaWM6
CisgICAgZW51bSBJbml0aWFsaXplVGFnIHsgSW5pdGlhbGl6ZSB9OworICAgIHRlbXBsYXRlPHVu
c2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KKyAgICBleHBsaWNpdCBjb25zdGV4cHIgVGhyZWFkTmFt
ZShJbml0aWFsaXplVGFnLCBjb25zdCBjaGFyICgmbmFtZSlbY2hhcmFjdGVyc0NvdW50XSkKKyAg
ICAgICAgOiBtX25hbWUobmFtZSkKKyAgICB7CisjaWYgT1MoTElOVVgpCisgICAgICAgIHN0YXRp
Y19hc3NlcnQoY2hhcmFjdGVyc0NvdW50IDw9IDE2LCAiIik7CisjZWxpZiBPUyhXSU5ET1dTKQor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KGNoYXJhY3RlcnNDb3VudCA8PSAzMiwgIiIpOworI2VuZGlm
CisgICAgfQorCisgICAgY29uc3RleHByIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX25hbWU7CisgICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0
IGNoYXIqIG1fbmFtZTsKK307CisKKyNpZiBPUyhMSU5VWCkKKyNkZWZpbmUgQ1JFQVRFX1RIUkVB
RF9OQU1FKGxvbmdOYW1lLCBzaG9ydE5hbWUpIFdURjo6VGhyZWFkTmFtZSB7IFdURjo6VGhyZWFk
TmFtZTo6SW5pdGlhbGl6ZSwgc2hvcnROYW1lIH0KKyNlbGlmIE9TKFdJTkRPV1MpCisjZGVmaW5l
IENSRUFURV9USFJFQURfTkFNRShsb25nTmFtZSwgc2hvcnROYW1lKSBXVEY6OlRocmVhZE5hbWUg
eyBXVEY6OlRocmVhZE5hbWU6OkluaXRpYWxpemUsICJXZWJLaXQ6ICIgIyBzaG9ydE5hbWUgfQor
I2Vsc2UKKyNkZWZpbmUgQ1JFQVRFX1RIUkVBRF9OQU1FKGxvbmdOYW1lLCBzaG9ydE5hbWUpIFdU
Rjo6VGhyZWFkTmFtZSB7IFdURjo6VGhyZWFkTmFtZTo6SW5pdGlhbGl6ZSwgIldlYktpdDogIiAj
IGxvbmdOYW1lIH0KKyNlbmRpZgorCit9CisKK3VzaW5nIFdURjo6VGhyZWFkTmFtZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmcuY3BwCmluZGV4IDQwY2UzOWE0NWQzNTQwYTIzZmQ1ODc4Y2Y5MDY3ZWFmZDc2ODEzM2Mu
LjEzZGY1MzJjMzk0YTMxMzMzNTRhNTQzMGI4MDQ4YzAyMmFhODMwYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
LmNwcApAQCAtMzYsMzggKzM2LDExIEBAIG5hbWVzcGFjZSBXVEYgewogc3RydWN0IE5ld1RocmVh
ZENvbnRleHQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNv
bnN0IGNoYXIqIG5hbWU7CisgICAgVGhyZWFkTmFtZSBuYW1lOwogICAgIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBlbnRyeVBvaW50OwogICAgIE11dGV4IGNyZWF0aW9uTXV0ZXg7CiB9OwogCi1jb25z
dCBjaGFyKiBub3JtYWxpemVUaHJlYWROYW1lKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCi17Ci0j
aWYgSEFWRShQVEhSRUFEX1NFVE5BTUVfTlApCi0gICAgcmV0dXJuIHRocmVhZE5hbWU7Ci0jZWxz
ZQotICAgIC8vIFRoaXMgbmFtZSBjYW4gYmUgY29tLmFwcGxlLldlYktpdC5Qcm9jZXNzTGF1bmNo
ZXIgb3IgY29tLmFwcGxlLkNvcmVJUEMuUmVjZWl2ZVF1ZXVlLgotICAgIC8vIFdlIGFyZSB1c2lu
ZyB0aG9zZSBuYW1lcyBmb3IgdGhlIHRocmVhZCBuYW1lLCBidXQgYm90aCBhcmUgbG9uZ2VyIHRo
YW4gdGhlIGxpbWl0IG9mCi0gICAgLy8gdGhlIHBsYXRmb3JtIHRocmVhZCBuYW1lIGxlbmd0aCwg
MzIgZm9yIFdpbmRvd3MgYW5kIDE2IGZvciBMaW51eC4KLSAgICBTdHJpbmdWaWV3IHJlc3VsdCh0
aHJlYWROYW1lKTsKLSAgICBzaXplX3Qgc2l6ZSA9IHJlc3VsdC5yZXZlcnNlRmluZCgnLicpOwot
ICAgIGlmIChzaXplICE9IG5vdEZvdW5kKQotICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3Ry
aW5nKHNpemUgKyAxKTsKLQotI2lmIE9TKFdJTkRPV1MpCi0gICAgY29uc3RleHByIGNvbnN0IHNp
emVfdCBrVmlzdWFsU3R1ZGlvVGhyZWFkTmFtZUxpbWl0ID0gMzIgLSAxOwotICAgIGlmIChyZXN1
bHQubGVuZ3RoKCkgPiBrVmlzdWFsU3R1ZGlvVGhyZWFkTmFtZUxpbWl0KQotICAgICAgICByZXN1
bHQgPSByZXN1bHQucmlnaHQoa1Zpc3VhbFN0dWRpb1RocmVhZE5hbWVMaW1pdCk7Ci0jZWxpZiBP
UyhMSU5VWCkKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtMaW51eFRocmVhZE5hbWVMaW1p
dCA9IDE2IC0gMTsKLSAgICBpZiAocmVzdWx0Lmxlbmd0aCgpID4ga0xpbnV4VGhyZWFkTmFtZUxp
bWl0KQotICAgICAgICByZXN1bHQgPSByZXN1bHQucmlnaHQoa0xpbnV4VGhyZWFkTmFtZUxpbWl0
KTsKLSNlbmRpZgotICAgIEFTU0VSVChyZXN1bHQuY2hhcmFjdGVyczgoKVtyZXN1bHQubGVuZ3Ro
KCldID09ICdcMCcpOwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihy
ZXN1bHQuY2hhcmFjdGVyczgoKSk7Ci0jZW5kaWYKLX0KLQogc3RhdGljIHZvaWQgdGhyZWFkRW50
cnlQb2ludCh2b2lkKiBjb250ZXh0RGF0YSkKIHsKICAgICBOZXdUaHJlYWRDb250ZXh0KiBjb250
ZXh0ID0gc3RhdGljX2Nhc3Q8TmV3VGhyZWFkQ29udGV4dCo+KGNvbnRleHREYXRhKTsKQEAgLTg4
LDcgKzYxLDcgQEAgc3RhdGljIHZvaWQgdGhyZWFkRW50cnlQb2ludCh2b2lkKiBjb250ZXh0RGF0
YSkKICAgICBlbnRyeVBvaW50KCk7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFk
KGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50KQorVGhy
ZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZW50cnlQb2ludCkKIHsKICAgICBOZXdUaHJlYWRDb250ZXh0KiBjb250ZXh0ID0g
bmV3IE5ld1RocmVhZENvbnRleHQgeyBuYW1lLCBXVEZNb3ZlKGVudHJ5UG9pbnQpLCB7IH0gfTsK
IApAQCAtOTgsNyArNzEsNyBAQCBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChjb25zdCBj
aGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50cnlQb2ludAogICAgIHJldHVybiBj
cmVhdGVUaHJlYWRJbnRlcm5hbCh0aHJlYWRFbnRyeVBvaW50LCBjb250ZXh0LCBuYW1lKTsKIH0K
IAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2lu
dCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciogbmFtZSkKK1RocmVhZElkZW50aWZpZXIgY3JlYXRl
VGhyZWFkKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUg
bmFtZSkKIHsKICAgICByZXR1cm4gY3JlYXRlVGhyZWFkKG5hbWUsIFtlbnRyeVBvaW50LCBkYXRh
XSB7CiAgICAgICAgIGVudHJ5UG9pbnQoZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCmluZGV4IDMwNTBkZDhk
Zjg0OGI2ZTVhMDljOGU3M2FhYWNmNTQwN2Y4YTRiNjUuLmRjM2FlYWI3OTI3MGFiYTM1MmY2NTk4
YzY4MDBmODU3MWE4Y2NmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgogCkBAIC01NSw3ICs1Niw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKIAogLy8gUmV0dXJucyAwIGlmIHRocmVhZCBjcmVhdGlvbiBm
YWlsZWQuCiAvLyBUaGUgdGhyZWFkIG5hbWUgbXVzdCBiZSBhIGxpdGVyYWwgc2luY2Ugb24gc29t
ZSBwbGF0Zm9ybXMgaXQncyBwYXNzZWQgaW4gdG8gdGhlIHRocmVhZC4KLVdURl9FWFBPUlRfUFJJ
VkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChjb25zdCBjaGFyKiB0aHJlYWROYW1l
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOworV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50
aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiAK
IC8vIE1hcmsgdGhlIGN1cnJlbnQgdGhyZWFkIGFzIHJlcXVpcmluZyBVSSByZXNwb25zaXZlbmVz
cy4KIC8vIHJlbGF0aXZlUHJpb3JpdHkgaXMgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgWy0xNSwgMF0g
d2hlcmUgYSBsb3dlciB2YWx1ZSBpbmRpY2F0ZXMgYSBsb3dlciBwcmlvcml0eS4KQEAgLTY4LDE2
ICs2OSwxNCBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgaW50IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9u
KFRocmVhZElkZW50aWZpZXIpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGV0YWNoVGhyZWFk
KFRocmVhZElkZW50aWZpZXIpOwogCiAvLyBEZXByZWNhdGVkIGZ1bmN0aW9uLXBvaW50ZXItYmFz
ZWQgdGhyZWFkIGNyZWF0aW9uLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIg
Y3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFt
ZSk7CitXVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhy
ZWFkRnVuY3Rpb24sIHZvaWQqLCBUaHJlYWROYW1lKTsKIAogLy8gSW50ZXJuYWwgcGxhdGZvcm0t
c3BlY2lmaWMgY3JlYXRlVGhyZWFkIGltcGxlbWVudGF0aW9uLgotVGhyZWFkSWRlbnRpZmllciBj
cmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIGNvbnN0IGNoYXIqIHRo
cmVhZE5hbWUpOworVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRG
dW5jdGlvbiwgdm9pZCosIFRocmVhZE5hbWUpOwogCiAvLyBDYWxsZWQgaW4gdGhlIHRocmVhZCBk
dXJpbmcgaW5pdGlhbGl6YXRpb24uCiAvLyBIZWxwZnVsIGZvciBwbGF0Zm9ybXMgd2hlcmUgdGhl
IHRocmVhZCBuYW1lIG11c3QgYmUgc2V0IGZyb20gd2l0aGluIHRoZSB0aHJlYWQuCi12b2lkIGlu
aXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSk7Ci0K
LWNvbnN0IGNoYXIqIG5vcm1hbGl6ZVRocmVhZE5hbWUoY29uc3QgY2hhciogdGhyZWFkTmFtZSk7
Cit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoVGhyZWFkTmFtZSk7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQ
dGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKaW5kZXgg
MGY5ZjJmYzcyYzlkM2U4OTBjNzNhYWRhNzM5MTUwNGE5MWE3NDI4MC4uMzY0MjQ5ZjAzOGJjMzM2
NzY5ZjM1OWU5N2ZlZTQ1NTEyNTQ1YjMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRz
LmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyB2b2lkKiB3dGZUaHJlYWRFbnRyeVBvaW50
KHZvaWQqIHBhcmFtKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1UaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRh
dGEsIGNvbnN0IGNoYXIqKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChU
aHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBUaHJlYWROYW1lKQogewogICAg
IGF1dG8gaW52b2NhdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRnVuY3Rpb25JbnZvY2F0
aW9uPihlbnRyeVBvaW50LCBkYXRhKTsKICAgICBwdGhyZWFkX3QgdGhyZWFkSGFuZGxlOwpAQCAt
MTkyLDEyICsxOTIsMTIgQEAgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChU
aHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb24KICAgICByZXR1cm4gZXN0
YWJsaXNoSWRlbnRpZmllckZvclB0aHJlYWRIYW5kbGUodGhyZWFkSGFuZGxlKTsKIH0KIAotdm9p
ZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUp
Cit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoVGhyZWFkTmFtZSB0aHJlYWRO
YW1lKQogewogI2lmIEhBVkUoUFRIUkVBRF9TRVROQU1FX05QKQotICAgIHB0aHJlYWRfc2V0bmFt
ZV9ucChub3JtYWxpemVUaHJlYWROYW1lKHRocmVhZE5hbWUpKTsKKyAgICBwdGhyZWFkX3NldG5h
bWVfbnAodGhyZWFkTmFtZSk7CiAjZWxpZiBPUyhMSU5VWCkKLSAgICBwcmN0bChQUl9TRVRfTkFN
RSwgbm9ybWFsaXplVGhyZWFkTmFtZSh0aHJlYWROYW1lKSk7CisgICAgcHJjdGwoUFJfU0VUX05B
TUUsIHRocmVhZE5hbWUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odGhyZWFkTmFtZSk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IDU0YjQzZWZlZjM1Y2Q2NjMyYTcwMDgx
NTA3YTViMzc5OWRlZmI2ZmIuLmVjNjNlOGM0ZGQ5N2RlZDc5MmM1YmViYjkyMjhjMWQyZGNkNWM4
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtMTIxLDE1ICsxMjEsMTUgQEAgdHlwZWRl
ZiBzdHJ1Y3QgdGFnVEhSRUFETkFNRV9JTkZPIHsKIH0gVEhSRUFETkFNRV9JTkZPOwogI3ByYWdt
YSBwYWNrKHBvcCkKIAotdm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKGNvbnN0
IGNoYXIqIHN6VGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5h
bChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgQ09NUElMRVIoTUlOR1cpCiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aHJlYWQgbmFtZSBzZXR0aW5nIHdpdGggTWluZ1cuCi0gICAgVU5V
U0VEX1BBUkFNKHN6VGhyZWFkTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5hbWUpOwog
I2Vsc2UKICAgICBUSFJFQUROQU1FX0lORk8gaW5mbzsKICAgICBpbmZvLmR3VHlwZSA9IDB4MTAw
MDsKLSAgICBpbmZvLnN6TmFtZSA9IG5vcm1hbGl6ZVRocmVhZE5hbWUoc3pUaHJlYWROYW1lKTsK
KyAgICBpbmZvLnN6TmFtZSA9IHRocmVhZE5hbWU7CiAgICAgaW5mby5kd1RocmVhZElEID0gR2V0
Q3VycmVudFRocmVhZElkKCk7CiAgICAgaW5mby5kd0ZsYWdzID0gMDsKIApAQCAtMTk5LDcgKzE5
OSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBfX3N0ZGNhbGwgd3RmVGhyZWFkRW50cnlQb2ludCh2b2lk
KiBwYXJhbSkKICAgICByZXR1cm4gMDsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJl
YWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBj
aGFyKiB0aHJlYWROYW1lKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChU
aHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBUaHJlYWROYW1lIHRocmVhZE5h
bWUpCiB7CiAgICAgdW5zaWduZWQgdGhyZWFkSWRlbnRpZmllciA9IDA7CiAgICAgVGhyZWFkSWRl
bnRpZmllciB0aHJlYWRJRCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVl
dWUuY3BwIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcAppbmRleCBiMmEwYTc5ZjRhYjVh
YWMyODliMTY5ZjkyYmJjMWE4MDU4NTJjYTMyLi4yMzNkMzgwNDU1ZDc2ZmVhNDkzNGJhMGZmOWNj
MDViZDg1ODZkZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKQEAgLTM5LDEyICszOSwxMiBAQAogCiBu
YW1lc3BhY2UgV1RGIHsKIAotUmVmPFdvcmtRdWV1ZT4gV29ya1F1ZXVlOjpjcmVhdGUoY29uc3Qg
Y2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQorUmVmPFdvcmtRdWV1ZT4gV29ya1F1ZXVl
OjpjcmVhdGUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV29ya1F1ZXVlKG5hbWUsIHR5cGUsIHFvcykpOwogfQogCi1Xb3Jr
UXVldWU6OldvcmtRdWV1ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCitX
b3JrUXVldWU6OldvcmtRdWV1ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykK
IHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUobmFtZSwgdHlwZSwgcW9zKTsKIH0KQEAgLTc0LDcg
Kzc0LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9u
cywgY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkIChzaXoKIAogICAgICAgICAgICAgbV93b3JrZXJz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhyZWFkQ291bnQpOwogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHRocmVhZENvdW50OyArK2kpIHsKLSAgICAgICAgICAgICAgICBt
X3dvcmtlcnMuYXBwZW5kKGNyZWF0ZVRocmVhZChTdHJpbmc6OmZvcm1hdCgiVGhyZWFkUG9vbCBX
b3JrZXIgJXUiLCBpKS51dGY4KCkuZGF0YSgpLCBbdGhpc10geworICAgICAgICAgICAgICAgIG1f
d29ya2Vycy5hcHBlbmQoY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiVGhyZWFkUG9v
bCBDb25jdXJyZW50IEFwcGx5IFdvcmtlciIsICJDb25jdXJyZW50QXBwbHkiKSwgW3RoaXNdIHsK
ICAgICAgICAgICAgICAgICAgICAgdGhyZWFkQm9keSgpOwogICAgICAgICAgICAgICAgIH0pKTsK
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oIGIv
U291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKaW5kZXggZDkxODRiNDgyN2JmMTBiYTM4YTQ4MTQ4
MDViMmYzMzY0NmQ3NmUwMy4uNDI3MjRhZjY4M2RkYTE3NmE2ZDZlMDZjNDliNDhmNjg5M2RiNDky
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvV29ya1F1ZXVlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbkRpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWROYW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogCiAjaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCkBAIC02Nyw3ICs2OCw3
IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewog
ICAgICAgICBCYWNrZ3JvdW5kCiAgICAgfTsKIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0
aWMgUmVmPFdvcmtRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgPSBUeXBlOjpT
ZXJpYWwsIFFPUyA9IFFPUzo6RGVmYXVsdCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoVGhyZWFkTmFtZSwgVHlwZSA9IFR5cGU6OlNlcmlhbCwg
UU9TID0gUU9TOjpEZWZhdWx0KTsKICAgICB2aXJ0dWFsIH5Xb3JrUXVldWUoKTsKIAogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQgKCk+JiYpIG92ZXJy
aWRlOwpAQCAtODUsOSArODYsOSBAQCBjbGFzcyBXb3JrUXVldWUgZmluYWwgOiBwdWJsaWMgRnVu
Y3Rpb25EaXNwYXRjaGVyIHsKICNlbmRpZgogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFdvcmtR
dWV1ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOworICAgIGV4cGxpY2l0IFdvcmtRdWV1
ZShUaHJlYWROYW1lLCBUeXBlLCBRT1MpOwogCi0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUo
Y29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKTsKKyAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZShUaHJlYWROYW1lLCBUeXBlLCBRT1MpOwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7
CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwIGIvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1
ZXVlQ29jb2EuY3BwCmluZGV4IDhlZGJmMjNjNTU4ODg4Mjk2YzE0YzhjOWQwZWUwYzRmNjMzMGIz
MjMuLmUxNTcxNWQxNzIxNTQ0ZDY4ZGFjNWFlY2M1MTZiZWIxMzUwZDdhZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIGRp
c3BhdGNoX3F1ZXVlX3QgdGFyZ2V0UXVldWVGb3JRT1NDbGFzcyhXb3JrUXVldWU6OlFPUyBxb3Mp
CiB9CiAjZW5kaWYKIAotdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBj
aGFyKiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1J
bml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIGRp
c3BhdGNoX3F1ZXVlX2F0dHJfdCBhdHRyID0gdHlwZSA9PSBUeXBlOjpDb25jdXJyZW50ID8gRElT
UEFUQ0hfUVVFVUVfQ09OQ1VSUkVOVCA6IERJU1BBVENIX1FVRVVFX1NFUklBTDsKICNpZiBIQVZF
KFFPU19DTEFTU0VTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVl
dWVFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCmluZGV4
IGI0YWQyYmRjNDM4ZjlkOTQ1N2UzZjdmYjQ5MjI0YzY4MTU5NzZkYWYuLjJmMTBiMDJhMGUxOTNj
MmYyOTJlYzkwYzJiYzJiMjhlNGVkM2M4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Vm
bC9EaXNwYXRjaFF1ZXVlRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hR
dWV1ZUVmbC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgd2FrZVVwVGhy
ZWFkTWVzc2FnZSA9ICdXJzsKIAogY2xhc3MgRGlzcGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgc3RhcnQoY29uc3QgY2hhciogbmFtZSwgUGFzc1Jl
ZlB0cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVlKQorICAgIHN0YXRpYyB2b2lkIHN0YXJ0
KFRocmVhZE5hbWUgbmFtZSwgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVl
KQogICAgIHsKICAgICAgICAgLy8gVGhlIERpc3BhdGNoUXVldWVUaHJlYWRDb250ZXh0IGluc3Rh
bmNlIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSB0aHJlYWQgZnVuY3Rpb24gYW5kIGRlbGV0ZWQgaW4g
aXQuCiAgICAgICAgIGRldGFjaFRocmVhZChjcmVhdGVUaHJlYWQocmVpbnRlcnByZXRfY2FzdDxX
VEY6OlRocmVhZEZ1bmN0aW9uPigmVGhyZWFkQ29udGV4dDo6ZnVuY3Rpb24pLCBuZXcgVGhyZWFk
Q29udGV4dChkaXNwYXRjaFF1ZXVlKSwgbmFtZSkpOwpAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBE
aXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0IHsKICAgICBSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4g
bV9kaXNwYXRjaFF1ZXVlOwogfTsKIAotUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBEaXNwYXRj
aFF1ZXVlOjpjcmVhdGUoY29uc3QgY2hhciogbmFtZSkKK1Bhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1
ZT4gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgbmFtZSkKIHsKICAgICBSZWZQdHI8
RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSA9IGFkb3B0UmVmPERpc3BhdGNoUXVldWU+KG5l
dyBEaXNwYXRjaFF1ZXVlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlz
cGF0Y2hRdWV1ZUVmbC5oIGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaApp
bmRleCBmYzU1NTE5YjAxY2VlOGZlMDQ5YzEzYzFlNWZjZmM3ZDk5Nzk0ZjI2Li4yY2ViZGY0MmVk
MWY0MDIyNDQyNTM3ZmM2MzJkNDI0MDQzODQzZjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRj
aFF1ZXVlRWZsLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgV29ya0l0ZW07CiAKIGNsYXNzIERp
c3BhdGNoUXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGlzcGF0Y2hRdWV1ZT4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShj
b25zdCBjaGFyKiBuYW1lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBj
cmVhdGUoVGhyZWFkTmFtZSk7CiAgICAgfkRpc3BhdGNoUXVldWUoKTsKIAogICAgIHZvaWQgZGlz
cGF0Y2goc3RkOjp1bmlxdWVfcHRyPFdvcmtJdGVtPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVF
ZmwuY3BwCmluZGV4IGRhOTEzYmYwNGNlNzI3MzEwNzY3ZWY0Nzk0ZmRkMmI4NzhhNWY0ZWQuLjgz
MjVmNWQ2YzMxNGQ0ZmJiODMzM2YyMTkwZDNmYmNmMTk0N2UxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9X
b3JrUXVldWVFZmwuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi12
b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUs
IFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1l
LCBUeXBlLCBRT1MpCiB7CiAgICAgbV9kaXNwYXRjaFF1ZXVlID0gRGlzcGF0Y2hRdWV1ZTo6Y3Jl
YXRlKG5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVl
dWVHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5j
cHAKaW5kZXggZjU5NGUyNDAxMTZkNGUwNDNkNGRjM2EzZjZjZjdjMDdkNGIyMzQ0Mi4uZGY2ZTA3
MjJkMWU0MDNjN2FiOTcwMDcwZDU3ZjYzYjYyNjEyNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9n
ZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZv
cm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQogewogICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgbV93b3Jr
UXVldWVUaHJlYWQgPSBjcmVhdGVUaHJlYWQobmFtZSwgW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FT
Q0lJTGl0ZXJhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NDZhOTI5ODRmOTQ0YjEzNWQ3MDI5ZjUzMWRkNzFi
OGNhNjk5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0
ZXJhbC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtl
IFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdURiB7CisKK2Ns
YXNzIEFTQ0lJTGl0ZXJhbCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgY29uc3RleHByIEFTQ0lJ
TGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAgICAgICA6IG1fY2hhcmFjdGVycyhj
aGFyYWN0ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgY29uc3Qg
Y2hhciooKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY2hhcmFjdGVyczsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOworfTsKKworfQorCit1
c2luZyBXVEY6OkFTQ0lJTGl0ZXJhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
V1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAxYzc2
ODEwYmQ2Y2QxZWRiYmVmOGFmZWQ4NDJmODA4MGRmN2RhZDMuLjgwZTY0NDcxZmVkMDg4NzQwNTMz
NjUzZjZmNGU2OTZlYWUwNGIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMjYsNiAr
MjYsNyBAQAogLy8gb24gc3lzdGVtcyB3aXRob3V0IGNhc2Utc2Vuc2l0aXZlIGZpbGUgc3lzdGVt
cy4KIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BU0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAK
ICNpZmRlZiBfX09CSkNfXwpAQCAtMzQsOCArMzUsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAot
Y2xhc3MgQVNDSUlMaXRlcmFsOwotCiAvLyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlv
bnMKIAogV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGludCBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoY29u
c3QgTENoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CkBA
IC02ODEsMTUgKzY4MCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFN0cmluZz4g
ewogCiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFz
c1ZlY3RvclRyYWl0cyB7IH07CiAKLWNsYXNzIEFTQ0lJTGl0ZXJhbCB7Ci1wdWJsaWM6Ci0gICAg
ZXhwbGljaXQgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpIDogbV9jaGFyYWN0
ZXJzKGNoYXJhY3RlcnMpIHsgfQotICAgIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgeyByZXR1cm4g
bV9jaGFyYWN0ZXJzOyB9Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJz
OwotfTsKLQogLy8gU2hhcmVkIGdsb2JhbCBlbXB0eSBzdHJpbmcuCiBXVEZfRVhQT1JUX1NUUklO
R19BUEkgY29uc3QgU3RyaW5nJiBlbXB0eVN0cmluZygpOwogCkBAIC03MzgsNyArNzI4LDYgQEAg
dXNpbmcgV1RGOjpmaW5kOwogdXNpbmcgV1RGOjppc0FsbFNwZWNpYWxDaGFyYWN0ZXJzOwogdXNp
bmcgV1RGOjppc1NwYWNlT3JOZXdsaW5lOwogdXNpbmcgV1RGOjpyZXZlcnNlRmluZDsKLXVzaW5n
IFdURjo6QVNDSUlMaXRlcmFsOwogCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwIGIvU291
cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKaW5kZXggZjRjNGI4Yzc3ZGNlOTk1ZjU3
ZjI1NjcwMmMxZjljZWY4YzY1YTVhYS4uNzEyNGFjZmM5N2RjYWU5YTIyMTQ4NDI2ODI5Yjg0ZDM2
ZDgyYzI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpCiAg
ICAgbV9mdW5jdGlvblF1ZXVlTG9jay51bmxvY2soKTsKIH0KIAotdm9pZCBXb3JrUXVldWU6OnBs
YXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdvcmtR
dWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQogewog
ICAgIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCA9IDA7CiAgICAgbV90aW1lclF1ZXVlID0gOjpD
cmVhdGVUaW1lclF1ZXVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDg3NDc2NDM4Y2FlNjVhNjM4N2Q5MDFh
NzUyODgxNWVjOTU0N2YyMzIuLjMxZjM1NjhmODMxODdmYWNiODk5NjM2MGFhODYyNTUyYTI4NmJi
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIElEQlNlcnZlcjo6SURCU2VydmVyKElE
QkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKICAgICA6IG1f
YmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7CiAgICAgTG9j
a2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBtX3Ro
cmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhp
cywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhy
ZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVBRF9O
QU1FKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIiwgIklEQlNlcnZlciIpKTsKIH0KIAogSURCU2Vy
dmVyOjpJREJTZXJ2ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJh
Y2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKQEAgLTY2LDcgKzY2
LDcgQEAgSURCU2VydmVyOjpJREJTZXJ2ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9y
eVBhdGgsIElEQkJhY2tpbmdTdG9yZVRlbXBvcmEKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2Vy
dmVyIGNyZWF0ZWQgYXQgcGF0aCAlcyIsIGRhdGFiYXNlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0
YSgpKTsKIAogICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9u
TG9jayk7Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNl
VGhyZWFkRW50cnksIHRoaXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIik7CisgICAgbV90aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMs
IENSRUFURV9USFJFQURfTkFNRSgiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIsICJJREJTZXJ2ZXIi
KSk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpyZWdpc3RlckNvbm5lY3Rpb24oSURCQ29ubmVjdGlv
blRvQ2xpZW50JiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcAppbmRleCAyOTJmMDViOGNkNTA2ZTIyOWFl
NmI4YmQ4NjI5YzA5NTRkMTg0NTliLi4wY2FhNDY3YTM3NTMzZmM0ZWMxMDIyZDNmNmQ2ZjAxMTU3
ZjUyMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5j
QXVkaW9EZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcApAQCAtMzksNyArMzksNyBAQCBBc3luY0F1ZGlvRGVjb2Rlcjo6
QXN5bmNBdWRpb0RlY29kZXIoKQogewogICAgIC8vIFN0YXJ0IHdvcmtlciB0aHJlYWQuCiAgICAg
TG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRleCk7Ci0gICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZChBc3luY0F1ZGlvRGVjb2Rlcjo6dGhyZWFkRW50cnksIHRoaXMsICJBdWRp
byBEZWNvZGVyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChBc3luY0F1ZGlvRGVj
b2Rlcjo6dGhyZWFkRW50cnksIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiQXVkaW8gRGVjb2Rl
ciIsICJBdWRpb0RlY29kZXIiKSk7CiB9CiAKIEFzeW5jQXVkaW9EZWNvZGVyOjp+QXN5bmNBdWRp
b0RlY29kZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDUwNTIzMDQxOTdj
ZGVkZGU0N2ZkY2JiOTEyZWM0NzQwNTU3OTc0MjguLmY1ZjMzNTcwMjMzZTZhZmZmMjk2NWM3Y2Ex
ZWQ2OTRlMTU4YzQzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAgLTgzLDcg
KzgzLDcgQEAgdm9pZCBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVuZGVyaW5n
KCkKICAgICBpZiAoIW1fc3RhcnRlZFJlbmRlcmluZykgewogICAgICAgICBtX3N0YXJ0ZWRSZW5k
ZXJpbmcgPSB0cnVlOwogICAgICAgICByZWYoKTsgLy8gU2VlIGNvcnJlc3BvbmRpbmcgZGVyZWYo
KSBjYWxsIGluIG5vdGlmeUNvbXBsZXRlRGlzcGF0Y2goKS4KLSAgICAgICAgbV9yZW5kZXJUaHJl
YWQgPSBjcmVhdGVUaHJlYWQoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVu
ZGVyRW50cnksIHRoaXMsICJvZmZsaW5lIHJlbmRlcmVyIik7CisgICAgICAgIG1fcmVuZGVyVGhy
ZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2ZmbGluZVJl
bmRlckVudHJ5LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIk9mZmxpbmUgUmVuZGVyZXIiLCAi
T2ZmbGluZVJlbmRlcmVyIikpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAppbmRleCAwZGRlNWY3MjY4
ZWU2NDJjMDA0MzA1Y2VmZTM2YjFjOWU0NGI4N2QzLi5kMDI0ZjM0NGQzNzk1NDkwOTljNmU2N2Rk
YTIzY2M1M2NhMTJhZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIERhdGFi
YXNlVGhyZWFkOjpzdGFydCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6ZGF0
YWJhc2VUaHJlYWRTdGFydCwgdGhpcywgIldlYkNvcmU6IERhdGFiYXNlIik7CisgICAgbV90aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWRTdGFydCwg
dGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJXZWJEYXRhYmFzZSIsICJXZWJEQiIpKTsKIAogICAg
IHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvR0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29u
dHJvbGxlci5jcHAKaW5kZXggNmY5ZmNhNjdmM2M0N2FkZGM4M2RlYzhjYjBkNWViOGNjYjQwZDc0
My4uMTRmMjBlZTgxMDA0ZWRiOGE3NzIwN2RhNzk2ZDU5NzhlMjJhMDc5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAg
dm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0Tm93SWZOb3REb25lUmVjZW50bHkoKQog
CiB2b2lkIEdDQ29udHJvbGxlcjo6Z2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZEZvckRl
YnVnZ2luZyhib29sIHdhaXRVbnRpbERvbmUpCiB7Ci0gICAgVGhyZWFkSWRlbnRpZmllciB0aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZChjb2xsZWN0LCAwLCAiV2ViQ29yZTogR0NDb250cm9sbGVyIik7
CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChjb2xsZWN0LCAw
LCBDUkVBVEVfVEhSRUFEX05BTUUoIkdDIENvbnRyb2xsZXIiLCAiR0NDb250cm9sbGVyIikpOwog
CiAgICAgaWYgKHdhaXRVbnRpbERvbmUpIHsKICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRp
b24odGhyZWFkSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNy
eXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCBm
NjkxZjZiMDlmMjZhNWQ2OTU0Y2UxNjM3YjMyNzI2NjBiMTY5YzAwLi44OTgyNGYzOTBmZjgwZGRk
OTZkMmU3NGZhN2RkNDAxZmU4YzBmZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vU3VidGxlQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN1YnRsZUNy
eXB0bzo6U3VidGxlQ3J5cHRvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAg
OiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKLSAgICAsIG1fd29ya1F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIikpCisgICAg
LCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkNyeXB0
byBRdWV1ZSIsICJDcnlwdG9RdWV1ZSIpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9Bc3luY0ZpbGVTdHJlYW0uY3BwCmluZGV4IDViODEzNjExMmFkZGVhMTQ1Yzk1NTkwYThhM2Mx
NzYxZjFiMWI5ODMuLjdiNjM2N2U5ODQxZjVlOGRhMTllMjA0ZGM4NGJiNzFjMzg4NWY3Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKQEAgLTc0LDcgKzc0
LDcgQEAgc3RhdGljIHZvaWQgY2FsbE9uRmlsZVRocmVhZChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1
bmN0aW9uKQogCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGNyZWF0ZUZpbGVUaHJlYWRPbmNl
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKGNyZWF0ZUZpbGVUaHJlYWRPbmNlLCBbXSB7Ci0gICAgICAg
IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogQXN5bmNGaWxlU3RyZWFtIiwgW10geworICAgICAgICBj
cmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJBc3luY2hyb25vdXMgRmlsZSBTdHJlYW0i
LCAiQXN5bmNGaWxlU3RyZWFtIiksIFtdIHsKICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAg
ICAgICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggZWU0MzdlODYyOGViZjRlODYzMjdjYzc3MDMw
ZjVmNjk0ZTMwYmIyZC4uM2JmMzg5NmViYjBiY2U0NDUwMzNjYWQ3YmNjNTExNzljZWI0YzMyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCkBAIC0xNDEs
NyArMTQxLDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5nJiBkaXJlY3Rv
cnksIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUpCiAgICAgLy8gTG9jayBoZXJlIGFzIHdlbGwgYXMg
Zmlyc3QgdGhpbmcgaW4gdGhlIHRocmVhZCBzbyB0aGUgdGhyZWFkIGRvZXNuJ3QgYWN0dWFsbHkg
Y29tbWVuY2UgdW50aWwgdGhlIGNyZWF0ZVRocmVhZCgpIGNhbGwgCiAgICAgLy8gY29tcGxldGVz
IGFuZCBtX3N5bmNUaHJlYWRSdW5uaW5nIGlzIHByb3Blcmx5IHNldAogICAgIG1fc3luY0xvY2su
bG9jaygpOwotICAgIG1fc3luY1RocmVhZCA9IGNyZWF0ZVRocmVhZChJY29uRGF0YWJhc2U6Omlj
b25EYXRhYmFzZVN5bmNUaHJlYWRTdGFydCwgdGhpcywgIldlYkNvcmU6IEljb25EYXRhYmFzZSIp
OworICAgIG1fc3luY1RocmVhZCA9IGNyZWF0ZVRocmVhZChJY29uRGF0YWJhc2U6Omljb25EYXRh
YmFzZVN5bmNUaHJlYWRTdGFydCwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJJY29uIERhdGFi
YXNlIiwgIkljb25EQiIpKTsKICAgICBtX3N5bmNUaHJlYWRSdW5uaW5nID0gbV9zeW5jVGhyZWFk
OwogICAgIG1fc3luY0xvY2sudW5sb2NrKCk7CiAgICAgaWYgKCFtX3N5bmNUaHJlYWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAppbmRleCA5MTIwMGMzNDVm
NDU1Zjk2ZDQ5NGJmZDJhZDcwM2YyOGM1YzYyOWQxLi4xOGQ0YjI0ZjFhOWQzNDQ3ZTQ0NzdkZmZh
MTYwYjg0MzU5NWVlNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRo
cmVhZC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OmNy
ZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92bSA9ICZjb21t
b25WTSgpOwotICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxs
YmFjaywgdGhpcywgIldlYkNvcmU6IFJlc291cmNlVXNhZ2UiKTsKKyAgICBtX3RocmVhZElkZW50
aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIENSRUFURV9USFJFQURf
TkFNRSgiUmVzb3VyY2UgVXNhZ2UiLCAiUmVzb3VyY2VVc2FnZSIpKTsKIH0KIAogdm9pZCBSZXNv
dXJjZVVzYWdlVGhyZWFkOjp0aHJlYWRDYWxsYmFjayh2b2lkKiByZXNvdXJjZVVzYWdlVGhyZWFk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5j
cHAKaW5kZXggNzMwYzBhNmJkOTNmNDU3OGQxZWRiZjlhY2UxY2Q4NjU2NmU2Yzk4OC4uZjhmMDc0
MDFlNTdhYmNmYzVjZGJhZTE1YjBjOGU0NjkzMmM1ZDc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCkBAIC04MSw3ICs4MSw3IEBA
IHZvaWQgU2Nyb2xsaW5nVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgewogICAg
ICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9pbml0aWFsaXplUnVuTG9vcE11dGV4
KTsKIAotICAgICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2Fs
bGJhY2ssIHRoaXMsICJXZWJDb3JlOiBTY3JvbGxpbmciKTsKKyAgICAgICAgbV90aHJlYWRJZGVu
dGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCBDUkVBVEVfVEhSRUFE
X05BTUUoIlNjcm9sbGluZyIsICJTY3JvbGxpbmciKSk7CiAgICAgICAgIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2Fp
dChsb2NrLCBbdGhpc117IHJldHVybiBtX3RocmVhZFJ1bkxvb3A7IH0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXgg
ZjcxMzMzYzVhMzdhOTk4OTY0ZjNhNzQxYzczMTUyZTk1MTQ2NmNmNi4uM2FjODQxZmIxYTFiMzM3
MDk0YzM1ZDdlZmM2ZDUwMDNlNDFiZTdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAg
dm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSgpCiAgICAgCiAgICAg
aWYgKCFtX2hydGZEYXRhYmFzZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVhZCkgewog
ICAgICAgICAvLyBTdGFydCB0aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcgcHJvY2Vz
cy4KLSAgICAgICAgbV9kYXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFz
ZUxvYWRlckVudHJ5LCB0aGlzLCAiSFJURiBkYXRhYmFzZSBsb2FkZXIiKTsKKyAgICAgICAgbV9k
YXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxvYWRlckVudHJ5LCB0
aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkhSVEYgRGF0YWJhc2UgTG9hZGVyIiwgIkhSVEZEQkxv
YWRlciIpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IDk2ZjMzMDgyODA3OWE3OWFkNjQ4MjBkMDcyMWM1
OWM1ZWExNmZkYjEuLjBkOGI5Yjg1ZWY2NzJmOGU0NjQwNmFkYTU2YzA1MDIyYzA4ZTZlMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNw
cApAQCAtMTMwLDcgKzEzMCw3IEBAIFJldmVyYkNvbnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKEF1
ZGlvQ2hhbm5lbCogaW1wdWxzZVJlc3BvbnNlLCBzaXplX3QgcmVuZGVyU2xpCiAgICAgLy8gU3Rh
cnQgdXAgYmFja2dyb3VuZCB0aHJlYWQKICAgICAvLyBGSVhNRTogd291bGQgYmUgYmV0dGVyIHRv
IHVwIHRoZSB0aHJlYWQgcHJpb3JpdHkgaGVyZS4gIEl0IGRvZXNuJ3QgbmVlZCB0byBiZSByZWFs
LXRpbWUsIGJ1dCBoaWdoZXIgdGhhbiB0aGUgZGVmYXVsdC4uLgogICAgIGlmICh0aGlzLT51c2VC
YWNrZ3JvdW5kVGhyZWFkcygpICYmIG1fYmFja2dyb3VuZFN0YWdlcy5zaXplKCkgPiAwKQotICAg
ICAgICBtX2JhY2tncm91bmRUaHJlYWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3Vu
ZFRocmVhZEVudHJ5LCB0aGlzLCAiY29udm9sdXRpb24gYmFja2dyb3VuZCB0aHJlYWQiKTsKKyAg
ICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkID0gY3JlYXRlVGhyZWFkKFdlYkNvcmU6OmJhY2tncm91
bmRUaHJlYWRFbnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJDb252b2x1dGlvbiIsICJD
b252b2x1dGlvbiIpKTsKIH0KIAogUmV2ZXJiQ29udm9sdmVyOjp+UmV2ZXJiQ29udm9sdmVyKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRp
b0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKaW5kZXggOTEyOTQ5ODE2MGYx
YmUzZTZjZmU3ZjA0NzY0YjRkNzlkNDhmOGYzZi4uOGQ2YTcxZDNiYjg5Mzk0MDM0NDliZTNlNzMz
ZmRiYjIxYjY5ZjZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAK
QEAgLTM3MCw3ICszNzAsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0ZpbGVSZWFkZXI6
OmNyZWF0ZUJ1cyhmbG9hdCBzYW1wbGVSYXRlLCBib29sIG1peFRvTW9ubwogUGFzc1JlZlB0cjxB
dWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9v
bCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmUHRyPEF1ZGlvQnVzPiBy
ZXR1cm5WYWx1ZTsKLSAgICBhdXRvIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKCJBdWRpb0ZpbGVS
ZWFkZXIiLCBbJnJldHVyblZhbHVlLCBmaWxlUGF0aCwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7
CisgICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05BTUUoIkF1
ZGlvIEZpbGUgUmVhZGVyIiwgIkF1ZGlvRmlsZVJlYWRlciIpLCBbJnJldHVyblZhbHVlLCBmaWxl
UGF0aCwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CiAgICAgICAgIHJldHVyblZhbHVlID0gQXVk
aW9GaWxlUmVhZGVyKGZpbGVQYXRoKS5jcmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsK
ICAgICB9KTsKICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CkBAIC0zODAs
NyArMzgwLDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShj
b25zdCBjaGFyKiBmaWxlUGF0aCwgYm9vbCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+
IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3Qg
ZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0
cjxBdWRpb0J1cz4gcmV0dXJuVmFsdWU7Ci0gICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVh
ZCgiQXVkaW9GaWxlUmVhZGVyIiwgWyZyZXR1cm5WYWx1ZSwgZGF0YSwgZGF0YVNpemUsIG1peFRv
TW9ubywgc2FtcGxlUmF0ZV0geworICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQ1JF
QVRFX1RIUkVBRF9OQU1FKCJBdWRpbyBGaWxlIFJlYWRlciIsICJBdWRpb0ZpbGVSZWFkZXIiKSwg
WyZyZXR1cm5WYWx1ZSwgZGF0YSwgZGF0YVNpemUsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0gewog
ICAgICAgICByZXR1cm5WYWx1ZSA9IEF1ZGlvRmlsZVJlYWRlcihkYXRhLCBkYXRhU2l6ZSkuY3Jl
YXRlQnVzKHNhbXBsZVJhdGUsIG1peFRvTW9ubyk7CiAgICAgfSk7CiAgICAgd2FpdEZvclRocmVh
ZENvbXBsZXRpb24odGhyZWFkSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKaW5kZXggODFmYjFmOTg2OGYzMTBlNTM1OWQx
NjFkYzJkYWNhNWNjN2QzYWVkNy4uNGRiMWRhMzQwMDRlNTM5MmU5MmUzNDExYTYwYjg0MDdjZjRh
NTk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VG
cmFtZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUZyYW1lQ2FjaGUuY3BwCkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBJbWFnZUZyYW1lQ2FjaGU6
OmNhY2hlRnJhbWVOYXRpdmVJbWFnZUF0SW5kZXgoTmF0aXZlSW1hZ2VQdHImJiBuYXRpdmVJbWFn
ZSwKIFJlZjxXb3JrUXVldWU+IEltYWdlRnJhbWVDYWNoZTo6ZGVjb2RpbmdRdWV1ZSgpCiB7CiAg
ICAgaWYgKCFtX2RlY29kaW5nUXVldWUpCi0gICAgICAgIG1fZGVjb2RpbmdRdWV1ZSA9IFdvcmtR
dWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkltYWdlRGVjb2RlciIsIFdvcmtRdWV1ZTo6VHlwZTo6
U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKTsKKyAgICAgICAgbV9kZWNv
ZGluZ1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJJbWFnZSBE
ZWNvZGVyIiwgIkltYWdlRGVjb2RlciIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1
ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSk7CiAgICAgCiAgICAgcmV0dXJuICptX2RlY29kaW5n
UXVldWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmlu
ZGV4IDBkYTRhODg1NzNiYTFiNTViNGZlYTUyMzg5ZTRjMjUyZmRlOTg0MzQuLmE4MzM4ZDE5NGU4
M2JkOTY1YWRkMjdlN2U4Y2E4ZDI5Y2JlZDNhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZXNvdXJjZUhhbmRs
ZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2Vi
U3JjKiBzcmMsCiAgICAgOiBTdHJlYW1pbmdDbGllbnQoc3JjKQogewogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7Ci0gICAgbV90aHJlYWQg
PSBjcmVhdGVUaHJlYWQoIlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IiwgW3RoaXMsIHJl
cXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgbV90aHJlYWQgPSBjcmVhdGVUaHJlYWQo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJSZXNvdXJjZSBIYW5kbGUgU3RyZWFtaW5nIENsaWVudCIsICJS
U3RyZWFtaW5nIiksIFt0aGlzLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0gewogICAgICAg
ICB7CiAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxpemVSdW5Mb29wQ29u
ZGl0aW9uTXV0ZXgpOwogICAgICAgICAgICAgbV9ydW5Mb29wID0gJlJ1bkxvb3A6OmN1cnJlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNz
dXJlSGFuZGxlckxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9y
eVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAppbmRleCA0Y2QxYmRkZjNhYjc2NmEwMDA0OGY4YWM1
NzZmYTI4NDdlYzYyNzBkLi41MDI3YTUyZjczZWUyZDJhYzhkZTQ3ZjkwNzU3ZjU1NGNmNTkxMGQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgTWVtb3J5UHJl
c3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKGludCBmZCwgc3RkOjpm
dW5jdGlvbjx2b2lkICgKICAgICB9LCB0aGlzLCBudWxscHRyKTsKICAgICBnX3NvdXJjZV9hdHRh
Y2gobV9zb3VyY2UuZ2V0KCksIG51bGxwdHIpOwogI2Vsc2UKLSAgICBtX3RocmVhZElEID0gY3Jl
YXRlVGhyZWFkKCJXZWJDb3JlOiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIiLCBbdGhpc10geyByZWFk
QW5kTm90aWZ5KCk7IH0KKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKENSRUFURV9USFJF
QURfTkFNRSgiTWVtb3J5IFByZXNzdXJlIEhhbmRsZXIiLCAiTWVtUHJlc3NIYW5kbGVyIiksIFt0
aGlzXSB7IHJlYWRBbmROb3RpZnkoKTsgfQogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IGUxNDM0
NTFmZGFhMzM4YzM3MTAxMGI3ZmVkZmRlMDUyYTVlMzk5ZjcuLmVjM2NmN2IyZTMxMGRhYmE4YWI1
MTkxOGZiMTNjNzdlNDdlOWMzM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcApAQCAtMjQzLDcgKzI0Myw3IEBAIHVuc2ln
bmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlJbXBsOjpibG9iU2l6ZShjb25zdCBVUkwmIHVybCkK
IAogc3RhdGljIFdvcmtRdWV1ZSYgYmxvYlV0aWxpdHlRdWV1ZSgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFJlZjxXb3JrUXVldWU+PiBxdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgib3Jn
LndlYmtpdC5CbG9iVXRpbGl0eSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6QmFja2dyb3VuZCkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1
ZXVlPj4gcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJCbG9iIFV0
aWxpdHkiLCAiQmxvYlV0aWxpdHkiKSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1
ZTo6UU9TOjpCYWNrZ3JvdW5kKSk7CiAgICAgcmV0dXJuIHF1ZXVlLmdldCgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCmlu
ZGV4IGFiZmI0NmNlY2Y4MjE0M2I5ZmZhY2QwMWJlNTc4NmE1M2EwMDhlYzAuLmZiOGMwMjIyNmJm
ZGJkODNjN2Y5ZWNlYmIxZjU1YTM1YjU2MTY0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5h
bWVzcGFjZSBEYXRhVVJMRGVjb2RlciB7CiAKIHN0YXRpYyBXb3JrUXVldWUmIGRlY29kZVF1ZXVl
KCkKIHsKLSAgICBzdGF0aWMgYXV0byYgcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndl
YmtpdC5EYXRhVVJMRGVjb2RlciIpLmxlYWtSZWYoKTsKKyAgICBzdGF0aWMgYXV0byYgcXVldWUg
PSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkRhdGEgVVJMIERlY29kZXIi
LCAiRGF0YVVSTERlY29kZXIiKSkubGVha1JlZigpOwogICAgIHJldHVybiBxdWV1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5M
b29wQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5M
b29wQ0YuY3BwCmluZGV4IDQ2Yjg5OTRhODQxZWY3MWVhMjc5Y2U3N2NiYzhmYjQzYzI5ZjBhNjIu
LmNlMTEyYThkMTY2OTIzN2I1ODcwZGI3MGU2MjU3ZDAzNzAwYjIwN2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAK
QEAgLTc3LDcgKzc3LDcgQEAgQ0ZSdW5Mb29wUmVmIGxvYWRlclJ1bkxvb3AoKQogICAgIHN0ZDo6
dW5pcXVlX2xvY2s8U3RhdGljTG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAg
aWYgKCFsb2FkZXJSdW5Mb29wT2JqZWN0KSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZChydW5Mb2Fk
ZXJUaHJlYWQsIDAsICJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIik7CisgICAgICAgIGNyZWF0
ZVRocmVhZChydW5Mb2FkZXJUaHJlYWQsIDAsIENSRUFURV9USFJFQURfTkFNRSgiQ0ZOZXR3b3Jr
IExvYWRlciIsICJDRk5ldHdvcmtMb2FkZXIiKSk7CiAKICAgICAgICAgbG9hZGVyUnVuTG9vcENv
bmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW10geyByZXR1cm4gbG9hZGVyUnVuTG9vcE9iamVj
dDsgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxEb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybERvd25sb2FkLmNwcAppbmRleCA0NDA4Y2QxOTg3MDViYTg2Y2M4YzE5ODZmYjNl
MmNhZGU3OTZkY2M2Li45YmZiYWQ4MWE5OWFkNzNlNDJlNWJhOTM4Y2NhNDI1NjdhZTEzZjJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25s
b2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERv
d25sb2FkLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0
YXJ0VGhyZWFkSWZOZWVkZWQoKQogICAgICAgICBpZiAobV90aHJlYWRJZCkKICAgICAgICAgICAg
IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fdGhyZWFkSWQpOwogICAgICAgICBzZXRSdW5UaHJl
YWQodHJ1ZSk7Ci0gICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxvYWRUaHJl
YWQsIHRoaXMsICJkb3dubG9hZFRocmVhZCIpOworICAgICAgICBtX3RocmVhZElkID0gY3JlYXRl
VGhyZWFkKGRvd25sb2FkVGhyZWFkLCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkRvd25sb2Fk
ZXIiLCAiRG93bmxvYWRlciIpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbEN1cmwuY3BwCmluZGV4IGU5NGY4NGE2ODIzMzk1MmQ0YzJjNjUyYzZiMmFmZjI1ZDI2NmRj
NmIuLjM2ZjgwOWJkMGY5YWM4YTJhOGUzMmRjYWYxYTk4NTkyZTAxZTM4MzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcApAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgU29j
a2V0U3RyZWFtSGFuZGxlSW1wbDo6c3RhcnRUaHJlYWQoKQogCiAgICAgcmVmKCk7IC8vIHN0b3BU
aHJlYWQoKSB3aWxsIGNhbGwgZGVyZWYoKS4KIAotICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRl
VGhyZWFkKCJXZWJTb2NrZXQgdGhyZWFkIiwgW3RoaXNdIHsKKyAgICBtX3dvcmtlclRocmVhZCA9
IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05BTUUoIldlYlNvY2tldCIsICJXZWJTb2NrZXQi
KSwgW3RoaXNdIHsKIAogICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IDUxZjQyZjVmZmZmMmZhNmRhNjg0
NTdlNGQyMjZlYjZmMzc2YzQwZGEuLjA3MDhjNTM5MGUyYjUwMTQ5MWE0ODRlZTI4OTA3ZDY2NzA3
ZmE0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTEzNyw3
ICsxMzcsNyBAQCBib29sIFdvcmtlclRocmVhZDo6c3RhcnQoKQogICAgIGlmIChtX3RocmVhZElE
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQo
V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRTdGFydCwgdGhpcywgIldlYkNvcmU6IFdvcmtlciIp
OworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJl
YWRTdGFydCwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJXZWJXb3JrZXIiLCAiV2ViV29ya2Vy
IikpOwogCiAgICAgcmV0dXJuIG1fdGhyZWFkSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3Rv
cmFnZVRocmVhZC5jcHAKaW5kZXggYmI2NmZjZWE3ZTUyOGJjMjdmNjMzYTNlNTI4NzhiNTAxZWYw
ZTE4Ny4uOTAxNTI0MWZiMWVmYzk0ZTE4NGEzZmQ5NGE2NDhmMDQxMzU0NTFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcApAQCAtNTUsNyArNTUsNyBAQCBib29sIFN0
b3JhZ2VUaHJlYWQ6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IGlmICghbV90aHJlYWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChTdG9y
YWdlVGhyZWFkOjp0aHJlYWRFbnRyeVBvaW50Q2FsbGJhY2ssIHRoaXMsICJXZWJDb3JlOiBMb2Nh
bFN0b3JhZ2UiKTsKKyAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChTdG9yYWdlVGhy
ZWFkOjp0aHJlYWRFbnRyeVBvaW50Q2FsbGJhY2ssIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgi
TG9jYWxTdG9yYWdlIiwgIkxvY2FsU3RvcmFnZSIpKTsKICAgICBhY3RpdmVTdG9yYWdlVGhyZWFk
cygpLmFkZCh0aGlzKTsKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggZDVlYWRi
MGIzYjQxYWE0Mzk2MGYwMTg1YWMyYTNiYjVmMmFlZmE2NC4uZDQ2OTBhMTRiY2E1MGEwMzkzZjFk
ZDA1YTk0NWU3Njc4NWFjZTRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgRGF0YWJhc2VQcm9j
ZXNzJiBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpCiB9CiAKIERhdGFiYXNlUHJvY2Vzczo6
RGF0YWJhc2VQcm9jZXNzKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRGF0YWJhc2UgUHJvY2VzcyIsICJEQlByb2Nlc3Mi
KSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBVVEY4RW5jb2RpbmcgZW5jb2RpbmcgYW5kIHRo
ZSB0ZXh0IGVuY29kaW5nIG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9uIHRoZSBtYWluIHRocmVhZCBi
ZWZvcmUgYSBiYWNrZ3JvdW5kIHRocmVhZCBuZWVkcyBpdC4KICAgICAvLyBGSVhNRTogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM2NSAtIE5lZWQgYSBtb3JlIGV4
cGxpY2l0IHdheSBvZiBkb2luZyB0aGlzIGJlc2lkZXMgYWNjZXNzaW5nIHRoZSBVVEY4RW5jb2Rp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlLmNwcAppbmRleCBhODAyOTFmYzFkMWQ1OWM3YzFkYjYwMjFiOTRjY2U4MjRjNTFjNTk3
Li5lNzI5YjAwY2Y0OTJkMzE5MDVhYjQ4YmY0NjkxZGM5NjgwYTNmODYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAg
LTU4Myw3ICs1ODMsNyBAQCB2b2lkIENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogCiB2b2lk
IENhY2hlOjpkZWxldGVEdW1wRmlsZSgpCiB7Ci0gICAgV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuQ2FjaGUuZGVsZXRlIiktPmRpc3BhdGNoKFtwYXRoID0gZHVtcEZpbGVQYXRo
KCkuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFE
X05BTUUoIkNhY2hlIERlbGV0ZXIiLCAiQ2FjaGVEZWxldGVyIikpLT5kaXNwYXRjaChbcGF0aCA9
IGR1bXBGaWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAgIFdlYkNvcmU6OmRlbGV0
ZUZpbGUocGF0aCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3Bw
CmluZGV4IGVmN2JhODk5ODIwMjMyNTg5ZTczOTFmMjdmY2QzZDZlMTY5ZjY4OTQuLjU3YjFkNTFi
Y2Q0YzI5ZWIxOTRjMWU3ODBiZTZlOGM0MzQ3NjA0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hh
bm5lbFNvdXAuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJT0NoYW5uZWw6OnJlYWRTeW5j
SW5UaHJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSogcXVldWUsIHMK
ICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIFJlZlB0cjxJT0NoYW5uZWw+IGNo
YW5uZWwodGhpcyk7Ci0gICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZCgiSU9DaGFubmVsOjpy
ZWFkU3luYyIsIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRsZXJdIHsKKyAg
ICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiSU9DaGFubmVs
IHJlYWRTeW5jIiwgIklPQ1JlYWRTeW5jIiksIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxl
dGlvbkhhbmRsZXJdIHsKICAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1pbihzaXpl
LCBnRGVmYXVsdFJlYWRCdWZmZXJTaXplKTsKICAgICAgICAgdWludDhfdCogYnVmZmVyRGF0YSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsKICAgICAgICAg
R1JlZlB0cjxTb3VwQnVmZmVyPiByZWFkQnVmZmVyID0gYWRvcHRHUmVmKHNvdXBfYnVmZmVyX25l
d193aXRoX293bmVyKGJ1ZmZlckRhdGEsIGJ1ZmZlclNpemUsIGJ1ZmZlckRhdGEsIGZhc3RGcmVl
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCmluZGV4IDEwYTUyMDNlZmQ4MTgwZTBhY2Ez
NGJlNTRkZjUyNTgyZjU5Yzk1ZjcuLjVmNzFiNzNjYzgwYTVjNmU3MzEzZmM4ODk2YWE4Mzk4NzBi
NTVkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxTdGF0aXN0aWNzPiBTdGF0aXN0aWNzOjpvcGVuKGNvbnN0IFN0cmluZyYg
Y2FjaGVQYXRoKQogfQogCiBTdGF0aXN0aWNzOjpTdGF0aXN0aWNzKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VQYXRoKQotICAgIDogbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCBXb3Jr
UXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgIDog
bV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFE
X05BTUUoIkNhY2hlIFN0YXRpc3RpY3MgQmFja2dyb3VuZCIsICJDYWNoZVN0YXRzQkciKSwgV29y
a1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAs
IG1fd3JpdGVUaW1lcigqdGhpcywgJlN0YXRpc3RpY3M6OndyaXRlVGltZXJGaXJlZCkKIHsKICAg
ICBpbml0aWFsaXplKGRhdGFiYXNlUGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCmluZGV4IDhm
N2M0ZjNiZTBmYWE0ZDhiZTM2MjZiNjk0ZGIyMDNiNWE4MjlhNjEuLjQwMWYwZDk0ZjVhODNkZjJj
NWI1ZDJiZDBlYzZhNTkyMzY1MmI4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCkBAIC0yMTMs
OSArMjEzLDkgQEAgU3RvcmFnZTo6U3RvcmFnZShjb25zdCBTdHJpbmcmIGJhc2VEaXJlY3RvcnlQ
YXRoLCBTYWx0IHNhbHQpCiAgICAgLCBtX3NhbHQoc2FsdCkKICAgICAsIG1fcmVhZE9wZXJhdGlv
blRpbWVvdXRUaW1lcigqdGhpcywgJlN0b3JhZ2U6OmNhbmNlbEFsbFJlYWRPcGVyYXRpb25zKQog
ICAgICwgbV93cml0ZU9wZXJhdGlvbkRpc3BhdGNoVGltZXIoKnRoaXMsICZTdG9yYWdlOjpkaXNw
YXRjaFBlbmRpbmdXcml0ZU9wZXJhdGlvbnMpCi0gICAgLCBtX2lvUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZSIsIFdvcmtRdWV1ZTo6VHlwZTo6
Q29uY3VycmVudCkpCi0gICAgLCBtX2JhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UuYmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6
VHlwZTo6Q29uY3VycmVudCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQotICAgICwgbV9z
ZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5DYWNoZS5TdG9yYWdlLnNlcmlhbEJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgICwgbV9pb1F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUgU3RvcmFnZSBGb3JlZ3JvdW5kIiwg
IkNhY2hlU3RvcmFnZUZHIiksIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBt
X2JhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgi
Q2FjaGUgU3RvcmFnZSBCYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZUJHIiksIFdvcmtRdWV1ZTo6
VHlwZTo6Q29uY3VycmVudCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgICwgbV9z
ZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05B
TUUoIkNhY2hlIFN0b3JhZ2UgU2VyaWFsIEJhY2tncm91bmQiLCAiQ2FjaGVTdG9yYWdlU0JHIiks
IFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCiAg
ICAgLCBtX2Jsb2JTdG9yYWdlKG1ha2VCbG9iRGlyZWN0b3J5UGF0aChiYXNlRGlyZWN0b3J5UGF0
aCksIG1fc2FsdCkKIHsKICAgICBkZWxldGVPbGRWZXJzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IGRhOGVhM2ZiYjA1ZTNkZmZlNDliZTMz
MmE2NjAxZTI3YWJmY2FmNDEuLjU5NzVmNjQ0MWMzZTFkNjZlNzFmZGU5MTRhZGIxNmQ0YmE3YTMz
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTIz
MSw3ICsyMzEsNyBAQCBDb25uZWN0aW9uOjpDb25uZWN0aW9uKElkZW50aWZpZXIgaWRlbnRpZmll
ciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50JiBjbGllbnQpCiAgICAgLCBtX3Nob3VsZEV4aXRPblN5
bmNNZXNzYWdlU2VuZEZhaWx1cmUoZmFsc2UpCiAgICAgLCBtX2RpZENsb3NlT25Db25uZWN0aW9u
V29ya1F1ZXVlQ2FsbGJhY2soMCkKICAgICAsIG1faXNDb25uZWN0ZWQoZmFsc2UpCi0gICAgLCBt
X2Nvbm5lY3Rpb25RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLklQQy5SZWNlaXZl
UXVldWUiKSkKKyAgICAsIG1fY29ubmVjdGlvblF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFU
RV9USFJFQURfTkFNRSgiSVBDIFJlY2VpdmUgUXVldWUiLCAiSVBDUmVjZWl2ZVF1ZXVlIikpKQog
ICAgICwgbV9pblNlbmRTeW5jQ291bnQoMCkKICAgICAsIG1faW5EaXNwYXRjaE1lc3NhZ2VDb3Vu
dCgwKQogICAgICwgbV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHlDb3VudCgwKQpAQCAtNzIwLDcgKzcyMCw3IEBAIHVpbnQ2NF90IENvbm5lY3Rp
b246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBjCiAgICAgbV9uZXh0SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQrKzsKIAogICAg
IGlmICghbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSkKLSAgICAgICAgbV9pbmNv
bWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuV2ViS2l0LklQQy5JbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSIpOworICAgICAg
ICBtX2luY29taW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJJUEMgSW5jb21pbmcgU3luYyBNZXNzYWdlIENhbGxiYWNrIFF1
ZXVlIiwgIklTeW5jTXNnQ0JRdWV1ZSIpKTsKIAogICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNh
bGxiYWNrcy5hZGQobV9uZXh0SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQsIGNhbGxiYWNr
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCAxNzU3ODlmYjlh
ZTcxM2YxNmVlZWRiZmFiZTAwZDZmMzNlNjNjZjIzLi4yZDE4NmUwNmEwNTFiZWQ1OGNlODFiZDE5
ZjFiMGE5NmQ1ZDBhNzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApA
QCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgdm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1
ZShJUEM6OkNvbm5lY3Rpb24qKQogICAgIC8vIHRoZSBwcm9jZXNzIHdpbGwgZXhpdCBmb3JjaWJs
eS4KICAgICBhdXRvIHdhdGNoZG9nRGVsYXkgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcygxMCk7CiAK
LSAgICBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0
Y2hEb2dRdWV1ZSIpLT5kaXNwYXRjaEFmdGVyKHdhdGNoZG9nRGVsYXksIFtdIHsKKyAgICBXb3Jr
UXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkNoaWxkIFByb2Nlc3MgV2F0Y2hkb2cg
UXVldWUiLCAiQ2hpbGRXZG9nUXVldWUiKSktPmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwg
W10gewogICAgICAgICAvLyBXZSB1c2UgX2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cgY2Fs
bGJhY2sgaXMgY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQKICAg
ICAgICAgLy8gZ2xvYmFsIGRlc3RydWN0b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxs
ZWQgZnJvbSB0aGlzIHRocmVhZCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAgICAg
ICAvLyBkb2luZyBpdHMgdGhpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29w
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDQwZGM0ZjQ0NTZjMjhmYzkz
N2Q5YTE2NmFhMjIxOWNmN2U4ZWM1MzAuLjM3YzBiNzFiZDcxNWI4N2U0NzAzM2U4Y2U2YWQxYzY4
YTRhNzVjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFdvcmtRdWV1
ZVBvb2wgewogICAgICAgICAgICAgICAgIEFTU0VSVChtX3NoYXJlZFdvcmtRdWV1ZSk7CiAgICAg
ICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG1fc2hhcmVkV29ya1F1ZXVl
OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0
b3ItPnZhbHVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuVGhyZWFkZWRDb21wb3Np
dG9yV29ya1F1ZXVlIik7CisgICAgICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiVGhyZWFkZWQgQ29tcG9z
aXRvciBXb3JrIFF1ZXVlIiwgIlRocmVhZGVkQ29tcCIpKTsKICAgICAgICAgICAgICAgICBpZiAo
IW1fdGhyZWFkQ291bnQpCiAgICAgICAgICAgICAgICAgICAgIG1fc2hhcmVkV29ya1F1ZXVlID0g
YWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAgICAgICBtX3RocmVhZENvdW50
Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IDg1NDMz
YmQ1OTg2YzEzNmE4YmVjYzk4MWJmZDcwZDg0ZWU0N2Q0NmEuLjUzNDU4NzA2YmRlNzJlMjc2ZjYz
ZjllYTVhOGMwOTU2MDA1ZTViMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2VjSXRlbVNoaW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRl
bVNoaW0uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBXb3JrUXVldWUmIHdvcmtRdWV1ZSgp
CiAgICAgc3RhdGljIFdvcmtRdWV1ZSogd29ya1F1ZXVlOwogICAgIHN0YXRpYyBkaXNwYXRjaF9v
bmNlX3Qgb25jZVRva2VuOwogICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAg
ICAgd29ya1F1ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlNlY0l0
ZW1TaGltIikubGVha1JlZigpOworICAgICAgICB3b3JrUXVldWUgPSAmV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJTZWNJdGVtU2hpbSIsICJTZWNJdGVtU2hpbSIpKS5sZWFr
UmVmKCk7CiAKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAKaW5kZXggODZjMzMy
NDQ3YmVkMWY4M2RmOTQ0ZjJiMWYwOWVlZTlmYWNkOWU2MS4uODFkM2VhZTIxMDRkZjFlNmQ0Nzc3
MzY5MWY1MjEzM2M5YTI1M2Q5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCkBAIC02NCw5
ICs2NCw5IEBAIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OlVzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUoKQogCiBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpCiAgICAgOiBtX3N0b3JlUGF0aChz
dG9yZVBhdGgpCi0gICAgLCBtX2NvbXBpbGVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25j
dXJyZW50KSkKLSAgICAsIG1fcmVhZFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlIFJlYWQgUXVldWUiKSkKLSAgICAsIG1fcmVtb3ZlUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVtb3ZlIFF1ZXVlIikpCisg
ICAgLCBtX2NvbXBpbGVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUo
IlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIsICJVQ0V4U3RDb21wUXVl
dWUiKSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKKyAgICAsIG1fcmVhZFF1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZSBSZWFkIFF1ZXVlIiwgIlVDRXhTdFJkUXVldWUiKSkpCisgICAgLCBtX3JlbW92ZVF1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZSBSZW1vdmUgUXVldWUiLCAiVUNFeFN0Um1RdWV1ZSIpKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5k
ZXggMWZlMTAyNTRkN2M1NjBhY2ZhNjkwNTE2YTUzMzhkZTQ0YjBmZDNjYS4uYTI1Y2VlYmQwZDhk
ZjY0OTg0ZGY0NjZjODRmOWYwYzU0ZDEyMjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBA
IFJlZjxTdG9yYWdlTWFuYWdlcj4gU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IGxvY2FsU3RvcmFnZURpcmVjdG9yeSkKIH0KIAogU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VNYW5h
Z2VyKGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQotICAgIDogbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlTWFuYWdlciIpKQorICAg
IDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlN0b3JhZ2Ug
TWFuYWdlciIsICJTdG9yYWdlTWdyIikpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIoTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVm
KCksIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNv
ZGluZyBpcyBpbml0aWFsaXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRv
IHRoZSBxdWV1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYzJmOGU2YTRiYTczNTBhNDYz
YTQ1OWRlNDhlNTZhYWRmYmQyYTI1MC4uNWVhNTZkMjE2YWNjMGYwODhmYjI5MGUzYTgxZjMzZDg4
N2U3NjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpjcmVhdGUoY29uc3QKIAogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5KQogICAgIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NTdG9yZShSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgpKQotICAgICwgbV9zdGF0aXN0aWNzUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNz
IERhdGEgUXVldWUiKSkKKyAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nl
c3MgRGF0YSBRdWV1ZSIsICJXZWJSc1N0YXRRdWV1ZSIpKSkKICAgICAsIG1fc3RvcmFnZVBhdGgo
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApp
bmRleCA3YTg0M2IxZjA0M2JmN2QwZWM3ZWMzZjZiM2QxNzkxMDMzZGZlZTFjLi5kZTg1NmU3ZGM1
NzQyY2VkMjA2N2U5NjY1NWI4YTEwZTA2M2Q5OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uKQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmln
dXJhdGlvbikpCiAgICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUo
bV9jb25maWd1cmF0aW9uLmxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCiAgICAgLCBtX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUobV9j
b25maWd1cmF0aW9uLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpKQotICAgICwgbV9x
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3Jl
IikpCisgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgi
V2Vic2l0ZSBEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIikpKQogewogICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogfQpAQCAtODksNyArODksNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRl
RGF0YVN0b3JlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX2lkZW50aWZp
ZXIoZ2VuZXJhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAg
ICAgLCBtX2NvbmZpZ3VyYXRpb24oKQotICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3JlIikpCisgICAgLCBtX3F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiV2Vic2l0ZSBEYXRhU3RvcmUiLCAiV2Vi
RGF0YVN0b3JlIikpKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9y
LmNwcAppbmRleCAwNjA4YWI3MmY5OTI0OGVmMjRjZDJkNTI0NWVlNTMzM2EwMGQ5ZDBkLi45ZjAx
Njg2MDc5OGI5ZjIyZWNkZDUyNjM0MWMzNzg3NzkwMjU1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcApA
QCAtMjQ4LDcgKzI0OCw3IEBAIE1lbW9yeVByZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVN
b25pdG9yKCkKICAgICBpZiAobV9ldmVudEZEID09IC0xKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoIk1lbW9y
eVByZXNzdXJlTW9uaXRvciIsIFt0aGlzXSB7CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJ
ZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiTWVtb3J5IFByZXNz
dXJlIE1vbml0b3IiLCAiTWVtUHJlc3NNb25pdG9yIiksIFt0aGlzXSB7CiAgICAgICAgIGRvdWJs
ZSBwb2xsSW50ZXJ2YWwgPSBzX21heFBvbGxpbmdJbnRlcnZhbEluU2Vjb25kczsKICAgICAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgIHNsZWVwKHBvbGxJbnRlcnZhbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAppbmRleCAy
MWVhN2IwMTJiMTg5OGQyMTAxMmIyMjg3MjViZWUxMDZmY2E2ZGI0Li42MWNmMDZlNzYzMDIwMGZm
MDk5N2JjZjUwNjNlZjk4YmE5MzA0NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgU2VjSXRlbVNo
aW1Qcm94eSYgU2VjSXRlbVNoaW1Qcm94eTo6c2luZ2xldG9uKCkKIH0KIAogU2VjSXRlbVNoaW1Q
cm94eTo6U2VjSXRlbVNoaW1Qcm94eSgpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltUHJveHkiKSkKKyAgICA6IG1fcXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJTZWNJdGVtU2hpbVByb3h5IiwgIlNl
Y0l0ZW1TaGltUCIpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcAppbmRleCBjYmM0ZjBlM2U4NDI5YmFhZDVlODhjYWFlMzZkNWZiMzUxOWQ4ODZiLi5lZDdh
NWM3OWQ4MjliZDY4Zjc5N2I1ZDBjODkzODRiZGE4ZGM4MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyPiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0
ZSgpCiB9CiAKIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIikpCisgICAgOiBtX3F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiUGx1Z2luUHJvY2VzcyBD
b25uZWN0aW9uIE1hbmFnZXIiLCAiUGx1Z2luQ29ubk1nciIpKSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApp
bmRleCAxZjIyMjY1OGM5MDZiNzNmNzU1NDFhY2EzNzJlOGVmNTA5OThkMTdhLi42ODYwMGIwYWIw
MjJjMmFlNDQyNDE5ODJmYWM0YWU0MjFjMzZhZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNTMsNyArNTMs
NyBAQCBSZWY8RXZlbnREaXNwYXRjaGVyPiBFdmVudERpc3BhdGNoZXI6OmNyZWF0ZSgpCiB9CiAK
IEV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuRXZlbnREaXNwYXRjaGVyIiwgV29ya1F1ZXVl
OjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQorICAgIDog
bV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkV2ZW50IERpc3Bh
dGNoZXIiLCAiRXZlbnREaXNwYXRjaCIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1
ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCiAgICAgLCBtX3JlY2VudFdoZWVsRXZlbnREZWx0
YUZpbHRlcihXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmNyZWF0ZSgpKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0
Y2hlci5jcHAKaW5kZXggYzhlMzYzODYxZjIwNTdhMDg2YTNmNzhkNWRiNDViMjNhMGM1Yjg2YS4u
Y2Y5MDk4N2E5YjJkMDYxOWRiMGJmZTNkZWNiZmU0NTNlMjA2NDA5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFJlZjxWaWV3VXBkYXRlRGlzcGF0Y2hlcj4gVmlld1Vw
ZGF0ZURpc3BhdGNoZXI6OmNyZWF0ZSgpCiB9CiAKIFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaWV3
VXBkYXRlRGlzcGF0Y2hlcigpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LlZpZXdVcGRhdGVEaXNwYXRjaGVyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiVmlldyBVcGRhdGUgRGlzcGF0Y2hlciIs
ICJWVXBkYXRlRGlzcGF0Y2giKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMTNkMmU2YjEyZTA5ODY4ZjVkZTc4ZmZlYjY5ZTQ4
ZjQzN2YxODdiLi5kZjliNDFjNTBlNjY2NzExZTBkNDBhYmVlNDdlZjJkNGJhZDVlNThhIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTctMDEtMDYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgVXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNo
b3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpy
dW5Mb2NrVGVzdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xv
dC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4
ZWRRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUb1VwcGVyQ29udmVydGVyOjpw
cm9kdWNlUXVldWUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6
Y29uc3VtZVF1ZXVlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVl
dWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsv
V2ViS2l0VGVzdFNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRU
ZXN0U2VydmVyKToKKwogMjAxNy0wMS0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBXYXJuaW5nIGFib3V0IHVuY29ubmVjdGFibGUgb3V0bGV0cyB3
aGVuIG9wZW5pbmcgYSBNaW5pQnJvd3NlciB3aW5kb3cKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDg0ODUyNzM1MWY2MDYzZmMyNjM2ODc4MDU2ZDlj
MjRkYmFiZTgzZGMuLjBkYmMyNjBhZTAzZWZkZjVhNTNlZTFjY2U4ODQ3Y2U3M2RmMjgwMjAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAtOTcsNyAr
OTcsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJDb25zdW1lciIsICJDb25zdW1lciIpLAogICAgICAg
ICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIHJ1blRlc3Qo
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAg
VGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAg
ICAgICAgIlByb2R1Y2VyIFRocmVhZCIsCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUo
IlByb2R1Y2VyIiwgIlByb2R1Y2VyIiksCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyAr
K2kpIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKaW5kZXggNTU3NjMwMmQ2OTBkZmNhMzU5
OTI5MjhiMWM4NTNjNzYyMmU0NWZiOS4uZmNiYmI5N2QxZGY3ZWI5Mjk1YTJhODBhY2I3M2I4NDZj
NTMwYWMzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKQEAgLTUzLDcg
KzUzLDcgQEAgdm9pZCBydW5Mb2NrVGVzdCh1bnNpZ25lZCBudW1UaHJlYWRHcm91cHMsIHVuc2ln
bmVkIG51bVRocmVhZHNQZXJHcm91cCwgdW5zaWduZWQKIAogICAgICAgICBmb3IgKHVuc2lnbmVk
IHRocmVhZEluZGV4ID0gbnVtVGhyZWFkc1Blckdyb3VwOyB0aHJlYWRJbmRleC0tOykgewogICAg
ICAgICAgICAgdGhyZWFkc1t0aHJlYWRHcm91cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsg
dGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICJMb2NrIHRlc3Qg
dGhyZWFkIiwKKyAgICAgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkxvY2sgVGVzdGVy
IiwgIkxvY2tUZXN0ZXIiKSwKICAgICAgICAgICAgICAgICBbdGhyZWFkR3JvdXBJbmRleCwgJmxv
Y2tzLCAmd29yZHMsIG51bUl0ZXJhdGlvbnMsIHdvcmtQZXJDcml0aWNhbFNlY3Rpb25dICgpIHsK
ICAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtSXRlcmF0aW9uczsgaS0t
OykgewogICAgICAgICAgICAgICAgICAgICAgICAgbG9ja3NbdGhyZWFkR3JvdXBJbmRleF0ubG9j
aygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xv
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcAppbmRl
eCBjNjdlMWUwODE1YTgzYWZhOTMzM2UyYWM5YTJiZDc4YjY3YjE2NDViLi5iNzBlZDU5NjU3MGQy
OWI3MDQ2M2RlOTZlZmMxYWJkNDUwZDk5ZjZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9QYXJraW5nTG90LmNwcApAQCAtNDksNyArNDksNyBAQCBzdHJ1Y3QgU2luZ2xlTGF0
Y2hUZXN0IHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtVGhyZWFkczsgaS0tOykgewog
ICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgY3JlYXRlVGhyZWFk
KAotICAgICAgICAgICAgICAgICAgICAiUGFya2luZyBUZXN0IFRocmVhZCIsCisgICAgICAgICAg
ICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiUGFya2luZyBUZXN0ZXIiLCAiUGFya2luZ1Rl
c3RlciIpLAogICAgICAgICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgRVhQRUNUX05FKDB1LCBjdXJyZW50VGhyZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwCmlu
ZGV4IDMxNDM2YmMyMjMwN2Y5ZGQ3M2Y2OTE4YjI0YWRiNDBlNzg5ZmI1ZWMuLmFiZDcyNTNkNjMz
ODlkZjBlOTJlYjVhZTc1YmRmZjhhYWNmMjc3YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwCkBAIC02Miwx
NCArNjIsMTQgQEAgY2xhc3MgVG9VcHBlckNvbnZlcnRlciB7CiAgICAgV29ya1F1ZXVlKiBwcm9k
dWNlUXVldWUoKQogICAgIHsKICAgICAgICAgaWYgKCFtX3Byb2R1Y2VRdWV1ZSkKLSAgICAgICAg
ICAgIG1fcHJvZHVjZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuUHJvZHVj
ZSIpOworICAgICAgICAgICAgbV9wcm9kdWNlUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVB
VEVfVEhSRUFEX05BTUUoIlByb2R1Y2VyIiwgIlByb2R1Y2VyIikpOwogICAgICAgICByZXR1cm4g
bV9wcm9kdWNlUXVldWUuZ2V0KCk7CiAgICAgfQogCiAgICAgV29ya1F1ZXVlKiBjb25zdW1lUXVl
dWUoKQogICAgIHsKICAgICAgICAgaWYgKCFtX2NvbnN1bWVRdWV1ZSkKLSAgICAgICAgICAgIG1f
Y29uc3VtZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuQ29uc3VtZSIpOwor
ICAgICAgICAgICAgbV9jb25zdW1lUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhS
RUFEX05BTUUoIkNvbnN1bWVyIiwgIkNvbnN1bWVyIikpOwogICAgICAgICByZXR1cm4gbV9jb25z
dW1lUXVldWUuZ2V0KCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
V29ya1F1ZXVlLmNwcAppbmRleCA3ZTI3N2U5NGM0N2NlM2NlMmZiODI1MmY2Y2RjM2E1NWFmMzdi
ZTc5Li41ZmEyOWI3NTA2ZTcwYzI4MDI3Yjc5N2EyNTQxMWE3NDI5YjE4YmE5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAg
VEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxvbmdU
ZXN0TGFiZWwgPSAibG9uZ1Rlc3QiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aGlyZFRlc3RM
YWJlbCA9ICJ0aGlyZFRlc3QiOwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LlRlc3Quc2ltcGxlIik7CisgICAgYXV0byBxdWV1ZSA9IFdvcmtR
dWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiU2ltcGxlIFRlc3QiLCAiU2ltcGxlVGVz
dCIpKTsKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7CiAgICAg
RVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKQEAgLTEwNiw4ICsxMDYsOCBAQCBURVNU
KFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBib29sIGNhbGxlZExvbmdUZXN0ID0gZmFs
c2U7CiAgICAgYm9vbCBjYWxsZWRUaGlyZFRlc3QgPSBmYWxzZTsKICAgICAKLSAgICBhdXRvIHF1
ZXVlMSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVz
MSIpOwotICAgIGF1dG8gcXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuVGVzdC50d29RdWV1ZXMyIik7CisgICAgYXV0byBxdWV1ZTEgPSBXb3JrUXVldWU6OmNyZWF0
ZShDUkVBVEVfVEhSRUFEX05BTUUoIlR3b1F1ZXVlczEgVGVzdCIsICJUd29RdWV1ZXMxVGVzdCIp
KTsKKyAgICBhdXRvIHF1ZXVlMiA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFN
RSgiVHdvUXVldWVzMiBUZXN0IiwgIlR3b1F1ZXVlczJUZXN0IikpOwogCiAgICAgRVhQRUNUX0VR
KDEsIHF1ZXVlMS0+cmVmQ291bnQoKSk7CiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMi0+cmVmQ291
bnQoKSk7CkBAIC0xNjcsNyArMTY3LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBEaXNwYXRjaEFm
dGVyKQogICAgIGJvb2wgY2FsbGVkU2ltcGxlVGVzdCA9IGZhbHNlOwogICAgIGJvb2wgY2FsbGVk
RGlzcGF0Y2hBZnRlclRlc3QgPSBmYWxzZTsKIAotICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiKTsKKyAgICBhdXRv
IHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJEaXNwYXRjaEFm
dGVyIFRlc3QiLCAiRGlzcGF0Y2hBZnRlciIpKTsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CiAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERlc3Ryb3lP
blNlbGYpCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihsb2NrKTsKICAgICAgICAg
ewotICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdv
cmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRGVzdHJveU9uU2VsZiBUZXN0Iiwg
IkRlc3Ryb3lPblNlbGYiKSk7CiAgICAgICAgICAgICBxdWV1ZS0+ZGlzcGF0Y2hBZnRlcihzdGQ6
OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCksIFsmXSh2b2lkKSB7CiAgICAgICAgICAgICAgICAg
TG9ja0hvbGRlciBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hBZnRlclRl
c3RTdGFydGVkLndhaXQobG9jaywgWyZdIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCmluZGV4IDk5MjNkNjU4MDBlZDcxNGJh
NjgwNmIxM2Y3ZTUxZmVlNTgwMzVhZDAuLjMwZWNjMDVmNmU5MmEzYmQwZDZkNzFiYWU1NjExZTQ2
M2Q5MDM1ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIv
V29ya1F1ZXVlR0xpYi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xp
Yi9Xb3JrUXVldWVHTGliLmNwcApAQCAtNDQsNyArNDQsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUs
IEFzeW5jSU8pCiAgICAgICAgIEdNYWluQ29udGV4dCogbV9tYWluQ29udGV4dDsKICAgICB9IGNv
bnRleHQ7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQuVGVzdC5Bc3luY0lPIik7CisgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiQXN5bmNJTyBUZXN0IiwgIkFzeW5jSU9UZXN0IikpOwogICAg
IGNvbnRleHQubV9tYWluQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKTsKICAgICBF
WFBFQ1RfRkFMU0UoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2
ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2Vy
dmVyLmNwcAppbmRleCBkZTk0NjZjMzlkNzFjZmMyYWJmNDQ5ZmNmZGUzODliNTQ0OWRmMzI3Li5l
OWQ4YzM0MmFhYzFiMDhhMTlkNWU5ZWEyMmRmNTg2ZjkxNmRhNGVhIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAK
QEAgLTI4LDcgKzI4LDcgQEAgV2ViS2l0VGVzdFNlcnZlcjo6V2ViS2l0VGVzdFNlcnZlcihTZXJ2
ZXJPcHRpb25zIG9wdGlvbnMpCiB7CiAgICAgaWYgKG9wdGlvbnMgJiBTZXJ2ZXJSdW5JblRocmVh
ZCkgewogICAgICAgICBXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICAgICAgbV9xdWV1
ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJLaXRUZXN0U2VydmVyIik7CisgICAgICAgIG1fcXVl
dWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIldlYktpdCBUZXN0IFNl
cnZlciIsICJUZXN0U2VydmVyIikpOwogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc3Ns
Q2VydGlmaWNhdGVGaWxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298350</attachid>
            <date>2017-01-09 06:19:48 -0800</date>
            <delta_ts>2017-01-09 07:03:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170109231813.patch</filename>
            <type>text/plain</type>
            <size>104428</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZjExNDUxMzhkYTdlNWE0ZjE4ZjQxZDhmOWY3YmY1OWFjOWVhMzVjLi41YTRiMDhiNTViNDc0Njc4
NGRlODRhNDYwNjY2NTc2ZmVlOWNlZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBh
bmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHA6CisgICAgICAgICh0ZXN0
Q29tcGFyZUFuZFN3YXApOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6cnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKyAgICAgICAgKiBieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwOgorICAg
ICAgICAoSlNDOjppbml0aWFsaXplU3VwZXJTYW1wbGVyKToKKyAgICAgICAgKiBkZmcvREZHV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpUaHJlYWRCb2R5OjpUaHJl
YWRCb2R5KToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAg
ICAoSlNDOjpERkc6OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRG
Rzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZH
V29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToK
KyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkaXNhc3NlbWJsZXIvRGlz
YXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpI
ZWFwOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChKU0M6OkhlYXA6Om5vdGlmeUlzU2FmZVRv
Q29sbGVjdCk6CisgICAgICAgICogaGVhcC9IZWFwSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChK
U0M6OmhlYXBIZWxwZXJQb29sKToKKyAgICAgICAgKiBqaXQvSUNTdGF0cy5jcHA6CisgICAgICAg
IChKU0M6OklDU3RhdHM6OklDU3RhdHMpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6
CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKHN0YXJ0VGltZW91dFRocmVhZElmTmVlZGVkKToKKyAgICAgICAg
KiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcnVudGltZS9XYXRj
aGRvZy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpXYXRjaGRvZyk6CisgICAgICAgICog
d2FzbS9XYXNtUGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlBsYW46OnJ1bik6CisKIDIw
MTctMDEtMDggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIElu
amVjdCBNYXJrZWRTcGFjZSBzaXplIGNsYXNzZXMgZm9yIGEgZmV3IG1vcmUgaGlnaC12b2x1bWUg
b2JqZWN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggYjk4OGEzMmUyZWQzOTQ1NmFlOWZmNzBmNDkxYTA0ZDA0YjE2ODhlOS4u
MzY3ODY2YWVlZWNmMjU5YmQ3MTQwYWU0ODgzNDEzMmQ1ODgwNDUxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5
OCBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
KworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hv
cnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBDUkVBVEVfVEhSRUFEX05BTUUuIEFuZCBhcHBseSBjb25z
aXN0ZW50IG5hbWluZworICAgICAgICBwb2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisg
ICAgICAgIENSRUFURV9USFJFQURfTkFNRSB0YWtlcyAyIG5hbWVzLCBzaG9ydCBhbmQgbG9uZyBu
YW1lcy4gVGhlIGxvbmcgbmFtZQorICAgICAgICBpcyB1c2VkIGZvciBtYWNPUyBhbmQgaU9TIHNp
bmNlIHRoZXkgZG8gbm90IGhhdmUgdGhlIGxpbWl0YXRpb24uIE9uIHRoZQorICAgICAgICBvdGhl
ciBoYW5kLCBMaW51eCBvbmx5IGFsbG93cyAxNSBjaGFyYWN0ZXJzIGZvciB0aHJlYWQgbmFtZXMu
IFNvIGZvcgorICAgICAgICBMaW51eCwgd2UgdXNlIHRoZSBzaG9ydCBuYW1lLiBXaW5kb3dzIGFs
c28gaGFzIDMxIGNoYXJhY3RlcnMgbGltaXRhdGlvbi4KKyAgICAgICAgV2luZG93cyBhbHNvIHVz
ZXMgdGhlIHNob3J0IG5hbWUuCisKKyAgICAgICAgV2hlbiB5b3Ugc3BlY2lmeSB0aGUgbmFtZSBs
aWtlLAorCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jaHJvbm91cyBEaXNh
c3NlbWJsZXIiLCAiQXN5bmNEaXNhc20iKSwKKworICAgICAgICBUaGUgdGhyZWFkIG5hbWUgYmVj
b21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIFdp
bmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1MgYW5kIGlPUzog
IldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBDUkVBVEVfVEhS
RUFEX05BTUUgY2hlY2tzIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0IG5hbWUgaXMgPD0gMTUgYXQg
Y29tcGlsZQorICAgICAgICB0aW1lLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LCBjb21w
aWxlIGVycm9yIG9jY3Vycy4KKworICAgICAgICBUaGUgIldlYktpdDogIiBwcmVmaXggaXMgYXV0
b21hdGljYWxseSBhZGRlZCBieSBDUkVBVEVfVEhSRUFEX05BTUUgbWFjcm8KKyAgICAgICAgd2l0
aG91dCBhbGxvY2F0aW5nIGFueSBhZGRpdGlvbmFsIG1lbW9yeSBhdCBydW50aW1lLiBUaGlzIHBy
ZWZpeCBpcyBpbXBvcnRhbnQKKyAgICAgICAgc2luY2UgaXQgY2FuIHNheSB0aGF0IHRoaXMgdGhy
ZWFkIGlzIHJlbGF0ZWQgdG8gV2ViS2l0LiBXaGVuIHVzaW5nIFdlYktpdAorICAgICAgICBhcyBm
cmFtZXdvcmssIFdlYktpdCByZWxhdGVkIHRocmVhZHMgd2lsbCBiZSBsYXVuY2hlZCBhbG9uZyB3
aXRoIHVzZXIKKyAgICAgICAgYXBwbGljYXRpb24ncyB0aHJlYWRzLiBXaXRob3V0ICJXZWJLaXQ6
ICIgcHJlZml4LCBpdCBpcyBhIGJpdCBkaWZmaWN1bHQKKyAgICAgICAgdG8gZGlzdGluZ3Vpc2gg
dXNlcidzIHRocmVhZHMgZnJvbSBXZWJLaXQgcmVsYXRlZCBvbmVzLgorCisgICAgICAgIFdlIGFw
cGx5IHRoaXMgcG9saWN5IHRvIGFsbCB0aGUgV2ViS2l0IHRocmVhZCBuYW1lcyBleGNlcHQgZm9y
IGJtYWxsb2MncyBvbmUuCisgICAgICAgIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGluIFsxXS4KKwor
ICAgICAgICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2
ODQKKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtz
L0xvY2tGYWlybmVzc1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVz
dC5jcHA6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6
OkF1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21h
dGljVGhyZWFkOjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAg
ICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxl
bEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVs
SGVscGVyUG9vbDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAg
ICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVs
RW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9U
aHJlYWROYW1lLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwLgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAgICAgICAg
KFdURjo6VGhyZWFkTmFtZTo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi9U
aHJlYWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RG
Ojpub3JtYWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5n
Lmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6
Y3JlYXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRo
cmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNy
ZWF0ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAg
ICAgKFdURjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6Oldv
cmtRdWV1ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAg
ICAgICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRj
aFF1ZXVlOjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpj
cmVhdGUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAq
IHd0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0
Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMu
Y3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAq
IHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6
QVNDSUlMaXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25z
dCBjaGFyKik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6
OkFTQ0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVND
SUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3Rm
L3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRQbGF0Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEtMDggIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgY2FjaGUgY29k
ZXJzIHRvIFdURgpAQCAtNzMsNiArMTY4LDYwIEBACiAgICAgICAgICogd3RmL3RleHQvQVNDSUlG
YXN0UGF0aC5oOgogICAgICAgICAoV1RGOjpjb3B5TENoYXJzRnJvbVVDaGFyU291cmNlKToKIAor
ICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tG
YWlybmVzc1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhy
ZWFkOjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAq
IHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBl
clBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVy
UG9vbDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wu
aDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAgICAgKiB3
dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJv
bm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9UaHJlYWRO
YW1lLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
LgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAgICAgICAgKFdURjo6
VGhyZWFkTmFtZTo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi9UaHJlYWRp
bmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpub3Jt
YWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6Cisg
ICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRl
VGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVhZElu
dGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6
aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0ZVRo
cmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFdU
Rjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtRdWV1
ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAgICAg
KiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNw
cDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAg
ICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1ZXVl
OjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVhdGUp
OgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0Zi9l
ZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgor
ICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90
ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlM
aXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFy
Kik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFTQ0lJ
TGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlMaXRl
cmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dpbi9N
YWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0
Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEtMDUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBDYXJldHMgY2FuIHNw
bGl0IHVwIG1hcnJpYWdlcyBhbmQgZmFtaWxpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMzFlYjdhNmZkZGJj
NTQ5ZWYxNDE1MTZjMjNhN2Y2ZGRhMzNkNTlmLi40NzE3ZGMwMjA2YzMxZWU3ZTE3ODNlMDc5NmEz
YTViYTdjNjgzNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTctMDEtMDkgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIENSRUFU
RV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJT
ZXJ2ZXI6OklEQlNlcnZlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlv
RGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNB
dWRpb0RlY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OnN0
YXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9y
RGVidWdnaW5nKToKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKToKKyAgICAgICAgKiBmaWxlYXBp
L0FzeW5jRmlsZVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsT25GaWxlVGhyZWFk
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpvcGVuKToKKyAgICAgICAgKiBwYWdlL1Jlc291cmNlVXNhZ2VU
aHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRl
VGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OlJldmVyYkNvbnZvbHZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RnJhbWVDYWNoZTo6ZGVjb2RpbmdRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChSZXNvdXJj
ZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6
RXZlbnRGRFBvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsb2JVdGlsaXR5UXVldWUpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVVSTERlY29kZXI6OmRlY29kZVF1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL0xvYWRlclJ1bkxvb3BDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkZXJSdW5Mb29w
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFy
dFRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdGFydCk6CisKIDIwMTctMDEtMDkgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYlByb2Nl
c3MgZnJvbSBXZWJLaXRHdGsrIDIuMTUuMiBTSUdTRUdWcyBpbiBzdGQ6OnVuaXF1ZV9wdHI8U291
cEJ1ZmZlciwgV1RGOjpHUHRyRGVsZXRlcjxTb3VwQnVmZmVyPiA+OjpnZXQoKSBjb25zdCAoKSBh
dCAvdXNyL2luY2x1ZGUvYysrLzYvYml0cy91bmlxdWVfcHRyLmg6MzA1CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1
ZmQ4NWNhYWZlNGVkOGVlNDhhNTFiZDE3NWM2YjQ2ZDVjNmVmMWYuLjcxZWNlYWFhOTEyZTU0YTUy
NTJjMjJmODIzYWNmODJjMzIyM2YwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTct
MDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
VXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2Uv
U3RvcmFnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpzdGFy
dCk6CisKIDIwMTctMDEtMDUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIENvbXBpbGUgZXJyb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2Q4MzBhNjMyOWM0
OTMzMDI0MTk1ODZiYThmYmI2YTgwNDY1MDkzNC4uYjJiYTNmYzY5MjM0MzgzMzBhZjdkM2U4ZjJi
NWVlYzM5MDU0MjU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTAxLTA5ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBDUkVB
VEVfVEhSRUFEX05BTUUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjpE
YXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmRlbGV0ZUR1
bXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0No
YW5uZWxTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJT0NoYW5uZWw6
OnJlYWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0
YXRpc3RpY3M6OlN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0
b3JhZ2U6OlN0b3JhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChJUEM6OkNv
bm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAq
IFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaWRDbG9zZU9uQ29u
bmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldvcmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9yQ29udGV4dCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OndvcmtR
dWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6VXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1h
bmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbGludXgv
TWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVtb3J5UHJlc3N1
cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY0l0ZW1TaGltUHJv
eHk6OlNlY0l0ZW1TaGltUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0ZURpc3BhdGNoZXIpOgorCiAy
MDE3LTAxLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlIGNhY2hlIGNvZGVycyB0byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAppbmRleCBlNzgwODZjM2E5NjEyYTJm
MGI0ZDdhYWYxYWRjN2JhMWExMDFjNTQ3Li4zZjcxMGM3M2NlMWM0ODMwMjRiOTIyOTI4NDBmYTM2
NjM0ZjgxZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0Nv
bXBhcmVBbmRTd2FwVGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCB0ZXN0Q29t
cGFyZUFuZFN3YXAoKQogICAgICAgICBkYXRhW2ldLmlkID0gaTsKICAgICAgICAgZGF0YVtpXS5u
dW1UaHJlYWRzID0gbnVtVGhyZWFkczsKICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRo
cmVhZEZ1bmMgPSBzdGQ6OmJpbmQoc2V0Qml0VGhyZWFkRnVuYywgJmRhdGFbaV0pOwotICAgICAg
ICB0aHJlYWRJRHNbaV0gPSBjcmVhdGVUaHJlYWQoInNldEJpdFRocmVhZEZ1bmMiLCB0aHJlYWRG
dW5jKTsKKyAgICAgICAgdGhyZWFkSURzW2ldID0gY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURf
TkFNRSgic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRUaHJlYWRGdW5jIiksIHRocmVhZEZ1bmMp
OwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBmb3IgJWQgdGhyZWFkcyB0byBqb2luXG4i
LCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
dGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmlu
ZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4NGQ0NTc2Y2Y0NGYuLmRkZDQ5ZTFlYzg0
NjI1MzdiMTdlZTU1NzEwY2EyNWJkMGIzYTExZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgdm9pZCBydW4oY29uc3QgY2hh
ciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9IGZpbHRlciA/IDEgOiBXVEY6Om51bWJl
ck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAgICAgICB0aHJlYWRzLmFwcGVuZCgKICAg
ICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAidGVzdGIzIHRocmVhZCIs
CisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJUZXN0QjMgV29ya2VyIiwgIlRl
c3RCM1dvcmtlciIpLAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNr
PHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGZjMzNj
NmZjZmFkZjg5MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1ZTEuLjZmYWIzYTc3MDhhM2EzZDA1OGJj
NjAzYmRmZWVhMmI2NDdjNTVmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBA
IC0xNTY2MSw3ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVz
KCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAgICAgICBjcmVhdGVU
aHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0aHJlYWQiLAorICAgICAgICAgICAgICAg
IENSRUFURV9USFJFQURfTkFNRSgiVGVzdEIzIFdvcmtlciIsICJUZXN0QjNXb3JrZXIiKSwKICAg
ICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+PiB0YXNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRl
eCBhNGUyMWY5ZmEzY2Q0NzIxZWEyNjc1ZTA2ZTRkNTMwYzViYTk1YjM1Li43NTljZjM0NTY0YzQ3
ZjE1YTMyNWRkYzI4NWIwZTliYTQ3Yjc0ZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIGluaXRp
YWxpemVTdXBlclNhbXBsZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBjcmVhdGVUaHJlYWQo
Ci0gICAgICAgICJKU0MgU3VwZXIgU2FtcGxlciIsCisgICAgICAgIENSRUFURV9USFJFQURfTkFN
RSgiU3VwZXIgU2FtcGxlciIsICJTdXBlclNhbXBsZXIiKSwKICAgICAgICAgW10gKCkgewogICAg
ICAgICAgICAgY29uc3QgaW50IHNsZWVwUXVhbnR1bSA9IDEwOwogICAgICAgICAgICAgY29uc3Qg
aW50IHByaW50aW5nUGVyaW9kID0gMTAwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdX
b3JrbGlzdC5jcHAKaW5kZXggNWUzMzhmMDEyYjg5OTRkOTg2NTQ0NmU4NzgxNDc4NGQ4ZTg1NTA3
Yi4uNDM5NTdiOGE1YmFjZmQ4ZGYzOThkMDcyZDg3N2YxYTUwZTFjZmVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAgLTQwLDggKzQwLDggQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgotICAgIFRocmVhZEJvZHkoY29uc3Qg
TG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3QsIFRocmVhZERhdGEmIGRhdGEs
IEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRp
b24sIGludCByZWxhdGl2ZVByaW9yaXR5KQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2Nr
ZXIsIGxvY2ssIGNvbmRpdGlvbikKKyAgICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxv
Y2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9j
aywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRp
dmVQcmlvcml0eSwgVGhyZWFkTmFtZSB0aHJlYWROYW1lKQorICAgICAgICA6IEF1dG9tYXRpY1Ro
cmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbiwgdGhyZWFkTmFtZSkKICAgICAgICAgLCBtX3dv
cmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAsIG1fZGF0YShkYXRhKQogICAgICAgICAsIG1fcmVs
YXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9yaXR5KQpAQCAtMTczLDggKzE3Myw4IEBAIGNsYXNz
IFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiAgICAgUmVm
UHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nIHdvcmts
aXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFtZSh0b0NTdHJpbmcod29ya2xpc3ROYW1lLCAiIFdv
cmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpXb3JrbGlzdChUaHJlYWROYW1lIHRocmVhZE5hbWUp
CisgICAgOiBtX3RocmVhZE5hbWUodGhyZWFkTmFtZSkKICAgICAsIG1fbG9jayhCb3g8TG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
OjpjcmVhdGUoKSkKICAgICAsIG1fbnVtYmVyT2ZBY3RpdmVUaHJlYWRzKDApCkBAIC0yMDAsMTQg
KzIwMCwxNCBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJP
ZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogICAgIExvY2tIb2xkZXIgbG9ja2VyKCpt
X2xvY2spOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mVGhyZWFkczsgaS0tOykgewog
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlx
dWU8VGhyZWFkRGF0YT4odGhpcyk7Ci0gICAgICAgIGRhdGEtPm1fdGhyZWFkID0gYWRvcHRSZWYo
bmV3IFRocmVhZEJvZHkobG9ja2VyLCAqdGhpcywgKmRhdGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1
ZWQsIHJlbGF0aXZlUHJpb3JpdHkpKTsKKyAgICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJl
ZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1
ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSwgbV90aHJlYWROYW1lKSk7CiAgICAgICAgIG1fdGhyZWFk
cy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7CiAgICAgfQogfQogCi1SZWY8V29ya2xpc3Q+IFdvcmts
aXN0OjpjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFk
cywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCitSZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUo
VGhyZWFkTmFtZSB0aHJlYWROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxh
dGl2ZVByaW9yaXR5KQogewotICAgIFJlZjxXb3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5l
dyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgV29ya2xpc3QodGhyZWFkTmFtZSkpOwogICAgIHJlc3VsdC0+ZmluaXNoQ3Jl
YXRpb24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVByaW9yaXR5KTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtNTE2LDcgKzUxNiw3IEBAIFdvcmtsaXN0JiBlbnN1cmVHbG9iYWxERkdXb3Jr
bGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3Jr
bGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlz
dE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gJldvcmtsaXN0
OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJl
YWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFr
UmVmKCk7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJERkcgQ29tcGlsZXIgV29ya2VyIiwgIkRGR0NvbXBpbGVyIiks
IE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5
RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0
dXJuICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTUzMiw3ICs1MzIsNyBAQCBXb3JrbGlz
dCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShp
bml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxG
VExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBPcHRpb25zOjpu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExD
b21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlz
dCA9ICZXb3JrbGlzdDo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRlRMIENvbXBpbGVyIFdv
cmtlciIsICJGVExDb21waWxlciIpLCBPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFk
cygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1Jl
ZigpOwogICAgIH0pOwogICAgIHJldHVybiAqdGhlR2xvYmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2
ZmMzMjIxOWIwZmE0NGY2ZjExYzdmOC4uYzEwNDcyN2Y5YmIwZjExOGMwOWI5ZWZiNzNiZDdkMzQ4
NzVlMDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtNDgs
NyArNDgsNyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7
CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAKLSAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVh
dGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJl
bGF0aXZlUHJpb3JpdHkgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoVGhy
ZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9
IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNzUmVmUHRyPFBsYW4+KTsKICAgICAKQEAg
LTgyLDcgKzgyLDcgQEAgY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlz
dD4gewogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToK
LSAgICBXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSk7CisgICAgV29ya2xpc3QoVGhyZWFk
TmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMs
IGludCk7CiAgICAgCiAgICAgY2xhc3MgVGhyZWFkQm9keTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xh
c3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogCiAgICAgdm9pZCBk
dW1wKGNvbnN0IExvY2tIb2xkZXImLCBQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIENT
dHJpbmcgbV90aHJlYWROYW1lOworICAgIFRocmVhZE5hbWUgbV90aHJlYWROYW1lOwogICAgIAog
ICAgIC8vIFVzZWQgdG8gaW5mb3JtIHRoZSB0aHJlYWQgYWJvdXQgd2hhdCB3b3JrIHRoZXJlIGlz
IGxlZnQgdG8gZG8uCiAgICAgRGVxdWU8UmVmUHRyPFBsYW4+PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4
IDc4OGE2YzM2MjM2OWM1OGRhZDI5YTYwYTM4NzEwNDRlNDY0ZWQzMDUuLmE4YWViODRkZjRiZjll
ZGRmNTQ4ZGRlZjIzNDk2ZTBiZTg2OTlmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKQEAgLTczLDcgKzczLDcgQEAgY2xh
c3MgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVyIHsKIHB1YmxpYzoKICAgICBBc3luY2hyb25vdXNE
aXNhc3NlbWJsZXIoKQogICAgIHsKLSAgICAgICAgY3JlYXRlVGhyZWFkKCJBc3luY2hyb25vdXMg
RGlzYXNzZW1ibGVyIiwgWyZdICgpIHsgcnVuKCk7IH0pOworICAgICAgICBjcmVhdGVUaHJlYWQo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlz
YXNtIiksIFsmXSAoKSB7IHJ1bigpOyB9KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVl
KHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+IHRhc2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuY3BwCmluZGV4IDI2NTgzYzRlOTQ2MDgwYWQ2YjdhZmNjMTlkNjdiYjUzZTBhZGFi
ZDguLmY5OWYxYTUyNGQxMWJiNTY3OGZiYmQ3Yzk2ZTJkNTc5ZjVhNDkyMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgY2xhc3MgVGltaW5nU2Nv
cGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJs
aWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKLSAg
ICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5t
X3RocmVhZENvbmRpdGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFw
Lm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbiwgQ1JFQVRFX1RIUkVBRF9OQU1F
KCJIZWFwIENvbGxlY3RvciIsICJIZWFwQ29sbGVjdG9yIikpCiAgICAgICAgICwgbV9oZWFwKGhl
YXApCiAgICAgewogICAgIH0KQEAgLTIxNDcsNyArMjE0Nyw3IEBAIHZvaWQgSGVhcDo6bm90aWZ5
SXNTYWZlVG9Db2xsZWN0KCkKICAgICAKICAgICBpZiAoT3B0aW9uczo6Y29sbGVjdENvbnRpbnVv
dXNseSgpKSB7CiAgICAgICAgIG1fY29sbGVjdENvbnRpbnVvdXNseVRocmVhZCA9IGNyZWF0ZVRo
cmVhZCgKLSAgICAgICAgICAgICJKU0MgREVCVUcgQ29udGludW91cyBHQyIsCisgICAgICAgICAg
ICBDUkVBVEVfVEhSRUFEX05BTUUoIkpTQyBERUJVRyBDb250aW51b3VzIEdDIiwgIkNvbnRpbnVv
dXNHQyIpLAogICAgICAgICAgICAgW3RoaXNdICgpIHsKICAgICAgICAgICAgICAgICBNb25vdG9u
aWNUaW1lIGluaXRpYWxUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAgICAgICAg
ICAgU2Vjb25kcyBwZXJpb2QgPSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKE9wdGlvbnM6OmNv
bGxlY3RDb250aW51b3VzbHlQZXJpb2RNUygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXBIZWxwZXJQb29sLmNwcAppbmRleCA3OTFhYTc1NmY5NWUxY2I1NjQwZmMzM2I0NTY3
NzQ1MWVlMWEyNTM2Li42ZTk2YzRjYzM3MzEwYWQ5YzU4N2FiMTcxOGUwNDgzN2NiZTRmOThmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCkBAIC0z
OCw3ICszOCw3IEBAIFBhcmFsbGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKQogICAgIHN0
ZDo6Y2FsbF9vbmNlKAogICAgICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnLAogICAg
ICAgICBbXSB7Ci0gICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9v
bCgpOworICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBlclBvb2woQ1JF
QVRFX1RIUkVBRF9OQU1FKCJIZWFwIEhlbHBlciIsICJIZWFwSGVscGVyIikpOwogICAgICAgICAg
ICAgaGVscGVyUG9vbC0+ZW5zdXJlVGhyZWFkcyhPcHRpb25zOjpudW1iZXJPZkdDTWFya2Vycygp
IC0gMSk7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqaGVscGVyUG9vbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0lDU3RhdHMuY3BwCmluZGV4IDIwODBjZDkzNDU4MzNkMmQyMzJiOGE5Y2Q2ZjNk
YmZlYmUwNWNiMjMuLjkzNzZkNDllZDg0YTkyMTZlMWM4NzBiZDg3YmQyNzRmODYzYTk2OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmNwcApAQCAtNTksNyArNTksNyBAQCBBdG9t
aWM8SUNTdGF0cyo+IElDU3RhdHM6OnNfaW5zdGFuY2U7CiBJQ1N0YXRzOjpJQ1N0YXRzKCkKIHsK
ICAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIkpTQyBJQ1N0YXRzIiwKKyAg
ICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJKU0MgSUNTdGF0cyIsICJJQ1N0YXRzIiksCiAgICAg
ICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwog
ICAgICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmts
aXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFmNzdkOTYxNmFjZWQwNGNhN2Y1MWE2Li4z
MzNjYTNiYTk0MzYzYmMxMjdkODgzODc1N2MwZTNkMjdjMzdhNmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIGNsYXNzIEpJ
VFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpJVFdvcmtsaXN0
OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1Ro
cmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgSklU
V29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHdv
cmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGlj
VGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5tX2NvbmRpdGlvbiwgQ1JF
QVRFX1RIUkVBRF9OQU1FKCJCYXNlbGluZSBKSVQgQ29tcGlsZXIgV29ya2VyIiwgIkpJVENvbXBp
bGVyIikpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAgICB7CiAgICAgICAgIG1f
d29ya2xpc3QubV9udW1BdmFpbGFibGVUaHJlYWRzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4
IDNhN2EzZjQ3MjdkMDIwMmU3MmU1YThlZWZlMDMyODc2MjA4MjViMzMuLjNmMzRiNGZhY2NmNzEy
NTI5NDEyNzY0YjlhODM0ZTA5MDYyNjk1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yNzE5
LDcgKzI3MTksNyBAQCBzdGF0aWMgdm9pZCBzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCgpCiAg
ICAgICAgICAgICBkYXRhTG9nKCJXQVJOSU5HOiB0aW1lb3V0IHN0cmluZyBpcyBtYWxmb3JtZWQs
IGdvdCAiLCB0aW1lb3V0U3RyaW5nLAogICAgICAgICAgICAgICAgICIgYnV0IGV4cGVjdGVkIGEg
bnVtYmVyLiBOb3QgdXNpbmcgYSB0aW1lb3V0LlxuIik7CiAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3JlYXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRNYWluLCAwLCAianNjIFRpbWVvdXQgVGhy
ZWFkIik7CisgICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4sIDAsIENS
RUFURV9USFJFQURfTkFNRSgiSlNDIFRpbWVvdXQgVGhyZWFkIiwgIlRpbWVvdXRUaHJlYWQiKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
YW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwCmluZGV4IDcwMzRkYzY5NmI5ZTExNDkyODhjN2JiOWVkZGVmZTJhYjE2
YjE3Y2EuLmZmMDM3YWZjOTRhZGQ3ZTExNWFmYWM1ZTdiOGRhMDZiOGE4NzQzOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBA
IC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5l
Y2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJikKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRy
PFNhbXBsaW5nUHJvZmlsZXI+IHByb2ZpbGVyID0gdGhpczsKLSAgICBtX3RocmVhZElkZW50aWZp
ZXIgPSBjcmVhdGVUaHJlYWQoImpzYy5zYW1wbGluZy1wcm9maWxlci50aHJlYWQiLCBbcHJvZmls
ZXJdIHsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVB
RF9OQU1FKCJTYW1wbGluZyBQcm9maWxlciIsICJTYW1wbGluZyIpLCBbcHJvZmlsZXJdIHsKICAg
ICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmluZGV4IGY2MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0
OGY2MGM5NTcyNTZjYjVjMjMuLmNhYmU0YTUxYmY0MjZiYTMyMDNiNDM5Y2RkMzlhZjY5MjU1NjMw
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKQEAgLTQ4
LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAgICAsIG1fY2FsbGJhY2soMCkKICAg
ICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCi0gICAgLCBt
X3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCisgICAgLCBtX3Rp
bWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXYXRjaGRvZyIs
ICJXYXRjaGRvZyIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0
aWxpdHkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAKaW5k
ZXggNTk4MGI1MWU4NzQyMjIzNzU1Y2UwYzNkZjJjMTZiMWRlOWVjOGYxMi4uMWQ4MGFiZDIyYjk4
MWRjMWFlOWI0Zjk5M2ZhYTE0YTI3ZGVlNWRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21QbGFuLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgUGxhbjo6cnVuKCkKICAgICBW
ZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gdGhyZWFkczsKICAgICB0aHJlYWRzLnJlc2VydmVDYXBh
Y2l0eShudW1Xb3JrZXJUaHJlYWRzKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVt
V29ya2VyVGhyZWFkczsgaSsrKQotICAgICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVh
dGVUaHJlYWQoImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRocmVhZCIsIGRvV29yaykpOworICAg
ICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9O
QU1FKCJXYXNtIEIzIENvbXBpbGVyIiwgIldhc21CM0NvbXBpbGVyIiksIGRvV29yaykpOwogCiAg
ICAgZG9Xb3JrKCk7IC8vIExldCB0aGUgbWFpbiB0aHJlYWQgZG8gc29tZSB3b3JrIHRvby4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmE3ODA0NDkzYzk1
Zjg5Y2RhNmJmMzFhMzgxNTkwZjFjZmMwZTA0Yy4uZDFkMWNlNWMyODdiMzBlMjFmZGE5NmY3YTE1
ZWVhNDIxNDFhZWMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNjgsNiArMzY4LDggQEAKIAkJRkU4OTI1QjAxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVu
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5
MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMw
RjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3Rh
dHMuY3BwICovOyB9OwogCQlGRURBQ0QzRTE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0Mx
NjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAqLzsgfTsKKwkJOEFEODkyRjBENTg1NDZE
MTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzFBOUJENDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJh
bC5oICovOyB9OworCQk4OTY2RTQxODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjFFMkU1REU2RUQ2
NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUg
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpA
QCAtNzQ4LDYgKzc1MCw4IEBACiAJCUZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tT
dGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGFja1N0YXRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0MxNjMwRjgzRjAwQzY5
NjM0IC8qIFN0YWNrU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rh
Y2tTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MUE5QkQ0NUUwNjM0QjI0
QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEFTQ0lJTGl0ZXJhbC5oOyBwYXRoID0gQVNDSUlMaXRlcmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUYxRTJFNURFNkVENjQ0Q0E5MTg4RUI1NSAvKiBUaHJlYWROYW1lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRocmVhZE5hbWUuaDsgcGF0aCA9IFRo
cmVhZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVm
ZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwpAQCAtMTEzMiw2ICsxMTM2LDcgQEAKIAkJCQlFNEEwQUQzODFBOTYyNDU1MDA1MzZE
RjYgLyogV29ya1F1ZXVlLmggKi8sCiAJCQkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuY3BwICovLAogCQkJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZU
aHJlYWREYXRhLmggKi8sCisJCQkJRjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5h
bWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd3RmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTEyMjAsNiArMTIyNSw3IEBACiAJCQkJNzBFQ0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8q
IFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8sCiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlN0cmluZy5jcHAgKi8sCiAJCQkJQThBNDczMkUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0
cmluZy5oICovLAorCQkJCTcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwu
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGV4dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xNTY4LDYgKzE1NzQsOCBAQAogCQkJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBX
VEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTczRTAyNTE5RENCN0FCMDA1ODBE
NUMgLyogWFBDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDNBNDY5OTFFMjI4QjkxMDAyNzZC
MDUgLyogQ29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhD
OCAvKiBBU0NJSUxpdGVyYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5NjZFNDE4NkI5RjRFQzFB
Q0MyMjVDQSAvKiBUaHJlYWROYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5j
aG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAKaW5kZXggY2IxZDEwMWU4NTY1MjllOGFhZWE2
YWJmNjBlYzM4ZWEwYjhkZGU3Mi4uNTc4YWE5NTA4MjRkMmY2YWQ1MjI3YTNmNWQ1M2MwMTRiZDhm
ZWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVz
dC5jcHAKKysrIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAK
QEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWduZWQg
aSA9IG51bUNvbnN1bWVyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVh
ZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhyZWFk
IiwKKyAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiQ29uc3VtZXIiLCAiQ29uc3VtZXIi
KSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9p
ZCBydW5UZXN0KAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7
CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVh
ZCgKLSAgICAgICAgICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgQ1JFQVRFX1RI
UkVBRF9OQU1FKCJQcm9kdWNlciIsICJQcm9kdWNlciIpLAogICAgICAgICAgICAgWyZdICgpIHsK
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3Qu
Y3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCmluZGV4IGYw
ODMyMWMwZjY4ODM2NTM1ZDgzY2I2YmM3NTExODQ4YmI1MmQ5NGYuLjViNjg1MjI3ZTg0NTQ4NGY5
NzYzZGEwNmVmY2NmNmNiNTljZjc4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJr
cy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0Zh
aXJuZXNzVGVzdC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0IEJlbmNobWFyayB7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJlYWRzOyB0aHJlYWRJbmRleC0t
OykgewogICAgICAgICAgICAgY291bnRzW3RocmVhZEluZGV4XSA9IDA7CiAgICAgICAgICAgICB0
aHJlYWRzW3RocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAiQmVu
Y2htYXJrIFRocmVhZCIsCisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJCZW5j
aG1hcmsgUnVubmVyIiwgIkJlbmNobWFya1J1bm5lciIpLAogICAgICAgICAgICAgICAgIFsmLCB0
aHJlYWRJbmRleF0gKCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1pY3Jvc2Vjb25kc0lu
Q3JpdGljYWxTZWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoa2VlcEdv
aW5nKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5j
cHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKaW5kZXggNTQ1ZDJl
MGIwNDg4ZjMzODk0YTU5Njg4ZmQ5MWIwZDNhMzg3Y2NhMi4uYTg3N2UzZDk5NTQxYWRkZTE4NTBl
NDA4NTRhYWZmOTM2NjI3OTJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xv
Y2tTcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0
LmNwcApAQCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgQmVuY2htYXJrIHsKIAogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCB0aHJlYWRJbmRleCA9IG51bVRocmVhZHNQZXJHcm91cDsgdGhyZWFkSW5k
ZXgtLTspIHsKICAgICAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEdyb3VwSW5kZXggKiBudW1U
aHJlYWRzUGVyR3JvdXAgKyB0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAg
ICAgICAgICAgICJCZW5jaG1hcmsgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgQ1JFQVRF
X1RIUkVBRF9OQU1FKCJCZW5jaG1hcmsgUnVubmVyIiwgIkJlbmNobWFya1J1bm5lciIpLAogICAg
ICAgICAgICAgICAgICAgICBbdGhyZWFkR3JvdXBJbmRleCwgJmxvY2tzLCAmd29yZHMsICZrZWVw
R29pbmcsICZudW1JdGVyYXRpb25zTG9jaywgJm51bUl0ZXJhdGlvbnNdICgpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvdWJsZSBsb2NhbFdvcmQgPSAwOwogICAgICAgICAgICAgICAgICAg
ICAgICAgZG91YmxlIHZhbHVlID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCmluZGV4
IDRkOGZiODQ4OWY5OWNiOGY2N2U3Y2MyZDEzYmY0MTU1ZWU4N2U1YzUuLmM2NGM2MDg2ZDU5ZTk5
YWU1MTdhN2Q0MWZjZDY5ZmFhMGQ1Mjk4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNw
cApAQCAtOTgsOSArOTgsMTAgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNvbnRh
aW5zKGNvbnN0IExvY2tIb2xkZXImLCBBdXRvbWF0aWNUaHJlYWQqIHRocmUKICAgICByZXR1cm4g
bV90aHJlYWRzLmNvbnRhaW5zKHRocmVhZCk7CiB9CiAKLUF1dG9tYXRpY1RocmVhZDo6QXV0b21h
dGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZlB0
cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbikKK0F1dG9tYXRpY1RocmVhZDo6
QXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ss
IFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgVGhyZWFkTmFtZSB0
aHJlYWROYW1lKQogICAgIDogbV9sb2NrKGxvY2spCiAgICAgLCBtX2NvbmRpdGlvbihjb25kaXRp
b24pCisgICAgLCBtX25hbWUodGhyZWFkTmFtZSkKIHsKICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBBbGxvY2F0ZWQgQXV0b21hdGljVGhyZWFk
LlxuIik7CkBAIC0xNTYsNyArMTU3LDcgQEAgdm9pZCBBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KGNv
bnN0IExvY2tIb2xkZXImKQogICAgIG1faGFzVW5kZXJseWluZ1RocmVhZCA9IHRydWU7CiAgICAg
CiAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJX
VEY6OkF1dG9tYXRpY1RocmVhZCIsCisgICAgICAgIG1fbmFtZSwKICAgICAgICAgWz1dICgpIHsK
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coUmF3UG9p
bnRlcih0aGlzKSwgIjogUnVubmluZyBhdXRvbWF0aWMgdGhyZWFkIVxuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5oCmluZGV4IDY5MjZmNjIzNjUzZDRjNTkyMTM3MGNjNGQ5Y2VjOGQwNmMzM2Vk
YTguLjcxOWZjYmRkZDcwY2JjY2Q0ZGU5ZmFiOTQ1ZDdiM2E4MDE5ZTlkNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCkBAIC0xMzAsNyArMTMwLDcgQEAgY2xhc3MgV1RGX0VYUE9SVF9QUklW
QVRFIEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdXRvbWF0
aWMKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVzIHRoZSB0aHJlYWQs
IGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1bnRpbCBzb21lb25l
CiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoKSBvciBu
b3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYsIEJveDxM
b2NrPiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4pOworICAgIEF1dG9tYXRpY1Ro
cmVhZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiwgVGhyZWFkTmFtZSk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xs
UmVzdWx0IGFuZCBXb3JrUmVzdWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJl
IGJlaW5nIGNhbGxlZCBsaWtlCiAgICAgLy8gc286CkBAIC0xODIsNiArMTgyLDcgQEAgY2xhc3Mg
V1RGX0VYUE9SVF9QUklWQVRFIEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxBdXRvbWF0aWMKICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNl
IH07CiAgICAgQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKICAgICBDb25kaXRpb24gbV9pc1J1
bm5pbmdDb25kaXRpb247CisgICAgVGhyZWFkTmFtZSBtX25hbWU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCmluZGV4IDk0OTJmZGRk
ZjE5NjQ5ZDY1YjUxMGIxZTQzYzAyYWE5NTE0YzA3MzEuLjJjM2JmMDc0MDg4ZTI5YTk5MThmMjlm
YWZmOTRjZDBjNWI2MmQxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcApA
QCAtMTIzLDkgKzEyMywxMCBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKFJl
ZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrKQogICAgIH0KIH0KIAotUGFyYWxsZWxIZWxw
ZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woKQorUGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxl
bEhlbHBlclBvb2woVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogICAgIDogbV9sb2NrKEJveDxMb2Nr
Pjo6Y3JlYXRlKCkpCiAgICAgLCBtX3dvcmtBdmFpbGFibGVDb25kaXRpb24oQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1lKQogewogfQog
CkBAIC0xNzEsNyArMTcyLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBp
bmcoKQogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGlj
VGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBQ
YXJhbGxlbEhlbHBlclBvb2wmIHBvb2wpCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tl
ciwgcG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKQorICAgICAgICA6
IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJs
ZUNvbmRpdGlvbiwgcG9vbC5uYW1lKCkpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAgewog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oIGIv
U291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggODE2MzViYjc4MTkwMDNh
YzlkN2Y0YTY4MWNjNTU0NGU5MGRhN2Q5MS4uZWRjMWFlZTFhMjRhZDdiODA0NjUyMjE1NWFmNjRi
YTA0ZGJjYmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29s
LmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE3OSw3ICsx
NzksNyBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudCB7CiAKIGNsYXNzIFBhcmFsbGVsSGVs
cGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+
IHsKIHB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKCk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOwogCiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsK
QEAgLTE4OCw2ICsxODgsOCBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgZG9Tb21lSGVscGluZygpOwogCisgICAgVGhyZWFkTmFtZSBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IFBhcmFsbGVsSGVscGVyQ2xpZW50OwogICAgIGNsYXNzIFRocmVhZDsKQEAgLTIwNyw2ICsyMDks
NyBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgVmVjdG9yPFBhcmFsbGVsSGVscGVy
Q2xpZW50Kj4gbV9jbGllbnRzOwogICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4g
bV90aHJlYWRzOworICAgIFRocmVhZE5hbWUgbV9uYW1lOwogICAgIHVuc2lnbmVkIG1fbnVtVGhy
ZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNpemUoKSBi
ZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCiAgICAgYm9v
bCBtX2lzRHlpbmcgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bh
cmFsbGVsSm9ic0dlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5jcHAKaW5kZXggNDAyM2Y0M2U2ZjIwYTM4ZTEwM2U3YzlhMmU0ZjBmN2UwNjEwNTcxNC4uYzgx
YTY4MjVjNWUyNDEzZDU1ZjA3OTg3ZWU0ZGE4Mjc3ZjVkZWM0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgYm9vbCBQYXJhbGxlbEVudmly
b25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9yKFBhcmFsbGVsRW52aXJvbm1lbnQqIHBh
cmVudCkKICAgICB9CiAKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhyZWFkSUQg
PSBjcmVhdGVUaHJlYWQoJlBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6Ondvcmtl
clRocmVhZCwgdGhpcywgIlBhcmFsbGVsIHdvcmtlciIpOworICAgICAgICBtX3RocmVhZElEID0g
Y3JlYXRlVGhyZWFkKCZQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJU
aHJlYWQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiUGFyYWxsZWwgV29ya2VyIiwgIlBhcmFs
bGVsV29ya2VyIikpOwogCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIG1fcGFyZW50ID0g
cGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTmFtZS5oIGIvU291cmNl
L1dURi93dGYvVGhyZWFkTmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2N2I0MjU2Yzc5ODg2NDQ4ZDliMWJi
NDhiMGZjMjAyN2M0YzJiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWROYW1lLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBUaHJlYWROYW1lIHsKK3B1YmxpYzoKKyAgICBlbnVtIEluaXRpYWxpemVUYWcgeyBJ
bml0aWFsaXplIH07CisgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgorICAg
IGV4cGxpY2l0IGNvbnN0ZXhwciBUaHJlYWROYW1lKEluaXRpYWxpemVUYWcsIGNvbnN0IGNoYXIg
KCZuYW1lKVtjaGFyYWN0ZXJzQ291bnRdKQorICAgICAgICA6IG1fbmFtZShuYW1lKQorICAgIHsK
KyNpZiBPUyhMSU5VWCkKKyAgICAgICAgc3RhdGljX2Fzc2VydChjaGFyYWN0ZXJzQ291bnQgPD0g
MTYsICIiKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHN0YXRpY19hc3NlcnQoY2hhcmFj
dGVyc0NvdW50IDw9IDMyLCAiIik7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdGV4cHIgb3Bl
cmF0b3IgY29uc3QgY2hhciooKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbmFtZTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9uYW1lOworfTsKKworI2lmIE9T
KExJTlVYKQorI2RlZmluZSBDUkVBVEVfVEhSRUFEX05BTUUobG9uZ05hbWUsIHNob3J0TmFtZSkg
V1RGOjpUaHJlYWROYW1lIHsgV1RGOjpUaHJlYWROYW1lOjpJbml0aWFsaXplLCBzaG9ydE5hbWUg
fQorI2VsaWYgT1MoV0lORE9XUykKKyNkZWZpbmUgQ1JFQVRFX1RIUkVBRF9OQU1FKGxvbmdOYW1l
LCBzaG9ydE5hbWUpIFdURjo6VGhyZWFkTmFtZSB7IFdURjo6VGhyZWFkTmFtZTo6SW5pdGlhbGl6
ZSwgIldlYktpdDogIiAjIHNob3J0TmFtZSB9CisjZWxzZQorI2RlZmluZSBDUkVBVEVfVEhSRUFE
X05BTUUobG9uZ05hbWUsIHNob3J0TmFtZSkgV1RGOjpUaHJlYWROYW1lIHsgV1RGOjpUaHJlYWRO
YW1lOjpJbml0aWFsaXplLCAiV2ViS2l0OiAiICMgbG9uZ05hbWUgfQorI2VuZGlmCisKK30KKwor
dXNpbmcgV1RGOjpUaHJlYWROYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5kZXggNDBjZTM5YTQ1ZDM1
NDBhMjNmZDU4NzhjZjkwNjdlYWZkNzY4MTMzYy4uMTNkZjUzMmMzOTRhMzEzMzM1NGE1NDMwYjgw
NDhjMDIyYWE4MzBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0zNiwzOCArMzYsMTEgQEAgbmFt
ZXNwYWNlIFdURiB7CiBzdHJ1Y3QgTmV3VGhyZWFkQ29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBUaHJlYWRO
YW1lIG5hbWU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQ7CiAgICAgTXV0
ZXggY3JlYXRpb25NdXRleDsKIH07CiAKLWNvbnN0IGNoYXIqIG5vcm1hbGl6ZVRocmVhZE5hbWUo
Y29uc3QgY2hhciogdGhyZWFkTmFtZSkKLXsKLSNpZiBIQVZFKFBUSFJFQURfU0VUTkFNRV9OUCkK
LSAgICByZXR1cm4gdGhyZWFkTmFtZTsKLSNlbHNlCi0gICAgLy8gVGhpcyBuYW1lIGNhbiBiZSBj
b20uYXBwbGUuV2ViS2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20uYXBwbGUuQ29yZUlQQy5SZWNl
aXZlUXVldWUuCi0gICAgLy8gV2UgYXJlIHVzaW5nIHRob3NlIG5hbWVzIGZvciB0aGUgdGhyZWFk
IG5hbWUsIGJ1dCBib3RoIGFyZSBsb25nZXIgdGhhbiB0aGUgbGltaXQgb2YKLSAgICAvLyB0aGUg
cGxhdGZvcm0gdGhyZWFkIG5hbWUgbGVuZ3RoLCAzMiBmb3IgV2luZG93cyBhbmQgMTYgZm9yIExp
bnV4LgotICAgIFN0cmluZ1ZpZXcgcmVzdWx0KHRocmVhZE5hbWUpOwotICAgIHNpemVfdCBzaXpl
ID0gcmVzdWx0LnJldmVyc2VGaW5kKCcuJyk7Ci0gICAgaWYgKHNpemUgIT0gbm90Rm91bmQpCi0g
ICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc2l6ZSArIDEpOwotCi0jaWYgT1MoV0lO
RE9XUykKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtWaXN1YWxTdHVkaW9UaHJlYWROYW1l
TGltaXQgPSAzMiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtWaXN1YWxTdHVkaW9U
aHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yaWdodChrVmlzdWFsU3R1
ZGlvVGhyZWFkTmFtZUxpbWl0KTsKLSNlbGlmIE9TKExJTlVYKQotICAgIGNvbnN0ZXhwciBjb25z
dCBzaXplX3Qga0xpbnV4VGhyZWFkTmFtZUxpbWl0ID0gMTYgLSAxOwotICAgIGlmIChyZXN1bHQu
bGVuZ3RoKCkgPiBrTGludXhUaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3Vs
dC5yaWdodChrTGludXhUaHJlYWROYW1lTGltaXQpOwotI2VuZGlmCi0gICAgQVNTRVJUKHJlc3Vs
dC5jaGFyYWN0ZXJzOCgpW3Jlc3VsdC5sZW5ndGgoKV0gPT0gJ1wwJyk7Ci0gICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC5jaGFyYWN0ZXJzOCgpKTsKLSNlbmRp
ZgotfQotCiBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQog
ewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxOZXdUaHJlYWRD
b250ZXh0Kj4oY29udGV4dERhdGEpOwpAQCAtODgsNyArNjEsNyBAQCBzdGF0aWMgdm9pZCB0aHJl
YWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogICAgIGVudHJ5UG9pbnQoKTsKIH0KIAot
VGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChU
aHJlYWROYW1lIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50KQogewogICAg
IE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBuZXcgTmV3VGhyZWFkQ29udGV4dCB7IG5hbWUs
IFdURk1vdmUoZW50cnlQb2ludCksIHsgfSB9OwogCkBAIC05OCw3ICs3MSw3IEBAIFRocmVhZElk
ZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBlbnRyeVBvaW50CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZEludGVybmFsKHRocmVhZEVu
dHJ5UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRo
cmVhZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBjaGFyKiBu
YW1lKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24gZW50cnlQ
b2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSBuYW1lKQogewogICAgIHJldHVybiBjcmVhdGVU
aHJlYWQobmFtZSwgW2VudHJ5UG9pbnQsIGRhdGFdIHsKICAgICAgICAgZW50cnlQb2ludChkYXRh
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmgKaW5kZXggMzA1MGRkOGRmODQ4YjZlNWEwOWM4ZTczYWFhY2Y1NDA3Zjhh
NGI2NS4uZGMzYWVhYjc5MjcwYWJhMzUyZjY1OThjNjgwMGY4NTcxYThjY2Y5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKQEAgLTU1LDcgKzU2LDcg
QEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpOwogCiAvLyBS
ZXR1cm5zIDAgaWYgdGhyZWFkIGNyZWF0aW9uIGZhaWxlZC4KIC8vIFRoZSB0aHJlYWQgbmFtZSBt
dXN0IGJlIGEgbGl0ZXJhbCBzaW5jZSBvbiBzb21lIHBsYXRmb3JtcyBpdCdzIHBhc3NlZCBpbiB0
byB0aGUgdGhyZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRl
VGhyZWFkKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CitX
VEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkTmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogLy8gTWFyayB0aGUgY3VycmVudCB0aHJlYWQg
YXMgcmVxdWlyaW5nIFVJIHJlc3BvbnNpdmVuZXNzLgogLy8gcmVsYXRpdmVQcmlvcml0eSBpcyBh
IHZhbHVlIGluIHRoZSByYW5nZSBbLTE1LCAwXSB3aGVyZSBhIGxvd2VyIHZhbHVlIGluZGljYXRl
cyBhIGxvd2VyIHByaW9yaXR5LgpAQCAtNjgsMTYgKzY5LDE0IEBAIFdURl9FWFBPUlRfUFJJVkFU
RSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRlbnRpZmllcik7CiBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRlbnRpZmllcik7CiAKIC8vIERl
cHJlY2F0ZWQgZnVuY3Rpb24tcG9pbnRlci1iYXNlZCB0aHJlYWQgY3JlYXRpb24uCi1XVEZfRVhQ
T1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24s
IHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1dURl9FWFBPUlRfUFJJVkFURSBUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIFRocmVhZE5h
bWUpOwogCiAvLyBJbnRlcm5hbCBwbGF0Zm9ybS1zcGVjaWZpYyBjcmVhdGVUaHJlYWQgaW1wbGVt
ZW50YXRpb24uCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1
bmN0aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7CitUaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgVGhyZWFkTmFtZSk7
CiAKIC8vIENhbGxlZCBpbiB0aGUgdGhyZWFkIGR1cmluZyBpbml0aWFsaXphdGlvbi4KIC8vIEhl
bHBmdWwgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgdGhyZWFkIG5hbWUgbXVzdCBiZSBzZXQgZnJv
bSB3aXRoaW4gdGhlIHRocmVhZC4KLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5h
bChjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKLQotY29uc3QgY2hhciogbm9ybWFsaXplVGhyZWFk
TmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJl
YWRJbnRlcm5hbChUaHJlYWROYW1lKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCAwZjlmMmZjNzJjOWQzZTg5MGM3M2FhZGE3Mzkx
NTA0YTkxYTc0MjgwLi4zNjQyNDlmMDM4YmMzMzY3NjlmMzU5ZTk3ZmVlNDU1MTI1NDViMzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgc3Rh
dGljIHZvaWQqIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFk
RnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciopCitUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIFRocmVhZE5hbWUpCiB7CiAgICAgYXV0byBpbnZvY2F0aW9uID0gc3RkOjptYWtl
X3VuaXF1ZTxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+KGVudHJ5UG9pbnQsIGRhdGEpOwogICAg
IHB0aHJlYWRfdCB0aHJlYWRIYW5kbGU7CkBAIC0xOTIsMTIgKzE5MiwxMiBAQCBUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIGNvbgogICAgIHJldHVybiBlc3RhYmxpc2hJZGVudGlmaWVyRm9yUHRocmVhZEhh
bmRsZSh0aHJlYWRIYW5kbGUpOwogfQogCi12b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50
ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJl
YWRJbnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgSEFWRShQVEhSRUFEX1NF
VE5BTUVfTlApCi0gICAgcHRocmVhZF9zZXRuYW1lX25wKG5vcm1hbGl6ZVRocmVhZE5hbWUodGhy
ZWFkTmFtZSkpOworICAgIHB0aHJlYWRfc2V0bmFtZV9ucCh0aHJlYWROYW1lKTsKICNlbGlmIE9T
KExJTlVYKQotICAgIHByY3RsKFBSX1NFVF9OQU1FLCBub3JtYWxpemVUaHJlYWROYW1lKHRocmVh
ZE5hbWUpKTsKKyAgICBwcmN0bChQUl9TRVRfTkFNRSwgdGhyZWFkTmFtZSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAK
aW5kZXggNTRiNDNlZmVmMzVjZDY2MzJhNzAwODE1MDdhNWIzNzk5ZGVmYjZmYi4uZWM2M2U4YzRk
ZDk3ZGVkNzkyYzViZWJiOTIyOGMxZDJkY2Q1YzhlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
CkBAIC0xMjEsMTUgKzEyMSwxNSBAQCB0eXBlZGVmIHN0cnVjdCB0YWdUSFJFQUROQU1FX0lORk8g
ewogfSBUSFJFQUROQU1FX0lORk87CiAjcHJhZ21hIHBhY2socG9wKQogCi12b2lkIGluaXRpYWxp
emVDdXJyZW50VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciogc3pUaHJlYWROYW1lKQordm9pZCBp
bml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsK
ICNpZiBDT01QSUxFUihNSU5HVykKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRocmVhZCBuYW1l
IHNldHRpbmcgd2l0aCBNaW5nVy4KLSAgICBVTlVTRURfUEFSQU0oc3pUaHJlYWROYW1lKTsKKyAg
ICBVTlVTRURfUEFSQU0odGhyZWFkTmFtZSk7CiAjZWxzZQogICAgIFRIUkVBRE5BTUVfSU5GTyBp
bmZvOwogICAgIGluZm8uZHdUeXBlID0gMHgxMDAwOwotICAgIGluZm8uc3pOYW1lID0gbm9ybWFs
aXplVGhyZWFkTmFtZShzelRocmVhZE5hbWUpOworICAgIGluZm8uc3pOYW1lID0gdGhyZWFkTmFt
ZTsKICAgICBpbmZvLmR3VGhyZWFkSUQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBpbmZv
LmR3RmxhZ3MgPSAwOwogCkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHVuc2lnbmVkIF9fc3Rk
Y2FsbCB3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAgIHJldHVybiAwOwogfQog
Ci1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVu
dHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCitUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICAgICB1bnNpZ25lZCB0aHJlYWRJ
ZGVudGlmaWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3Jr
UXVldWUuY3BwCmluZGV4IGIyYTBhNzlmNGFiNWFhYzI4OWIxNjlmOTJiYmMxYTgwNTg1MmNhMzIu
LjIzM2QzODA0NTVkNzZmZWE0OTM0YmEwZmY5Y2MwNWJkODU4NmRmYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVl
LmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1SZWY8V29ya1F1
ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBx
b3MpCitSZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUsIFR5
cGUgdHlwZSwgUU9TIHFvcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrUXVldWUo
bmFtZSwgdHlwZSwgcW9zKSk7CiB9CiAKLVdvcmtRdWV1ZTo6V29ya1F1ZXVlKGNvbnN0IGNoYXIq
IG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK1dvcmtRdWV1ZTo6V29ya1F1ZXVlKFRocmVhZE5h
bWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShu
YW1lLCB0eXBlLCBxb3MpOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29u
Y3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KHNpegogCiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aHJl
YWRDb3VudCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhyZWFkQ291
bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoY3JlYXRlVGhyZWFk
KFN0cmluZzo6Zm9ybWF0KCJUaHJlYWRQb29sIFdvcmtlciAldSIsIGkpLnV0ZjgoKS5kYXRhKCks
IFt0aGlzXSB7CisgICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVhdGVUaHJlYWQo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJUaHJlYWRQb29sIENvbmN1cnJlbnQgQXBwbHkgV29ya2VyIiwg
IkNvbmN1cnJlbnRBcHBseSIpLCBbdGhpc10gewogICAgICAgICAgICAgICAgICAgICB0aHJlYWRC
b2R5KCk7CiAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvV29ya1F1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApp
bmRleCBkOTE4NGI0ODI3YmYxMGJhMzhhNDgxNDgwNWIyZjMzNjQ2ZDc2ZTAzLi40MjcyNGFmNjgz
ZGRhMTc2YTZkNmUwNmM0OWI0OGY2ODkzZGI0OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
RGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoQ09D
T0FfRVZFTlRfTE9PUCkKQEAgLTY3LDcgKzY4LDcgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDog
cHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAgIEJhY2tncm91bmQKICAgICB9Owog
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29u
c3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShUaHJl
YWROYW1lLCBUeXBlID0gVHlwZTo6U2VyaWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOwogICAgIHZp
cnR1YWwgfldvcmtRdWV1ZSgpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0
Y2goRnVuY3Rpb248dm9pZCAoKT4mJikgb3ZlcnJpZGU7CkBAIC04NSw5ICs4Niw5IEBAIGNsYXNz
IFdvcmtRdWV1ZSBmaW5hbCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogI2VuZGlmCiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUs
IFFPUyk7CisgICAgZXhwbGljaXQgV29ya1F1ZXVlKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAK
LSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1Mp
OworICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAg
ICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xP
T1ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKaW5kZXggOGVkYmYyM2M1
NTg4ODgyOTZjMTRjOGM5ZDBlZTBjNGY2MzMwYjMyMy4uZTE1NzE1ZDE3MjE1NDRkNjhkYWM1YWVj
YzUxNmJlYjEzNTBkN2FlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1
ZXVlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNw
cApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB0YXJnZXRRdWV1ZUZv
clFPU0NsYXNzKFdvcmtRdWV1ZTo6UU9TIHFvcykKIH0KICNlbmRpZgogCi12b2lkIFdvcmtRdWV1
ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFv
cykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBU
eXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0dHIgPSB0
eXBlID09IFR5cGU6OkNvbmN1cnJlbnQgPyBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UIDogRElT
UEFUQ0hfUVVFVUVfU0VSSUFMOwogI2lmIEhBVkUoUU9TX0NMQVNTRVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKaW5kZXggYjRhZDJiZGM0MzhmOWQ5NDU3ZTNmN2ZiNDky
MjRjNjgxNTk3NmRhZi4uMmYxMGIwMmEwZTE5M2MyZjI5MmVjOTBjMmJjMmIyOGU0ZWQzYzg4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcApAQCAtNDAsNyArNDAsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciB3YWtlVXBUaHJlYWRNZXNzYWdlID0gJ1cnOwogCiBjbGFzcyBE
aXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBz
dGFydChjb25zdCBjaGFyKiBuYW1lLCBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNo
UXVldWUpCisgICAgc3RhdGljIHZvaWQgc3RhcnQoVGhyZWFkTmFtZSBuYW1lLCBQYXNzUmVmUHRy
PERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUpCiAgICAgewogICAgICAgICAvLyBUaGUgRGlz
cGF0Y2hRdWV1ZVRocmVhZENvbnRleHQgaW5zdGFuY2Ugd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRo
cmVhZCBmdW5jdGlvbiBhbmQgZGVsZXRlZCBpbiBpdC4KICAgICAgICAgZGV0YWNoVGhyZWFkKGNy
ZWF0ZVRocmVhZChyZWludGVycHJldF9jYXN0PFdURjo6VGhyZWFkRnVuY3Rpb24+KCZUaHJlYWRD
b250ZXh0OjpmdW5jdGlvbiksIG5ldyBUaHJlYWRDb250ZXh0KGRpc3BhdGNoUXVldWUpLCBuYW1l
KSk7CkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRleHQg
ewogICAgIFJlZlB0cjxEaXNwYXRjaFF1ZXVlPiBtX2Rpc3BhdGNoUXVldWU7CiB9OwogCi1QYXNz
UmVmUHRyPERpc3BhdGNoUXVldWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBu
YW1lKQorUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUoVGhy
ZWFkTmFtZSBuYW1lKQogewogICAgIFJlZlB0cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVl
ID0gYWRvcHRSZWY8RGlzcGF0Y2hRdWV1ZT4obmV3IERpc3BhdGNoUXVldWUoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmggYi9Tb3VyY2UvV1RG
L3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oCmluZGV4IGZjNTU1MTliMDFjZWU4ZmUwNDljMTNj
MWU1ZmNmYzdkOTk3OTRmMjYuLjU3MDk0MjZkYmFlYmFhNzExNWY2MjgyNmJjMjRkZDRmYjJlNDFl
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmgKKysr
IGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgV29ya0l0ZW07CiAKIGNsYXNzIERpc3BhdGNo
UXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGlzcGF0Y2hRdWV1ZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShjb25zdCBj
aGFyKiBuYW1lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVhdGUo
VGhyZWFkTmFtZSk7CiAgICAgfkRpc3BhdGNoUXVldWUoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2go
c3RkOjp1bmlxdWVfcHRyPFdvcmtJdGVtPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvV29ya1F1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3Bw
CmluZGV4IGRhOTEzYmYwNGNlNzI3MzEwNzY3ZWY0Nzk0ZmRkMmI4NzhhNWY0ZWQuLjgzMjVmNWQ2
YzMxNGQ0ZmJiODMzM2YyMTkwZDNmYmNmMTk0N2UxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVl
dWVFZmwuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi12b2lkIFdv
cmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykK
K3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBl
LCBRT1MpCiB7CiAgICAgbV9kaXNwYXRjaFF1ZXVlID0gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKG5h
bWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5l
cmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKaW5k
ZXggZjU5NGUyNDAxMTZkNGUwNDNkNGRjM2EzZjZjZjdjMDdkNGIyMzQ0Mi4uZGY2ZTA3MjJkMWU0
MDNjN2FiOTcwMDcwZDU3ZjYzYjYyNjEyNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Z2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmlj
L1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAotdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShj
b25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0
aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQogewogICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgbV93b3JrUXVldWVU
aHJlYWQgPSBjcmVhdGVUaHJlYWQobmFtZSwgW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0
ZXJhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM5NDZhOTI5ODRmOTQ0YjEzNWQ3MDI5ZjUzMWRkNzFiOGNhNjk5
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVr
aSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFT
Q0lJTGl0ZXJhbCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgY29uc3RleHByIEFTQ0lJTGl0ZXJh
bChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAgICAgICA6IG1fY2hhcmFjdGVycyhjaGFyYWN0
ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgY29uc3QgY2hhcioo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY2hhcmFjdGVyczsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOworfTsKKworfQorCit1c2luZyBX
VEY6OkFTQ0lJTGl0ZXJhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAxYzc2ODEwYmQ2
Y2QxZWRiYmVmOGFmZWQ4NDJmODA4MGRmN2RhZDMuLjgwZTY0NDcxZmVkMDg4NzQwNTMzNjUzZjZm
NGU2OTZlYWUwNGIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMjYsNiArMjYsNyBA
QAogLy8gb24gc3lzdGVtcyB3aXRob3V0IGNhc2Utc2Vuc2l0aXZlIGZpbGUgc3lzdGVtcy4KIAog
I2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
U0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZmRl
ZiBfX09CSkNfXwpAQCAtMzQsOCArMzUsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3Mg
QVNDSUlMaXRlcmFsOwotCiAvLyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlvbnMKIAog
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIGludCBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoY29uc3QgTENo
YXIqLCBzaXplX3QsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CkBAIC02ODEs
MTUgKzY4MCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFN0cmluZz4gewogCiB0
ZW1wbGF0ZSA8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3Rv
clRyYWl0cyB7IH07CiAKLWNsYXNzIEFTQ0lJTGl0ZXJhbCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGlj
aXQgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpIDogbV9jaGFyYWN0ZXJzKGNo
YXJhY3RlcnMpIHsgfQotICAgIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgeyByZXR1cm4gbV9jaGFy
YWN0ZXJzOyB9Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOwotfTsK
LQogLy8gU2hhcmVkIGdsb2JhbCBlbXB0eSBzdHJpbmcuCiBXVEZfRVhQT1JUX1NUUklOR19BUEkg
Y29uc3QgU3RyaW5nJiBlbXB0eVN0cmluZygpOwogCkBAIC03MzgsNyArNzI4LDYgQEAgdXNpbmcg
V1RGOjpmaW5kOwogdXNpbmcgV1RGOjppc0FsbFNwZWNpYWxDaGFyYWN0ZXJzOwogdXNpbmcgV1RG
Ojppc1NwYWNlT3JOZXdsaW5lOwogdXNpbmcgV1RGOjpyZXZlcnNlRmluZDsKLXVzaW5nIFdURjo6
QVNDSUlMaXRlcmFsOwogCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAppbmRleCBmMzI0ZThiNjFkZDQxZmEwNTYwODYz
YjZjNTgxOTEwZjg2N2QzNmViLi5jMzUxYjNlNTU0MWE2NDVlMzVkYzYwYjllYjRmMWEyNmRhYTcx
NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCkBAIC02NCw3ICs2NCw3IEBA
IHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiAgICAgICAgIENXX1VTRURFRkFV
TFQsIDAsIENXX1VTRURFRkFVTFQsIDAsIEhXTkRfTUVTU0FHRSwgMCwgMCwgMCk7CiAgICAgdGhy
ZWFkaW5nRmlyZWRNZXNzYWdlID0gUmVnaXN0ZXJXaW5kb3dNZXNzYWdlVyhMImNvbS5hcHBsZS5X
ZWJLaXQuTWFpblRocmVhZEZpcmVkIik7CiAKLSAgICBpbml0aWFsaXplQ3VycmVudFRocmVhZElu
dGVybmFsKCJNYWluIFRocmVhZCIpOworICAgIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJu
YWwoQ1JFQVRFX1RIUkVBRF9OQU1FKCJNYWluIFRocmVhZCIsICJNYWluVGhyZWFkIikpOwogfQog
CiB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93
aW4vV29ya1F1ZXVlV2luLmNwcAppbmRleCBmNGM0YjhjNzdkY2U5OTVmNTdmMjU2NzAyYzFmOWNl
ZjhjNjVhNWFhLi43MTI0YWNmYzk3ZGNhZTlhMjIxNDg0MjY4MjliODRkMzZkODJjMjhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFdvcmtR
dWV1ZTo6cGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKCkKICAgICBtX2Z1bmN0aW9u
UXVldWVMb2NrLnVubG9jaygpOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFs
aXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlLCBRT1MpCiB7CiAgICAgbV9pc1dvcmtU
aHJlYWRSZWdpc3RlcmVkID0gMDsKICAgICBtX3RpbWVyUXVldWUgPSA6OkNyZWF0ZVRpbWVyUXVl
dWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKaW5kZXggODc0NzY0MzhjYWU2NWE2Mzg3ZDkwMWE3NTI4ODE1ZWM5NTQ3
ZjIzMi4uMzFmMzU2OGY4MzE4N2ZhY2I4OTk2MzYwYWE4NjI1NTJhMjg2YmIwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgSURCU2VydmVyOjpJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3Jl
VGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQogICAgIDogbV9iYWNraW5nU3RvcmVU
ZW1wb3JhcnlGaWxlSGFuZGxlcihmaWxlSGFuZGxlcikKIHsKICAgICBMb2NrZXI8TG9jaz4gbG9j
a2VyKG1fZGF0YWJhc2VUaHJlYWRDcmVhdGlvbkxvY2spOwotICAgIG1fdGhyZWFkSUQgPSBjcmVh
dGVUaHJlYWQoSURCU2VydmVyOjpkYXRhYmFzZVRocmVhZEVudHJ5LCB0aGlzLCAiSW5kZXhlZERh
dGFiYXNlIFNlcnZlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoSURCU2VydmVy
OjpkYXRhYmFzZVRocmVhZEVudHJ5LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkluZGV4ZWRE
YXRhYmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVyIikpOwogfQogCiBJREJTZXJ2ZXI6OklEQlNlcnZl
cihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQpAQCAtNjYsNyArNjYsNyBAQCBJREJTZXJ2
ZXI6OklEQlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFj
a2luZ1N0b3JlVGVtcG9yYQogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIgY3JlYXRlZCBh
dCBwYXRoICVzIiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAg
TG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwg
dGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVB
RF9OQU1FKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIiwgIklEQlNlcnZlciIpKTsKIH0KIAogdm9p
ZCBJREJTZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNv
bm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5
bmNBdWRpb0RlY29kZXIuY3BwCmluZGV4IDI5MmYwNWI4Y2Q1MDZlMjI5YWU2YjhiZDg2MjljMDk1
NGQxODQ1OWIuLjBjYWE0NjdhMzc1MzNmYzRlYzEwMjJkM2Y2ZDZmMDExNTdmNTIxYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29k
ZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVj
b2RlcigpCiB7CiAgICAgLy8gU3RhcnQgd29ya2VyIHRocmVhZC4KICAgICBMb2NrSG9sZGVyIGxv
Y2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhpcywgIkF1ZGlvIERlY29kZXIiKTsK
KyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRF
bnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJBdWRpbyBEZWNvZGVyIiwgIkF1ZGlvRGVj
b2RlciIpKTsKIH0KIAogQXN5bmNBdWRpb0RlY29kZXI6On5Bc3luY0F1ZGlvRGVjb2RlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNTA1MjMwNDE5N2NkZWRkZTQ3ZmRjYmI5
MTJlYzQ3NDA1NTc5NzQyOC4uZjVmMzM1NzAyMzNlNmFmZmYyOTY1YzdjYTFlZDY5NGUxNThjNDNm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lk
IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIGlmICgh
bV9zdGFydGVkUmVuZGVyaW5nKSB7CiAgICAgICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9IHRydWU7
CiAgICAgICAgIHJlZigpOyAvLyBTZWUgY29ycmVzcG9uZGluZyBkZXJlZigpIGNhbGwgaW4gbm90
aWZ5Q29tcGxldGVEaXNwYXRjaCgpLgotICAgICAgICBtX3JlbmRlclRocmVhZCA9IGNyZWF0ZVRo
cmVhZChPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXJFbnRyeSwgdGhp
cywgIm9mZmxpbmUgcmVuZGVyZXIiKTsKKyAgICAgICAgbV9yZW5kZXJUaHJlYWQgPSBjcmVhdGVU
aHJlYWQoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyRW50cnksIHRo
aXMsIENSRUFURV9USFJFQURfTkFNRSgiT2ZmbGluZSBSZW5kZXJlciIsICJPZmZsaW5lUmVuZGVy
ZXIiKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IDBkZGU1ZjcyNjhlZTY0MmMwMDQzMDVj
ZWZlMzZiMWM5ZTQ0Yjg3ZDMuLmQwMjRmMzQ0ZDM3OTU0OTA5OWM2ZTY3ZGRhMjNjYzUzY2ExMmFl
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUaHJlYWQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgRGF0YWJhc2VUaHJlYWQ6OnN0
YXJ0KCkKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0
YXJ0LCB0aGlzLCAiV2ViQ29yZTogRGF0YWJhc2UiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0YXJ0LCB0aGlzLCBDUkVBVEVf
VEhSRUFEX05BTUUoIldlYkRhdGFiYXNlIiwgIldlYkRCIikpOwogCiAgICAgcmV0dXJuIG1fdGhy
ZWFkSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApp
bmRleCA2ZjlmY2E2N2YzYzQ3YWRkYzgzZGVjOGNiMGQ1ZWI4Y2NiNDBkNzQzLi4xNGYyMGVlODEw
MDRlZGI4YTc3MjA3ZGE3OTZkNTk3OGUyMmEwNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0dDQ29udHJvbGxlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEdDQ29udHJv
bGxlcjo6Z2FyYmFnZUNvbGxlY3ROb3dJZk5vdERvbmVSZWNlbnRseSgpCiAKIHZvaWQgR0NDb250
cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5nKGJvb2wg
d2FpdFVudGlsRG9uZSkKIHsKLSAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gY3JlYXRl
VGhyZWFkKGNvbGxlY3QsIDAsICJXZWJDb3JlOiBHQ0NvbnRyb2xsZXIiKTsKKyAgICBUaHJlYWRJ
ZGVudGlmaWVyIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKGNvbGxlY3QsIDAsIENSRUFURV9USFJF
QURfTkFNRSgiR0MgQ29udHJvbGxlciIsICJHQ0NvbnRyb2xsZXIiKSk7CiAKICAgICBpZiAod2Fp
dFVudGlsRG9uZSkgewogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IGY2OTFmNmIwOWYyNmE1
ZDY5NTRjZTE2MzdiMzI3MjY2MGIxNjljMDAuLjg5ODI0ZjM5MGZmODBkZGQ5NmQyZTc0ZmE3ZGQ0
MDFmZThjMGZlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCkBAIC0z
Miw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3VidGxlQ3J5cHRvOjpTdWJ0bGVD
cnlwdG8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyKCZjb250ZXh0KQotICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ3J5cHRvUXVldWUiKSkKKyAgICAsIG1fd29ya1F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ3J5cHRvIFF1ZXVlIiwgIkNy
eXB0b1F1ZXVlIikpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0FzeW5jRmlsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0
cmVhbS5jcHAKaW5kZXggNWI4MTM2MTEyYWRkZWExNDVjOTU1OTBhOGEzYzE3NjFmMWIxYjk4My4u
N2I2MzY3ZTk4NDFmNWU4ZGExOWUyMDRkYzg0YmI3MWMzODg1ZjdjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMg
dm9pZCBjYWxsT25GaWxlVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgY3JlYXRlRmlsZVRocmVhZE9uY2U7CiAgICAgc3RkOjpj
YWxsX29uY2UoY3JlYXRlRmlsZVRocmVhZE9uY2UsIFtdIHsKLSAgICAgICAgY3JlYXRlVGhyZWFk
KCJXZWJDb3JlOiBBc3luY0ZpbGVTdHJlYW0iLCBbXSB7CisgICAgICAgIGNyZWF0ZVRocmVhZChD
UkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jaHJvbm91cyBGaWxlIFN0cmVhbSIsICJBc3luY0ZpbGVT
dHJlYW0iKSwgW10gewogICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgIEF1
dG9kcmFpbmVkUG9vbCBwb29sOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcAppbmRleCBlZTQzN2U4NjI4ZWJmNGU4NjMyN2NjNzcwMzBmNWY2OTRlMzBiYjJk
Li4zYmYzODk2ZWJiMGJjZTQ0NTAzM2NhZDdiY2M1MTE3OWNlYjRjMzJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBi
b29sIEljb25EYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSkKICAgICAvLyBMb2NrIGhlcmUgYXMgd2VsbCBhcyBmaXJzdCB0aGluZyBp
biB0aGUgdGhyZWFkIHNvIHRoZSB0aHJlYWQgZG9lc24ndCBhY3R1YWxseSBjb21tZW5jZSB1bnRp
bCB0aGUgY3JlYXRlVGhyZWFkKCkgY2FsbCAKICAgICAvLyBjb21wbGV0ZXMgYW5kIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgaXMgcHJvcGVybHkgc2V0CiAgICAgbV9zeW5jTG9jay5sb2NrKCk7Ci0gICAg
bV9zeW5jVGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3lu
Y1RocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogSWNvbkRhdGFiYXNlIik7CisgICAgbV9zeW5j
VGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVh
ZFN0YXJ0LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkljb24gRGF0YWJhc2UiLCAiSWNvbkRC
IikpOwogICAgIG1fc3luY1RocmVhZFJ1bm5pbmcgPSBtX3N5bmNUaHJlYWQ7CiAgICAgbV9zeW5j
TG9jay51bmxvY2soKTsKICAgICBpZiAoIW1fc3luY1RocmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCmluZGV4IDkxMjAwYzM0NWY0NTVmOTZkNDk0YmZk
MmFkNzAzZjI4YzVjNjI5ZDEuLjE4ZDRiMjRmMWE5ZDM0NDdlNDQ3N2RmZmExNjBiODQzNTk1ZWU1
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRlVGhyZWFkSWZO
ZWVkZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ZtID0gJmNvbW1vblZNKCk7Ci0gICAg
bV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCAi
V2ViQ29yZTogUmVzb3VyY2VVc2FnZSIpOworICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0
ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJSZXNvdXJj
ZSBVc2FnZSIsICJSZXNvdXJjZVVzYWdlIikpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VUaHJl
YWQ6OnRocmVhZENhbGxiYWNrKHZvaWQqIHJlc291cmNlVXNhZ2VUaHJlYWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAppbmRleCA3MzBj
MGE2YmQ5M2Y0NTc4ZDFlZGJmOWFjZTFjZDg2NTY2ZTZjOTg4Li5mOGYwNzQwMWU1N2FiY2ZjNWNk
YmFlMTViMGM4ZTQ2OTMyYzVkNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTY3JvbGxp
bmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXgpOwogCi0gICAgICAg
IG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywg
IldlYkNvcmU6IFNjcm9sbGluZyIpOworICAgICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiU2Nyb2xs
aW5nIiwgIlNjcm9sbGluZyIpKTsKICAgICAgICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlz
XXsgcmV0dXJuIG1fdGhyZWFkUnVuTG9vcDsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAppbmRleCBmNzEzMzNjNWEzN2E5
OTg5NjRmM2E3NDFjNzMxNTJlOTUxNDY2Y2Y2Li4zYWM4NDFmYjFhMWIzMzcwOTRjMzVkN2VmYzZk
NTAwM2U0MWJlN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9I
UlRGRGF0YWJhc2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIEhSVEZEYXRh
YmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KCkKICAgICAKICAgICBpZiAoIW1faHJ0ZkRh
dGFiYXNlLmdldCgpICYmICFtX2RhdGFiYXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0
YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0YWJhc2UgbG9hZGluZyBwcm9jZXNzLgotICAgICAgICBt
X2RhdGFiYXNlTG9hZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKGRhdGFiYXNlTG9hZGVyRW50cnks
IHRoaXMsICJIUlRGIGRhdGFiYXNlIGxvYWRlciIpOworICAgICAgICBtX2RhdGFiYXNlTG9hZGVy
VGhyZWFkID0gY3JlYXRlVGhyZWFkKGRhdGFiYXNlTG9hZGVyRW50cnksIHRoaXMsIENSRUFURV9U
SFJFQURfTkFNRSgiSFJURiBEYXRhYmFzZSBMb2FkZXIiLCAiSFJURkRCTG9hZGVyIikpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJi
Q29udm9sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAKaW5kZXggOTZmMzMwODI4MDc5YTc5YWQ2NDgyMGQwNzIxYzU5YzVlYTE2ZmRiMS4u
MGQ4YjliODVlZjY3MmY4ZTQ2NDA2YWRhNTZjMDUwMjJjMDhlNmUxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0xMzAsNyAr
MTMwLDcgQEAgUmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIoQXVkaW9DaGFubmVsKiBp
bXB1bHNlUmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGkKICAgICAvLyBTdGFydCB1cCBiYWNrZ3Jv
dW5kIHRocmVhZAogICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBiZXR0ZXIgdG8gdXAgdGhlIHRocmVh
ZCBwcmlvcml0eSBoZXJlLiAgSXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwtdGltZSwgYnV0IGhp
Z2hlciB0aGFuIHRoZSBkZWZhdWx0Li4uCiAgICAgaWYgKHRoaXMtPnVzZUJhY2tncm91bmRUaHJl
YWRzKCkgJiYgbV9iYWNrZ3JvdW5kU3RhZ2VzLnNpemUoKSA+IDApCi0gICAgICAgIG1fYmFja2dy
b3VuZFRocmVhZCA9IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpiYWNrZ3JvdW5kVGhyZWFkRW50cnks
IHRoaXMsICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIpOworICAgICAgICBtX2JhY2tn
cm91bmRUaHJlYWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5
LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkNvbnZvbHV0aW9uIiwgIkNvbnZvbHV0aW9uIikp
OwogfQogCiBSZXZlcmJDb252b2x2ZXI6On5SZXZlcmJDb252b2x2ZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCA5MTI5NDk4MTYwZjFiZTNlNmNmZTdmMDQ3
NjRiNGQ3OWQ0OGY4ZjNmLi44ZDZhNzFkM2JiODkzOTQwMzQ0OWJlM2U3MzNmZGJiMjFiNjlmNmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMzcwLDcgKzM3
MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZs
b2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVh
dGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywg
ZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwot
ICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0
dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRvIHRo
cmVhZElEID0gY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiQXVkaW8gRmlsZSBSZWFk
ZXIiLCAiQXVkaW9GaWxlUmVhZGVyIiksIFsmcmV0dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01v
bm8sIHNhbXBsZVJhdGVdIHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIo
ZmlsZVBhdGgpLmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAg
IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKQEAgLTM4MCw3ICszODAsNyBAQCBQ
YXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZp
bGVQYXRoLCBib29sIG1peFRvTW9ubwogUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJv
bUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9v
bCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmUHRyPEF1ZGlvQnVzPiBy
ZXR1cm5WYWx1ZTsKLSAgICBhdXRvIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKCJBdWRpb0ZpbGVS
ZWFkZXIiLCBbJnJldHVyblZhbHVlLCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVS
YXRlXSB7CisgICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05B
TUUoIkF1ZGlvIEZpbGUgUmVhZGVyIiwgIkF1ZGlvRmlsZVJlYWRlciIpLCBbJnJldHVyblZhbHVl
LCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CiAgICAgICAgIHJldHVy
blZhbHVlID0gQXVkaW9GaWxlUmVhZGVyKGRhdGEsIGRhdGFTaXplKS5jcmVhdGVCdXMoc2FtcGxl
UmF0ZSwgbWl4VG9Nb25vKTsKICAgICB9KTsKICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0
aHJlYWRJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUZyYW1lQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VGcmFtZUNhY2hlLmNwcAppbmRleCA4MWZiMWY5ODY4ZjMxMGU1MzU5ZDE2MWRjMmRhY2E1Y2M3
ZDNhZWQ3Li40ZGIxZGEzNDAwNGU1MzkyZTkyZTM0MTFhNjBiODQwN2NmNGE1OThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5j
cHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFtZU5h
dGl2ZUltYWdlQXRJbmRleChOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlLAogUmVmPFdvcmtR
dWV1ZT4gSW1hZ2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1ZXVlKCkKIHsKICAgICBpZiAoIW1fZGVj
b2RpbmdRdWV1ZSkKLSAgICAgICAgbV9kZWNvZGluZ1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUo
Im9yZy53ZWJraXQuSW1hZ2VEZWNvZGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtR
dWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpOworICAgICAgICBtX2RlY29kaW5nUXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkltYWdlIERlY29kZXIiLCAiSW1h
Z2VEZWNvZGVyIiksIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNl
ckludGVyYWN0aXZlKTsKICAgICAKICAgICByZXR1cm4gKm1fZGVjb2RpbmdRdWV1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGRhNGE4ODU3
M2JhMWI1NWI0ZmVhNTIzODllNGMyNTJmZGU5ODQzNC4uYTgzMzhkMTk0ZTgzYmQ5NjVhZGQyN2U3
ZThjYThkMjljYmVkM2E2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xp
ZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywKICAg
ICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0
aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVh
ZCgiUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCBbdGhpcywgcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCldIHsKKyAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFE
X05BTUUoIlJlc291cmNlIEhhbmRsZSBTdHJlYW1pbmcgQ2xpZW50IiwgIlJTdHJlYW1pbmciKSwg
W3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7
CiAgICAgICAgICAgICBtX3J1bkxvb3AgPSAmUnVuTG9vcDo6Y3VycmVudCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGlu
dXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyTGludXguY3BwCmluZGV4IDRjZDFiZGRmM2FiNzY2YTAwMDQ4ZjhhYzU3NmZhMjg0N2VjNjI3
MGQuLjUwMjdhNTJmNzNlZTJkMmFjOGRlNDdmOTA3NTdmNTU0Y2Y1OTEwZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhh
bmRsZXJMaW51eC5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OkV2ZW50RkRQb2xsZXI6OkV2ZW50RkRQb2xsZXIoaW50IGZkLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KAogICAgIH0sIHRoaXMsIG51bGxwdHIpOwogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5n
ZXQoKSwgbnVsbHB0cik7CiAjZWxzZQotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIldl
YkNvcmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIsIFt0aGlzXSB7IHJlYWRBbmROb3RpZnkoKTsg
fQorICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJNZW1v
cnkgUHJlc3N1cmUgSGFuZGxlciIsICJNZW1QcmVzc0hhbmRsZXIiKSwgW3RoaXNdIHsgcmVhZEFu
ZE5vdGlmeSgpOyB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXggZTE0MzQ1MWZkYWEzMzhjMzcx
MDEwYjdmZWRmZGUwNTJhNWUzOTlmNy4uZWMzY2Y3YjJlMzEwZGFiYThhYjUxOTE4ZmIxM2M3N2U0
N2U5YzMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Js
b2JSZWdpc3RyeUltcGwuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgdW5zaWduZWQgbG9uZyBsb25n
IEJsb2JSZWdpc3RyeUltcGw6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKQogCiBzdGF0aWMgV29y
a1F1ZXVlJiBibG9iVXRpbGl0eVF1ZXVlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkJsb2JV
dGlsaXR5IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3Jv
dW5kKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxXb3JrUXVldWU+PiBxdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkJsb2IgVXRpbGl0eSIsICJCbG9i
VXRpbGl0eSIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tn
cm91bmQpKTsKICAgICByZXR1cm4gcXVldWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXggYWJmYjQ2Y2Vj
ZjgyMTQzYjlmZmFjZDAxYmU1Nzg2YTUzYTAwOGVjMC4uZmI4YzAyMjI2YmZkYmQ4M2M3ZjllY2Vi
YjFmNTVhMzViNTYxNjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIERhdGFV
UkxEZWNvZGVyIHsKIAogc3RhdGljIFdvcmtRdWV1ZSYgZGVjb2RlUXVldWUoKQogewotICAgIHN0
YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkRhdGFVUkxE
ZWNvZGVyIikubGVha1JlZigpOworICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRGF0YSBVUkwgRGVjb2RlciIsICJEYXRhVVJMRGVj
b2RlciIpKS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKaW5k
ZXggNDZiODk5NGE4NDFlZjcxZWEyNzljZTc3Y2JjOGZiNDNjMjlmMGE2Mi4uY2UxMTJhOGQxNjY5
MjM3YjU4NzBkYjcwZTYyNTdkMDM3MDBiMjA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcApAQCAtNzcsNyArNzcs
NyBAQCBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVuTG9vcCgpCiAgICAgc3RkOjp1bmlxdWVfbG9jazxT
dGF0aWNMb2NrPiBsb2NrKGxvYWRlclJ1bkxvb3BNdXRleCk7CiAKICAgICBpZiAoIWxvYWRlclJ1
bkxvb3BPYmplY3QpIHsKLSAgICAgICAgY3JlYXRlVGhyZWFkKHJ1bkxvYWRlclRocmVhZCwgMCwg
IldlYkNvcmU6IENGTmV0d29yayBMb2FkZXIiKTsKKyAgICAgICAgY3JlYXRlVGhyZWFkKHJ1bkxv
YWRlclRocmVhZCwgMCwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJDRk5ldHdvcmsgTG9hZGVyIiwgIkNG
TmV0d29ya0xvYWRlciIpKTsKIAogICAgICAgICBsb2FkZXJSdW5Mb29wQ29uZGl0aW9uVmFyaWFi
bGUud2FpdChsb2NrLCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9KTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERv
d25sb2FkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCmluZGV4IDQ0MDhjZDE5ODcwNWJhODZjYzhjMTk4NmZiM2UyY2FkZTc5NmRjYzYu
LjliZmJhZDgxYTk5YWQ3M2U0MmU1YmE5MzhjY2E0MjU2N2FlMTNmMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCkBA
IC05Nyw3ICs5Nyw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5l
ZWRlZCgpCiAgICAgICAgIGlmIChtX3RocmVhZElkKQogICAgICAgICAgICAgd2FpdEZvclRocmVh
ZENvbXBsZXRpb24obV90aHJlYWRJZCk7CiAgICAgICAgIHNldFJ1blRocmVhZCh0cnVlKTsKLSAg
ICAgICAgbV90aHJlYWRJZCA9IGNyZWF0ZVRocmVhZChkb3dubG9hZFRocmVhZCwgdGhpcywgImRv
d25sb2FkVGhyZWFkIik7CisgICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxv
YWRUaHJlYWQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiRG93bmxvYWRlciIsICJEb3dubG9h
ZGVyIikpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAK
aW5kZXggZTk0Zjg0YTY4MjMzOTUyZDRjMmM2NTJjNmIyYWZmMjVkMjY2ZGM2Yi4uMzZmODA5YmQw
ZjlhYzhhMmE4ZTMyZGNhZjFhOTg1OTJlMDFlMzgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbEN1cmwuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsOjpzdGFydFRocmVhZCgpCiAKICAgICByZWYoKTsgLy8gc3RvcFRocmVhZCgpIHdpbGwg
Y2FsbCBkZXJlZigpLgogCi0gICAgbV93b3JrZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoIldlYlNv
Y2tldCB0aHJlYWQiLCBbdGhpc10geworICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFk
KENSRUFURV9USFJFQURfTkFNRSgiV2ViU29ja2V0IiwgIldlYlNvY2tldCIpLCBbdGhpc10gewog
CiAgICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggNTFmNDJmNWZmZmYyZmE2ZGE2ODQ1N2U0ZDIyNmViNmYz
NzZjNDBkYS4uMDcwOGM1MzkwZTJiNTAxNDkxYTQ4NGVlMjg5MDdkNjY3MDdmYTRmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIGJv
b2wgV29ya2VyVGhyZWFkOjpzdGFydCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogV29ya2VyIik7CisgICAgbV90aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0aGlz
LCBDUkVBVEVfVEhSRUFEX05BTUUoIldlYldvcmtlciIsICJXZWJXb3JrZXIiKSk7CiAKICAgICBy
ZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9T
dG9yYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNw
cAppbmRleCBiYjY2ZmNlYTdlNTI4YmMyN2Y2MzNhM2U1Mjg3OGI1MDFlZjBlMTg3Li45MDE1MjQx
ZmIxZWZjOTRlMTg0YTNmZDk0YTY0OGYwNDEzNTQ1MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VUaHJlYWQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgU3RvcmFnZVRocmVhZDo6
c3RhcnQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX3RocmVh
ZElEKQotICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRo
cmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOwor
ICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVu
dHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJMb2NhbFN0b3JhZ2Ui
LCAiTG9jYWxTdG9yYWdlIikpOwogICAgIGFjdGl2ZVN0b3JhZ2VUaHJlYWRzKCkuYWRkKHRoaXMp
OwogICAgIHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAppbmRleCBkNWVhZGIwYjNiNDFhYTQzOTYw
ZjAxODVhYzJhM2JiNWYyYWVmYTY0Li5kNDY5MGExNGJjYTUwYTAzOTNmMWRkMDVhOTQ1ZTc2Nzg1
YWNlNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmNwcApAQCAtNTMsNyArNTMsNyBAQCBEYXRhYmFzZVByb2Nlc3MmIERhdGFiYXNl
UHJvY2Vzczo6c2luZ2xldG9uKCkKIH0KIAogRGF0YWJhc2VQcm9jZXNzOjpEYXRhYmFzZVByb2Nl
c3MoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZVByb2Nlc3MiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRF
X1RIUkVBRF9OQU1FKCJEYXRhYmFzZSBQcm9jZXNzIiwgIkRCUHJvY2VzcyIpKSkKIHsKICAgICAv
LyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhlIHRleHQgZW5jb2Rp
bmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBhIGJhY2tn
cm91bmQgdGhyZWFkIG5lZWRzIGl0LgogICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhwbGljaXQgd2F5IG9m
IGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmlu
ZGV4IGE4MDI5MWZjMWQxZDU5YzdjMWRiNjAyMWI5NGNjZTgyNGM1MWM1OTcuLmU3MjliMDBjZjQ5
MmQzMTkwNWFiNDhiZjQ2OTFkYzk2ODBhM2Y4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtNTgzLDcgKzU4Myw3
IEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAKIHZvaWQgQ2FjaGU6OmRlbGV0
ZUR1bXBGaWxlKCkKIHsKLSAgICBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5D
YWNoZS5kZWxldGUiKS0+ZGlzcGF0Y2goW3BhdGggPSBkdW1wRmlsZVBhdGgoKS5pc29sYXRlZENv
cHkoKV0geworICAgIFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUg
RGVsZXRlciIsICJDYWNoZURlbGV0ZXIiKSktPmRpc3BhdGNoKFtwYXRoID0gZHVtcEZpbGVQYXRo
KCkuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgV2ViQ29yZTo6ZGVsZXRlRmlsZShwYXRoKTsK
ICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKaW5kZXggZWY3YmE4
OTk4MjAyMzI1ODllNzM5MWYyN2ZjZDNkNmUxNjlmNjg5NC4uNTdiMWQ1MWJjZDRjMjllYjE5NGMx
ZTc4MGJlNmU4YzQzNDc2MDQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAK
QEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIElPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZChzaXpl
X3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgcwogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogCiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5lbCh0aGlzKTsK
LSAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKCJJT0NoYW5uZWw6OnJlYWRTeW5jIiwgW2No
YW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgIGRldGFjaFRocmVh
ZChjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJJT0NoYW5uZWwgcmVhZFN5bmMiLCAi
SU9DUmVhZFN5bmMiKSwgW2NoYW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlcl0g
ewogICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IHN0ZDo6bWluKHNpemUsIGdEZWZhdWx0UmVh
ZEJ1ZmZlclNpemUpOwogICAgICAgICB1aW50OF90KiBidWZmZXJEYXRhID0gc3RhdGljX2Nhc3Q8
dWludDhfdCo+KGZhc3RNYWxsb2MoYnVmZmVyU2l6ZSkpOwogICAgICAgICBHUmVmUHRyPFNvdXBC
dWZmZXI+IHJlYWRCdWZmZXIgPSBhZG9wdEdSZWYoc291cF9idWZmZXJfbmV3X3dpdGhfb3duZXIo
YnVmZmVyRGF0YSwgYnVmZmVyU2l6ZSwgYnVmZmVyRGF0YSwgZmFzdEZyZWUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3RhdGlzdGljcy5jcHAKaW5kZXggMTBhNTIwM2VmZDgxODBlMGFjYTM0YmU1NGRmNTI1ODJm
NTljOTVmNy4uNWY3MWI3M2NjODBhNWM2ZTczMTNmYzg4OTZhYTgzOTg3MGI1NWRkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Rh
dGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFN0YXRpc3RpY3M+IFN0YXRpc3RpY3M6Om9wZW4oY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgpCiB9
CiAKIFN0YXRpc3RpY3M6OlN0YXRpc3RpY3MoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCi0g
ICAgOiBtX3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuV2ViS2l0LkNhY2hlLlN0YXRpc3RpY3MuQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6VHlwZTo6
U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgOiBtX3NlcmlhbEJhY2tn
cm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUg
U3RhdGlzdGljcyBCYWNrZ3JvdW5kIiwgIkNhY2hlU3RhdHNCRyIpLCBXb3JrUXVldWU6OlR5cGU6
OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwgbV93cml0ZVRpbWVy
KCp0aGlzLCAmU3RhdGlzdGljczo6d3JpdGVUaW1lckZpcmVkKQogewogICAgIGluaXRpYWxpemUo
ZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggOGY3YjZlM2YyZGZmZDA5
M2IwMmZjNzYxYWFlNjJkZTUyYTI1ZThkZS4uMzgwZDEwZjExYWE2ZjhiOWFkNDk0MjVlMTc4ZGE1
MmQzYWMyNTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKQEAgLTIxMyw5ICsyMTMsOSBAQCBT
dG9yYWdlOjpTdG9yYWdlKGNvbnN0IFN0cmluZyYgYmFzZURpcmVjdG9yeVBhdGgsIFNhbHQgc2Fs
dCkKICAgICAsIG1fc2FsdChzYWx0KQogICAgICwgbV9yZWFkT3BlcmF0aW9uVGltZW91dFRpbWVy
KCp0aGlzLCAmU3RvcmFnZTo6Y2FuY2VsQWxsUmVhZE9wZXJhdGlvbnMpCiAgICAgLCBtX3dyaXRl
T3BlcmF0aW9uRGlzcGF0Y2hUaW1lcigqdGhpcywgJlN0b3JhZ2U6OmRpc3BhdGNoUGVuZGluZ1dy
aXRlT3BlcmF0aW9ucykKLSAgICAsIG1faW9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkK
LSAgICAsIG1fYmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCi0gICAgLCBtX3NlcmlhbEJhY2tncm91
bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3Jh
Z2Uuc2VyaWFsQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX2lvUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JF
QVRFX1RIUkVBRF9OQU1FKCJDYWNoZSBTdG9yYWdlIEZvcmVncm91bmQiLCAiQ2FjaGVTdG9yYWdl
RkciKSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKKyAgICAsIG1fYmFja2dyb3VuZElP
UXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJDYWNoZSBTdG9yYWdl
IEJhY2tncm91bmQiLCAiQ2FjaGVTdG9yYWdlQkciKSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX3NlcmlhbEJhY2tncm91
bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUgU3Rv
cmFnZSBTZXJpYWwgQmFja2dyb3VuZCIsICJDYWNoZVN0b3JhZ2VTQkciKSwgV29ya1F1ZXVlOjpU
eXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAsIG1fYmxvYlN0
b3JhZ2UobWFrZUJsb2JEaXJlY3RvcnlQYXRoKGJhc2VEaXJlY3RvcnlQYXRoKSwgbV9zYWx0KQog
ewogICAgIGRlbGV0ZU9sZFZlcnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKaW5kZXggZGE4ZWEzZmJiMDVlM2RmZmU0OWJlMzMyYTY2MDFlMjdhYmZj
YWY0MS4uNTk3NWY2NDQxYzNlMWQ2NmU3MWZkZTkxNGFkYjE2ZDRiYTdhMzNmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBA
IENvbm5lY3Rpb246OkNvbm5lY3Rpb24oSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlzU2Vy
dmVyLCBDbGllbnQmIGNsaWVudCkKICAgICAsIG1fc2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5k
RmFpbHVyZShmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxs
YmFjaygwKQogICAgICwgbV9pc0Nvbm5lY3RlZChmYWxzZSkKLSAgICAsIG1fY29ubmVjdGlvblF1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuSVBDLlJlY2VpdmVRdWV1ZSIpKQorICAg
ICwgbV9jb25uZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1F
KCJJUEMgUmVjZWl2ZSBRdWV1ZSIsICJJUENSZWNlaXZlUXVldWUiKSkpCiAgICAgLCBtX2luU2Vu
ZFN5bmNDb3VudCgwKQogICAgICwgbV9pbkRpc3BhdGNoTWVzc2FnZUNvdW50KDApCiAgICAgLCBt
X2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNv
dW50KDApCkBAIC03MjAsNyArNzIwLDcgQEAgdWludDY0X3QgQ29ubmVjdGlvbjo6aW5zdGFsbElu
Y29taW5nU3luY01lc3NhZ2VDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGMKICAgICBt
X25leHRJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tJRCsrOwogCiAgICAgaWYgKCFtX2luY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlKQotICAgICAgICBtX2luY29taW5nU3luY01lc3Nh
Z2VDYWxsYmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuSVBD
LkluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlIik7CisgICAgICAgIG1faW5jb21pbmdT
eW5jTWVzc2FnZUNhbGxiYWNrUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFE
X05BTUUoIklQQyBJbmNvbWluZyBTeW5jIE1lc3NhZ2UgQ2FsbGJhY2sgUXVldWUiLCAiSVN5bmNN
c2dDQlF1ZXVlIikpOwogCiAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tzLmFkZCht
X25leHRJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tJRCwgY2FsbGJhY2spOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IDE3NTc4OWZiOWFlNzEzZjE2ZWVlZGJm
YWJlMDBkNmYzM2U2M2NmMjMuLjJkMTg2ZTA2YTA1MWJlZDU4Y2U4MWJkMTlmMWIwYTk2ZDVkMGE3
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC01MCw3ICs1MCw3
IEBAIHN0YXRpYyB2b2lkIGRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKElQQzo6Q29ubmVj
dGlvbiopCiAgICAgLy8gdGhlIHByb2Nlc3Mgd2lsbCBleGl0IGZvcmNpYmx5LgogICAgIGF1dG8g
d2F0Y2hkb2dEZWxheSA9IHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEwKTsKIAotICAgIFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNoaWxkUHJvY2Vzcy5XYXRjaERvZ1F1ZXVlIikt
PmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwgW10geworICAgIFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiQ2hpbGQgUHJvY2VzcyBXYXRjaGRvZyBRdWV1ZSIsICJDaGls
ZFdkb2dRdWV1ZSIpKS0+ZGlzcGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CiAgICAgICAg
IC8vIFdlIHVzZSBfZXhpdCBoZXJlIHNpbmNlIHRoZSB3YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxs
ZWQgZnJvbSBhbm90aGVyIHRocmVhZCBhbmQgd2UgZG9uJ3Qgd2FudAogICAgICAgICAvLyBnbG9i
YWwgZGVzdHJ1Y3RvcnMgb3IgYXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxlZCBmcm9tIHRoaXMg
dGhyZWFkIHdoaWxlIHRoZSBtYWluIHRocmVhZCBpcyBidXN5CiAgICAgICAgIC8vIGRvaW5nIGl0
cyB0aGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggNDBkYzRmNDQ1NmMyOGZjOTM3ZDlhMTY2YWEyMjE5
Y2Y3ZThlYzUzMC4uMzdjMGI3MWJkNzE1Yjg3ZTQ3MDMzZThjZTZhZDFjNjhhNGE3NWMyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5n
UnVuTG9vcC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgY2xhc3MgV29ya1F1ZXVlUG9vbCB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKG1fc2hhcmVkV29ya1F1ZXVlKTsKICAgICAgICAgICAgICAgICBh
ZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbV9zaGFyZWRXb3JrUXVldWU7CiAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBX
b3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUi
KTsKKyAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJUaHJlYWRlZCBDb21wb3NpdG9yIFdvcmsgUXVl
dWUiLCAiVGhyZWFkZWRDb21wIikpOwogICAgICAgICAgICAgICAgIGlmICghbV90aHJlYWRDb3Vu
dCkKICAgICAgICAgICAgICAgICAgICAgbV9zaGFyZWRXb3JrUXVldWUgPSBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOwogICAgICAgICAgICAgICAgIG1fdGhyZWFkQ291bnQrKzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggODU0MzNiZDU5ODZjMTM2YThi
ZWNjOTgxYmZkNzBkODRlZTQ3ZDQ2YS4uNTM0NTg3MDZiZGU3MmUyNzZmNjNmOWVhNWE4YzA5NTYw
MDVlNWIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hp
bS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAg
LTY0LDcgKzY0LDcgQEAgc3RhdGljIFdvcmtRdWV1ZSYgd29ya1F1ZXVlKCkKICAgICBzdGF0aWMg
V29ya1F1ZXVlKiB3b3JrUXVldWU7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9r
ZW47CiAgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAgICAgICB3b3JrUXVldWUg
PSAmV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW0iKS5sZWFr
UmVmKCk7CisgICAgICAgIHdvcmtRdWV1ZSA9ICZXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhS
RUFEX05BTUUoIlNlY0l0ZW1TaGltIiwgIlNlY0l0ZW1TaGltIikpLmxlYWtSZWYoKTsKIAogICAg
IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcAppbmRleCAzYTc0MGZkNTBhNWYzMzg0NTg5
ZDA3NjI3ZGNmYzMwYTJjNjk5YWFiLi5jYTU3MDk5NDdlZGRmMmE4NGViNTQ0YjQwZTE1MjM4MzVh
ZWI2OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSgpCiAKIFVz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUoY29uc3Qg
V1RGOjpTdHJpbmcmIHN0b3JlUGF0aCkKICAgICA6IG1fc3RvcmVQYXRoKHN0b3JlUGF0aCkKLSAg
ICAsIG1fY29tcGlsZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIENvbXBpbGUgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQotICAg
ICwgbV9yZWFkUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUgUmVhZCBRdWV1ZSIpKQotICAgICwgbV9yZW1vdmVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZW1vdmUgUXVldWUiKSkKKyAgICAsIG1fY29tcGls
ZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVlIiwgIlVDRXhTdENvbXBRdWV1ZSIpLCBXb3JrUXVl
dWU6OlR5cGU6OkNvbmN1cnJlbnQpKQorICAgICwgbV9yZWFkUXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlYWQgUXVl
dWUiLCAiVUNFeFN0UmRRdWV1ZSIpKSkKKyAgICAsIG1fcmVtb3ZlUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlbW92
ZSBRdWV1ZSIsICJVQ0V4U3RSbVF1ZXVlIikpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMWZlMTAyNTRk
N2M1NjBhY2ZhNjkwNTE2YTUzMzhkZTQ0YjBmZDNjYS4uYTI1Y2VlYmQwZDhkZjY0OTg0ZGY0NjZj
ODRmOWYwYzU0ZDEyMjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIFJlZjxTdG9yYWdl
TWFuYWdlcj4gU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFn
ZURpcmVjdG9yeSkKIH0KIAogU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VNYW5hZ2VyKGNvbnN0IFN0
cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlTWFuYWdlciIpKQorICAgIDogbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlN0b3JhZ2UgTWFuYWdlciIsICJT
dG9yYWdlTWdyIikpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVmKCksIGxvY2FsU3Rv
cmFnZURpcmVjdG9yeSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBpbml0
aWFsaXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYzJmOGU2YTRiYTczNTBhNDYzYTQ1OWRlNDhlNTZh
YWRmYmQyYTI1MC4uNWVhNTZkMjE2YWNjMGYwODhmYjI5MGUzYTgxZjMzZDg4N2U3NjgzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUo
Y29uc3QKIAogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KQogICAgIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNyZWF0ZSgpKQotICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUi
KSkKKyAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJF
QURfTkFNRSgiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1
ZSIsICJXZWJSc1N0YXRRdWV1ZSIpKSkKICAgICAsIG1fc3RvcmFnZVBhdGgocmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA3YTg0M2Ix
ZjA0M2JmN2QwZWM3ZWMzZjZiM2QxNzkxMDMzZGZlZTFjLi5kZTg1NmU3ZGM1NzQyY2VkMjA2N2U5
NjY1NWI4YTEwZTA2M2Q5OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC04MCw3ICs4MCw3IEBA
IFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCiAg
ICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUobV9jb25maWd1cmF0
aW9uLmxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCiAgICAgLCBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUobV9jb25maWd1cmF0aW9u
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpKQotICAgICwgbV9xdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3JlIikpCisgICAgLCBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiV2Vic2l0ZSBEYXRh
U3RvcmUiLCAiV2ViRGF0YVN0b3JlIikpKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwog
fQpAQCAtODksNyArODksNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVJ
ZGVudGlmaWVyKCkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2NvbmZp
Z3VyYXRpb24oKQotICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldl
YktpdC5XZWJzaXRlRGF0YVN0b3JlIikpCisgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiV2Vic2l0ZSBEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIikp
KQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAppbmRleCAw
NjA4YWI3MmY5OTI0OGVmMjRjZDJkNTI0NWVlNTMzM2EwMGQ5ZDBkLi45ZjAxNjg2MDc5OGI5ZjIy
ZWNkZDUyNjM0MWMzNzg3NzkwMjU1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcApAQCAtMjQ4LDcgKzI0
OCw3IEBAIE1lbW9yeVByZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVNb25pdG9yKCkKICAg
ICBpZiAobV9ldmVudEZEID09IC0xKQogICAgICAgICByZXR1cm47CiAKLSAgICBUaHJlYWRJZGVu
dGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoIk1lbW9yeVByZXNzdXJlTW9u
aXRvciIsIFt0aGlzXSB7CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0g
Y3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiTWVtb3J5IFByZXNzdXJlIE1vbml0b3Ii
LCAiTWVtUHJlc3NNb25pdG9yIiksIFt0aGlzXSB7CiAgICAgICAgIGRvdWJsZSBwb2xsSW50ZXJ2
YWwgPSBzX21heFBvbGxpbmdJbnRlcnZhbEluU2Vjb25kczsKICAgICAgICAgd2hpbGUgKHRydWUp
IHsKICAgICAgICAgICAgIHNsZWVwKHBvbGxJbnRlcnZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAppbmRleCAyMWVhN2IwMTJiMTg5
OGQyMTAxMmIyMjg3MjViZWUxMDZmY2E2ZGI0Li42MWNmMDZlNzYzMDIwMGZmMDk5N2JjZjUwNjNl
Zjk4YmE5MzA0NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2Vj
SXRlbVNoaW1Qcm94eS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgU2VjSXRlbVNoaW1Qcm94eSYgU2Vj
SXRlbVNoaW1Qcm94eTo6c2luZ2xldG9uKCkKIH0KIAogU2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRl
bVNoaW1Qcm94eSgpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlNlY0l0ZW1TaGltUHJveHkiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJTZWNJdGVtU2hpbVByb3h5IiwgIlNlY0l0ZW1TaGltUCIp
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAppbmRleCBj
YmM0ZjBlM2U4NDI5YmFhZDVlODhjYWFlMzZkNWZiMzUxOWQ4ODZiLi5lZDdhNWM3OWQ4MjliZDY4
Zjc5N2I1ZDBjODkzODRiZGE4ZGM4MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyPiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0ZSgpCiB9CiAKIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiUGx1Z2luUHJvY2VzcyBDb25uZWN0aW9uIE1h
bmFnZXIiLCAiUGx1Z2luQ29ubk1nciIpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCAxZjIyMjY1
OGM5MDZiNzNmNzU1NDFhY2EzNzJlOGVmNTA5OThkMTdhLi42ODYwMGIwYWIwMjJjMmFlNDQyNDE5
ODJmYWM0YWU0MjFjMzZhZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8RXZl
bnREaXNwYXRjaGVyPiBFdmVudERpc3BhdGNoZXI6OmNyZWF0ZSgpCiB9CiAKIEV2ZW50RGlzcGF0
Y2hlcjo6RXZlbnREaXNwYXRjaGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
ImNvbS5hcHBsZS5XZWJLaXQuRXZlbnREaXNwYXRjaGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkV2ZW50IERpc3BhdGNoZXIiLCAiRXZl
bnREaXNwYXRjaCIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVz
ZXJJbnRlcmFjdGl2ZSkpCiAgICAgLCBtX3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRlcihXaGVl
bEV2ZW50RGVsdGFGaWx0ZXI6OmNyZWF0ZSgpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKaW5k
ZXggYzhlMzYzODYxZjIwNTdhMDg2YTNmNzhkNWRiNDViMjNhMGM1Yjg2YS4uY2Y5MDk4N2E5YjJk
MDYxOWRiMGJmZTNkZWNiZmU0NTNlMjA2NDA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwCkBAIC00
MSw3ICs0MSw3IEBAIFJlZjxWaWV3VXBkYXRlRGlzcGF0Y2hlcj4gVmlld1VwZGF0ZURpc3BhdGNo
ZXI6OmNyZWF0ZSgpCiB9CiAKIFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaWV3VXBkYXRlRGlzcGF0
Y2hlcigpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LlZpZXdVcGRhdGVEaXNwYXRjaGVyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiVmlldyBVcGRhdGUgRGlzcGF0Y2hlciIsICJWVXBkYXRlRGlz
cGF0Y2giKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0OGQyMmI5M2RjYjUyYTFiYWZmYzc3ZDQ3ZTQ1ZDAzNDQ2YjE1ZWViLi5k
NjUxZmNhYTBmZDRmZTI5YzgxMjA4MTI0NDk2NDVhZjQxMDkxOTQ4IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTct
MDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
VXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvTG9jay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5Mb2NrVGVzdCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHA6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUb1VwcGVyQ29udmVydGVyOjpwcm9kdWNlUXVldWUp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6Y29uc3VtZVF1ZXVl
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNl
cnZlci5jcHA6CisgICAgICAgIChXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKToK
KwogMjAxNy0wMS0wNiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dpbl0gU29tZSB0ZXN0cyBhcmUgZmxha3kgYmVjYXVzZSBjZXJ0YWluIERMTHMgYXJl
IHdyaXRpbmcgdG8gc3Rkb3V0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ29uZGl0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRp
dGlvbi5jcHAKaW5kZXggODQ4NTI3MzUxZjYwNjNmYzI2MzY4NzgwNTZkOWMyNGRiYWJlODNkYy4u
MGRiYzI2MGFlMDNlZmRmNWE1M2VlMWNjZTg4NDdjZTczZGYyODAyMCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQg
cnVuVGVzdCgKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Db25zdW1lcnM7IGktLTsp
IHsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhy
ZWFkKAotICAgICAgICAgICAgIkNvbnN1bWVyIHRocmVhZCIsCisgICAgICAgICAgICBDUkVBVEVf
VEhSRUFEX05BTUUoIkNvbnN1bWVyIiwgIkNvbnN1bWVyIiksCiAgICAgICAgICAgICBbJl0gKCkg
ewogICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgcmVzdWx0OwpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bVByb2R1Y2VyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlm
aWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJvZHVj
ZXIgVGhyZWFkIiwKKyAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiUHJvZHVjZXIiLCAi
UHJvZHVjZXIiKSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsraSkgewogICAgICAg
ICAgICAgICAgICAgICBib29sIHNob3VsZE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Mb2NrLmNwcAppbmRleCA1NTc2MzAyZDY5MGRmY2EzNTk5MjkyOGIxYzg1M2M3
NjIyZTQ1ZmI5Li5mY2JiYjk3ZDFkZjdlYjkyOTVhMmE4MGFjYjczYjg0NmM1MzBhYzNmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lk
IHJ1bkxvY2tUZXN0KHVuc2lnbmVkIG51bVRocmVhZEdyb3VwcywgdW5zaWduZWQgbnVtVGhyZWFk
c1Blckdyb3VwLCB1bnNpZ25lZAogCiAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXgg
PSBudW1UaHJlYWRzUGVyR3JvdXA7IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICB0aHJl
YWRzW3RocmVhZEdyb3VwSW5kZXggKiBudW1UaHJlYWRzUGVyR3JvdXAgKyB0aHJlYWRJbmRleF0g
PSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgIkxvY2sgdGVzdCB0aHJlYWQiLAorICAg
ICAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiTG9jayBUZXN0ZXIiLCAiTG9ja1Rlc3Rl
ciIpLAogICAgICAgICAgICAgICAgIFt0aHJlYWRHcm91cEluZGV4LCAmbG9ja3MsICZ3b3Jkcywg
bnVtSXRlcmF0aW9ucywgd29ya1BlckNyaXRpY2FsU2VjdGlvbl0gKCkgewogICAgICAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1JdGVyYXRpb25zOyBpLS07KSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBsb2Nrc1t0aHJlYWRHcm91cEluZGV4XS5sb2NrKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwCmluZGV4IGM2N2UxZTA4MTVh
ODNhZmE5MzMzZTJhYzlhMmJkNzhiNjdiMTY0NWIuLmI3MGVkNTk2NTcwZDI5YjcwNDYzZGU5NmVm
YzFhYmQ0NTBkOTlmNmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1BhcmtpbmdMb3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Bhcmtp
bmdMb3QuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0cnVjdCBTaW5nbGVMYXRjaFRlc3QgewogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1UaHJlYWRzOyBpLS07KSB7CiAgICAgICAgICAgICB0
aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAg
ICAgICAgICAgICJQYXJraW5nIFRlc3QgVGhyZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgQ1JF
QVRFX1RIUkVBRF9OQU1FKCJQYXJraW5nIFRlc3RlciIsICJQYXJraW5nVGVzdGVyIiksCiAgICAg
ICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1Rf
TkUoMHUsIGN1cnJlbnRUaHJlYWQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKaW5kZXggMzE0MzZiYzIy
MzA3ZjlkZDczZjY5MThiMjRhZGI0MGU3ODlmYjVlYy4uYWJkNzI1M2Q2MzM4OWRmMGU5MmViNWFl
NzViZGZmOGFhY2YyNzdjNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKQEAgLTYyLDE0ICs2MiwxNCBAQCBj
bGFzcyBUb1VwcGVyQ29udmVydGVyIHsKICAgICBXb3JrUXVldWUqIHByb2R1Y2VRdWV1ZSgpCiAg
ICAgewogICAgICAgICBpZiAoIW1fcHJvZHVjZVF1ZXVlKQotICAgICAgICAgICAgbV9wcm9kdWNl
UXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5Qcm9kdWNlIik7CisgICAgICAg
ICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFN
RSgiUHJvZHVjZXIiLCAiUHJvZHVjZXIiKSk7CiAgICAgICAgIHJldHVybiBtX3Byb2R1Y2VRdWV1
ZS5nZXQoKTsKICAgICB9CiAKICAgICBXb3JrUXVldWUqIGNvbnN1bWVRdWV1ZSgpCiAgICAgewog
ICAgICAgICBpZiAoIW1fY29uc3VtZVF1ZXVlKQotICAgICAgICAgICAgbV9jb25zdW1lUXVldWUg
PSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5Db25zdW1lIik7CisgICAgICAgICAgICBt
X2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ29u
c3VtZXIiLCAiQ29uc3VtZXIiKSk7CiAgICAgICAgIHJldHVybiBtX2NvbnN1bWVRdWV1ZS5nZXQo
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dv
cmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3Bw
CmluZGV4IDdlMjc3ZTk0YzQ3Y2UzY2UyZmI4MjUyZjZjZGMzYTU1YWYzN2JlNzkuLjVmYTI5Yjc1
MDZlNzBjMjgwMjdiNzk3YTI1NDExYTc0MjliMThiYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBURVNUKFdURl9Xb3Jr
UXVldWUsIFNpbXBsZSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogbG9uZ1Rlc3RMYWJlbCA9ICJs
b25nVGVzdCI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRoaXJkVGVzdExhYmVsID0gInRoaXJk
VGVzdCI7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQuVGVzdC5zaW1wbGUiKTsKKyAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJTaW1wbGUgVGVzdCIsICJTaW1wbGVUZXN0IikpOwogICAgIGlu
dCBpbml0aWFsUmVmQ291bnQgPSBxdWV1ZS0+cmVmQ291bnQoKTsKICAgICBFWFBFQ1RfRVEoMSwg
aW5pdGlhbFJlZkNvdW50KTsKIApAQCAtMTA2LDggKzEwNiw4IEBAIFRFU1QoV1RGX1dvcmtRdWV1
ZSwgVHdvUXVldWVzKQogICAgIGJvb2wgY2FsbGVkTG9uZ1Rlc3QgPSBmYWxzZTsKICAgICBib29s
IGNhbGxlZFRoaXJkVGVzdCA9IGZhbHNlOwogICAgIAotICAgIGF1dG8gcXVldWUxID0gV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMxIik7Ci0gICAgYXV0
byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LnR3b1F1
ZXVlczIiKTsKKyAgICBhdXRvIHF1ZXVlMSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJF
QURfTkFNRSgiVHdvUXVldWVzMSBUZXN0IiwgIlR3b1F1ZXVlczFUZXN0IikpOworICAgIGF1dG8g
cXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJUd29RdWV1ZXMy
IFRlc3QiLCAiVHdvUXVldWVzMlRlc3QiKSk7CiAKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUxLT5y
ZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUyLT5yZWZDb3VudCgpKTsKQEAgLTE2
Nyw3ICsxNjcsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0ZXIpCiAgICAgYm9v
bCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CiAgICAgYm9vbCBjYWxsZWREaXNwYXRjaEFmdGVy
VGVzdCA9IGZhbHNlOwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgIGF1dG8gcXVldWUgPSBXb3Jr
UXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkRpc3BhdGNoQWZ0ZXIgVGVzdCIsICJE
aXNwYXRjaEFmdGVyIikpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKIApAQCAt
MjExLDcgKzIxMSw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGVzdHJveU9uU2VsZikKICAgICB7
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICB7Ci0gICAgICAgICAg
ICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5k
aXNwYXRjaEFmdGVyIik7CisgICAgICAgICAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJEZXN0cm95T25TZWxmIFRlc3QiLCAiRGVzdHJveU9uU2Vs
ZiIpKTsKICAgICAgICAgICAgIHF1ZXVlLT5kaXNwYXRjaEFmdGVyKHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHMoNTAwKSwgWyZdKHZvaWQpIHsKICAgICAgICAgICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihsb2NrKTsKICAgICAgICAgICAgICAgICBkaXNwYXRjaEFmdGVyVGVzdFN0YXJ0ZWQud2Fp
dChsb2NrLCBbJl0gewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Z2xpYi9Xb3JrUXVldWVHTGliLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2ds
aWIvV29ya1F1ZXVlR0xpYi5jcHAKaW5kZXggOTkyM2Q2NTgwMGVkNzE0YmE2ODA2YjEzZjdlNTFm
ZWU1ODAzNWFkMC4uMzBlY2MwNWY2ZTkyYTNiZDBkNmQ3MWJhZTU2MTFlNDYzZDkwMzVkNiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGli
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdM
aWIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgQXN5bmNJTykKICAg
ICAgICAgR01haW5Db250ZXh0KiBtX21haW5Db250ZXh0OwogICAgIH0gY29udGV4dDsKIAotICAg
IGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LkFz
eW5jSU8iKTsKKyAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVB
RF9OQU1FKCJBc3luY0lPIFRlc3QiLCAiQXN5bmNJT1Rlc3QiKSk7CiAgICAgY29udGV4dC5tX21h
aW5Db250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOwogICAgIEVYUEVDVF9GQUxTRShn
X21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4
IGRlOTQ2NmMzOWQ3MWNmYzJhYmY0NDlmY2ZkZTM4OWI1NDQ5ZGYzMjcuLmU5ZDhjMzQyYWFjMWIw
OGExOWQ1ZTllYTIyZGY1ODZmOTE2ZGE0ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcApAQCAtMjgsNyArMjgs
NyBAQCBXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKFNlcnZlck9wdGlvbnMgb3B0
aW9ucykKIHsKICAgICBpZiAob3B0aW9ucyAmIFNlcnZlclJ1bkluVGhyZWFkKSB7CiAgICAgICAg
IFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgICAgICBtX3F1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoIldlYktpdFRlc3RTZXJ2ZXIiKTsKKyAgICAgICAgbV9xdWV1ZSA9IFdvcmtRdWV1
ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiV2ViS2l0IFRlc3QgU2VydmVyIiwgIlRlc3RT
ZXJ2ZXIiKSk7CiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzc2xDZXJ0aWZpY2F0ZUZp
bGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298354</attachid>
            <date>2017-01-09 07:03:59 -0800</date>
            <delta_ts>2017-01-09 11:52:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170110000223.patch</filename>
            <type>text/plain</type>
            <size>106437</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZjExNDUxMzhkYTdlNWE0ZjE4ZjQxZDhmOWY3YmY1OWFjOWVhMzVjLi41YTRiMDhiNTViNDc0Njc4
NGRlODRhNDYwNjY2NTc2ZmVlOWNlZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBh
bmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHA6CisgICAgICAgICh0ZXN0
Q29tcGFyZUFuZFN3YXApOgorICAgICAgICAqIGIzL2Fpci90ZXN0YWlyLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OkFpcjo6cnVuKToKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKyAgICAgICAgKiBieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwOgorICAg
ICAgICAoSlNDOjppbml0aWFsaXplU3VwZXJTYW1wbGVyKToKKyAgICAgICAgKiBkZmcvREZHV29y
a2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpUaHJlYWRCb2R5OjpUaHJl
YWRCb2R5KToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAg
ICAoSlNDOjpERkc6OldvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkRG
Rzo6V29ya2xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6ZW5zdXJlR2xvYmFsREZH
V29ya2xpc3QpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KToK
KyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBkaXNhc3NlbWJsZXIvRGlz
YXNzZW1ibGVyLmNwcDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpI
ZWFwOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgIChKU0M6OkhlYXA6Om5vdGlmeUlzU2FmZVRv
Q29sbGVjdCk6CisgICAgICAgICogaGVhcC9IZWFwSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChK
U0M6OmhlYXBIZWxwZXJQb29sKToKKyAgICAgICAgKiBqaXQvSUNTdGF0cy5jcHA6CisgICAgICAg
IChKU0M6OklDU3RhdHM6OklDU3RhdHMpOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6
CisgICAgICAgIChKU0M6OkpJVFdvcmtsaXN0OjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKHN0YXJ0VGltZW91dFRocmVhZElmTmVlZGVkKToKKyAgICAgICAg
KiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1By
b2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcnVudGltZS9XYXRj
aGRvZy5jcHA6CisgICAgICAgIChKU0M6OldhdGNoZG9nOjpXYXRjaGRvZyk6CisgICAgICAgICog
d2FzbS9XYXNtUGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlBsYW46OnJ1bik6CisKIDIw
MTctMDEtMDggIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIElu
amVjdCBNYXJrZWRTcGFjZSBzaXplIGNsYXNzZXMgZm9yIGEgZmV3IG1vcmUgaGlnaC12b2x1bWUg
b2JqZWN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggYjk4OGEzMmUyZWQzOTQ1NmFlOWZmNzBmNDkxYTA0ZDA0YjE2ODhlOS4u
MzY3ODY2YWVlZWNmMjU5YmQ3MTQwYWU0ODgzNDEzMmQ1ODgwNDUxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5
OCBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
KworICAgICAgICBVc2UgQ1JFQVRFX1RIUkVBRF9OQU1FIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hv
cnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBDUkVBVEVfVEhSRUFEX05BTUUuIEFuZCBhcHBseSBjb25z
aXN0ZW50IG5hbWluZworICAgICAgICBwb2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisg
ICAgICAgIENSRUFURV9USFJFQURfTkFNRSB0YWtlcyAyIG5hbWVzLCBzaG9ydCBhbmQgbG9uZyBu
YW1lcy4gVGhlIGxvbmcgbmFtZQorICAgICAgICBpcyB1c2VkIGZvciBtYWNPUyBhbmQgaU9TIHNp
bmNlIHRoZXkgZG8gbm90IGhhdmUgdGhlIGxpbWl0YXRpb24uIE9uIHRoZQorICAgICAgICBvdGhl
ciBoYW5kLCBMaW51eCBvbmx5IGFsbG93cyAxNSBjaGFyYWN0ZXJzIGZvciB0aHJlYWQgbmFtZXMu
IFNvIGZvcgorICAgICAgICBMaW51eCwgd2UgdXNlIHRoZSBzaG9ydCBuYW1lLiBXaW5kb3dzIGFs
c28gaGFzIDMxIGNoYXJhY3RlcnMgbGltaXRhdGlvbi4KKyAgICAgICAgV2luZG93cyBhbHNvIHVz
ZXMgdGhlIHNob3J0IG5hbWUuCisKKyAgICAgICAgV2hlbiB5b3Ugc3BlY2lmeSB0aGUgbmFtZSBs
aWtlLAorCisgICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jaHJvbm91cyBEaXNh
c3NlbWJsZXIiLCAiQXN5bmNEaXNhc20iKSwKKworICAgICAgICBUaGUgdGhyZWFkIG5hbWUgYmVj
b21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIFdp
bmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1MgYW5kIGlPUzog
IldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBDUkVBVEVfVEhS
RUFEX05BTUUgY2hlY2tzIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0IG5hbWUgaXMgPD0gMTUgYXQg
Y29tcGlsZQorICAgICAgICB0aW1lLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LCBjb21w
aWxlIGVycm9yIG9jY3Vycy4KKworICAgICAgICBUaGUgIldlYktpdDogIiBwcmVmaXggaXMgYXV0
b21hdGljYWxseSBhZGRlZCBieSBDUkVBVEVfVEhSRUFEX05BTUUgbWFjcm8KKyAgICAgICAgd2l0
aG91dCBhbGxvY2F0aW5nIGFueSBhZGRpdGlvbmFsIG1lbW9yeSBhdCBydW50aW1lLiBUaGlzIHBy
ZWZpeCBpcyBpbXBvcnRhbnQKKyAgICAgICAgc2luY2UgaXQgY2FuIHNheSB0aGF0IHRoaXMgdGhy
ZWFkIGlzIHJlbGF0ZWQgdG8gV2ViS2l0LiBXaGVuIHVzaW5nIFdlYktpdAorICAgICAgICBhcyBm
cmFtZXdvcmssIFdlYktpdCByZWxhdGVkIHRocmVhZHMgd2lsbCBiZSBsYXVuY2hlZCBhbG9uZyB3
aXRoIHVzZXIKKyAgICAgICAgYXBwbGljYXRpb24ncyB0aHJlYWRzLiBXaXRob3V0ICJXZWJLaXQ6
ICIgcHJlZml4LCBpdCBpcyBhIGJpdCBkaWZmaWN1bHQKKyAgICAgICAgdG8gZGlzdGluZ3Vpc2gg
dXNlcidzIHRocmVhZHMgZnJvbSBXZWJLaXQgcmVsYXRlZCBvbmVzLgorCisgICAgICAgIFdlIGFw
cGx5IHRoaXMgcG9saWN5IHRvIGFsbCB0aGUgV2ViS2l0IHRocmVhZCBuYW1lcyBleGNlcHQgZm9y
IGJtYWxsb2MncyBvbmUuCisgICAgICAgIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGluIFsxXS4KKwor
ICAgICAgICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2
ODQKKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtz
L0xvY2tGYWlybmVzc1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVz
dC5jcHA6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6
OkF1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21h
dGljVGhyZWFkOjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAg
ICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxl
bEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVs
SGVscGVyUG9vbDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAg
ICAgKiB3dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVs
RW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9U
aHJlYWROYW1lLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwLgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAgICAgICAg
KFdURjo6VGhyZWFkTmFtZTo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi9U
aHJlYWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RG
Ojpub3JtYWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5n
Lmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6
Y3JlYXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRo
cmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAg
KFdURjo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNy
ZWF0ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAg
ICAgKFdURjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6Oldv
cmtRdWV1ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAg
ICAgICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgor
ICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRj
aFF1ZXVlOjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpj
cmVhdGUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAq
IHd0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0
Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMu
Y3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAq
IHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6
QVNDSUlMaXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25z
dCBjaGFyKik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6
OkFTQ0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVND
SUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3Rm
L3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJl
YWRQbGF0Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAg
ICAoV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEtMDggIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgY2FjaGUgY29k
ZXJzIHRvIFdURgpAQCAtNzMsNiArMTY4LDYwIEBACiAgICAgICAgICogd3RmL3RleHQvQVNDSUlG
YXN0UGF0aC5oOgogICAgICAgICAoV1RGOjpjb3B5TENoYXJzRnJvbVVDaGFyU291cmNlKToKIAor
ICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tG
YWlybmVzc1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhy
ZWFkOjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAq
IHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBl
clBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVy
UG9vbDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wu
aDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAgICAgKiB3
dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJv
bm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9UaHJlYWRO
YW1lLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
LgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAgICAgICAgKFdURjo6
VGhyZWFkTmFtZTo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi9UaHJlYWRp
bmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpub3Jt
YWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6Cisg
ICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRl
VGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVhZElu
dGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6
aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0ZVRo
cmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFdU
Rjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtRdWV1
ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAgICAg
KiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNw
cDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAg
ICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1ZXVl
OjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVhdGUp
OgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0Zi9l
ZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgor
ICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90
ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlM
aXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFy
Kik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFTQ0lJ
TGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlMaXRl
cmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dpbi9N
YWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0
Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEtMDUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBDYXJldHMgY2FuIHNw
bGl0IHVwIG1hcnJpYWdlcyBhbmQgZmFtaWxpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMzFlYjdhNmZkZGJj
NTQ5ZWYxNDE1MTZjMjNhN2Y2ZGRhMzNkNTlmLi40NzE3ZGMwMjA2YzMxZWU3ZTE3ODNlMDc5NmEz
YTViYTdjNjgzNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTctMDEtMDkgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIENSRUFU
RV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJT
ZXJ2ZXI6OklEQlNlcnZlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlv
RGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNB
dWRpb0RlY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OnN0
YXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9y
RGVidWdnaW5nKToKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKToKKyAgICAgICAgKiBmaWxlYXBp
L0FzeW5jRmlsZVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsT25GaWxlVGhyZWFk
KToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpvcGVuKToKKyAgICAgICAgKiBwYWdlL1Jlc291cmNlVXNhZ2VU
aHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRl
VGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElm
TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OlJldmVyYkNvbnZvbHZlcik6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RnJhbWVDYWNoZTo6ZGVjb2RpbmdRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChSZXNvdXJj
ZUhhbmRsZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6
RXZlbnRGRFBvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsb2JVdGlsaXR5UXVldWUpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YVVSTERlY29kZXI6OmRlY29kZVF1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2NmL0xvYWRlclJ1bkxvb3BDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkZXJSdW5Mb29w
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBs
Q3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFy
dFRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V29ya2VyVGhyZWFkOjpzdGFydCk6CisKIDIwMTctMDEtMDkgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYlByb2Nl
c3MgZnJvbSBXZWJLaXRHdGsrIDIuMTUuMiBTSUdTRUdWcyBpbiBzdGQ6OnVuaXF1ZV9wdHI8U291
cEJ1ZmZlciwgV1RGOjpHUHRyRGVsZXRlcjxTb3VwQnVmZmVyPiA+OjpnZXQoKSBjb25zdCAoKSBh
dCAvdXNyL2luY2x1ZGUvYysrLzYvYml0cy91bmlxdWVfcHRyLmg6MzA1CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1
ZmQ4NWNhYWZlNGVkOGVlNDhhNTFiZDE3NWM2YjQ2ZDVjNmVmMWYuLjcxZWNlYWFhOTEyZTU0YTUy
NTJjMjJmODIzYWNmODJjMzIyM2YwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTct
MDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
VXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2Uv
U3RvcmFnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpzdGFy
dCk6CisKIDIwMTctMDEtMDUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIENvbXBpbGUgZXJyb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2Q4MzBhNjMyOWM0
OTMzMDI0MTk1ODZiYThmYmI2YTgwNDY1MDkzNC4uYjJiYTNmYzY5MjM0MzgzMzBhZjdkM2U4ZjJi
NWVlYzM5MDU0MjU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTAxLTA5ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBDUkVB
VEVfVEhSRUFEX05BTUUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3Mv
RGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQcm9jZXNzOjpE
YXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6OmRlbGV0ZUR1
bXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0No
YW5uZWxTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJT0NoYW5uZWw6
OnJlYWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0
YXRpc3RpY3M6OlN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OlN0
b3JhZ2U6OlN0b3JhZ2UpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAgIChJUEM6OkNv
bm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAq
IFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaWRDbG9zZU9uQ29u
bmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
dGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldvcmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9yQ29udGV4dCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OndvcmtR
dWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6VXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1h
bmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbGludXgv
TWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVtb3J5UHJlc3N1
cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY0l0ZW1TaGltUHJv
eHk6OlNlY0l0ZW1TaGltUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0ZURpc3BhdGNoZXIpOgorCiAy
MDE3LTAxLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlIGNhY2hlIGNvZGVycyB0byBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAppbmRleCBlNzgwODZjM2E5NjEyYTJm
MGI0ZDdhYWYxYWRjN2JhMWExMDFjNTQ3Li4zZjcxMGM3M2NlMWM0ODMwMjRiOTIyOTI4NDBmYTM2
NjM0ZjgxZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0Nv
bXBhcmVBbmRTd2FwVGVzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCB0ZXN0Q29t
cGFyZUFuZFN3YXAoKQogICAgICAgICBkYXRhW2ldLmlkID0gaTsKICAgICAgICAgZGF0YVtpXS5u
dW1UaHJlYWRzID0gbnVtVGhyZWFkczsKICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRo
cmVhZEZ1bmMgPSBzdGQ6OmJpbmQoc2V0Qml0VGhyZWFkRnVuYywgJmRhdGFbaV0pOwotICAgICAg
ICB0aHJlYWRJRHNbaV0gPSBjcmVhdGVUaHJlYWQoInNldEJpdFRocmVhZEZ1bmMiLCB0aHJlYWRG
dW5jKTsKKyAgICAgICAgdGhyZWFkSURzW2ldID0gY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURf
TkFNRSgic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRUaHJlYWRGdW5jIiksIHRocmVhZEZ1bmMp
OwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBmb3IgJWQgdGhyZWFkcyB0byBqb2luXG4i
LCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
dGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmlu
ZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4NGQ0NTc2Y2Y0NGYuLmRkZDQ5ZTFlYzg0
NjI1MzdiMTdlZTU1NzEwY2EyNWJkMGIzYTExZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEzLDcgQEAgdm9pZCBydW4oY29uc3QgY2hh
ciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9IGZpbHRlciA/IDEgOiBXVEY6Om51bWJl
ck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAgICAgICB0aHJlYWRzLmFwcGVuZCgKICAg
ICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAidGVzdGIzIHRocmVhZCIs
CisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJUZXN0QjMgV29ya2VyIiwgIlRl
c3RCM1dvcmtlciIpLAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNr
PHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVz
dGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGZjMzNj
NmZjZmFkZjg5MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1ZTEuLjZmYWIzYTc3MDhhM2EzZDA1OGJj
NjAzYmRmZWVhMmI2NDdjNTVmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBA
IC0xNTY2MSw3ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVz
KCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAgICAgICBjcmVhdGVU
aHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0aHJlYWQiLAorICAgICAgICAgICAgICAg
IENSRUFURV9USFJFQURfTkFNRSgiVGVzdEIzIFdvcmtlciIsICJUZXN0QjNXb3JrZXIiKSwKICAg
ICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+PiB0YXNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRl
eCBhNGUyMWY5ZmEzY2Q0NzIxZWEyNjc1ZTA2ZTRkNTMwYzViYTk1YjM1Li43NTljZjM0NTY0YzQ3
ZjE1YTMyNWRkYzI4NWIwZTliYTQ3Yjc0ZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIGluaXRp
YWxpemVTdXBlclNhbXBsZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBjcmVhdGVUaHJlYWQo
Ci0gICAgICAgICJKU0MgU3VwZXIgU2FtcGxlciIsCisgICAgICAgIENSRUFURV9USFJFQURfTkFN
RSgiU3VwZXIgU2FtcGxlciIsICJTdXBlclNhbXBsZXIiKSwKICAgICAgICAgW10gKCkgewogICAg
ICAgICAgICAgY29uc3QgaW50IHNsZWVwUXVhbnR1bSA9IDEwOwogICAgICAgICAgICAgY29uc3Qg
aW50IHByaW50aW5nUGVyaW9kID0gMTAwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdX
b3JrbGlzdC5jcHAKaW5kZXggNWUzMzhmMDEyYjg5OTRkOTg2NTQ0NmU4NzgxNDc4NGQ4ZTg1NTA3
Yi4uNDM5NTdiOGE1YmFjZmQ4ZGYzOThkMDcyZDg3N2YxYTUwZTFjZmVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAgLTQwLDggKzQwLDggQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgotICAgIFRocmVhZEJvZHkoY29uc3Qg
TG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3QsIFRocmVhZERhdGEmIGRhdGEs
IEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRp
b24sIGludCByZWxhdGl2ZVByaW9yaXR5KQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2Nr
ZXIsIGxvY2ssIGNvbmRpdGlvbikKKyAgICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxv
Y2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9j
aywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRp
dmVQcmlvcml0eSwgVGhyZWFkTmFtZSB0aHJlYWROYW1lKQorICAgICAgICA6IEF1dG9tYXRpY1Ro
cmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbiwgdGhyZWFkTmFtZSkKICAgICAgICAgLCBtX3dv
cmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAsIG1fZGF0YShkYXRhKQogICAgICAgICAsIG1fcmVs
YXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9yaXR5KQpAQCAtMTczLDggKzE3Myw4IEBAIGNsYXNz
IFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiAgICAgUmVm
UHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nIHdvcmts
aXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFtZSh0b0NTdHJpbmcod29ya2xpc3ROYW1lLCAiIFdv
cmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpXb3JrbGlzdChUaHJlYWROYW1lIHRocmVhZE5hbWUp
CisgICAgOiBtX3RocmVhZE5hbWUodGhyZWFkTmFtZSkKICAgICAsIG1fbG9jayhCb3g8TG9jaz46
OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
OjpjcmVhdGUoKSkKICAgICAsIG1fbnVtYmVyT2ZBY3RpdmVUaHJlYWRzKDApCkBAIC0yMDAsMTQg
KzIwMCwxNCBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJP
ZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogICAgIExvY2tIb2xkZXIgbG9ja2VyKCpt
X2xvY2spOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mVGhyZWFkczsgaS0tOykgewog
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlx
dWU8VGhyZWFkRGF0YT4odGhpcyk7Ci0gICAgICAgIGRhdGEtPm1fdGhyZWFkID0gYWRvcHRSZWYo
bmV3IFRocmVhZEJvZHkobG9ja2VyLCAqdGhpcywgKmRhdGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1
ZWQsIHJlbGF0aXZlUHJpb3JpdHkpKTsKKyAgICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJl
ZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1
ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSwgbV90aHJlYWROYW1lKSk7CiAgICAgICAgIG1fdGhyZWFk
cy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7CiAgICAgfQogfQogCi1SZWY8V29ya2xpc3Q+IFdvcmts
aXN0OjpjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFk
cywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCitSZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUo
VGhyZWFkTmFtZSB0aHJlYWROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxh
dGl2ZVByaW9yaXR5KQogewotICAgIFJlZjxXb3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5l
dyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFk
b3B0UmVmKCpuZXcgV29ya2xpc3QodGhyZWFkTmFtZSkpOwogICAgIHJlc3VsdC0+ZmluaXNoQ3Jl
YXRpb24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVByaW9yaXR5KTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtNTE2LDcgKzUxNiw3IEBAIFdvcmtsaXN0JiBlbnN1cmVHbG9iYWxERkdXb3Jr
bGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3Jr
bGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlz
dE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gJldvcmtsaXN0
OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJl
YWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFr
UmVmKCk7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJERkcgQ29tcGlsZXIgV29ya2VyIiwgIkRGR0NvbXBpbGVyIiks
IE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5
RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0
dXJuICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTUzMiw3ICs1MzIsNyBAQCBXb3JrbGlz
dCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShp
bml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxG
VExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBPcHRpb25zOjpu
dW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExD
b21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlz
dCA9ICZXb3JrbGlzdDo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRlRMIENvbXBpbGVyIFdv
cmtlciIsICJGVExDb21waWxlciIpLCBPcHRpb25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFk
cygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1Jl
ZigpOwogICAgIH0pOwogICAgIHJldHVybiAqdGhlR2xvYmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKaW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2
ZmMzMjIxOWIwZmE0NGY2ZjExYzdmOC4uYzEwNDcyN2Y5YmIwZjExOGMwOWI5ZWZiNzNiZDdkMzQ4
NzVlMDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlz
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtNDgs
NyArNDgsNyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7
CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAKLSAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVh
dGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJl
bGF0aXZlUHJpb3JpdHkgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoVGhy
ZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9
IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1ZShQYXNzUmVmUHRyPFBsYW4+KTsKICAgICAKQEAg
LTgyLDcgKzgyLDcgQEAgY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlz
dD4gewogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToK
LSAgICBXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSk7CisgICAgV29ya2xpc3QoVGhyZWFk
TmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMs
IGludCk7CiAgICAgCiAgICAgY2xhc3MgVGhyZWFkQm9keTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xh
c3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogCiAgICAgdm9pZCBk
dW1wKGNvbnN0IExvY2tIb2xkZXImLCBQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIENT
dHJpbmcgbV90aHJlYWROYW1lOworICAgIFRocmVhZE5hbWUgbV90aHJlYWROYW1lOwogICAgIAog
ICAgIC8vIFVzZWQgdG8gaW5mb3JtIHRoZSB0aHJlYWQgYWJvdXQgd2hhdCB3b3JrIHRoZXJlIGlz
IGxlZnQgdG8gZG8uCiAgICAgRGVxdWU8UmVmUHRyPFBsYW4+PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4
IDc4OGE2YzM2MjM2OWM1OGRhZDI5YTYwYTM4NzEwNDRlNDY0ZWQzMDUuLmE4YWViODRkZjRiZjll
ZGRmNTQ4ZGRlZjIzNDk2ZTBiZTg2OTlmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKQEAgLTczLDcgKzczLDcgQEAgY2xh
c3MgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVyIHsKIHB1YmxpYzoKICAgICBBc3luY2hyb25vdXNE
aXNhc3NlbWJsZXIoKQogICAgIHsKLSAgICAgICAgY3JlYXRlVGhyZWFkKCJBc3luY2hyb25vdXMg
RGlzYXNzZW1ibGVyIiwgWyZdICgpIHsgcnVuKCk7IH0pOworICAgICAgICBjcmVhdGVUaHJlYWQo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlz
YXNtIiksIFsmXSAoKSB7IHJ1bigpOyB9KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVl
KHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+IHRhc2spCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuY3BwCmluZGV4IDI2NTgzYzRlOTQ2MDgwYWQ2YjdhZmNjMTlkNjdiYjUzZTBhZGFi
ZDguLmY5OWYxYTUyNGQxMWJiNTY3OGZiYmQ3Yzk2ZTJkNTc5ZjVhNDkyMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgY2xhc3MgVGltaW5nU2Nv
cGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJs
aWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKLSAg
ICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5t
X3RocmVhZENvbmRpdGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFw
Lm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbiwgQ1JFQVRFX1RIUkVBRF9OQU1F
KCJIZWFwIENvbGxlY3RvciIsICJIZWFwQ29sbGVjdG9yIikpCiAgICAgICAgICwgbV9oZWFwKGhl
YXApCiAgICAgewogICAgIH0KQEAgLTIxNDcsNyArMjE0Nyw3IEBAIHZvaWQgSGVhcDo6bm90aWZ5
SXNTYWZlVG9Db2xsZWN0KCkKICAgICAKICAgICBpZiAoT3B0aW9uczo6Y29sbGVjdENvbnRpbnVv
dXNseSgpKSB7CiAgICAgICAgIG1fY29sbGVjdENvbnRpbnVvdXNseVRocmVhZCA9IGNyZWF0ZVRo
cmVhZCgKLSAgICAgICAgICAgICJKU0MgREVCVUcgQ29udGludW91cyBHQyIsCisgICAgICAgICAg
ICBDUkVBVEVfVEhSRUFEX05BTUUoIkpTQyBERUJVRyBDb250aW51b3VzIEdDIiwgIkNvbnRpbnVv
dXNHQyIpLAogICAgICAgICAgICAgW3RoaXNdICgpIHsKICAgICAgICAgICAgICAgICBNb25vdG9u
aWNUaW1lIGluaXRpYWxUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAgICAgICAg
ICAgU2Vjb25kcyBwZXJpb2QgPSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKE9wdGlvbnM6OmNv
bGxlY3RDb250aW51b3VzbHlQZXJpb2RNUygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXBIZWxwZXJQb29sLmNwcAppbmRleCA3OTFhYTc1NmY5NWUxY2I1NjQwZmMzM2I0NTY3
NzQ1MWVlMWEyNTM2Li42ZTk2YzRjYzM3MzEwYWQ5YzU4N2FiMTcxOGUwNDgzN2NiZTRmOThmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCkBAIC0z
OCw3ICszOCw3IEBAIFBhcmFsbGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKQogICAgIHN0
ZDo6Y2FsbF9vbmNlKAogICAgICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnLAogICAg
ICAgICBbXSB7Ci0gICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9v
bCgpOworICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBlclBvb2woQ1JF
QVRFX1RIUkVBRF9OQU1FKCJIZWFwIEhlbHBlciIsICJIZWFwSGVscGVyIikpOwogICAgICAgICAg
ICAgaGVscGVyUG9vbC0+ZW5zdXJlVGhyZWFkcyhPcHRpb25zOjpudW1iZXJPZkdDTWFya2Vycygp
IC0gMSk7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqaGVscGVyUG9vbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0lDU3RhdHMuY3BwCmluZGV4IDIwODBjZDkzNDU4MzNkMmQyMzJiOGE5Y2Q2ZjNk
YmZlYmUwNWNiMjMuLjkzNzZkNDllZDg0YTkyMTZlMWM4NzBiZDg3YmQyNzRmODYzYTk2OTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmNwcApAQCAtNTksNyArNTksNyBAQCBBdG9t
aWM8SUNTdGF0cyo+IElDU3RhdHM6OnNfaW5zdGFuY2U7CiBJQ1N0YXRzOjpJQ1N0YXRzKCkKIHsK
ICAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIkpTQyBJQ1N0YXRzIiwKKyAg
ICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJKU0MgSUNTdGF0cyIsICJJQ1N0YXRzIiksCiAgICAg
ICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwog
ICAgICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmts
aXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFmNzdkOTYxNmFjZWQwNGNhN2Y1MWE2Li4z
MzNjYTNiYTk0MzYzYmMxMjdkODgzODc1N2MwZTNkMjdjMzdhNmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIGNsYXNzIEpJ
VFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpJVFdvcmtsaXN0
OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1Ro
cmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgSklU
V29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHdv
cmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGlj
VGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5tX2NvbmRpdGlvbiwgQ1JF
QVRFX1RIUkVBRF9OQU1FKCJCYXNlbGluZSBKSVQgQ29tcGlsZXIgV29ya2VyIiwgIkpJVENvbXBp
bGVyIikpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAgICB7CiAgICAgICAgIG1f
d29ya2xpc3QubV9udW1BdmFpbGFibGVUaHJlYWRzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4
IDNhN2EzZjQ3MjdkMDIwMmU3MmU1YThlZWZlMDMyODc2MjA4MjViMzMuLjNmMzRiNGZhY2NmNzEy
NTI5NDEyNzY0YjlhODM0ZTA5MDYyNjk1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yNzE5
LDcgKzI3MTksNyBAQCBzdGF0aWMgdm9pZCBzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCgpCiAg
ICAgICAgICAgICBkYXRhTG9nKCJXQVJOSU5HOiB0aW1lb3V0IHN0cmluZyBpcyBtYWxmb3JtZWQs
IGdvdCAiLCB0aW1lb3V0U3RyaW5nLAogICAgICAgICAgICAgICAgICIgYnV0IGV4cGVjdGVkIGEg
bnVtYmVyLiBOb3QgdXNpbmcgYSB0aW1lb3V0LlxuIik7CiAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3JlYXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRNYWluLCAwLCAianNjIFRpbWVvdXQgVGhy
ZWFkIik7CisgICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4sIDAsIENS
RUFURV9USFJFQURfTkFNRSgiSlNDIFRpbWVvdXQgVGhyZWFkIiwgIlRpbWVvdXRUaHJlYWQiKSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
YW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuY3BwCmluZGV4IDcwMzRkYzY5NmI5ZTExNDkyODhjN2JiOWVkZGVmZTJhYjE2
YjE3Y2EuLmZmMDM3YWZjOTRhZGQ3ZTExNWFmYWM1ZTdiOGRhMDZiOGE4NzQzOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBA
IC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5l
Y2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJikKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRy
PFNhbXBsaW5nUHJvZmlsZXI+IHByb2ZpbGVyID0gdGhpczsKLSAgICBtX3RocmVhZElkZW50aWZp
ZXIgPSBjcmVhdGVUaHJlYWQoImpzYy5zYW1wbGluZy1wcm9maWxlci50aHJlYWQiLCBbcHJvZmls
ZXJdIHsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVB
RF9OQU1FKCJTYW1wbGluZyBQcm9maWxlciIsICJTYW1wbGluZyIpLCBbcHJvZmlsZXJdIHsKICAg
ICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmluZGV4IGY2MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0
OGY2MGM5NTcyNTZjYjVjMjMuLmNhYmU0YTUxYmY0MjZiYTMyMDNiNDM5Y2RkMzlhZjY5MjU1NjMw
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKQEAgLTQ4
LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAgICAsIG1fY2FsbGJhY2soMCkKICAg
ICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxsYmFja0RhdGEyKDApCi0gICAgLCBt
X3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCisgICAgLCBtX3Rp
bWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXYXRjaGRvZyIs
ICJXYXRjaGRvZyIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlV0
aWxpdHkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAKaW5k
ZXggNTk4MGI1MWU4NzQyMjIzNzU1Y2UwYzNkZjJjMTZiMWRlOWVjOGYxMi4uMWQ4MGFiZDIyYjk4
MWRjMWFlOWI0Zjk5M2ZhYTE0YTI3ZGVlNWRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21QbGFuLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgUGxhbjo6cnVuKCkKICAgICBW
ZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gdGhyZWFkczsKICAgICB0aHJlYWRzLnJlc2VydmVDYXBh
Y2l0eShudW1Xb3JrZXJUaHJlYWRzKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVt
V29ya2VyVGhyZWFkczsgaSsrKQotICAgICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVh
dGVUaHJlYWQoImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRocmVhZCIsIGRvV29yaykpOworICAg
ICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9O
QU1FKCJXYXNtIEIzIENvbXBpbGVyIiwgIldhc21CM0NvbXBpbGVyIiksIGRvV29yaykpOwogCiAg
ICAgZG9Xb3JrKCk7IC8vIExldCB0aGUgbWFpbiB0aHJlYWQgZG8gc29tZSB3b3JrIHRvby4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmE3ODA0NDkzYzk1
Zjg5Y2RhNmJmMzFhMzgxNTkwZjFjZmMwZTA0Yy4uZDFkMWNlNWMyODdiMzBlMjFmZGE5NmY3YTE1
ZWVhNDIxNDFhZWMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNjgsNiArMzY4LDggQEAKIAkJRkU4OTI1QjAxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVu
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5
MjVBRjFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMw
RjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3Rh
dHMuY3BwICovOyB9OwogCQlGRURBQ0QzRTE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0Mx
NjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAqLzsgfTsKKwkJOEFEODkyRjBENTg1NDZE
MTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzFBOUJENDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJh
bC5oICovOyB9OworCQk4OTY2RTQxODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjFFMkU1REU2RUQ2
NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUg
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpA
QCAtNzQ4LDYgKzc1MCw4IEBACiAJCUZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGRURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tT
dGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGFja1N0YXRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0MxNjMwRjgzRjAwQzY5
NjM0IC8qIFN0YWNrU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rh
Y2tTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MUE5QkQ0NUUwNjM0QjI0
QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEFTQ0lJTGl0ZXJhbC5oOyBwYXRoID0gQVNDSUlMaXRlcmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUYxRTJFNURFNkVENjQ0Q0E5MTg4RUI1NSAvKiBUaHJlYWROYW1lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRocmVhZE5hbWUuaDsgcGF0aCA9IFRo
cmVhZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVm
ZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwpAQCAtMTEzMiw2ICsxMTM2LDcgQEAKIAkJCQlFNEEwQUQzODFBOTYyNDU1MDA1MzZE
RjYgLyogV29ya1F1ZXVlLmggKi8sCiAJCQkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuY3BwICovLAogCQkJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZU
aHJlYWREYXRhLmggKi8sCisJCQkJRjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5h
bWUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gd3RmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTEyMjAsNiArMTIyNSw3IEBACiAJCQkJNzBFQ0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8q
IFVuaXF1ZWRTdHJpbmdJbXBsLmggKi8sCiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlN0cmluZy5jcHAgKi8sCiAJCQkJQThBNDczMkUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0
cmluZy5oICovLAorCQkJCTcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwu
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGV4dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xNTY4LDYgKzE1NzQsOCBAQAogCQkJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBX
VEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTczRTAyNTE5RENCN0FCMDA1ODBE
NUMgLyogWFBDU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDNBNDY5OTFFMjI4QjkxMDAyNzZC
MDUgLyogQ29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhD
OCAvKiBBU0NJSUxpdGVyYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTg5NjZFNDE4NkI5RjRFQzFB
Q0MyMjVDQSAvKiBUaHJlYWROYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5j
aG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAKaW5kZXggY2IxZDEwMWU4NTY1MjllOGFhZWE2
YWJmNjBlYzM4ZWEwYjhkZGU3Mi4uNTc4YWE5NTA4MjRkMmY2YWQ1MjI3YTNmNWQ1M2MwMTRiZDhm
ZWZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVz
dC5jcHAKKysrIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAK
QEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWduZWQg
aSA9IG51bUNvbnN1bWVyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVh
ZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhyZWFk
IiwKKyAgICAgICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiQ29uc3VtZXIiLCAiQ29uc3VtZXIi
KSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9p
ZCBydW5UZXN0KAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7
CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVh
ZCgKLSAgICAgICAgICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgQ1JFQVRFX1RI
UkVBRF9OQU1FKCJQcm9kdWNlciIsICJQcm9kdWNlciIpLAogICAgICAgICAgICAgWyZdICgpIHsK
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQ
cm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3Qu
Y3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCmluZGV4IGYw
ODMyMWMwZjY4ODM2NTM1ZDgzY2I2YmM3NTExODQ4YmI1MmQ5NGYuLjViNjg1MjI3ZTg0NTQ4NGY5
NzYzZGEwNmVmY2NmNmNiNTljZjc4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJr
cy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0Zh
aXJuZXNzVGVzdC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0IEJlbmNobWFyayB7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJlYWRzOyB0aHJlYWRJbmRleC0t
OykgewogICAgICAgICAgICAgY291bnRzW3RocmVhZEluZGV4XSA9IDA7CiAgICAgICAgICAgICB0
aHJlYWRzW3RocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAiQmVu
Y2htYXJrIFRocmVhZCIsCisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJCZW5j
aG1hcmsgUnVubmVyIiwgIkJlbmNobWFya1J1bm5lciIpLAogICAgICAgICAgICAgICAgIFsmLCB0
aHJlYWRJbmRleF0gKCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1pY3Jvc2Vjb25kc0lu
Q3JpdGljYWxTZWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoa2VlcEdv
aW5nKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5j
cHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKaW5kZXggNTQ1ZDJl
MGIwNDg4ZjMzODk0YTU5Njg4ZmQ5MWIwZDNhMzg3Y2NhMi4uYTg3N2UzZDk5NTQxYWRkZTE4NTBl
NDA4NTRhYWZmOTM2NjI3OTJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xv
Y2tTcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0
LmNwcApAQCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgQmVuY2htYXJrIHsKIAogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCB0aHJlYWRJbmRleCA9IG51bVRocmVhZHNQZXJHcm91cDsgdGhyZWFkSW5k
ZXgtLTspIHsKICAgICAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEdyb3VwSW5kZXggKiBudW1U
aHJlYWRzUGVyR3JvdXAgKyB0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAg
ICAgICAgICAgICJCZW5jaG1hcmsgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgQ1JFQVRF
X1RIUkVBRF9OQU1FKCJCZW5jaG1hcmsgUnVubmVyIiwgIkJlbmNobWFya1J1bm5lciIpLAogICAg
ICAgICAgICAgICAgICAgICBbdGhyZWFkR3JvdXBJbmRleCwgJmxvY2tzLCAmd29yZHMsICZrZWVw
R29pbmcsICZudW1JdGVyYXRpb25zTG9jaywgJm51bUl0ZXJhdGlvbnNdICgpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvdWJsZSBsb2NhbFdvcmQgPSAwOwogICAgICAgICAgICAgICAgICAg
ICAgICAgZG91YmxlIHZhbHVlID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCmluZGV4
IDRkOGZiODQ4OWY5OWNiOGY2N2U3Y2MyZDEzYmY0MTU1ZWU4N2U1YzUuLmM2NGM2MDg2ZDU5ZTk5
YWU1MTdhN2Q0MWZjZDY5ZmFhMGQ1Mjk4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNw
cApAQCAtOTgsOSArOTgsMTAgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNvbnRh
aW5zKGNvbnN0IExvY2tIb2xkZXImLCBBdXRvbWF0aWNUaHJlYWQqIHRocmUKICAgICByZXR1cm4g
bV90aHJlYWRzLmNvbnRhaW5zKHRocmVhZCk7CiB9CiAKLUF1dG9tYXRpY1RocmVhZDo6QXV0b21h
dGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZlB0
cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbikKK0F1dG9tYXRpY1RocmVhZDo6
QXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ss
IFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgVGhyZWFkTmFtZSB0
aHJlYWROYW1lKQogICAgIDogbV9sb2NrKGxvY2spCiAgICAgLCBtX2NvbmRpdGlvbihjb25kaXRp
b24pCisgICAgLCBtX25hbWUodGhyZWFkTmFtZSkKIHsKICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBBbGxvY2F0ZWQgQXV0b21hdGljVGhyZWFk
LlxuIik7CkBAIC0xNTYsNyArMTU3LDcgQEAgdm9pZCBBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KGNv
bnN0IExvY2tIb2xkZXImKQogICAgIG1faGFzVW5kZXJseWluZ1RocmVhZCA9IHRydWU7CiAgICAg
CiAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJX
VEY6OkF1dG9tYXRpY1RocmVhZCIsCisgICAgICAgIG1fbmFtZSwKICAgICAgICAgWz1dICgpIHsK
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coUmF3UG9p
bnRlcih0aGlzKSwgIjogUnVubmluZyBhdXRvbWF0aWMgdGhyZWFkIVxuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9t
YXRpY1RocmVhZC5oCmluZGV4IDY5MjZmNjIzNjUzZDRjNTkyMTM3MGNjNGQ5Y2VjOGQwNmMzM2Vk
YTguLjcxOWZjYmRkZDcwY2JjY2Q0ZGU5ZmFiOTQ1ZDdiM2E4MDE5ZTlkNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCkBAIC0xMzAsNyArMTMwLDcgQEAgY2xhc3MgV1RGX0VYUE9SVF9QUklW
QVRFIEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdXRvbWF0
aWMKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVzIHRoZSB0aHJlYWQs
IGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1bnRpbCBzb21lb25l
CiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoKSBvciBu
b3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYsIEJveDxM
b2NrPiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4pOworICAgIEF1dG9tYXRpY1Ro
cmVhZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiwgVGhyZWFkTmFtZSk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xs
UmVzdWx0IGFuZCBXb3JrUmVzdWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJl
IGJlaW5nIGNhbGxlZCBsaWtlCiAgICAgLy8gc286CkBAIC0xODIsNiArMTgyLDcgQEAgY2xhc3Mg
V1RGX0VYUE9SVF9QUklWQVRFIEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxBdXRvbWF0aWMKICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNl
IH07CiAgICAgQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKICAgICBDb25kaXRpb24gbV9pc1J1
bm5pbmdDb25kaXRpb247CisgICAgVGhyZWFkTmFtZSBtX25hbWU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCmluZGV4IDk0OTJmZGRk
ZjE5NjQ5ZDY1YjUxMGIxZTQzYzAyYWE5NTE0YzA3MzEuLjJjM2JmMDc0MDg4ZTI5YTk5MThmMjlm
YWZmOTRjZDBjNWI2MmQxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcApA
QCAtMTIzLDkgKzEyMywxMCBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKFJl
ZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrKQogICAgIH0KIH0KIAotUGFyYWxsZWxIZWxw
ZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woKQorUGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxl
bEhlbHBlclBvb2woVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogICAgIDogbV9sb2NrKEJveDxMb2Nr
Pjo6Y3JlYXRlKCkpCiAgICAgLCBtX3dvcmtBdmFpbGFibGVDb25kaXRpb24oQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1lKQogewogfQog
CkBAIC0xNzEsNyArMTcyLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBp
bmcoKQogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGlj
VGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBQ
YXJhbGxlbEhlbHBlclBvb2wmIHBvb2wpCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tl
ciwgcG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKQorICAgICAgICA6
IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJs
ZUNvbmRpdGlvbiwgcG9vbC5uYW1lKCkpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAgewog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oIGIv
U291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKaW5kZXggODE2MzViYjc4MTkwMDNh
YzlkN2Y0YTY4MWNjNTU0NGU5MGRhN2Q5MS4uZWRjMWFlZTFhMjRhZDdiODA0NjUyMjE1NWFmNjRi
YTA0ZGJjYmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29s
LmgKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE3OSw3ICsx
NzksNyBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudCB7CiAKIGNsYXNzIFBhcmFsbGVsSGVs
cGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+
IHsKIHB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKCk7
CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOwogCiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsK
QEAgLTE4OCw2ICsxODgsOCBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgZG9Tb21lSGVscGluZygpOwogCisgICAgVGhyZWFkTmFtZSBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IFBhcmFsbGVsSGVscGVyQ2xpZW50OwogICAgIGNsYXNzIFRocmVhZDsKQEAgLTIwNyw2ICsyMDks
NyBAQCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgVmVjdG9yPFBhcmFsbGVsSGVscGVy
Q2xpZW50Kj4gbV9jbGllbnRzOwogICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4g
bV90aHJlYWRzOworICAgIFRocmVhZE5hbWUgbV9uYW1lOwogICAgIHVuc2lnbmVkIG1fbnVtVGhy
ZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNpemUoKSBi
ZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCiAgICAgYm9v
bCBtX2lzRHlpbmcgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bh
cmFsbGVsSm9ic0dlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJp
Yy5jcHAKaW5kZXggNDAyM2Y0M2U2ZjIwYTM4ZTEwM2U3YzlhMmU0ZjBmN2UwNjEwNTcxNC4uYzgx
YTY4MjVjNWUyNDEzZDU1ZjA3OTg3ZWU0ZGE4Mjc3ZjVkZWM0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFy
YWxsZWxKb2JzR2VuZXJpYy5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgYm9vbCBQYXJhbGxlbEVudmly
b25tZW50OjpUaHJlYWRQcml2YXRlOjp0cnlMb2NrRm9yKFBhcmFsbGVsRW52aXJvbm1lbnQqIHBh
cmVudCkKICAgICB9CiAKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhyZWFkSUQg
PSBjcmVhdGVUaHJlYWQoJlBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6Ondvcmtl
clRocmVhZCwgdGhpcywgIlBhcmFsbGVsIHdvcmtlciIpOworICAgICAgICBtX3RocmVhZElEID0g
Y3JlYXRlVGhyZWFkKCZQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJU
aHJlYWQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiUGFyYWxsZWwgV29ya2VyIiwgIlBhcmFs
bGVsV29ya2VyIikpOwogCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIG1fcGFyZW50ID0g
cGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkTmFtZS5oIGIvU291cmNl
L1dURi93dGYvVGhyZWFkTmFtZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2N2I0MjU2Yzc5ODg2NDQ4ZDliMWJi
NDhiMGZjMjAyN2M0YzJiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWROYW1lLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKK25hbWVzcGFjZSBXVEYgewor
CitjbGFzcyBUaHJlYWROYW1lIHsKK3B1YmxpYzoKKyAgICBlbnVtIEluaXRpYWxpemVUYWcgeyBJ
bml0aWFsaXplIH07CisgICAgdGVtcGxhdGU8dW5zaWduZWQgY2hhcmFjdGVyc0NvdW50PgorICAg
IGV4cGxpY2l0IGNvbnN0ZXhwciBUaHJlYWROYW1lKEluaXRpYWxpemVUYWcsIGNvbnN0IGNoYXIg
KCZuYW1lKVtjaGFyYWN0ZXJzQ291bnRdKQorICAgICAgICA6IG1fbmFtZShuYW1lKQorICAgIHsK
KyNpZiBPUyhMSU5VWCkKKyAgICAgICAgc3RhdGljX2Fzc2VydChjaGFyYWN0ZXJzQ291bnQgPD0g
MTYsICIiKTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgICAgIHN0YXRpY19hc3NlcnQoY2hhcmFj
dGVyc0NvdW50IDw9IDMyLCAiIik7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdGV4cHIgb3Bl
cmF0b3IgY29uc3QgY2hhciooKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbmFtZTsK
KyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9uYW1lOworfTsKKworI2lmIE9T
KExJTlVYKQorI2RlZmluZSBDUkVBVEVfVEhSRUFEX05BTUUobG9uZ05hbWUsIHNob3J0TmFtZSkg
V1RGOjpUaHJlYWROYW1lIHsgV1RGOjpUaHJlYWROYW1lOjpJbml0aWFsaXplLCBzaG9ydE5hbWUg
fQorI2VsaWYgT1MoV0lORE9XUykKKyNkZWZpbmUgQ1JFQVRFX1RIUkVBRF9OQU1FKGxvbmdOYW1l
LCBzaG9ydE5hbWUpIFdURjo6VGhyZWFkTmFtZSB7IFdURjo6VGhyZWFkTmFtZTo6SW5pdGlhbGl6
ZSwgIldlYktpdDogIiAjIHNob3J0TmFtZSB9CisjZWxzZQorI2RlZmluZSBDUkVBVEVfVEhSRUFE
X05BTUUobG9uZ05hbWUsIHNob3J0TmFtZSkgV1RGOjpUaHJlYWROYW1lIHsgV1RGOjpUaHJlYWRO
YW1lOjpJbml0aWFsaXplLCAiV2ViS2l0OiAiICMgbG9uZ05hbWUgfQorI2VuZGlmCisKK30KKwor
dXNpbmcgV1RGOjpUaHJlYWROYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5kZXggNDBjZTM5YTQ1ZDM1
NDBhMjNmZDU4NzhjZjkwNjdlYWZkNzY4MTMzYy4uMTNkZjUzMmMzOTRhMzEzMzM1NGE1NDMwYjgw
NDhjMDIyYWE4MzBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0zNiwzOCArMzYsMTEgQEAgbmFt
ZXNwYWNlIFdURiB7CiBzdHJ1Y3QgTmV3VGhyZWFkQ29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBUaHJlYWRO
YW1lIG5hbWU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQ7CiAgICAgTXV0
ZXggY3JlYXRpb25NdXRleDsKIH07CiAKLWNvbnN0IGNoYXIqIG5vcm1hbGl6ZVRocmVhZE5hbWUo
Y29uc3QgY2hhciogdGhyZWFkTmFtZSkKLXsKLSNpZiBIQVZFKFBUSFJFQURfU0VUTkFNRV9OUCkK
LSAgICByZXR1cm4gdGhyZWFkTmFtZTsKLSNlbHNlCi0gICAgLy8gVGhpcyBuYW1lIGNhbiBiZSBj
b20uYXBwbGUuV2ViS2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20uYXBwbGUuQ29yZUlQQy5SZWNl
aXZlUXVldWUuCi0gICAgLy8gV2UgYXJlIHVzaW5nIHRob3NlIG5hbWVzIGZvciB0aGUgdGhyZWFk
IG5hbWUsIGJ1dCBib3RoIGFyZSBsb25nZXIgdGhhbiB0aGUgbGltaXQgb2YKLSAgICAvLyB0aGUg
cGxhdGZvcm0gdGhyZWFkIG5hbWUgbGVuZ3RoLCAzMiBmb3IgV2luZG93cyBhbmQgMTYgZm9yIExp
bnV4LgotICAgIFN0cmluZ1ZpZXcgcmVzdWx0KHRocmVhZE5hbWUpOwotICAgIHNpemVfdCBzaXpl
ID0gcmVzdWx0LnJldmVyc2VGaW5kKCcuJyk7Ci0gICAgaWYgKHNpemUgIT0gbm90Rm91bmQpCi0g
ICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc2l6ZSArIDEpOwotCi0jaWYgT1MoV0lO
RE9XUykKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtWaXN1YWxTdHVkaW9UaHJlYWROYW1l
TGltaXQgPSAzMiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtWaXN1YWxTdHVkaW9U
aHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yaWdodChrVmlzdWFsU3R1
ZGlvVGhyZWFkTmFtZUxpbWl0KTsKLSNlbGlmIE9TKExJTlVYKQotICAgIGNvbnN0ZXhwciBjb25z
dCBzaXplX3Qga0xpbnV4VGhyZWFkTmFtZUxpbWl0ID0gMTYgLSAxOwotICAgIGlmIChyZXN1bHQu
bGVuZ3RoKCkgPiBrTGludXhUaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3Vs
dC5yaWdodChrTGludXhUaHJlYWROYW1lTGltaXQpOwotI2VuZGlmCi0gICAgQVNTRVJUKHJlc3Vs
dC5jaGFyYWN0ZXJzOCgpW3Jlc3VsdC5sZW5ndGgoKV0gPT0gJ1wwJyk7Ci0gICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC5jaGFyYWN0ZXJzOCgpKTsKLSNlbmRp
ZgotfQotCiBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQog
ewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxOZXdUaHJlYWRD
b250ZXh0Kj4oY29udGV4dERhdGEpOwpAQCAtODgsNyArNjEsNyBAQCBzdGF0aWMgdm9pZCB0aHJl
YWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogICAgIGVudHJ5UG9pbnQoKTsKIH0KIAot
VGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChU
aHJlYWROYW1lIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50KQogewogICAg
IE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBuZXcgTmV3VGhyZWFkQ29udGV4dCB7IG5hbWUs
IFdURk1vdmUoZW50cnlQb2ludCksIHsgfSB9OwogCkBAIC05OCw3ICs3MSw3IEBAIFRocmVhZElk
ZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBlbnRyeVBvaW50CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZEludGVybmFsKHRocmVhZEVu
dHJ5UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRo
cmVhZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBjaGFyKiBu
YW1lKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24gZW50cnlQ
b2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSBuYW1lKQogewogICAgIHJldHVybiBjcmVhdGVU
aHJlYWQobmFtZSwgW2VudHJ5UG9pbnQsIGRhdGFdIHsKICAgICAgICAgZW50cnlQb2ludChkYXRh
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmgKaW5kZXggMzA1MGRkOGRmODQ4YjZlNWEwOWM4ZTczYWFhY2Y1NDA3Zjhh
NGI2NS4uZGMzYWVhYjc5MjcwYWJhMzUyZjY1OThjNjgwMGY4NTcxYThjY2Y5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKQEAgLTU1LDcgKzU2LDcg
QEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpOwogCiAvLyBS
ZXR1cm5zIDAgaWYgdGhyZWFkIGNyZWF0aW9uIGZhaWxlZC4KIC8vIFRoZSB0aHJlYWQgbmFtZSBt
dXN0IGJlIGEgbGl0ZXJhbCBzaW5jZSBvbiBzb21lIHBsYXRmb3JtcyBpdCdzIHBhc3NlZCBpbiB0
byB0aGUgdGhyZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRl
VGhyZWFkKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CitX
VEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkTmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogLy8gTWFyayB0aGUgY3VycmVudCB0aHJlYWQg
YXMgcmVxdWlyaW5nIFVJIHJlc3BvbnNpdmVuZXNzLgogLy8gcmVsYXRpdmVQcmlvcml0eSBpcyBh
IHZhbHVlIGluIHRoZSByYW5nZSBbLTE1LCAwXSB3aGVyZSBhIGxvd2VyIHZhbHVlIGluZGljYXRl
cyBhIGxvd2VyIHByaW9yaXR5LgpAQCAtNjgsMTYgKzY5LDE0IEBAIFdURl9FWFBPUlRfUFJJVkFU
RSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRlbnRpZmllcik7CiBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRlbnRpZmllcik7CiAKIC8vIERl
cHJlY2F0ZWQgZnVuY3Rpb24tcG9pbnRlci1iYXNlZCB0aHJlYWQgY3JlYXRpb24uCi1XVEZfRVhQ
T1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24s
IHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1dURl9FWFBPUlRfUFJJVkFURSBUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIFRocmVhZE5h
bWUpOwogCiAvLyBJbnRlcm5hbCBwbGF0Zm9ybS1zcGVjaWZpYyBjcmVhdGVUaHJlYWQgaW1wbGVt
ZW50YXRpb24uCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1
bmN0aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7CitUaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgVGhyZWFkTmFtZSk7
CiAKIC8vIENhbGxlZCBpbiB0aGUgdGhyZWFkIGR1cmluZyBpbml0aWFsaXphdGlvbi4KIC8vIEhl
bHBmdWwgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgdGhyZWFkIG5hbWUgbXVzdCBiZSBzZXQgZnJv
bSB3aXRoaW4gdGhlIHRocmVhZC4KLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5h
bChjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKLQotY29uc3QgY2hhciogbm9ybWFsaXplVGhyZWFk
TmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJl
YWRJbnRlcm5hbChUaHJlYWROYW1lKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCAwZjlmMmZjNzJjOWQzZTg5MGM3M2FhZGE3Mzkx
NTA0YTkxYTc0MjgwLi4zNjQyNDlmMDM4YmMzMzY3NjlmMzU5ZTk3ZmVlNDU1MTI1NDViMzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgc3Rh
dGljIHZvaWQqIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFk
RnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciopCitUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIFRocmVhZE5hbWUpCiB7CiAgICAgYXV0byBpbnZvY2F0aW9uID0gc3RkOjptYWtl
X3VuaXF1ZTxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+KGVudHJ5UG9pbnQsIGRhdGEpOwogICAg
IHB0aHJlYWRfdCB0aHJlYWRIYW5kbGU7CkBAIC0xOTIsMTIgKzE5MiwxMiBAQCBUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIGNvbgogICAgIHJldHVybiBlc3RhYmxpc2hJZGVudGlmaWVyRm9yUHRocmVhZEhh
bmRsZSh0aHJlYWRIYW5kbGUpOwogfQogCi12b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50
ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJl
YWRJbnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgSEFWRShQVEhSRUFEX1NF
VE5BTUVfTlApCi0gICAgcHRocmVhZF9zZXRuYW1lX25wKG5vcm1hbGl6ZVRocmVhZE5hbWUodGhy
ZWFkTmFtZSkpOworICAgIHB0aHJlYWRfc2V0bmFtZV9ucCh0aHJlYWROYW1lKTsKICNlbGlmIE9T
KExJTlVYKQotICAgIHByY3RsKFBSX1NFVF9OQU1FLCBub3JtYWxpemVUaHJlYWROYW1lKHRocmVh
ZE5hbWUpKTsKKyAgICBwcmN0bChQUl9TRVRfTkFNRSwgdGhyZWFkTmFtZSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAK
aW5kZXggNTRiNDNlZmVmMzVjZDY2MzJhNzAwODE1MDdhNWIzNzk5ZGVmYjZmYi4uZWM2M2U4YzRk
ZDk3ZGVkNzkyYzViZWJiOTIyOGMxZDJkY2Q1YzhlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
CkBAIC0xMjEsMTUgKzEyMSwxNSBAQCB0eXBlZGVmIHN0cnVjdCB0YWdUSFJFQUROQU1FX0lORk8g
ewogfSBUSFJFQUROQU1FX0lORk87CiAjcHJhZ21hIHBhY2socG9wKQogCi12b2lkIGluaXRpYWxp
emVDdXJyZW50VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciogc3pUaHJlYWROYW1lKQordm9pZCBp
bml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsK
ICNpZiBDT01QSUxFUihNSU5HVykKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRocmVhZCBuYW1l
IHNldHRpbmcgd2l0aCBNaW5nVy4KLSAgICBVTlVTRURfUEFSQU0oc3pUaHJlYWROYW1lKTsKKyAg
ICBVTlVTRURfUEFSQU0odGhyZWFkTmFtZSk7CiAjZWxzZQogICAgIFRIUkVBRE5BTUVfSU5GTyBp
bmZvOwogICAgIGluZm8uZHdUeXBlID0gMHgxMDAwOwotICAgIGluZm8uc3pOYW1lID0gbm9ybWFs
aXplVGhyZWFkTmFtZShzelRocmVhZE5hbWUpOworICAgIGluZm8uc3pOYW1lID0gdGhyZWFkTmFt
ZTsKICAgICBpbmZvLmR3VGhyZWFkSUQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBpbmZv
LmR3RmxhZ3MgPSAwOwogCkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHVuc2lnbmVkIF9fc3Rk
Y2FsbCB3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAgIHJldHVybiAwOwogfQog
Ci1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVu
dHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCitUaHJlYWRJZGVu
dGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZv
aWQqIGRhdGEsIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICAgICB1bnNpZ25lZCB0aHJlYWRJ
ZGVudGlmaWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3Jr
UXVldWUuY3BwCmluZGV4IGIyYTBhNzlmNGFiNWFhYzI4OWIxNjlmOTJiYmMxYTgwNTg1MmNhMzIu
LjIzM2QzODA0NTVkNzZmZWE0OTM0YmEwZmY5Y2MwNWJkODU4NmRmYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVl
LmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1SZWY8V29ya1F1
ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBx
b3MpCitSZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUsIFR5
cGUgdHlwZSwgUU9TIHFvcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrUXVldWUo
bmFtZSwgdHlwZSwgcW9zKSk7CiB9CiAKLVdvcmtRdWV1ZTo6V29ya1F1ZXVlKGNvbnN0IGNoYXIq
IG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK1dvcmtRdWV1ZTo6V29ya1F1ZXVlKFRocmVhZE5h
bWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShu
YW1lLCB0eXBlLCBxb3MpOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29u
Y3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KHNpegogCiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aHJl
YWRDb3VudCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhyZWFkQ291
bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoY3JlYXRlVGhyZWFk
KFN0cmluZzo6Zm9ybWF0KCJUaHJlYWRQb29sIFdvcmtlciAldSIsIGkpLnV0ZjgoKS5kYXRhKCks
IFt0aGlzXSB7CisgICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVhdGVUaHJlYWQo
Q1JFQVRFX1RIUkVBRF9OQU1FKCJUaHJlYWRQb29sIENvbmN1cnJlbnQgQXBwbHkgV29ya2VyIiwg
IkNvbmN1cnJlbnRBcHBseSIpLCBbdGhpc10gewogICAgICAgICAgICAgICAgICAgICB0aHJlYWRC
b2R5KCk7CiAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvV29ya1F1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApp
bmRleCBkOTE4NGI0ODI3YmYxMGJhMzhhNDgxNDgwNWIyZjMzNjQ2ZDc2ZTAzLi40MjcyNGFmNjgz
ZGRhMTc2YTZkNmUwNmM0OWI0OGY2ODkzZGI0OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
RGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoQ09D
T0FfRVZFTlRfTE9PUCkKQEAgLTY3LDcgKzY4LDcgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDog
cHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAgIEJhY2tncm91bmQKICAgICB9Owog
Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29u
c3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShUaHJl
YWROYW1lLCBUeXBlID0gVHlwZTo6U2VyaWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOwogICAgIHZp
cnR1YWwgfldvcmtRdWV1ZSgpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0
Y2goRnVuY3Rpb248dm9pZCAoKT4mJikgb3ZlcnJpZGU7CkBAIC04NSw5ICs4Niw5IEBAIGNsYXNz
IFdvcmtRdWV1ZSBmaW5hbCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogI2VuZGlmCiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUs
IFFPUyk7CisgICAgZXhwbGljaXQgV29ya1F1ZXVlKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAK
LSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1Mp
OworICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAg
ICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xP
T1ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKaW5kZXggOGVkYmYyM2M1
NTg4ODgyOTZjMTRjOGM5ZDBlZTBjNGY2MzMwYjMyMy4uZTE1NzE1ZDE3MjE1NDRkNjhkYWM1YWVj
YzUxNmJlYjEzNTBkN2FlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1
ZXVlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNw
cApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB0YXJnZXRRdWV1ZUZv
clFPU0NsYXNzKFdvcmtRdWV1ZTo6UU9TIHFvcykKIH0KICNlbmRpZgogCi12b2lkIFdvcmtRdWV1
ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFv
cykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBU
eXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0dHIgPSB0
eXBlID09IFR5cGU6OkNvbmN1cnJlbnQgPyBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UIDogRElT
UEFUQ0hfUVVFVUVfU0VSSUFMOwogI2lmIEhBVkUoUU9TX0NMQVNTRVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKaW5kZXggYjRhZDJiZGM0MzhmOWQ5NDU3ZTNmN2ZiNDky
MjRjNjgxNTk3NmRhZi4uMmYxMGIwMmEwZTE5M2MyZjI5MmVjOTBjMmJjMmIyOGU0ZWQzYzg4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcApAQCAtNDAsNyArNDAsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciB3YWtlVXBUaHJlYWRNZXNzYWdlID0gJ1cnOwogCiBjbGFzcyBE
aXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBz
dGFydChjb25zdCBjaGFyKiBuYW1lLCBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNo
UXVldWUpCisgICAgc3RhdGljIHZvaWQgc3RhcnQoVGhyZWFkTmFtZSBuYW1lLCBQYXNzUmVmUHRy
PERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUpCiAgICAgewogICAgICAgICAvLyBUaGUgRGlz
cGF0Y2hRdWV1ZVRocmVhZENvbnRleHQgaW5zdGFuY2Ugd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRo
cmVhZCBmdW5jdGlvbiBhbmQgZGVsZXRlZCBpbiBpdC4KICAgICAgICAgZGV0YWNoVGhyZWFkKGNy
ZWF0ZVRocmVhZChyZWludGVycHJldF9jYXN0PFdURjo6VGhyZWFkRnVuY3Rpb24+KCZUaHJlYWRD
b250ZXh0OjpmdW5jdGlvbiksIG5ldyBUaHJlYWRDb250ZXh0KGRpc3BhdGNoUXVldWUpLCBuYW1l
KSk7CkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRleHQg
ewogICAgIFJlZlB0cjxEaXNwYXRjaFF1ZXVlPiBtX2Rpc3BhdGNoUXVldWU7CiB9OwogCi1QYXNz
UmVmUHRyPERpc3BhdGNoUXVldWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBu
YW1lKQorUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUoVGhy
ZWFkTmFtZSBuYW1lKQogewogICAgIFJlZlB0cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVl
ID0gYWRvcHRSZWY8RGlzcGF0Y2hRdWV1ZT4obmV3IERpc3BhdGNoUXVldWUoKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmggYi9Tb3VyY2UvV1RG
L3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oCmluZGV4IGZjNTU1MTliMDFjZWU4ZmUwNDljMTNj
MWU1ZmNmYzdkOTk3OTRmMjYuLjU3MDk0MjZkYmFlYmFhNzExNWY2MjgyNmJjMjRkZDRmYjJlNDFl
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmgKKysr
IGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgV29ya0l0ZW07CiAKIGNsYXNzIERpc3BhdGNo
UXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGlzcGF0Y2hRdWV1ZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShjb25zdCBj
aGFyKiBuYW1lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVhdGUo
VGhyZWFkTmFtZSk7CiAgICAgfkRpc3BhdGNoUXVldWUoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2go
c3RkOjp1bmlxdWVfcHRyPFdvcmtJdGVtPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9l
ZmwvV29ya1F1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3Bw
CmluZGV4IGRhOTEzYmYwNGNlNzI3MzEwNzY3ZWY0Nzk0ZmRkMmI4NzhhNWY0ZWQuLjgzMjVmNWQ2
YzMxNGQ0ZmJiODMzM2YyMTkwZDNmYmNmMTk0N2UxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVl
dWVFZmwuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi12b2lkIFdv
cmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykK
K3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBl
LCBRT1MpCiB7CiAgICAgbV9kaXNwYXRjaFF1ZXVlID0gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKG5h
bWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5l
cmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKaW5k
ZXggZjU5NGUyNDAxMTZkNGUwNDNkNGRjM2EzZjZjZjdjMDdkNGIyMzQ0Mi4uZGY2ZTA3MjJkMWU0
MDNjN2FiOTcwMDcwZDU3ZjYzYjYyNjEyNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Z2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmlj
L1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAotdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShj
b25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0
aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQogewogICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgbV93b3JrUXVldWVU
aHJlYWQgPSBjcmVhdGVUaHJlYWQobmFtZSwgW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0
ZXJhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM5NDZhOTI5ODRmOTQ0YjEzNWQ3MDI5ZjUzMWRkNzFiOGNhNjk5
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVr
aSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFT
Q0lJTGl0ZXJhbCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgY29uc3RleHByIEFTQ0lJTGl0ZXJh
bChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQorICAgICAgICA6IG1fY2hhcmFjdGVycyhjaGFyYWN0
ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgY29uc3QgY2hhcioo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY2hhcmFjdGVyczsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOworfTsKKworfQorCit1c2luZyBX
VEY6OkFTQ0lJTGl0ZXJhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3Ry
aW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAxYzc2ODEwYmQ2
Y2QxZWRiYmVmOGFmZWQ4NDJmODA4MGRmN2RhZDMuLjgwZTY0NDcxZmVkMDg4NzQwNTMzNjUzZjZm
NGU2OTZlYWUwNGIwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMjYsNiArMjYsNyBA
QAogLy8gb24gc3lzdGVtcyB3aXRob3V0IGNhc2Utc2Vuc2l0aXZlIGZpbGUgc3lzdGVtcy4KIAog
I2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFzdFBhdGguaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9B
U0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZmRl
ZiBfX09CSkNfXwpAQCAtMzQsOCArMzUsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3Mg
QVNDSUlMaXRlcmFsOwotCiAvLyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlvbnMKIAog
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIGludCBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoY29uc3QgTENo
YXIqLCBzaXplX3QsIGJvb2wqIG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CkBAIC02ODEs
MTUgKzY4MCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFN0cmluZz4gewogCiB0
ZW1wbGF0ZSA8PiBzdHJ1Y3QgVmVjdG9yVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3Rv
clRyYWl0cyB7IH07CiAKLWNsYXNzIEFTQ0lJTGl0ZXJhbCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGlj
aXQgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpIDogbV9jaGFyYWN0ZXJzKGNo
YXJhY3RlcnMpIHsgfQotICAgIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgeyByZXR1cm4gbV9jaGFy
YWN0ZXJzOyB9Ci0KLXByaXZhdGU6Ci0gICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOwotfTsK
LQogLy8gU2hhcmVkIGdsb2JhbCBlbXB0eSBzdHJpbmcuCiBXVEZfRVhQT1JUX1NUUklOR19BUEkg
Y29uc3QgU3RyaW5nJiBlbXB0eVN0cmluZygpOwogCkBAIC03MzgsNyArNzI4LDYgQEAgdXNpbmcg
V1RGOjpmaW5kOwogdXNpbmcgV1RGOjppc0FsbFNwZWNpYWxDaGFyYWN0ZXJzOwogdXNpbmcgV1RG
Ojppc1NwYWNlT3JOZXdsaW5lOwogdXNpbmcgV1RGOjpyZXZlcnNlRmluZDsKLXVzaW5nIFdURjo6
QVNDSUlMaXRlcmFsOwogCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAppbmRleCBmMzI0ZThiNjFkZDQxZmEwNTYwODYz
YjZjNTgxOTEwZjg2N2QzNmViLi5jMzUxYjNlNTU0MWE2NDVlMzVkYzYwYjllYjRmMWEyNmRhYTcx
NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCkBAIC02NCw3ICs2NCw3IEBA
IHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpCiAgICAgICAgIENXX1VTRURFRkFV
TFQsIDAsIENXX1VTRURFRkFVTFQsIDAsIEhXTkRfTUVTU0FHRSwgMCwgMCwgMCk7CiAgICAgdGhy
ZWFkaW5nRmlyZWRNZXNzYWdlID0gUmVnaXN0ZXJXaW5kb3dNZXNzYWdlVyhMImNvbS5hcHBsZS5X
ZWJLaXQuTWFpblRocmVhZEZpcmVkIik7CiAKLSAgICBpbml0aWFsaXplQ3VycmVudFRocmVhZElu
dGVybmFsKCJNYWluIFRocmVhZCIpOworICAgIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJu
YWwoQ1JFQVRFX1RIUkVBRF9OQU1FKCJNYWluIFRocmVhZCIsICJNYWluVGhyZWFkIikpOwogfQog
CiB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93
aW4vV29ya1F1ZXVlV2luLmNwcAppbmRleCBmNGM0YjhjNzdkY2U5OTVmNTdmMjU2NzAyYzFmOWNl
ZjhjNjVhNWFhLi43MTI0YWNmYzk3ZGNhZTlhMjIxNDg0MjY4MjliODRkMzZkODJjMjhiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcApAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFdvcmtR
dWV1ZTo6cGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKCkKICAgICBtX2Z1bmN0aW9u
UXVldWVMb2NrLnVubG9jaygpOwogfQogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFs
aXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlLCBRT1MpCiB7CiAgICAgbV9pc1dvcmtU
aHJlYWRSZWdpc3RlcmVkID0gMDsKICAgICBtX3RpbWVyUXVldWUgPSA6OkNyZWF0ZVRpbWVyUXVl
dWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHAKaW5kZXggODc0NzY0MzhjYWU2NWE2Mzg3ZDkwMWE3NTI4ODE1ZWM5NTQ3
ZjIzMi4uMzFmMzU2OGY4MzE4N2ZhY2I4OTk2MzYwYWE4NjI1NTJhMjg2YmIwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgSURCU2VydmVyOjpJREJTZXJ2ZXIoSURCQmFja2luZ1N0b3Jl
VGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQogICAgIDogbV9iYWNraW5nU3RvcmVU
ZW1wb3JhcnlGaWxlSGFuZGxlcihmaWxlSGFuZGxlcikKIHsKICAgICBMb2NrZXI8TG9jaz4gbG9j
a2VyKG1fZGF0YWJhc2VUaHJlYWRDcmVhdGlvbkxvY2spOwotICAgIG1fdGhyZWFkSUQgPSBjcmVh
dGVUaHJlYWQoSURCU2VydmVyOjpkYXRhYmFzZVRocmVhZEVudHJ5LCB0aGlzLCAiSW5kZXhlZERh
dGFiYXNlIFNlcnZlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoSURCU2VydmVy
OjpkYXRhYmFzZVRocmVhZEVudHJ5LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkluZGV4ZWRE
YXRhYmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVyIikpOwogfQogCiBJREJTZXJ2ZXI6OklEQlNlcnZl
cihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQpAQCAtNjYsNyArNjYsNyBAQCBJREJTZXJ2
ZXI6OklEQlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFj
a2luZ1N0b3JlVGVtcG9yYQogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIgY3JlYXRlZCBh
dCBwYXRoICVzIiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAg
TG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwg
dGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVB
RF9OQU1FKCJJbmRleGVkRGF0YWJhc2UgU2VydmVyIiwgIklEQlNlcnZlciIpKTsKIH0KIAogdm9p
ZCBJREJTZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNv
bm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Fz
eW5jQXVkaW9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5
bmNBdWRpb0RlY29kZXIuY3BwCmluZGV4IDI5MmYwNWI4Y2Q1MDZlMjI5YWU2YjhiZDg2MjljMDk1
NGQxODQ1OWIuLjBjYWE0NjdhMzc1MzNmYzRlYzEwMjJkM2Y2ZDZmMDExNTdmNTIxYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29k
ZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVj
b2RlcigpCiB7CiAgICAgLy8gU3RhcnQgd29ya2VyIHRocmVhZC4KICAgICBMb2NrSG9sZGVyIGxv
Y2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhpcywgIkF1ZGlvIERlY29kZXIiKTsK
KyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRF
bnRyeSwgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJBdWRpbyBEZWNvZGVyIiwgIkF1ZGlvRGVj
b2RlciIpKTsKIH0KIAogQXN5bmNBdWRpb0RlY29kZXI6On5Bc3luY0F1ZGlvRGVjb2RlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNTA1MjMwNDE5N2NkZWRkZTQ3ZmRjYmI5
MTJlYzQ3NDA1NTc5NzQyOC4uZjVmMzM1NzAyMzNlNmFmZmYyOTY1YzdjYTFlZDY5NGUxNThjNDNm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lk
IE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIGlmICgh
bV9zdGFydGVkUmVuZGVyaW5nKSB7CiAgICAgICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9IHRydWU7
CiAgICAgICAgIHJlZigpOyAvLyBTZWUgY29ycmVzcG9uZGluZyBkZXJlZigpIGNhbGwgaW4gbm90
aWZ5Q29tcGxldGVEaXNwYXRjaCgpLgotICAgICAgICBtX3JlbmRlclRocmVhZCA9IGNyZWF0ZVRo
cmVhZChPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXJFbnRyeSwgdGhp
cywgIm9mZmxpbmUgcmVuZGVyZXIiKTsKKyAgICAgICAgbV9yZW5kZXJUaHJlYWQgPSBjcmVhdGVU
aHJlYWQoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyRW50cnksIHRo
aXMsIENSRUFURV9USFJFQURfTkFNRSgiT2ZmbGluZSBSZW5kZXJlciIsICJPZmZsaW5lUmVuZGVy
ZXIiKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IDBkZGU1ZjcyNjhlZTY0MmMwMDQzMDVj
ZWZlMzZiMWM5ZTQ0Yjg3ZDMuLmQwMjRmMzQ0ZDM3OTU0OTA5OWM2ZTY3ZGRhMjNjYzUzY2ExMmFl
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUaHJlYWQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgRGF0YWJhc2VUaHJlYWQ6OnN0
YXJ0KCkKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0
YXJ0LCB0aGlzLCAiV2ViQ29yZTogRGF0YWJhc2UiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0YXJ0LCB0aGlzLCBDUkVBVEVf
VEhSRUFEX05BTUUoIldlYkRhdGFiYXNlIiwgIldlYkRCIikpOwogCiAgICAgcmV0dXJuIG1fdGhy
ZWFkSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApp
bmRleCA2ZjlmY2E2N2YzYzQ3YWRkYzgzZGVjOGNiMGQ1ZWI4Y2NiNDBkNzQzLi4xNGYyMGVlODEw
MDRlZGI4YTc3MjA3ZGE3OTZkNTk3OGUyMmEwNzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0dDQ29udHJvbGxlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEdDQ29udHJv
bGxlcjo6Z2FyYmFnZUNvbGxlY3ROb3dJZk5vdERvbmVSZWNlbnRseSgpCiAKIHZvaWQgR0NDb250
cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5nKGJvb2wg
d2FpdFVudGlsRG9uZSkKIHsKLSAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gY3JlYXRl
VGhyZWFkKGNvbGxlY3QsIDAsICJXZWJDb3JlOiBHQ0NvbnRyb2xsZXIiKTsKKyAgICBUaHJlYWRJ
ZGVudGlmaWVyIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKGNvbGxlY3QsIDAsIENSRUFURV9USFJF
QURfTkFNRSgiR0MgQ29udHJvbGxlciIsICJHQ0NvbnRyb2xsZXIiKSk7CiAKICAgICBpZiAod2Fp
dFVudGlsRG9uZSkgewogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IGY2OTFmNmIwOWYyNmE1
ZDY5NTRjZTE2MzdiMzI3MjY2MGIxNjljMDAuLjg5ODI0ZjM5MGZmODBkZGQ5NmQyZTc0ZmE3ZGQ0
MDFmZThjMGZlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlw
dG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCkBAIC0z
Miw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3VidGxlQ3J5cHRvOjpTdWJ0bGVD
cnlwdG8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyKCZjb250ZXh0KQotICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ3J5cHRvUXVldWUiKSkKKyAgICAsIG1fd29ya1F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ3J5cHRvIFF1ZXVlIiwgIkNy
eXB0b1F1ZXVlIikpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0FzeW5jRmlsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0
cmVhbS5jcHAKaW5kZXggNWI4MTM2MTEyYWRkZWExNDVjOTU1OTBhOGEzYzE3NjFmMWIxYjk4My4u
N2I2MzY3ZTk4NDFmNWU4ZGExOWUyMDRkYzg0YmI3MWMzODg1ZjdjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMg
dm9pZCBjYWxsT25GaWxlVGhyZWFkKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgY3JlYXRlRmlsZVRocmVhZE9uY2U7CiAgICAgc3RkOjpj
YWxsX29uY2UoY3JlYXRlRmlsZVRocmVhZE9uY2UsIFtdIHsKLSAgICAgICAgY3JlYXRlVGhyZWFk
KCJXZWJDb3JlOiBBc3luY0ZpbGVTdHJlYW0iLCBbXSB7CisgICAgICAgIGNyZWF0ZVRocmVhZChD
UkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jaHJvbm91cyBGaWxlIFN0cmVhbSIsICJBc3luY0ZpbGVT
dHJlYW0iKSwgW10gewogICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgIEF1
dG9kcmFpbmVkUG9vbCBwb29sOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcAppbmRleCBlZTQzN2U4NjI4ZWJmNGU4NjMyN2NjNzcwMzBmNWY2OTRlMzBiYjJk
Li4zYmYzODk2ZWJiMGJjZTQ0NTAzM2NhZDdiY2M1MTE3OWNlYjRjMzJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBi
b29sIEljb25EYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSkKICAgICAvLyBMb2NrIGhlcmUgYXMgd2VsbCBhcyBmaXJzdCB0aGluZyBp
biB0aGUgdGhyZWFkIHNvIHRoZSB0aHJlYWQgZG9lc24ndCBhY3R1YWxseSBjb21tZW5jZSB1bnRp
bCB0aGUgY3JlYXRlVGhyZWFkKCkgY2FsbCAKICAgICAvLyBjb21wbGV0ZXMgYW5kIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgaXMgcHJvcGVybHkgc2V0CiAgICAgbV9zeW5jTG9jay5sb2NrKCk7Ci0gICAg
bV9zeW5jVGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3lu
Y1RocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogSWNvbkRhdGFiYXNlIik7CisgICAgbV9zeW5j
VGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVh
ZFN0YXJ0LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkljb24gRGF0YWJhc2UiLCAiSWNvbkRC
IikpOwogICAgIG1fc3luY1RocmVhZFJ1bm5pbmcgPSBtX3N5bmNUaHJlYWQ7CiAgICAgbV9zeW5j
TG9jay51bmxvY2soKTsKICAgICBpZiAoIW1fc3luY1RocmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCmluZGV4IDkxMjAwYzM0NWY0NTVmOTZkNDk0YmZk
MmFkNzAzZjI4YzVjNjI5ZDEuLjE4ZDRiMjRmMWE5ZDM0NDdlNDQ3N2RmZmExNjBiODQzNTk1ZWU1
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRlVGhyZWFkSWZO
ZWVkZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ZtID0gJmNvbW1vblZNKCk7Ci0gICAg
bV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCAi
V2ViQ29yZTogUmVzb3VyY2VVc2FnZSIpOworICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0
ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJSZXNvdXJj
ZSBVc2FnZSIsICJSZXNvdXJjZVVzYWdlIikpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VUaHJl
YWQ6OnRocmVhZENhbGxiYWNrKHZvaWQqIHJlc291cmNlVXNhZ2VUaHJlYWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAppbmRleCA3MzBj
MGE2YmQ5M2Y0NTc4ZDFlZGJmOWFjZTFjZDg2NTY2ZTZjOTg4Li5mOGYwNzQwMWU1N2FiY2ZjNWNk
YmFlMTViMGM4ZTQ2OTMyYzVkNzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTY3JvbGxp
bmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICB7CiAgICAgICAgIHN0ZDo6dW5p
cXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXgpOwogCi0gICAgICAg
IG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywg
IldlYkNvcmU6IFNjcm9sbGluZyIpOworICAgICAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiU2Nyb2xs
aW5nIiwgIlNjcm9sbGluZyIpKTsKICAgICAgICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ICAgIG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlz
XXsgcmV0dXJuIG1fdGhyZWFkUnVuTG9vcDsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAppbmRleCBmNzEzMzNjNWEzN2E5
OTg5NjRmM2E3NDFjNzMxNTJlOTUxNDY2Y2Y2Li4zYWM4NDFmYjFhMWIzMzcwOTRjMzVkN2VmYzZk
NTAwM2U0MWJlN2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9I
UlRGRGF0YWJhc2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIEhSVEZEYXRh
YmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KCkKICAgICAKICAgICBpZiAoIW1faHJ0ZkRh
dGFiYXNlLmdldCgpICYmICFtX2RhdGFiYXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0
YXJ0IHRoZSBhc3luY2hyb25vdXMgZGF0YWJhc2UgbG9hZGluZyBwcm9jZXNzLgotICAgICAgICBt
X2RhdGFiYXNlTG9hZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKGRhdGFiYXNlTG9hZGVyRW50cnks
IHRoaXMsICJIUlRGIGRhdGFiYXNlIGxvYWRlciIpOworICAgICAgICBtX2RhdGFiYXNlTG9hZGVy
VGhyZWFkID0gY3JlYXRlVGhyZWFkKGRhdGFiYXNlTG9hZGVyRW50cnksIHRoaXMsIENSRUFURV9U
SFJFQURfTkFNRSgiSFJURiBEYXRhYmFzZSBMb2FkZXIiLCAiSFJURkRCTG9hZGVyIikpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJi
Q29udm9sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZv
bHZlci5jcHAKaW5kZXggOTZmMzMwODI4MDc5YTc5YWQ2NDgyMGQwNzIxYzU5YzVlYTE2ZmRiMS4u
MGQ4YjliODVlZjY3MmY4ZTQ2NDA2YWRhNTZjMDUwMjJjMDhlNmUxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0xMzAsNyAr
MTMwLDcgQEAgUmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIoQXVkaW9DaGFubmVsKiBp
bXB1bHNlUmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGkKICAgICAvLyBTdGFydCB1cCBiYWNrZ3Jv
dW5kIHRocmVhZAogICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBiZXR0ZXIgdG8gdXAgdGhlIHRocmVh
ZCBwcmlvcml0eSBoZXJlLiAgSXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwtdGltZSwgYnV0IGhp
Z2hlciB0aGFuIHRoZSBkZWZhdWx0Li4uCiAgICAgaWYgKHRoaXMtPnVzZUJhY2tncm91bmRUaHJl
YWRzKCkgJiYgbV9iYWNrZ3JvdW5kU3RhZ2VzLnNpemUoKSA+IDApCi0gICAgICAgIG1fYmFja2dy
b3VuZFRocmVhZCA9IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpiYWNrZ3JvdW5kVGhyZWFkRW50cnks
IHRoaXMsICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIpOworICAgICAgICBtX2JhY2tn
cm91bmRUaHJlYWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5
LCB0aGlzLCBDUkVBVEVfVEhSRUFEX05BTUUoIkNvbnZvbHV0aW9uIiwgIkNvbnZvbHV0aW9uIikp
OwogfQogCiBSZXZlcmJDb252b2x2ZXI6On5SZXZlcmJDb252b2x2ZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCA5MTI5NDk4MTYwZjFiZTNlNmNmZTdmMDQ3
NjRiNGQ3OWQ0OGY4ZjNmLi44ZDZhNzFkM2JiODkzOTQwMzQ0OWJlM2U3MzNmZGJiMjFiNjlmNmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVk
aW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMzcwLDcgKzM3
MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZs
b2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVh
dGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywg
ZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwot
ICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0
dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRvIHRo
cmVhZElEID0gY3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiQXVkaW8gRmlsZSBSZWFk
ZXIiLCAiQXVkaW9GaWxlUmVhZGVyIiksIFsmcmV0dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01v
bm8sIHNhbXBsZVJhdGVdIHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIo
ZmlsZVBhdGgpLmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAg
IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKQEAgLTM4MCw3ICszODAsNyBAQCBQ
YXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZp
bGVQYXRoLCBib29sIG1peFRvTW9ubwogUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJv
bUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9v
bCBtaXhUb01vbm8sIGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmUHRyPEF1ZGlvQnVzPiBy
ZXR1cm5WYWx1ZTsKLSAgICBhdXRvIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKCJBdWRpb0ZpbGVS
ZWFkZXIiLCBbJnJldHVyblZhbHVlLCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVS
YXRlXSB7CisgICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFEX05B
TUUoIkF1ZGlvIEZpbGUgUmVhZGVyIiwgIkF1ZGlvRmlsZVJlYWRlciIpLCBbJnJldHVyblZhbHVl
LCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CiAgICAgICAgIHJldHVy
blZhbHVlID0gQXVkaW9GaWxlUmVhZGVyKGRhdGEsIGRhdGFTaXplKS5jcmVhdGVCdXMoc2FtcGxl
UmF0ZSwgbWl4VG9Nb25vKTsKICAgICB9KTsKICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0
aHJlYWRJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUZyYW1lQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VGcmFtZUNhY2hlLmNwcAppbmRleCA4MWZiMWY5ODY4ZjMxMGU1MzU5ZDE2MWRjMmRhY2E1Y2M3
ZDNhZWQ3Li40ZGIxZGEzNDAwNGU1MzkyZTkyZTM0MTFhNjBiODQwN2NmNGE1OThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5j
cHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFtZU5h
dGl2ZUltYWdlQXRJbmRleChOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlLAogUmVmPFdvcmtR
dWV1ZT4gSW1hZ2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1ZXVlKCkKIHsKICAgICBpZiAoIW1fZGVj
b2RpbmdRdWV1ZSkKLSAgICAgICAgbV9kZWNvZGluZ1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUo
Im9yZy53ZWJraXQuSW1hZ2VEZWNvZGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtR
dWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpOworICAgICAgICBtX2RlY29kaW5nUXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkltYWdlIERlY29kZXIiLCAiSW1h
Z2VEZWNvZGVyIiksIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNl
ckludGVyYWN0aXZlKTsKICAgICAKICAgICByZXR1cm4gKm1fZGVjb2RpbmdRdWV1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGRhNGE4ODU3
M2JhMWI1NWI0ZmVhNTIzODllNGMyNTJmZGU5ODQzNC4uYTgzMzhkMTk0ZTgzYmQ5NjVhZGQyN2U3
ZThjYThkMjljYmVkM2E2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xp
ZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywKICAg
ICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0
aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVh
ZCgiUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCBbdGhpcywgcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCldIHsKKyAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZChDUkVBVEVfVEhSRUFE
X05BTUUoIlJlc291cmNlIEhhbmRsZSBTdHJlYW1pbmcgQ2xpZW50IiwgIlJTdHJlYW1pbmciKSwg
W3RoaXMsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7
CiAgICAgICAgICAgICBtX3J1bkxvb3AgPSAmUnVuTG9vcDo6Y3VycmVudCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGlu
dXguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyTGludXguY3BwCmluZGV4IDRjZDFiZGRmM2FiNzY2YTAwMDQ4ZjhhYzU3NmZhMjg0N2VjNjI3
MGQuLjUwMjdhNTJmNzNlZTJkMmFjOGRlNDdmOTA3NTdmNTU0Y2Y1OTEwZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhh
bmRsZXJMaW51eC5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OkV2ZW50RkRQb2xsZXI6OkV2ZW50RkRQb2xsZXIoaW50IGZkLCBzdGQ6OmZ1bmN0aW9uPHZvaWQg
KAogICAgIH0sIHRoaXMsIG51bGxwdHIpOwogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5n
ZXQoKSwgbnVsbHB0cik7CiAjZWxzZQotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIldl
YkNvcmU6IE1lbW9yeVByZXNzdXJlSGFuZGxlciIsIFt0aGlzXSB7IHJlYWRBbmROb3RpZnkoKTsg
fQorICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJNZW1v
cnkgUHJlc3N1cmUgSGFuZGxlciIsICJNZW1QcmVzc0hhbmRsZXIiKSwgW3RoaXNdIHsgcmVhZEFu
ZE5vdGlmeSgpOyB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXggZTE0MzQ1MWZkYWEzMzhjMzcx
MDEwYjdmZWRmZGUwNTJhNWUzOTlmNy4uZWMzY2Y3YjJlMzEwZGFiYThhYjUxOTE4ZmIxM2M3N2U0
N2U5YzMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Js
b2JSZWdpc3RyeUltcGwuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgdW5zaWduZWQgbG9uZyBsb25n
IEJsb2JSZWdpc3RyeUltcGw6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKQogCiBzdGF0aWMgV29y
a1F1ZXVlJiBibG9iVXRpbGl0eVF1ZXVlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkJsb2JV
dGlsaXR5IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3Jv
dW5kKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxXb3JrUXVldWU+PiBxdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkJsb2IgVXRpbGl0eSIsICJCbG9i
VXRpbGl0eSIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tn
cm91bmQpKTsKICAgICByZXR1cm4gcXVldWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXggYWJmYjQ2Y2Vj
ZjgyMTQzYjlmZmFjZDAxYmU1Nzg2YTUzYTAwOGVjMC4uZmI4YzAyMjI2YmZkYmQ4M2M3ZjllY2Vi
YjFmNTVhMzViNTYxNjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIERhdGFV
UkxEZWNvZGVyIHsKIAogc3RhdGljIFdvcmtRdWV1ZSYgZGVjb2RlUXVldWUoKQogewotICAgIHN0
YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkRhdGFVUkxE
ZWNvZGVyIikubGVha1JlZigpOworICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRGF0YSBVUkwgRGVjb2RlciIsICJEYXRhVVJMRGVj
b2RlciIpKS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuIHF1ZXVlOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKaW5k
ZXggNDZiODk5NGE4NDFlZjcxZWEyNzljZTc3Y2JjOGZiNDNjMjlmMGE2Mi4uY2UxMTJhOGQxNjY5
MjM3YjU4NzBkYjcwZTYyNTdkMDM3MDBiMjA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcApAQCAtNzcsNyArNzcs
NyBAQCBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVuTG9vcCgpCiAgICAgc3RkOjp1bmlxdWVfbG9jazxT
dGF0aWNMb2NrPiBsb2NrKGxvYWRlclJ1bkxvb3BNdXRleCk7CiAKICAgICBpZiAoIWxvYWRlclJ1
bkxvb3BPYmplY3QpIHsKLSAgICAgICAgY3JlYXRlVGhyZWFkKHJ1bkxvYWRlclRocmVhZCwgMCwg
IldlYkNvcmU6IENGTmV0d29yayBMb2FkZXIiKTsKKyAgICAgICAgY3JlYXRlVGhyZWFkKHJ1bkxv
YWRlclRocmVhZCwgMCwgQ1JFQVRFX1RIUkVBRF9OQU1FKCJDRk5ldHdvcmsgTG9hZGVyIiwgIkNG
TmV0d29ya0xvYWRlciIpKTsKIAogICAgICAgICBsb2FkZXJSdW5Mb29wQ29uZGl0aW9uVmFyaWFi
bGUud2FpdChsb2NrLCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9KTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERv
d25sb2FkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCmluZGV4IDQ0MDhjZDE5ODcwNWJhODZjYzhjMTk4NmZiM2UyY2FkZTc5NmRjYzYu
LjliZmJhZDgxYTk5YWQ3M2U0MmU1YmE5MzhjY2E0MjU2N2FlMTNmMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCkBA
IC05Nyw3ICs5Nyw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5l
ZWRlZCgpCiAgICAgICAgIGlmIChtX3RocmVhZElkKQogICAgICAgICAgICAgd2FpdEZvclRocmVh
ZENvbXBsZXRpb24obV90aHJlYWRJZCk7CiAgICAgICAgIHNldFJ1blRocmVhZCh0cnVlKTsKLSAg
ICAgICAgbV90aHJlYWRJZCA9IGNyZWF0ZVRocmVhZChkb3dubG9hZFRocmVhZCwgdGhpcywgImRv
d25sb2FkVGhyZWFkIik7CisgICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxv
YWRUaHJlYWQsIHRoaXMsIENSRUFURV9USFJFQURfTkFNRSgiRG93bmxvYWRlciIsICJEb3dubG9h
ZGVyIikpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAK
aW5kZXggZTk0Zjg0YTY4MjMzOTUyZDRjMmM2NTJjNmIyYWZmMjVkMjY2ZGM2Yi4uMzZmODA5YmQw
ZjlhYzhhMmE4ZTMyZGNhZjFhOTg1OTJlMDFlMzgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbEN1cmwuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5k
bGVJbXBsOjpzdGFydFRocmVhZCgpCiAKICAgICByZWYoKTsgLy8gc3RvcFRocmVhZCgpIHdpbGwg
Y2FsbCBkZXJlZigpLgogCi0gICAgbV93b3JrZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoIldlYlNv
Y2tldCB0aHJlYWQiLCBbdGhpc10geworICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFk
KENSRUFURV9USFJFQURfTkFNRSgiV2ViU29ja2V0IiwgIldlYlNvY2tldCIpLCBbdGhpc10gewog
CiAgICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAKaW5kZXggNTFmNDJmNWZmZmYyZmE2ZGE2ODQ1N2U0ZDIyNmViNmYz
NzZjNDBkYS4uMDcwOGM1MzkwZTJiNTAxNDkxYTQ4NGVlMjg5MDdkNjY3MDdmYTRmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIGJv
b2wgV29ya2VyVGhyZWFkOjpzdGFydCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6
OndvcmtlclRocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogV29ya2VyIik7CisgICAgbV90aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0aGlz
LCBDUkVBVEVfVEhSRUFEX05BTUUoIldlYldvcmtlciIsICJXZWJXb3JrZXIiKSk7CiAKICAgICBy
ZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9T
dG9yYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNw
cAppbmRleCBiYjY2ZmNlYTdlNTI4YmMyN2Y2MzNhM2U1Mjg3OGI1MDFlZjBlMTg3Li45MDE1MjQx
ZmIxZWZjOTRlMTg0YTNmZDk0YTY0OGYwNDEzNTQ1MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
L1N0b3JhZ2VUaHJlYWQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgU3RvcmFnZVRocmVhZDo6
c3RhcnQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX3RocmVh
ZElEKQotICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRo
cmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOwor
ICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVu
dHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgQ1JFQVRFX1RIUkVBRF9OQU1FKCJMb2NhbFN0b3JhZ2Ui
LCAiTG9jYWxTdG9yYWdlIikpOwogICAgIGFjdGl2ZVN0b3JhZ2VUaHJlYWRzKCkuYWRkKHRoaXMp
OwogICAgIHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAppbmRleCBkNWVhZGIwYjNiNDFhYTQzOTYw
ZjAxODVhYzJhM2JiNWYyYWVmYTY0Li5kNDY5MGExNGJjYTUwYTAzOTNmMWRkMDVhOTQ1ZTc2Nzg1
YWNlNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJh
c2VQcm9jZXNzLmNwcApAQCAtNTMsNyArNTMsNyBAQCBEYXRhYmFzZVByb2Nlc3MmIERhdGFiYXNl
UHJvY2Vzczo6c2luZ2xldG9uKCkKIH0KIAogRGF0YWJhc2VQcm9jZXNzOjpEYXRhYmFzZVByb2Nl
c3MoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5E
YXRhYmFzZVByb2Nlc3MiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRF
X1RIUkVBRF9OQU1FKCJEYXRhYmFzZSBQcm9jZXNzIiwgIkRCUHJvY2VzcyIpKSkKIHsKICAgICAv
LyBNYWtlIHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhlIHRleHQgZW5jb2Rp
bmcgbWFwcyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBhIGJhY2tn
cm91bmQgdGhyZWFkIG5lZWRzIGl0LgogICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhwbGljaXQgd2F5IG9m
IGRvaW5nIHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmlu
ZGV4IGE4MDI5MWZjMWQxZDU5YzdjMWRiNjAyMWI5NGNjZTgyNGM1MWM1OTcuLmU3MjliMDBjZjQ5
MmQzMTkwNWFiNDhiZjQ2OTFkYzk2ODBhM2Y4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtNTgzLDcgKzU4Myw3
IEBAIHZvaWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAKIHZvaWQgQ2FjaGU6OmRlbGV0
ZUR1bXBGaWxlKCkKIHsKLSAgICBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5D
YWNoZS5kZWxldGUiKS0+ZGlzcGF0Y2goW3BhdGggPSBkdW1wRmlsZVBhdGgoKS5pc29sYXRlZENv
cHkoKV0geworICAgIFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUg
RGVsZXRlciIsICJDYWNoZURlbGV0ZXIiKSktPmRpc3BhdGNoKFtwYXRoID0gZHVtcEZpbGVQYXRo
KCkuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgV2ViQ29yZTo6ZGVsZXRlRmlsZShwYXRoKTsK
ICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKaW5kZXggZWY3YmE4
OTk4MjAyMzI1ODllNzM5MWYyN2ZjZDNkNmUxNjlmNjg5NC4uNTdiMWQ1MWJjZDRjMjllYjE5NGMx
ZTc4MGJlNmU4YzQzNDc2MDQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAK
QEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIElPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZChzaXpl
X3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgV29ya1F1ZXVlKiBxdWV1ZSwgcwogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogCiAgICAgUmVmUHRyPElPQ2hhbm5lbD4gY2hhbm5lbCh0aGlzKTsK
LSAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKCJJT0NoYW5uZWw6OnJlYWRTeW5jIiwgW2No
YW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlcl0geworICAgIGRldGFjaFRocmVh
ZChjcmVhdGVUaHJlYWQoQ1JFQVRFX1RIUkVBRF9OQU1FKCJJT0NoYW5uZWwgcmVhZFN5bmMiLCAi
SU9DUmVhZFN5bmMiKSwgW2NoYW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0aW9uSGFuZGxlcl0g
ewogICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IHN0ZDo6bWluKHNpemUsIGdEZWZhdWx0UmVh
ZEJ1ZmZlclNpemUpOwogICAgICAgICB1aW50OF90KiBidWZmZXJEYXRhID0gc3RhdGljX2Nhc3Q8
dWludDhfdCo+KGZhc3RNYWxsb2MoYnVmZmVyU2l6ZSkpOwogICAgICAgICBHUmVmUHRyPFNvdXBC
dWZmZXI+IHJlYWRCdWZmZXIgPSBhZG9wdEdSZWYoc291cF9idWZmZXJfbmV3X3dpdGhfb3duZXIo
YnVmZmVyRGF0YSwgYnVmZmVyU2l6ZSwgYnVmZmVyRGF0YSwgZmFzdEZyZWUpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0Nh
Y2hlU3RhdGlzdGljcy5jcHAKaW5kZXggMTBhNTIwM2VmZDgxODBlMGFjYTM0YmU1NGRmNTI1ODJm
NTljOTVmNy4uNWY3MWI3M2NjODBhNWM2ZTczMTNmYzg4OTZhYTgzOTg3MGI1NWRkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3Rh
dGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFN0YXRpc3RpY3M+IFN0YXRpc3RpY3M6Om9wZW4oY29uc3QgU3RyaW5nJiBjYWNoZVBhdGgpCiB9
CiAKIFN0YXRpc3RpY3M6OlN0YXRpc3RpY3MoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCi0g
ICAgOiBtX3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuV2ViS2l0LkNhY2hlLlN0YXRpc3RpY3MuQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6VHlwZTo6
U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgOiBtX3NlcmlhbEJhY2tn
cm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUg
U3RhdGlzdGljcyBCYWNrZ3JvdW5kIiwgIkNhY2hlU3RhdHNCRyIpLCBXb3JrUXVldWU6OlR5cGU6
OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwgbV93cml0ZVRpbWVy
KCp0aGlzLCAmU3RhdGlzdGljczo6d3JpdGVUaW1lckZpcmVkKQogewogICAgIGluaXRpYWxpemUo
ZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggOGY3YjZlM2YyZGZmZDA5
M2IwMmZjNzYxYWFlNjJkZTUyYTI1ZThkZS4uMzgwZDEwZjExYWE2ZjhiOWFkNDk0MjVlMTc4ZGE1
MmQzYWMyNTIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKQEAgLTIxMyw5ICsyMTMsOSBAQCBT
dG9yYWdlOjpTdG9yYWdlKGNvbnN0IFN0cmluZyYgYmFzZURpcmVjdG9yeVBhdGgsIFNhbHQgc2Fs
dCkKICAgICAsIG1fc2FsdChzYWx0KQogICAgICwgbV9yZWFkT3BlcmF0aW9uVGltZW91dFRpbWVy
KCp0aGlzLCAmU3RvcmFnZTo6Y2FuY2VsQWxsUmVhZE9wZXJhdGlvbnMpCiAgICAgLCBtX3dyaXRl
T3BlcmF0aW9uRGlzcGF0Y2hUaW1lcigqdGhpcywgJlN0b3JhZ2U6OmRpc3BhdGNoUGVuZGluZ1dy
aXRlT3BlcmF0aW9ucykKLSAgICAsIG1faW9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkK
LSAgICAsIG1fYmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCi0gICAgLCBtX3NlcmlhbEJhY2tncm91
bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3Jh
Z2Uuc2VyaWFsQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX2lvUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JF
QVRFX1RIUkVBRF9OQU1FKCJDYWNoZSBTdG9yYWdlIEZvcmVncm91bmQiLCAiQ2FjaGVTdG9yYWdl
RkciKSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKKyAgICAsIG1fYmFja2dyb3VuZElP
UXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJDYWNoZSBTdG9yYWdl
IEJhY2tncm91bmQiLCAiQ2FjaGVTdG9yYWdlQkciKSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX3NlcmlhbEJhY2tncm91
bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiQ2FjaGUgU3Rv
cmFnZSBTZXJpYWwgQmFja2dyb3VuZCIsICJDYWNoZVN0b3JhZ2VTQkciKSwgV29ya1F1ZXVlOjpU
eXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAsIG1fYmxvYlN0
b3JhZ2UobWFrZUJsb2JEaXJlY3RvcnlQYXRoKGJhc2VEaXJlY3RvcnlQYXRoKSwgbV9zYWx0KQog
ewogICAgIGRlbGV0ZU9sZFZlcnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Q29ubmVjdGlvbi5jcHAKaW5kZXggZGE4ZWEzZmJiMDVlM2RmZmU0OWJlMzMyYTY2MDFlMjdhYmZj
YWY0MS4uNTk3NWY2NDQxYzNlMWQ2NmU3MWZkZTkxNGFkYjE2ZDRiYTdhMzNmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBA
IENvbm5lY3Rpb246OkNvbm5lY3Rpb24oSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlzU2Vy
dmVyLCBDbGllbnQmIGNsaWVudCkKICAgICAsIG1fc2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5k
RmFpbHVyZShmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxs
YmFjaygwKQogICAgICwgbV9pc0Nvbm5lY3RlZChmYWxzZSkKLSAgICAsIG1fY29ubmVjdGlvblF1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuSVBDLlJlY2VpdmVRdWV1ZSIpKQorICAg
ICwgbV9jb25uZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1F
KCJJUEMgUmVjZWl2ZSBRdWV1ZSIsICJJUENSZWNlaXZlUXVldWUiKSkpCiAgICAgLCBtX2luU2Vu
ZFN5bmNDb3VudCgwKQogICAgICwgbV9pbkRpc3BhdGNoTWVzc2FnZUNvdW50KDApCiAgICAgLCBt
X2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseUNv
dW50KDApCkBAIC03MjAsNyArNzIwLDcgQEAgdWludDY0X3QgQ29ubmVjdGlvbjo6aW5zdGFsbElu
Y29taW5nU3luY01lc3NhZ2VDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGMKICAgICBt
X25leHRJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tJRCsrOwogCiAgICAgaWYgKCFtX2luY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlKQotICAgICAgICBtX2luY29taW5nU3luY01lc3Nh
Z2VDYWxsYmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuSVBD
LkluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlIik7CisgICAgICAgIG1faW5jb21pbmdT
eW5jTWVzc2FnZUNhbGxiYWNrUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFE
X05BTUUoIklQQyBJbmNvbWluZyBTeW5jIE1lc3NhZ2UgQ2FsbGJhY2sgUXVldWUiLCAiSVN5bmNN
c2dDQlF1ZXVlIikpOwogCiAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tzLmFkZCht
X25leHRJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tJRCwgY2FsbGJhY2spOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IDE3NTc4OWZiOWFlNzEzZjE2ZWVlZGJm
YWJlMDBkNmYzM2U2M2NmMjMuLjJkMTg2ZTA2YTA1MWJlZDU4Y2U4MWJkMTlmMWIwYTk2ZDVkMGE3
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC01MCw3ICs1MCw3
IEBAIHN0YXRpYyB2b2lkIGRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKElQQzo6Q29ubmVj
dGlvbiopCiAgICAgLy8gdGhlIHByb2Nlc3Mgd2lsbCBleGl0IGZvcmNpYmx5LgogICAgIGF1dG8g
d2F0Y2hkb2dEZWxheSA9IHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEwKTsKIAotICAgIFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNoaWxkUHJvY2Vzcy5XYXRjaERvZ1F1ZXVlIikt
PmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwgW10geworICAgIFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiQ2hpbGQgUHJvY2VzcyBXYXRjaGRvZyBRdWV1ZSIsICJDaGls
ZFdkb2dRdWV1ZSIpKS0+ZGlzcGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CiAgICAgICAg
IC8vIFdlIHVzZSBfZXhpdCBoZXJlIHNpbmNlIHRoZSB3YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxs
ZWQgZnJvbSBhbm90aGVyIHRocmVhZCBhbmQgd2UgZG9uJ3Qgd2FudAogICAgICAgICAvLyBnbG9i
YWwgZGVzdHJ1Y3RvcnMgb3IgYXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxlZCBmcm9tIHRoaXMg
dGhyZWFkIHdoaWxlIHRoZSBtYWluIHRocmVhZCBpcyBidXN5CiAgICAgICAgIC8vIGRvaW5nIGl0
cyB0aGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggNDBkYzRmNDQ1NmMyOGZjOTM3ZDlhMTY2YWEyMjE5
Y2Y3ZThlYzUzMC4uMzdjMGI3MWJkNzE1Yjg3ZTQ3MDMzZThjZTZhZDFjNjhhNGE3NWMyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5n
UnVuTG9vcC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgY2xhc3MgV29ya1F1ZXVlUG9vbCB7CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKG1fc2hhcmVkV29ya1F1ZXVlKTsKICAgICAgICAgICAgICAgICBh
ZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbV9zaGFyZWRXb3JrUXVldWU7CiAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBX
b3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUi
KTsKKyAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJUaHJlYWRlZCBDb21wb3NpdG9yIFdvcmsgUXVl
dWUiLCAiVGhyZWFkZWRDb21wIikpOwogICAgICAgICAgICAgICAgIGlmICghbV90aHJlYWRDb3Vu
dCkKICAgICAgICAgICAgICAgICAgICAgbV9zaGFyZWRXb3JrUXVldWUgPSBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOwogICAgICAgICAgICAgICAgIG1fdGhyZWFkQ291bnQrKzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKaW5kZXggODU0MzNiZDU5ODZjMTM2YThi
ZWNjOTgxYmZkNzBkODRlZTQ3ZDQ2YS4uNTM0NTg3MDZiZGU3MmUyNzZmNjNmOWVhNWE4YzA5NTYw
MDVlNWIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hp
bS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAKQEAg
LTY0LDcgKzY0LDcgQEAgc3RhdGljIFdvcmtRdWV1ZSYgd29ya1F1ZXVlKCkKICAgICBzdGF0aWMg
V29ya1F1ZXVlKiB3b3JrUXVldWU7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9r
ZW47CiAgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewotICAgICAgICB3b3JrUXVldWUg
PSAmV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW0iKS5sZWFr
UmVmKCk7CisgICAgICAgIHdvcmtRdWV1ZSA9ICZXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhS
RUFEX05BTUUoIlNlY0l0ZW1TaGltIiwgIlNlY0l0ZW1TaGltIikpLmxlYWtSZWYoKTsKIAogICAg
IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcAppbmRleCAzYTc0MGZkNTBhNWYzMzg0NTg5
ZDA3NjI3ZGNmYzMwYTJjNjk5YWFiLi5jYTU3MDk5NDdlZGRmMmE4NGViNTQ0YjQwZTE1MjM4MzVh
ZWI2OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSgpCiAKIFVz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUoY29uc3Qg
V1RGOjpTdHJpbmcmIHN0b3JlUGF0aCkKICAgICA6IG1fc3RvcmVQYXRoKHN0b3JlUGF0aCkKLSAg
ICAsIG1fY29tcGlsZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIENvbXBpbGUgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQotICAg
ICwgbV9yZWFkUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUgUmVhZCBRdWV1ZSIpKQotICAgICwgbV9yZW1vdmVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZW1vdmUgUXVldWUiKSkKKyAgICAsIG1fY29tcGls
ZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVlIiwgIlVDRXhTdENvbXBRdWV1ZSIpLCBXb3JrUXVl
dWU6OlR5cGU6OkNvbmN1cnJlbnQpKQorICAgICwgbV9yZWFkUXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlYWQgUXVl
dWUiLCAiVUNFeFN0UmRRdWV1ZSIpKSkKKyAgICAsIG1fcmVtb3ZlUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlbW92
ZSBRdWV1ZSIsICJVQ0V4U3RSbVF1ZXVlIikpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMWZlMTAyNTRk
N2M1NjBhY2ZhNjkwNTE2YTUzMzhkZTQ0YjBmZDNjYS4uYTI1Y2VlYmQwZDhkZjY0OTg0ZGY0NjZj
ODRmOWYwYzU0ZDEyMjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIFJlZjxTdG9yYWdl
TWFuYWdlcj4gU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFn
ZURpcmVjdG9yeSkKIH0KIAogU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VNYW5hZ2VyKGNvbnN0IFN0
cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlTWFuYWdlciIpKQorICAgIDogbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlN0b3JhZ2UgTWFuYWdlciIsICJT
dG9yYWdlTWdyIikpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoTG9jYWxT
dG9yYWdlRGF0YWJhc2VUcmFja2VyOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVmKCksIGxvY2FsU3Rv
cmFnZURpcmVjdG9yeSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBpbml0
aWFsaXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYzJmOGU2YTRiYTczNTBhNDYzYTQ1OWRlNDhlNTZh
YWRmYmQyYTI1MC4uNWVhNTZkMjE2YWNjMGYwODhmYjI5MGUzYTgxZjMzZDg4N2U3NjgzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUo
Y29uc3QKIAogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KQogICAgIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNyZWF0ZSgpKQotICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUi
KSkKKyAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJF
QURfTkFNRSgiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1
ZSIsICJXZWJSc1N0YXRRdWV1ZSIpKSkKICAgICAsIG1fc3RvcmFnZVBhdGgocmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA3YTg0M2Ix
ZjA0M2JmN2QwZWM3ZWMzZjZiM2QxNzkxMDMzZGZlZTFjLi5kZTg1NmU3ZGM1NzQyY2VkMjA2N2U5
NjY1NWI4YTEwZTA2M2Q5OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC04MCw3ICs4MCw3IEBA
IFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpCiAg
ICAgLCBtX3N0b3JhZ2VNYW5hZ2VyKFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUobV9jb25maWd1cmF0
aW9uLmxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCiAgICAgLCBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUobV9jb25maWd1cmF0aW9u
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpKQotICAgICwgbV9xdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3JlIikpCisgICAgLCBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiV2Vic2l0ZSBEYXRh
U3RvcmUiLCAiV2ViRGF0YVN0b3JlIikpKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwog
fQpAQCAtODksNyArODksNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFdl
YkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVJ
ZGVudGlmaWVyKCkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2NvbmZp
Z3VyYXRpb24oKQotICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldl
YktpdC5XZWJzaXRlRGF0YVN0b3JlIikpCisgICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiV2Vic2l0ZSBEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIikp
KQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAppbmRleCAw
NjA4YWI3MmY5OTI0OGVmMjRjZDJkNTI0NWVlNTMzM2EwMGQ5ZDBkLi45ZjAxNjg2MDc5OGI5ZjIy
ZWNkZDUyNjM0MWMzNzg3NzkwMjU1ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcApAQCAtMjQ4LDcgKzI0
OCw3IEBAIE1lbW9yeVByZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVNb25pdG9yKCkKICAg
ICBpZiAobV9ldmVudEZEID09IC0xKQogICAgICAgICByZXR1cm47CiAKLSAgICBUaHJlYWRJZGVu
dGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoIk1lbW9yeVByZXNzdXJlTW9u
aXRvciIsIFt0aGlzXSB7CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0g
Y3JlYXRlVGhyZWFkKENSRUFURV9USFJFQURfTkFNRSgiTWVtb3J5IFByZXNzdXJlIE1vbml0b3Ii
LCAiTWVtUHJlc3NNb25pdG9yIiksIFt0aGlzXSB7CiAgICAgICAgIGRvdWJsZSBwb2xsSW50ZXJ2
YWwgPSBzX21heFBvbGxpbmdJbnRlcnZhbEluU2Vjb25kczsKICAgICAgICAgd2hpbGUgKHRydWUp
IHsKICAgICAgICAgICAgIHNsZWVwKHBvbGxJbnRlcnZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAppbmRleCAyMWVhN2IwMTJiMTg5
OGQyMTAxMmIyMjg3MjViZWUxMDZmY2E2ZGI0Li42MWNmMDZlNzYzMDIwMGZmMDk5N2JjZjUwNjNl
Zjk4YmE5MzA0NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Nl
Y0l0ZW1TaGltUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2Vj
SXRlbVNoaW1Qcm94eS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgU2VjSXRlbVNoaW1Qcm94eSYgU2Vj
SXRlbVNoaW1Qcm94eTo6c2luZ2xldG9uKCkKIH0KIAogU2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRl
bVNoaW1Qcm94eSgpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlNlY0l0ZW1TaGltUHJveHkiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJTZWNJdGVtU2hpbVByb3h5IiwgIlNlY0l0ZW1TaGltUCIp
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAppbmRleCBj
YmM0ZjBlM2U4NDI5YmFhZDVlODhjYWFlMzZkNWZiMzUxOWQ4ODZiLi5lZDdhNWM3OWQ4MjliZDY4
Zjc5N2I1ZDBjODkzODRiZGE4ZGM4MzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyPiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0ZSgpCiB9CiAKIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiUGx1Z2luUHJvY2VzcyBDb25uZWN0aW9uIE1h
bmFnZXIiLCAiUGx1Z2luQ29ubk1nciIpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCAxZjIyMjY1
OGM5MDZiNzNmNzU1NDFhY2EzNzJlOGVmNTA5OThkMTdhLi42ODYwMGIwYWIwMjJjMmFlNDQyNDE5
ODJmYWM0YWU0MjFjMzZhZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8RXZl
bnREaXNwYXRjaGVyPiBFdmVudERpc3BhdGNoZXI6OmNyZWF0ZSgpCiB9CiAKIEV2ZW50RGlzcGF0
Y2hlcjo6RXZlbnREaXNwYXRjaGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
ImNvbS5hcHBsZS5XZWJLaXQuRXZlbnREaXNwYXRjaGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkV2ZW50IERpc3BhdGNoZXIiLCAiRXZl
bnREaXNwYXRjaCIpLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVz
ZXJJbnRlcmFjdGl2ZSkpCiAgICAgLCBtX3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRlcihXaGVl
bEV2ZW50RGVsdGFGaWx0ZXI6OmNyZWF0ZSgpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKaW5k
ZXggYzhlMzYzODYxZjIwNTdhMDg2YTNmNzhkNWRiNDViMjNhMGM1Yjg2YS4uY2Y5MDk4N2E5YjJk
MDYxOWRiMGJmZTNkZWNiZmU0NTNlMjA2NDA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwCkBAIC00
MSw3ICs0MSw3IEBAIFJlZjxWaWV3VXBkYXRlRGlzcGF0Y2hlcj4gVmlld1VwZGF0ZURpc3BhdGNo
ZXI6OmNyZWF0ZSgpCiB9CiAKIFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaWV3VXBkYXRlRGlzcGF0
Y2hlcigpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LlZpZXdVcGRhdGVEaXNwYXRjaGVyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KENSRUFURV9USFJFQURfTkFNRSgiVmlldyBVcGRhdGUgRGlzcGF0Y2hlciIsICJWVXBkYXRlRGlz
cGF0Y2giKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0OGQyMmI5M2RjYjUyYTFiYWZmYzc3ZDQ3ZTQ1ZDAzNDQ2YjE1ZWViLi5i
YzgwNWI3YWY5YjM4ZDQyMTM0YjM0OWFlZTAyNzBkNTM4ZGI2ODQ0IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTct
MDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
VXNlIENSRUFURV9USFJFQURfTkFNRSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwOgorICAgICAgICAocnVuSmF2YVNjcmlwdFRo
cmVhZCk6CisgICAgICAgIChzdGFydEphdmFTY3JpcHRUaHJlYWRzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgICh0ZXN0VGhyZWFkSWRl
bnRpZmllck1hcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9u
LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnJ1bkxvY2tUZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRvVXBwZXJDb252ZXJ0ZXI6OnByb2R1Y2VRdWV1ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpUb1VwcGVyQ29udmVydGVyOjpjb25zdW1lUXVldWUpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktp
dFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2ZXIpOgorCiAyMDE3LTAxLTA2ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBTb21lIHRlc3RzIGFy
ZSBmbGFreSBiZWNhdXNlIGNlcnRhaW4gRExMcyBhcmUgd3JpdGluZyB0byBzdGRvdXQuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCmluZGV4IGUyZjliYWRl
NmNhN2MyNjk0ODVhNGNkY2JlNjA5OWMzNmJhMDIxOTguLjVhNTBiNDMwOWZlZmM0ODFkMzhlMTFk
M2Y5ZmI5MTBiODQ1NzFmMzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFT
Y3JpcHRUaHJlYWRpbmcuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRU
aHJlYWRpbmcuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFk
KHZvaWQqKQogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGN1cnJlbnRUaHJlYWQo
KTsKICAgICAgICAgZGV0YWNoVGhyZWFkKHRocmVhZCk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJl
YWRzKCkucmVtb3ZlKHRocmVhZCk7Ci0gICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRkKGNy
ZWF0ZVRocmVhZCgmcnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgMCkpOworICAgICAgICBqYXZhU2Ny
aXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIENS
RUFURV9USFJFQURfTkFNRSgiRHVtcFJlbmRlclRyZWUgSmF2YVNjcmlwdCIsICJEUlRKUyIpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgc3RhcnRK
YXZhU2NyaXB0VGhyZWFkcygpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVh
ZHNNdXRleCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgamF2YVNjcmlwdFRocmVh
ZHNDb3VudDsgKytpKQotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJl
YWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVh
ZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCBDUkVBVEVfVEhS
RUFEX05BTUUoIkR1bXBSZW5kZXJUcmVlIEphdmFTY3JpcHQiLCAiRFJUSlMiKSkpOwogfQogCiB2
b2lkIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KaW5kZXggNzE4MTM3NzBiODc3MzQzOWNjNjBmMzg3MmY4NTViNDJmZjJj
MzZmMC4uYzU1MjE2N2FjY2ZjNDIzNGNkOGZmNDdjOTRiYzdlNTM3OWNmNGI2YyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTEwNyw3ICsxMTA3LDcg
QEAgc3RhdGljIHZvaWQgdGVzdFRocmVhZElkZW50aWZpZXJNYXAoKQogCiAgICAgLy8gTm93IGNy
ZWF0ZSBhbm90aGVyIHRocmVhZCB1c2luZyBXVEYuIE9uIE9TWCwgaXQgd2lsbCBoYXZlIHRoZSBz
YW1lIHB0aHJlYWQgaGFuZGxlCiAgICAgLy8gYnV0IHNob3VsZCBnZXQgYSBkaWZmZXJlbnQgVGhy
ZWFkSWRlbnRpZmllci4KLSAgICBjcmVhdGVUaHJlYWQocnVuVGhyZWFkLCAwLCAiRHVtcFJlbmRl
clRyZWU6IHRlc3QiKTsKKyAgICBjcmVhdGVUaHJlYWQocnVuVGhyZWFkLCAwLCBDUkVBVEVfVEhS
RUFEX05BTUUoIkR1bXBSZW5kZXJUcmVlIFRlc3QiLCAiRFJUVGVzdCIpKTsKIH0KIAogc3RhdGlj
IHZvaWQgYWxsb2NhdGVHbG9iYWxDb250cm9sbGVycygpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAppbmRleCA4NDg1MjczNTFmNjA2M2ZjMjYzNjg3ODA1NmQ5
YzI0ZGJhYmU4M2RjLi4wZGJjMjYwYWUwM2VmZGY1YTUzZWUxY2NlODg0N2NlNzNkZjI4MDIwIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKQEAgLTk3LDcg
Kzk3LDcgQEAgdm9pZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IG51bUNv
bnN1bWVyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZp
ZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhyZWFkIiwKKyAgICAg
ICAgICAgIENSRUFURV9USFJFQURfTkFNRSgiQ29uc3VtZXIiLCAiQ29uc3VtZXIiKSwKICAgICAg
ICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBydW5UZXN0
KAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CiAgICAgICAg
IFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKLSAgICAg
ICAgICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1F
KCJQcm9kdWNlciIsICJQcm9kdWNlciIpLAogICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsg
KytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkTm90aWZ5ID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwCmluZGV4IDU1NzYzMDJkNjkwZGZjYTM1
OTkyOTI4YjFjODUzYzc2MjJlNDVmYjkuLmZjYmJiOTdkMWRmN2ViOTI5NWEyYTgwYWNiNzNiODQ2
YzUzMGFjM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2su
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwCkBAIC01Myw3
ICs1Myw3IEBAIHZvaWQgcnVuTG9ja1Rlc3QodW5zaWduZWQgbnVtVGhyZWFkR3JvdXBzLCB1bnNp
Z25lZCBudW1UaHJlYWRzUGVyR3JvdXAsIHVuc2lnbmVkCiAKICAgICAgICAgZm9yICh1bnNpZ25l
ZCB0aHJlYWRJbmRleCA9IG51bVRocmVhZHNQZXJHcm91cDsgdGhyZWFkSW5kZXgtLTspIHsKICAg
ICAgICAgICAgIHRocmVhZHNbdGhyZWFkR3JvdXBJbmRleCAqIG51bVRocmVhZHNQZXJHcm91cCAr
IHRocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAiTG9jayB0ZXN0
IHRocmVhZCIsCisgICAgICAgICAgICAgICAgQ1JFQVRFX1RIUkVBRF9OQU1FKCJMb2NrIFRlc3Rl
ciIsICJMb2NrVGVzdGVyIiksCiAgICAgICAgICAgICAgICAgW3RocmVhZEdyb3VwSW5kZXgsICZs
b2NrcywgJndvcmRzLCBudW1JdGVyYXRpb25zLCB3b3JrUGVyQ3JpdGljYWxTZWN0aW9uXSAoKSB7
CiAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bUl0ZXJhdGlvbnM7IGkt
LTspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tzW3RocmVhZEdyb3VwSW5kZXhdLmxv
Y2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhcmtpbmdM
b3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKaW5k
ZXggYzY3ZTFlMDgxNWE4M2FmYTkzMzNlMmFjOWEyYmQ3OGI2N2IxNjQ1Yi4uYjcwZWQ1OTY1NzBk
MjliNzA0NjNkZTk2ZWZjMWFiZDQ1MGQ5OWY2YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IFNpbmdsZUxh
dGNoVGVzdCB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bVRocmVhZHM7IGktLTspIHsK
ICAgICAgICAgICAgIHRocmVhZHMuYXBwZW5kKAogICAgICAgICAgICAgICAgIGNyZWF0ZVRocmVh
ZCgKLSAgICAgICAgICAgICAgICAgICAgIlBhcmtpbmcgVGVzdCBUaHJlYWQiLAorICAgICAgICAg
ICAgICAgICAgICBDUkVBVEVfVEhSRUFEX05BTUUoIlBhcmtpbmcgVGVzdGVyIiwgIlBhcmtpbmdU
ZXN0ZXIiKSwKICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIEVYUEVDVF9ORSgwdSwgY3VycmVudFRocmVhZCgpKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcApp
bmRleCAzMTQzNmJjMjIzMDdmOWRkNzNmNjkxOGIyNGFkYjQwZTc4OWZiNWVjLi5hYmQ3MjUzZDYz
Mzg5ZGYwZTkyZWI1YWU3NWJkZmY4YWFjZjI3N2M0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcApAQCAtNjIs
MTQgKzYyLDE0IEBAIGNsYXNzIFRvVXBwZXJDb252ZXJ0ZXIgewogICAgIFdvcmtRdWV1ZSogcHJv
ZHVjZVF1ZXVlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9wcm9kdWNlUXVldWUpCi0gICAgICAg
ICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LlByb2R1
Y2UiKTsKKyAgICAgICAgICAgIG1fcHJvZHVjZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JF
QVRFX1RIUkVBRF9OQU1FKCJQcm9kdWNlciIsICJQcm9kdWNlciIpKTsKICAgICAgICAgcmV0dXJu
IG1fcHJvZHVjZVF1ZXVlLmdldCgpOwogICAgIH0KIAogICAgIFdvcmtRdWV1ZSogY29uc3VtZVF1
ZXVlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9jb25zdW1lUXVldWUpCi0gICAgICAgICAgICBt
X2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkNvbnN1bWUiKTsK
KyAgICAgICAgICAgIG1fY29uc3VtZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RI
UkVBRF9OQU1FKCJDb25zdW1lciIsICJDb25zdW1lciIpKTsKICAgICAgICAgcmV0dXJuIG1fY29u
c3VtZVF1ZXVlLmdldCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dvcmtRdWV1ZS5jcHAKaW5kZXggN2UyNzdlOTRjNDdjZTNjZTJmYjgyNTJmNmNkYzNhNTVhZjM3
YmU3OS4uNWZhMjliNzUwNmU3MGMyODAyN2I3OTdhMjU0MTFhNzQyOWIxOGJhOSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCkBAIC01NCw3ICs1NCw3IEBA
IFRFU1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsb25n
VGVzdExhYmVsID0gImxvbmdUZXN0IjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdGhpcmRUZXN0
TGFiZWwgPSAidGhpcmRUZXN0IjsKIAotICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIpOworICAgIGF1dG8gcXVldWUgPSBXb3Jr
UXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIlNpbXBsZSBUZXN0IiwgIlNpbXBsZVRl
c3QiKSk7CiAgICAgaW50IGluaXRpYWxSZWZDb3VudCA9IHF1ZXVlLT5yZWZDb3VudCgpOwogICAg
IEVYUEVDVF9FUSgxLCBpbml0aWFsUmVmQ291bnQpOwogCkBAIC0xMDYsOCArMTA2LDggQEAgVEVT
VChXVEZfV29ya1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgYm9vbCBjYWxsZWRMb25nVGVzdCA9IGZh
bHNlOwogICAgIGJvb2wgY2FsbGVkVGhpcmRUZXN0ID0gZmFsc2U7CiAgICAgCi0gICAgYXV0byBx
dWV1ZTEgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LnR3b1F1ZXVl
czEiKTsKLSAgICBhdXRvIHF1ZXVlMiA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2Vi
S2l0LlRlc3QudHdvUXVldWVzMiIpOworICAgIGF1dG8gcXVldWUxID0gV29ya1F1ZXVlOjpjcmVh
dGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJUd29RdWV1ZXMxIFRlc3QiLCAiVHdvUXVldWVzMVRlc3Qi
KSk7CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05B
TUUoIlR3b1F1ZXVlczIgVGVzdCIsICJUd29RdWV1ZXMyVGVzdCIpKTsKIAogICAgIEVYUEVDVF9F
USgxLCBxdWV1ZTEtPnJlZkNvdW50KCkpOwogICAgIEVYUEVDVF9FUSgxLCBxdWV1ZTItPnJlZkNv
dW50KCkpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGlzcGF0Y2hB
ZnRlcikKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsKICAgICBib29sIGNhbGxl
ZERpc3BhdGNoQWZ0ZXJUZXN0ID0gZmFsc2U7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVyIik7CisgICAgYXV0
byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKENSRUFURV9USFJFQURfTkFNRSgiRGlzcGF0Y2hB
ZnRlciBUZXN0IiwgIkRpc3BhdGNoQWZ0ZXIiKSk7CiAKICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2xvY2spOwogCkBAIC0yMTEsNyArMjExLDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBEZXN0cm95
T25TZWxmKQogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobG9jayk7CiAgICAgICAg
IHsKLSAgICAgICAgICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxl
LldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiKTsKKyAgICAgICAgICAgIGF1dG8gcXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZShDUkVBVEVfVEhSRUFEX05BTUUoIkRlc3Ryb3lPblNlbGYgVGVzdCIs
ICJEZXN0cm95T25TZWxmIikpOwogICAgICAgICAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewogICAgICAgICAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJU
ZXN0U3RhcnRlZC53YWl0KGxvY2ssIFsmXSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAppbmRleCA5OTIzZDY1ODAwZWQ3MTRi
YTY4MDZiMTNmN2U1MWZlZTU4MDM1YWQwLi4zMGVjYzA1ZjZlOTJhM2JkMGQ2ZDcxYmFlNTYxMWU0
NjNkOTAzNWQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGli
L1dvcmtRdWV1ZUdMaWIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2ds
aWIvV29ya1F1ZXVlR0xpYi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVl
LCBBc3luY0lPKQogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBj
b250ZXh0OwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlRlc3QuQXN5bmNJTyIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0
ZShDUkVBVEVfVEhSRUFEX05BTUUoIkFzeW5jSU8gVGVzdCIsICJBc3luY0lPVGVzdCIpKTsKICAg
ICBjb250ZXh0Lm1fbWFpbkNvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CiAgICAg
RVhQRUNUX0ZBTFNFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2Vy
dmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNl
cnZlci5jcHAKaW5kZXggZGU5NDY2YzM5ZDcxY2ZjMmFiZjQ0OWZjZmRlMzg5YjU0NDlkZjMyNy4u
ZTlkOGMzNDJhYWMxYjA4YTE5ZDVlOWVhMjJkZjU4NmY5MTZkYTRlYSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3Bw
CkBAIC0yOCw3ICsyOCw3IEBAIFdlYktpdFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2ZXIoU2Vy
dmVyT3B0aW9ucyBvcHRpb25zKQogewogICAgIGlmIChvcHRpb25zICYgU2VydmVyUnVuSW5UaHJl
YWQpIHsKICAgICAgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgICAgIG1fcXVl
dWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiV2ViS2l0VGVzdFNlcnZlciIpOworICAgICAgICBtX3F1
ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoQ1JFQVRFX1RIUkVBRF9OQU1FKCJXZWJLaXQgVGVzdCBT
ZXJ2ZXIiLCAiVGVzdFNlcnZlciIpKTsKICAgICB9CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNz
bENlcnRpZmljYXRlRmlsZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298375</attachid>
            <date>2017-01-09 11:52:39 -0800</date>
            <delta_ts>2017-01-09 12:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170110045103.patch</filename>
            <type>text/plain</type>
            <size>104600</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZjExNDUxMzhkYTdlNWE0ZjE4ZjQxZDhmOWY3YmY1OWFjOWVhMzVjLi43OWVlYjM5ZTY1OTM4YzNh
NzgwYTVkN2Y3YTRjOTFmNWViMzRmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCiAyMDE3LTAxLTA4
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmplY3QgTWFy
a2VkU3BhY2Ugc2l6ZSBjbGFzc2VzIGZvciBhIGZldyBtb3JlIGhpZ2gtdm9sdW1lIG9iamVjdHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDAyNjU2Y2RlOGNjNDZmMTBjMDM4MmQzMTEyNWFiNTU2Nzc5MDFkY2YuLmExYzNmNTk0
ZDViZjk4NzgwY2I4OThjMjVhNjlkNWMxM2QzZGNkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRy
b2R1Y2VzIFRocmVhZE5hbWUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWluZworICAgICAgICBw
b2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIFRocmVhZE5hbWUgdGFrZXMg
MiBuYW1lcywgc2hvcnQgYW5kIGxvbmcgbmFtZXMuIFRoZSBsb25nIG5hbWUKKyAgICAgICAgaXMg
dXNlZCBmb3IgbWFjT1MgYW5kIGlPUyBzaW5jZSB0aGV5IGRvIG5vdCBoYXZlIHRoZSBsaW1pdGF0
aW9uLiBPbiB0aGUKKyAgICAgICAgb3RoZXIgaGFuZCwgTGludXggb25seSBhbGxvd3MgMTUgY2hh
cmFjdGVycyBmb3IgdGhyZWFkIG5hbWVzLiBTbyBmb3IKKyAgICAgICAgTGludXgsIHdlIHVzZSB0
aGUgc2hvcnQgbmFtZS4gV2luZG93cyBhbHNvIGhhcyAzMSBjaGFyYWN0ZXJzIGxpbWl0YXRpb24u
CisgICAgICAgIFdpbmRvd3MgYWxzbyB1c2VzIHRoZSBzaG9ydCBuYW1lLgorCisgICAgICAgIFdo
ZW4geW91IHNwZWNpZnkgdGhlIG5hbWUgbGlrZSwKKworICAgICAgICAgICAgVGhyZWFkTmFtZSB7
ICJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlzYXNtIiB9LAorCisgICAgICAg
IFRoZSB0aHJlYWQgbmFtZSBiZWNvbWVzLAorCisgICAgICAgICAgICBMaW51eDogIkFzeW5jRGlz
YXNtIgorICAgICAgICAgICAgV2luZG93czogIldlYktpdDogQXN5bmNEaXNhc20iCisgICAgICAg
ICAgICBtYWNPUyBhbmQgaU9TOiAiV2ViS2l0OiBBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIgor
CisgICAgICAgIFRocmVhZE5hbWUgY2hlY2tzIHRoZSBsZW5ndGggb2YgdGhlIHNob3J0IG5hbWUg
aXMgPD0gMTUgYXQgY29tcGlsZQorICAgICAgICB0aW1lLiBJZiB0aGlzIGNvbmRpdGlvbiBpcyBu
b3QgbWV0LCBjb21waWxlIGVycm9yIG9jY3Vycy4KKworICAgICAgICBUaGUgIldlYktpdDogIiBw
cmVmaXggaXMgYXV0b21hdGljYWxseSBhZGRlZCBieSBUaHJlYWROYW1lLgorICAgICAgICBUaGlz
IHByZWZpeCBpcyBpbXBvcnRhbnQgc2luY2UgaXQgY2FuIHNheSB0aGF0IHRoaXMgdGhyZWFkIGlz
IHJlbGF0ZWQgdG8gV2ViS2l0LgorICAgICAgICBXaGVuIHVzaW5nIFdlYktpdCBhcyBmcmFtZXdv
cmssIFdlYktpdCByZWxhdGVkIHRocmVhZHMgd2lsbCBiZSBsYXVuY2hlZCBhbG9uZworICAgICAg
ICB3aXRoIHVzZXIgYXBwbGljYXRpb24ncyB0aHJlYWRzLiBXaXRob3V0ICJXZWJLaXQ6ICIgcHJl
Zml4LCBpdCBpcyBhIGJpdCBkaWZmaWN1bHQKKyAgICAgICAgdG8gZGlzdGluZ3Vpc2ggdXNlcidz
IHRocmVhZHMgZnJvbSBXZWJLaXQgcmVsYXRlZCBvbmVzLgorCisgICAgICAgIFdlIGFwcGx5IHRo
aXMgcG9saWN5IHRvIGFsbCB0aGUgV2ViS2l0IHRocmVhZCBuYW1lcyBleGNlcHQgZm9yIGJtYWxs
b2MncyBvbmUuCisgICAgICAgIFRoaXMgd2lsbCBiZSBjaGFuZ2VkIGluIFsxXS4KKworICAgICAg
ICBbMV06IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2ODQKKwor
ICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJlbmNo
bWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tG
YWlybmVzc1Rlc3QuY3BwOgorICAgICAgICAqIGJlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHA6
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhy
ZWFkOjpzdGFydCk6CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAq
IHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBl
clBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVy
UG9vbDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wu
aDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpuYW1lKToKKyAgICAgICAgKiB3
dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsRW52aXJv
bm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IpOgorICAgICAgICAqIHd0Zi9UaHJlYWRO
YW1lLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpUaHJlYWROYW1lKToKKyAg
ICAgICAgKFdURjo6VGhyZWFkTmFtZTo6bmFtZSk6CisgICAgICAgIChXVEY6OlRocmVhZE5hbWU6
OnN0cmluZ0xlbmd0aCk6CisgICAgICAgIChXVEY6OlRocmVhZE5hbWU6OnByZWZpeGVkTmFtZSk6
CisgICAgICAgICogd3RmL1RocmVhZGluZy5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZVRocmVh
ZCk6CisgICAgICAgIChXVEY6Om5vcm1hbGl6ZVRocmVhZE5hbWUpOiBEZWxldGVkLgorICAgICAg
ICAqIHd0Zi9UaHJlYWRpbmcuaDoKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
OgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6Omlu
aXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdX
aW4uY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKToK
KyAgICAgICAgKFdURjo6Y3JlYXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAqIHd0Zi9Xb3Jr
UXVldWUuY3BwOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OmNyZWF0ZSk6CisgICAgICAgIChX
VEY6OldvcmtRdWV1ZTo6V29ya1F1ZXVlKToKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpjb25j
dXJyZW50QXBwbHkpOgorICAgICAgICAqIHd0Zi9Xb3JrUXVldWUuaDoKKyAgICAgICAgKiB3dGYv
Y29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OnBsYXRm
b3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcDoK
KyAgICAgICAgKERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRleHQ6OnN0YXJ0KToKKyAgICAgICAg
KERpc3BhdGNoUXVldWU6OmNyZWF0ZSk6CisgICAgICAgICogd3RmL2VmbC9EaXNwYXRjaFF1ZXVl
RWZsLmg6CisgICAgICAgICogd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogd3RmL2dlbmVyaWMv
V29ya1F1ZXVlR2VuZXJpYy5jcHA6CisgICAgICAgIChXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlh
bGl6ZSk6CisgICAgICAgICogd3RmL3RleHQvQVNDSUlMaXRlcmFsLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcC4KKyAgICAgICAgKFdU
Rjo6QVNDSUlMaXRlcmFsOjpBU0NJSUxpdGVyYWwpOgorICAgICAgICAoV1RGOjpBU0NJSUxpdGVy
YWw6Om9wZXJhdG9yIGNvbnN0IGNoYXIqKToKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcu
aDoKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpBU0NJSUxpdGVyYWwpOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjpBU0NJSUxpdGVyYWw6Om9wZXJhdG9yIGNvbnN0IGNoYXIqKTogRGVsZXRl
ZC4KKyAgICAgICAgKiB3dGYvd2luL01haW5UaHJlYWRXaW4uY3BwOgorICAgICAgICAoV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKToKKyAgICAgICAgKiB3dGYvd2luL1dvcmtRdWV1
ZVdpbi5jcHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKToK
KwogMjAxNy0wMS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1RLXSBTaG91bGQgc3VwcG9ydCBrZXkgYW5kIGNv
ZGUgcHJvcGVydGllcyBvbiBrZXlib2FyZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyOTI0OGIzODQ4
MDVjZTcwODI4YzdmZGIwZDk3MmYxYzkyNzQxMWI0Li4xYzA1NmQ2ZWFiMDM4YjM1NTBjNjA5NTcy
MjMxYzQxZTU5ZGM0ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTctMDEtMDkg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIFRo
cmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
OjpJREJTZXJ2ZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29k
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OkFzeW5jQXVkaW9E
ZWNvZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGU6OnN0YXJ0UmVuZGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpzdGFydCk6
CisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdDQ29udHJvbGxlcjo6Z2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZEZvckRlYnVn
Z2luZyk6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdWJ0bGVDcnlwdG86OlN1YnRsZUNyeXB0byk6CisgICAgICAgICogZmlsZWFwaS9Bc3lu
Y0ZpbGVTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbE9uRmlsZVRocmVhZCk6Cisg
ICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okljb25EYXRhYmFzZTo6b3Blbik6CisgICAgICAgICogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VUaHJlYWQ6OmNyZWF0ZVRocmVh
ZElmTmVlZGVkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1l
Q2FjaGU6OmRlY29kaW5nUXVldWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OkV2ZW50RkRQb2xsZXI6OkV2ZW50
RkRQb2xsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iVXRpbGl0eVF1ZXVlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFV
UkxEZWNvZGVyOjpkZWNvZGVRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9M
b2FkZXJSdW5Mb29wQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9hZGVyUnVuTG9vcCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpzdGFydFRocmVhZElmTmVlZGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c3RhcnRUaHJl
YWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZDo6c3RhcnQpOgorCiAyMDE3LTAxLTA5ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBFdmFsdWF0aW5nIHdpbmRvdyBuYW1lZCBlbGVt
ZW50IG1heSByZXR1cm4gd3JvbmcgcmVzdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1ZmQ4NWNhYWZlNGVkOGVl
NDhhNTFiZDE3NWM2YjQ2ZDVjNmVmMWYuLmU3MDJmYTMwMzhiNmFlNjIzNTRhODc1YTgwNGQ4ODFk
MTI4MDU4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDEtMDkgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIFRocmVhZE5hbWUg
dG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3RvcmFnZVRocmVhZDo6c3RhcnQpOgorCiAyMDE3LTAxLTA1ICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBDb21waWxl
IGVycm9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGE4MWNjMTBhNTc0YmRmNDRkZjZhMjA1YzYzMzQ4Njg4NmRk
MTYyZWMuLjYyMDZjOWFjMjhhZWMyOWMyOTEwN2I2OTk4N2ZhMTE5NDRmN2RhOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MiBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUu
dGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcg
YW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpEYXRhYmFzZVByb2Nlc3M6OkRhdGFiYXNlUHJvY2Vzcyk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhY2hlOjpDYWNoZTo6ZGVsZXRlRHVtcEZpbGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5lbDo6cmVhZFN5bmNJblRocmVhZCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RhdGlzdGljczo6U3RhdGlzdGljcyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6U3RvcmFnZTo6U3RvcmFnZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6bV9iYWNrZ3JvdW5kSU9RdWV1ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6bV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZSk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpDb25u
ZWN0aW9uKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6aW5zdGFsbEluY29taW5nU3luY01l
c3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKToKKyAgICAgICAgKiBT
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdS
dW5Mb29wLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V29ya1F1ZXVlUG9vbDo6Z2V0T3JDcmVhdGVX
b3JrUXVldWVGb3JDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6d29ya1F1ZXVlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKToKKyAgICAgICAg
KEFQSTo6bV9yZWFkUXVldWUpOgorICAgICAgICAoQVBJOjptX3JlbW92ZVF1ZXVlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZW1vcnlQcmVzc3VyZU1vbml0b3I6Ok1lbW9yeVByZXNzdXJlTW9u
aXRvcik6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6U2VjSXRlbVNoaW1Qcm94eTo6U2VjSXRlbVNoaW1Qcm94eSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RXZlbnREaXNwYXRjaGVy
OjpFdmVudERpc3BhdGNoZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBk
YXRlRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdVcGRhdGVEaXNwYXRjaGVy
OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcik6CisKIDIwMTctMDEtMDYgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10g
U2hvdWxkIHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5Ym9hcmQgZXZlbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRT
d2FwVGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRT
d2FwVGVzdC5jcHAKaW5kZXggZTc4MDg2YzNhOTYxMmEyZjBiNGQ3YWFmMWFkYzdiYTFhMTAxYzU0
Ny4uMTAwOTA4MmE3MTU4M2QyNjI2YTBjNjMwMzYwYzM5YzMzNjJjNGEzNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgdGVzdENvbXBhcmVBbmRTd2FwKCkKICAgICAgICAg
ZGF0YVtpXS5pZCA9IGk7CiAgICAgICAgIGRhdGFbaV0ubnVtVGhyZWFkcyA9IG51bVRocmVhZHM7
CiAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiB0aHJlYWRGdW5jID0gc3RkOjpiaW5kKHNl
dEJpdFRocmVhZEZ1bmMsICZkYXRhW2ldKTsKLSAgICAgICAgdGhyZWFkSURzW2ldID0gY3JlYXRl
VGhyZWFkKCJzZXRCaXRUaHJlYWRGdW5jIiwgdGhyZWFkRnVuYyk7CisgICAgICAgIHRocmVhZElE
c1tpXSA9IGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgInNldEJpdFRocmVhZEZ1bmMiLCAic2V0
Qml0VGhyZWFkRnVuYyIgfSwgdGhyZWFkRnVuYyk7CiAgICAgfQogCiAgICAgcHJpbnRmKCJXYWl0
aW5nIGZvciAlZCB0aHJlYWRzIHRvIGpvaW5cbiIsIG51bVRocmVhZHMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKaW5kZXggOWY4YThkODNlNWZkMzMxZTQ0OWVmOTFm
M2RhNzg0ZDQ1NzZjZjQ0Zi4uMzhkNWQyM2QzN2FlNjZhNzYxMWRmZDk1ZjkwOTcxYmMzMGFjMzZk
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC0xOTEzLDcg
KzE5MTMsNyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gZmlsdGVyID8gMSA6IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOyBpLS07KSB7
CiAgICAgICAgIHRocmVhZHMuYXBwZW5kKAogICAgICAgICAgICAgY3JlYXRlVGhyZWFkKAotICAg
ICAgICAgICAgICAgICJ0ZXN0YjMgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICBUaHJlYWROYW1l
IHsgInRlc3RiMyB0aHJlYWQiLCAiVGVzdEIzVGhyZWFkIiB9LAogICAgICAgICAgICAgICAgIFsm
XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCmluZGV4IGZjMzNjNmZjZmFkZjg5MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1
ZTEuLjVhMDljNjBhZmEyNmMzNGMwNWU3NDFhZGYxMmQ4ZmYyNWZmYzIzNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0xNTY2MSw3ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNv
bnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RG
OjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBl
bmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0
aHJlYWQiLAorICAgICAgICAgICAgICAgIFRocmVhZE5hbWUgeyAidGVzdGIzIHRocmVhZCIsICJU
ZXN0QjNUaHJlYWQiIH0sCiAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAg
ICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFNoYXJlZFRh
c2s8dm9pZCgpPj4gdGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TdXBlclNhbXBsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1
cGVyU2FtcGxlci5jcHAKaW5kZXggYTRlMjFmOWZhM2NkNDcyMWVhMjY3NWUwNmU0ZDUzMGM1YmE5
NWIzNS4uMzIzMGFiODFhMWFlNDAxZDU5YzFiMGJiZTliYWRmNDdmNWZkN2JlNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKQEAgLTQ3LDcg
KzQ3LDcgQEAgdm9pZCBpbml0aWFsaXplU3VwZXJTYW1wbGVyKCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgY3JlYXRlVGhyZWFkKAotICAgICAgICAiSlNDIFN1cGVyIFNhbXBsZXIiLAorICAgICAg
ICBUaHJlYWROYW1lIHsgIkpTQyBTdXBlciBTYW1wbGVyIiwgIlN1cGVyU2FtcGxlciIgfSwKICAg
ICAgICAgW10gKCkgewogICAgICAgICAgICAgY29uc3QgaW50IHNsZWVwUXVhbnR1bSA9IDEwOwog
ICAgICAgICAgICAgY29uc3QgaW50IHByaW50aW5nUGVyaW9kID0gMTAwMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggNWUzMzhmMDEyYjg5OTRkOTg2NTQ0
NmU4NzgxNDc4NGQ4ZTg1NTA3Yi4uNzg4YmQ0YmU4NDg3Yzk4NTNjMWIxZGU4ZWUxMjA4ZDUwYWRl
MjZjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAgLTQw
LDggKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBXb3Jr
bGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgotICAg
IFRocmVhZEJvZHkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3Qs
IFRocmVhZERhdGEmIGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5KQotICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbikKKyAgICBUaHJlYWRCb2R5KGNv
bnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWREYXRhJiBk
YXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29u
ZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSwgVGhyZWFkTmFtZSB0aHJlYWROYW1lKQorICAg
ICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbiwgdGhyZWFkTmFt
ZSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgICAgICAsIG1fZGF0YShkYXRh
KQogICAgICAgICAsIG1fcmVsYXRpdmVQcmlvcml0eShyZWxhdGl2ZVByaW9yaXR5KQpAQCAtMTcz
LDggKzE3Myw4IEBAIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRp
Y1RocmVhZCB7CiAgICAgUmVmUHRyPFBsYW4+IG1fcGxhbjsKIH07CiAKLVdvcmtsaXN0OjpXb3Jr
bGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSkKLSAgICA6IG1fdGhyZWFkTmFtZSh0b0NTdHJpbmco
d29ya2xpc3ROYW1lLCAiIFdvcmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0OjpXb3JrbGlzdChUaHJl
YWROYW1lIHRocmVhZE5hbWUpCisgICAgOiBtX3RocmVhZE5hbWUodGhyZWFkTmFtZSkKICAgICAs
IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fbnVtYmVyT2ZBY3RpdmVUaHJl
YWRzKDApCkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIFdvcmtsaXN0OjpmaW5pc2hDcmVhdGlv
bih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogICAgIExv
Y2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOwogICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9m
VGhyZWFkczsgaS0tOykgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRGF0YT4gZGF0
YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7Ci0gICAgICAgIGRhdGEtPm1f
dGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJvZHkobG9ja2VyLCAqdGhpcywgKmRhdGEsIG1f
bG9jaywgbV9wbGFuRW5xdWV1ZWQsIHJlbGF0aXZlUHJpb3JpdHkpKTsKKyAgICAgICAgZGF0YS0+
bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwg
bV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSwgbV90aHJlYWROYW1lKSk7
CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7CiAgICAgfQogfQogCi1S
ZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVuc2ln
bmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCitSZWY8V29ya2xpc3Q+
IFdvcmtsaXN0OjpjcmVhdGUoVGhyZWFkTmFtZSB0aHJlYWROYW1lLCB1bnNpZ25lZCBudW1iZXJP
ZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogewotICAgIFJlZjxXb3JrbGlzdD4gcmVz
dWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUpKTsKKyAgICBSZWY8V29y
a2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3QodGhyZWFkTmFtZSkpOwogICAg
IHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24obnVtYmVyT2ZUaHJlYWRzLCByZWxhdGl2ZVByaW9yaXR5
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNTE2LDcgKzUxNiw3IEBAIFdvcmtsaXN0JiBl
bnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGlu
aXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRp
YWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUdsb2JhbERGR1dv
cmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIsIE9wdGlvbnM6Om51bWJl
ck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFPZkRGR0NvbXBp
bGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbERGR1dvcmtsaXN0ID0g
JldvcmtsaXN0OjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJERkcgV29ya2xpc3QiLCAiREZHV29ya2xp
c3QiIH0sIE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnBy
aW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAg
ICAgcmV0dXJuICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTUzMiw3ICs1MzIsNyBAQCBX
b3JrbGlzdCYgZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxf
b25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVH
bG9iYWxGVExXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBPcHRp
b25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRh
T2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxGVExX
b3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiRlRMV29ya2xpc3QiLCAi
RlRMV29ya2xpc3QiIH0sIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9w
dGlvbnM6OnByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAg
ICAgfSk7CiAgICAgcmV0dXJuICp0aGVHbG9iYWxGVExXb3JrbGlzdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCBkOTAxZTcyZGEwZDg3ZjFlMjZmYzMyMjE5
YjBmYTQ0ZjZmMTFjN2Y4Li5jMTA0NzI3ZjliYjBmMTE4YzA5YjllZmI3M2JkN2QzNDg3NWUwMGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC00OCw3ICs0OCw3
IEBAIGNsYXNzIFdvcmtsaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKIAogICAg
IH5Xb3JrbGlzdCgpOwogICAgIAotICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3Ry
aW5nIHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQ
cmlvcml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShUaHJlYWROYW1l
LCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAg
ICAgCiAgICAgdm9pZCBlbnF1ZXVlKFBhc3NSZWZQdHI8UGxhbj4pOwogICAgIApAQCAtODIsNyAr
ODIsNyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFdv
cmtsaXN0KENTdHJpbmcgd29ya2xpc3ROYW1lKTsKKyAgICBXb3JrbGlzdChUaHJlYWROYW1lKTsK
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50KTsK
ICAgICAKICAgICBjbGFzcyBUaHJlYWRCb2R5OwpAQCAtOTUsNyArOTUsNyBAQCBjbGFzcyBXb3Jr
bGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB2b2lkIGR1bXAoY29u
c3QgTG9ja0hvbGRlciYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCi0gICAgQ1N0cmluZyBt
X3RocmVhZE5hbWU7CisgICAgVGhyZWFkTmFtZSBtX3RocmVhZE5hbWU7CiAgICAgCiAgICAgLy8g
VXNlZCB0byBpbmZvcm0gdGhlIHRocmVhZCBhYm91dCB3aGF0IHdvcmsgdGhlcmUgaXMgbGVmdCB0
byBkby4KICAgICBEZXF1ZTxSZWZQdHI8UGxhbj4+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKaW5kZXggNzg4YTZj
MzYyMzY5YzU4ZGFkMjlhNjBhMzg3MTA0NGU0NjRlZDMwNS4uNTU3ZDcxMzVjNzNkNjRiMjk5MTE4
ZmFmYjE1MzVhY2VkMTlmZTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rp
c2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
aXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBBc3lu
Y2hyb25vdXNEaXNhc3NlbWJsZXIgewogcHVibGljOgogICAgIEFzeW5jaHJvbm91c0Rpc2Fzc2Vt
YmxlcigpCiAgICAgewotICAgICAgICBjcmVhdGVUaHJlYWQoIkFzeW5jaHJvbm91cyBEaXNhc3Nl
bWJsZXIiLCBbJl0gKCkgeyBydW4oKTsgfSk7CisgICAgICAgIGNyZWF0ZVRocmVhZChUaHJlYWRO
YW1lIHsgIkFzeW5jaHJvbm91cyBEaXNhc3NlbWJsZXIiLCAiQXN5bmNEaXNhc20iIH0sIFsmXSAo
KSB7IHJ1bigpOyB9KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKHN0ZDo6dW5pcXVl
X3B0cjxEaXNhc3NlbWJseVRhc2s+IHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CmluZGV4IDI2NTgzYzRlOTQ2MDgwYWQ2YjdhZmNjMTlkNjdiYjUzZTBhZGFiZDguLmY5NzI0ODY1
ZDc5MzhhODEwYzkzNjNiMzIyODQ0ZTkwNjFjOTg3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogY2xhc3Mg
SGVhcDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhy
ZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKLSAgICAgICAgOiBBdXRv
bWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRp
dGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9j
aywgaGVhcC5tX3RocmVhZENvbmRpdGlvbiwgVGhyZWFkTmFtZSB7ICJIZWFwIENvbGxlY3RvciIs
ICJIZWFwQ29sbGVjdG9yIiB9KQogICAgICAgICAsIG1faGVhcChoZWFwKQogICAgIHsKICAgICB9
CkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCB2b2lkIEhlYXA6Om5vdGlmeUlzU2FmZVRvQ29sbGVjdCgp
CiAgICAgCiAgICAgaWYgKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3VzbHkoKSkgewogICAgICAg
ICBtX2NvbGxlY3RDb250aW51b3VzbHlUaHJlYWQgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAg
ICAiSlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLAorICAgICAgICAgICAgVGhyZWFkTmFtZSB7ICJK
U0MgREVCVUcgQ29udGludW91cyBHQyIsICJDb250aW51b3VzR0MiIH0sCiAgICAgICAgICAgICBb
dGhpc10gKCkgewogICAgICAgICAgICAgICAgIE1vbm90b25pY1RpbWUgaW5pdGlhbFRpbWUgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgICAgICAgICBTZWNvbmRzIHBlcmlvZCA9IFNl
Y29uZHM6OmZyb21NaWxsaXNlY29uZHMoT3B0aW9uczo6Y29sbGVjdENvbnRpbnVvdXNseVBlcmlv
ZE1TKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBl
clBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3Bw
CmluZGV4IDc5MWFhNzU2Zjk1ZTFjYjU2NDBmYzMzYjQ1Njc3NDUxZWUxYTI1MzYuLmFjZGUyMmQ1
MDBkN2M1Zjc4ZmQ1NGE4MmRlYzQxOGVlNmE0ZDYxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgUGFyYWxsZWxI
ZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgpCiAgICAgc3RkOjpjYWxsX29uY2UoCiAgICAgICAg
IGluaXRpYWxpemVIZWxwZXJQb29sT25jZUZsYWcsCiAgICAgICAgIFtdIHsKLSAgICAgICAgICAg
IGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29sKCk7CisgICAgICAgICAgICBoZWxw
ZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lIHsgIkhlYXAgSGVscGVy
IiwgIkhlYXBIZWxwZXIiIH0pOwogICAgICAgICAgICAgaGVscGVyUG9vbC0+ZW5zdXJlVGhyZWFk
cyhPcHRpb25zOjpudW1iZXJPZkdDTWFya2VycygpIC0gMSk7CiAgICAgICAgIH0pOwogICAgIHJl
dHVybiAqaGVscGVyUG9vbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SUNTdGF0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3BwCmluZGV4
IDIwODBjZDkzNDU4MzNkMmQyMzJiOGE5Y2Q2ZjNkYmZlYmUwNWNiMjMuLjUzZGRkMGFiMjdlY2Jk
Y2FkODlmNTgzODQ4ZDE4ZTg2YTVjZjJkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSUNTdGF0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0
YXRzLmNwcApAQCAtNTksNyArNTksNyBAQCBBdG9taWM8SUNTdGF0cyo+IElDU3RhdHM6OnNfaW5z
dGFuY2U7CiBJQ1N0YXRzOjpJQ1N0YXRzKCkKIHsKICAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVh
ZCgKLSAgICAgICAgIkpTQyBJQ1N0YXRzIiwKKyAgICAgICAgVGhyZWFkTmFtZSB7ICJKU0MgSUNT
dGF0cyIsICJJQ1N0YXRzIiB9LAogICAgICAgICBbdGhpc10gKCkgewogICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgICAgIGZvciAoOzspIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggMmMyMmRhMzg5OGJjMjg3OWJh
Zjc3ZDk2MTZhY2VkMDRjYTdmNTFhNi4uZDVkMzkyZTE2NDlhZjQwYWQxOWYwNDUwNmE1MzkxOTBh
OGMzMWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlz
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAg
LTEwMCw3ICsxMDAsNyBAQCBjbGFzcyBKSVRXb3JrbGlzdDo6UGxhbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxKSVRXb3JrbGlzdDo6UGxhbj4gewogY2xhc3MgSklUV29ya2xpc3Q6OlRo
cmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25z
dCBMb2NrSG9sZGVyJiBsb2NrZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKLSAgICAgICAgOiBB
dXRvbWF0aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0
aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywg
d29ya2xpc3QubV9jb25kaXRpb24sIFRocmVhZE5hbWUgeyAiQmFzZWxpbmUgSklUIENvbXBpbGVy
IFdvcmtlciIsICJKSVRDb21waWxlciIgfSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0
KQogICAgIHsKICAgICAgICAgbV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVhZHMrKzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggM2E3YTNmNDcyN2QwMjAyZTcyZTVhOGVlZmUwMzI4NzYyMDgy
NWIzMy4uY2I3NGU1MTllODdmNTk5MzgzYzAxYzEwYzkyN2UzMjIxMzlmZmVkMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI3MTksNyArMjcxOSw3IEBAIHN0YXRpYyB2b2lkIHN0YXJ0VGltZW91
dFRocmVhZElmTmVlZGVkKCkKICAgICAgICAgICAgIGRhdGFMb2coIldBUk5JTkc6IHRpbWVvdXQg
c3RyaW5nIGlzIG1hbGZvcm1lZCwgZ290ICIsIHRpbWVvdXRTdHJpbmcsCiAgICAgICAgICAgICAg
ICAgIiBidXQgZXhwZWN0ZWQgYSBudW1iZXIuIE5vdCB1c2luZyBhIHRpbWVvdXQuXG4iKTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4s
IDAsICJqc2MgVGltZW91dCBUaHJlYWQiKTsKKyAgICAgICAgICAgIGNyZWF0ZVRocmVhZCh0aW1l
b3V0VGhyZWFkTWFpbiwgMCwgVGhyZWFkTmFtZSB7ICJqc2MgVGltZW91dCBUaHJlYWQiLCAiVGlt
ZW91dFRocmVhZCIgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDcwMzRkYzY5NmI5ZTExNDkyODhj
N2JiOWVkZGVmZTJhYjE2YjE3Y2EuLjU4MmI3MTI2OWUxNTFhYTA0YjhkOTdiZTIzYTQ5YmFlNDAz
ZjM3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpj
cmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJikKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUmVmUHRyPFNhbXBsaW5nUHJvZmlsZXI+IHByb2ZpbGVyID0gdGhpczsKLSAgICBt
X3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoImpzYy5zYW1wbGluZy1wcm9maWxlci50
aHJlYWQiLCBbcHJvZmlsZXJdIHsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJl
YWQoVGhyZWFkTmFtZSB7ICJqc2Muc2FtcGxpbmctcHJvZmlsZXIudGhyZWFkIiwgIlNhbXBsaW5n
IiB9LCBbcHJvZmlsZXJdIHsKICAgICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmluZGV4IGY2
MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0OGY2MGM5NTcyNTZjYjVjMjMuLjUwMGM4YzZkNDAyNTg0Y2Qx
YzQxNGVlNDNmMTg1NmE5YWI3MzhjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAg
ICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxs
YmFja0RhdGEyKDApCi0gICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53
YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6
VXRpbGl0eSkpCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFt
ZSB7ICJqc2Mud2F0Y2hkb2cucXVldWUiLCAiV2F0Y2hkb2ciIH0sIFdvcmtRdWV1ZTo6VHlwZTo6
U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21QbGFuLmNwcAppbmRleCA1OTgwYjUxZTg3NDIyMjM3NTVjZTBjM2RmMmMx
NmIxZGU5ZWM4ZjEyLi5lYjNjZWJiNjYzZGVlMmQ1M2VlNWFlYjY2NjNjMTMzODAyYTY4ODJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCkBAIC0xOTcsNyArMTk3LDcg
QEAgdm9pZCBQbGFuOjpydW4oKQogICAgIFZlY3RvcjxUaHJlYWRJZGVudGlmaWVyPiB0aHJlYWRz
OwogICAgIHRocmVhZHMucmVzZXJ2ZUNhcGFjaXR5KG51bVdvcmtlclRocmVhZHMpOwogICAgIGZv
ciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1Xb3JrZXJUaHJlYWRzOyBpKyspCi0gICAgICAgIHRo
cmVhZHMudW5jaGVja2VkQXBwZW5kKGNyZWF0ZVRocmVhZCgianNjLndhc20tYjMtY29tcGlsYXRp
b24udGhyZWFkIiwgZG9Xb3JrKSk7CisgICAgICAgIHRocmVhZHMudW5jaGVja2VkQXBwZW5kKGNy
ZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRocmVhZCIs
ICJXYXNtQjNDb21waWxlciIgfSwgZG9Xb3JrKSk7CiAKICAgICBkb1dvcmsoKTsgLy8gTGV0IHRo
ZSBtYWluIHRocmVhZCBkbyBzb21lIHdvcmsgdG9vLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAyYTc4MDQ0OTNjOTVmODljZGE2YmYzMWEzODE1OTBmMWNm
YzBlMDRjLi5kMWQxY2U1YzI4N2IzMGUyMWZkYTk2ZjdhMTVlZWE0MjE0MWFlYzMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2OCw2ICszNjgsOCBAQAog
CQlGRTg5MjVCMDFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAv
KiBJbmRlbnRlci5oICovOyB9OwogCQlGRURBQ0QzRDE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tT
dGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi87IH07CiAJCUZFREFD
RDNFMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3Rh
Y2tTdGF0cy5oICovOyB9OworCQk4QUQ4OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRl
cmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE5
QkQ0NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi87IH07CisJCTg5NjZFNDE4
NkI5RjRFQzFBQ0MyMjVDQSAvKiBUaHJlYWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMUUyRTVERTZFRDY0NENBOTE4OEVCNTUgLyogVGhyZWFk
TmFtZS5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2lu
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC03NDgsNiArNzUwLDggQEAKIAkJ
RkU4OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluZGVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFREFDRDNCMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YWNrU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja1N0YXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVy
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQVNDSUlMaXRlcmFsLmg7IHBh
dGggPSBBU0NJSUxpdGVyYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjFFMkU1
REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gVGhyZWFkTmFtZS5oOyBwYXRoID0gVGhyZWFkTmFtZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMTMyLDYgKzEx
MzYsNyBAQAogCQkJCUU0QTBBRDM4MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuaCAqLywK
IAkJCQlBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgKi8sCiAJ
CQkJQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAqLywKKwkJCQlG
MUUyRTVERTZFRDY0NENBOTE4OEVCNTUgLyogVGhyZWFkTmFtZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSB3dGY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTIyMCw2ICsxMjI1LDcg
QEAKIAkJCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCAq
LywKIAkJCQlBOEE0NzMyRDE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCAqLywKIAkJ
CQlBOEE0NzMyRTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggKi8sCisJCQkJNzFBOUJE
NDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSB0ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE1NjgsNiArMTU3NCw4IEBA
CiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIwMDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0M0E0Njk5MUUyMjhCOTEwMDI3NkIwNSAvKiBDb2Rlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODk2NkU0MTg2QjlGNEVDMUFDQzIyNUNBIC8qIFRocmVhZE5hbWUu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRp
dGlvblNwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRU
ZXN0LmNwcAppbmRleCBjYjFkMTAxZTg1NjUyOWU4YWFlYTZhYmY2MGVjMzhlYTBiOGRkZTcyLi4z
ZmE2ODVkZDAzZjM5MzYxZTFiOGE5NDUyNzU3NGU4OWNlYmMzZDIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lk
IHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29uc3VtZXJzOyBpLS07
KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRo
cmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAgICAgICAgVGhyZWFk
TmFtZSB7ICJDb25zdW1lciB0aHJlYWQiLCAiQ29uc3VtZXIiIH0sCiAgICAgICAgICAgICBbJl0g
KCkgewogICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgcmVzdWx0OwpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bVByb2R1Y2VyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVu
dGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJv
ZHVjZXIgVGhyZWFkIiwKKyAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiUHJvZHVjZXIgVGhyZWFk
IiwgIlByb2R1Y2VyIiB9LAogICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgbXVzdE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwIGIvU291cmNlL1dURi9i
ZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCmluZGV4IGYwODMyMWMwZjY4ODM2NTM1ZDgz
Y2I2YmM3NTExODQ4YmI1MmQ5NGYuLmM1MjhmMzIxNDkzOGMxZWZhZGZlMzcwNjNkMTNlMWU5NTRl
MmM1OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgc3RydWN0IEJlbmNobWFyayB7CiAgICAgICAgIGZvciAodW5zaWduZWQg
dGhyZWFkSW5kZXggPSBudW1UaHJlYWRzOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAg
Y291bnRzW3RocmVhZEluZGV4XSA9IDA7CiAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEluZGV4
XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAiQmVuY2htYXJrIFRocmVhZCIsCisg
ICAgICAgICAgICAgICAgVGhyZWFkTmFtZSB7ICJCZW5jaG1hcmsgdGhyZWFkIiwgIkJlbmNobWFy
a1J1bm5lciIgfSwKICAgICAgICAgICAgICAgICBbJiwgdGhyZWFkSW5kZXhdICgpIHsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFtaWNyb3NlY29uZHNJbkNyaXRpY2FsU2VjdGlvbikgewogICAg
ICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGtlZXBHb2luZykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1h
cmtzL0xvY2tTcGVlZFRlc3QuY3BwCmluZGV4IDU0NWQyZTBiMDQ4OGYzMzg5NGE1OTY4OGZkOTFi
MGQzYTM4N2NjYTIuLjViZTZhOTVmMzk1Nzg2ZmUwOGZmNmNkY2YwZWE1MDMwMjAzYWRmMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAorKysgYi9T
b3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAg
c3RydWN0IEJlbmNobWFyayB7CiAKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5k
ZXggPSBudW1UaHJlYWRzUGVyR3JvdXA7IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICAg
ICAgdGhyZWFkc1t0aHJlYWRHcm91cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFk
SW5kZXhdID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICAgICAiQmVuY2htYXJrIHRo
cmVhZCIsCisgICAgICAgICAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiQmVuY2htYXJrIHRocmVh
ZCIsICJCZW5jaG1hcmtSdW5uZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFt0aHJlYWRHcm91
cEluZGV4LCAmbG9ja3MsICZ3b3JkcywgJmtlZXBHb2luZywgJm51bUl0ZXJhdGlvbnNMb2NrLCAm
bnVtSXRlcmF0aW9uc10gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxvY2Fs
V29yZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUgPSAxOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggNGQ4ZmI4NDg5Zjk5Y2I4ZjY3ZTdjYzJkMTNi
ZjQxNTVlZTg3ZTVjNS4uYzY0YzYwODZkNTllOTlhZTUxN2E3ZDQxZmNkNjlmYWEwZDUyOTg5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC05OCw5ICs5OCwxMCBAQCBib29sIEF1
dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgTG9ja0hvbGRlciYsIEF1dG9t
YXRpY1RocmVhZCogdGhyZQogICAgIHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsK
IH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYg
bG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4g
Y29uZGl0aW9uKQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hv
bGRlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbj4gY29uZGl0aW9uLCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2sobG9j
aykKICAgICAsIG1fY29uZGl0aW9uKGNvbmRpdGlvbikKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1l
KQogewogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyks
ICI6IEFsbG9jYXRlZCBBdXRvbWF0aWNUaHJlYWQuXG4iKTsKQEAgLTE1Niw3ICsxNTcsNyBAQCB2
b2lkIEF1dG9tYXRpY1RocmVhZDo6c3RhcnQoY29uc3QgTG9ja0hvbGRlciYpCiAgICAgbV9oYXNV
bmRlcmx5aW5nVGhyZWFkID0gdHJ1ZTsKICAgICAKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVh
ZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIldURjo6QXV0b21hdGljVGhyZWFkIiwKKyAgICAg
ICAgbV9uYW1lLAogICAgICAgICBbPV0gKCkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICAgICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBSdW5uaW5nIGF1dG9t
YXRpYyB0aHJlYWQhXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1Ro
cmVhZC5oIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKaW5kZXggNjkyNmY2MjM2
NTNkNGM1OTIxMzcwY2M0ZDljZWM4ZDA2YzMzZWRhOC4uNzE5ZmNiZGRkNzBjYmNjZDRkZTlmYWI5
NDVkN2IzYTgwMTllOWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmgKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKQEAgLTEzMCw3ICsx
MzAsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhyZWFkIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMg
bG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwgYnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3
b24ndCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUKICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1Ro
cmVhZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPik7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8
TG9jaz4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+LCBUaHJlYWROYW1lKTsKICAg
ICAKICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdp
bmUgdGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBz
bzoKQEAgLTE4Miw2ICsxODIsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGlj
VGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogICAgIGJvb2wg
bV9oYXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKICAgICBDb25kaXRpb24gbV93YWl0Q29u
ZGl0aW9uOwogICAgIENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlvbjsKKyAgICBUaHJlYWRO
YW1lIG1fbmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVs
SGVscGVyUG9vbC5jcHAKaW5kZXggOTQ5MmZkZGRmMTk2NDlkNjViNTEwYjFlNDNjMDJhYTk1MTRj
MDczMS4uMmMzYmYwNzQwODhlMjlhOTkxOGYyOWZhZmY5NGNkMGM1YjYyZDEzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjMsOSArMTIzLDEwIEBAIHZvaWQgUGFy
YWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IHRh
c2spCiAgICAgfQogfQogCi1QYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCgp
CitQYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lIHRocmVh
ZE5hbWUpCiAgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fd29ya0F2
YWlsYWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQorICAg
ICwgbV9uYW1lKHRocmVhZE5hbWUpCiB7CiB9CiAKQEAgLTE3MSw3ICsxNzIsNyBAQCB2b2lkIFBh
cmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBv
b2w6OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYgcG9vbCkKLSAg
ICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtB
dmFpbGFibGVDb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgcG9v
bC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLCBwb29sLm5hbWUoKSkKICAg
ICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBl
clBvb2wuaAppbmRleCA4MTYzNWJiNzgxOTAwM2FjOWQ3ZjRhNjgxY2M1NTQ0ZTkwZGE3ZDkxLi5l
ZGMxYWVlMWEyNGFkN2I4MDQ2NTIyMTU1YWY2NGJhMDRkYmNiYmUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJh
bGxlbEhlbHBlclBvb2wuaApAQCAtMTc5LDcgKzE3OSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVy
Q2xpZW50IHsKIAogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogcHVibGljOgotICAgIFdURl9FWFBPUlRf
UFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFy
YWxsZWxIZWxwZXJQb29sKFRocmVhZE5hbWUpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFy
YWxsZWxIZWxwZXJQb29sKCk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVU
aHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOwpAQCAtMTg4LDYgKzE4OCw4IEBAIGNsYXNzIFBh
cmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhl
bHBlclBvb2w+IHsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkb1NvbWVIZWxw
aW5nKCk7CiAKKyAgICBUaHJlYWROYW1lIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
KwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CiAgICAg
Y2xhc3MgVGhyZWFkOwpAQCAtMjA3LDYgKzIwOSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9v
bCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAg
ICAKICAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVudHM7CiAgICAgVmVj
dG9yPFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+PiBtX3RocmVhZHM7CisgICAgVGhyZWFkTmFtZSBt
X25hbWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlzIGNhbiBiZSBs
YXJnZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhyZWFkcyBvbmx5
IG9uY2UgdGhlcmUgaXMgd29yay4KICAgICBib29sIG1faXNEeWluZyB7IGZhbHNlIH07CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCA0MDIzZjQzZTZmMjBhMzhl
MTAzZTdjOWEyZTRmMGY3ZTA2MTA1NzE0Li4xYWJkMjJmYjdmNDYyNzRjOTNiMDU5NzM5ZGQzNzEw
YTc2OWU2ODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmlj
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtOTQs
NyArOTQsNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxv
Y2tGb3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogICAgIH0KIAogICAgIGlmICghbV90
aHJlYWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgmUGFyYWxsZWxFbnZp
cm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCAiUGFyYWxsZWwgd29y
a2VyIik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoJlBhcmFsbGVsRW52aXJv
bm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCwgdGhpcywgVGhyZWFkTmFtZSB7ICJQ
YXJhbGxlbCB3b3JrZXIiLCAiUGFyYWxsZWxXb3JrZXIiIH0pOwogCiAgICAgaWYgKG1fdGhyZWFk
SUQpCiAgICAgICAgIG1fcGFyZW50ID0gcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVGhyZWFkTmFtZS5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkTmFtZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZhYzUxOWUwYTdhNjhjOTMxYjcyNTBhYjdkZTkxNTY0NjdhNTkwZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1BsYXRmb3Jt
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsKKwor
Y2xhc3MgVGhyZWFkTmFtZSB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dW5zaWduZWQgbG9uZ05h
bWVDb3VudCwgdW5zaWduZWQgc2hvcnROYW1lQ291bnQ+CisgICAgZXhwbGljaXQgY29uc3RleHBy
IFRocmVhZE5hbWUoY29uc3QgY2hhciAoJmxvbmdOYW1lKVtsb25nTmFtZUNvdW50XSwgY29uc3Qg
Y2hhciAoJnNob3J0TmFtZSlbc2hvcnROYW1lQ291bnRdKQorICAgICAgICA6IG1fbG9uZ05hbWUo
bG9uZ05hbWUpCisgICAgICAgICwgbV9zaG9ydE5hbWUoc2hvcnROYW1lKQorICAgIHsKKyNpZiBP
UyhMSU5VWCkKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdHJpbmdDb3VudChzaG9ydE5hbWUpIDw9
ICgxNiAtIDEpLCAiIik7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0cmluZ0NvdW50KCJXZWJLaXQ6ICIpICsgc3RyaW5nQ291bnQoc2hvcnROYW1lKSA8PSAoMzIg
LSAxKSwgIiIpOworI2VuZGlmCisgICAgfQorCisgICAgQ1N0cmluZyBuYW1lKCkgY29uc3QKKyAg
ICB7CisjaWYgT1MoTElOVVgpCisgICAgICAgIHJldHVybiBtX3Nob3J0TmFtZTsKKyNlbGlmIE9T
KFdJTkRPV1MpCisgICAgICAgIHJldHVybiBwcmVmaXhlZE5hbWUobV9zaG9ydE5hbWUpOworI2Vs
c2UKKyAgICAgICAgcmV0dXJuIHByZWZpeGVkTmFtZShtX2xvbmdOYW1lKTsKKyNlbmRpZgorICAg
IH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzdHJpbmdDb3VudD4KKyAgICBz
dGF0aWMgY29uc3RleHByIHN0cmluZ0xlbmd0aChjb25zdCBjaGFyICgmKVtzdHJpbmdDb3VudF0p
CisgICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQ291bnQgLSAxOworICAgIH0KKworICAgIHN0
YXRpYyBDU3RyaW5nIHByZWZpeGVkTmFtZShjb25zdCBjaGFyKiBjb250ZW50KQorICAgIHsKKyAg
ICAgICAgY29uc3RleHByIHNpemVfdCBwcmVmaXhMZW5ndGggPSBzdHJpbmdMZW5ndGgoIldlYktp
dDogIik7CisgICAgICAgIHNpemVfdCBjb250ZW50TGVuZ3RoID0gc3RybGVuKGNvbnRlbnQpOwor
ICAgICAgICBjaGFyKiBidWZmZXIgPSBudWxscHRyOworICAgICAgICBDU3RyaW4gc3RyaW5nID0g
Q1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChwcmVmaXhMZW5ndGggKyBjb250ZW50TGVuZ3RoLCBi
dWZmZXIpOworICAgICAgICBtZW1jcHkoYnVmZmVyLCAiV2ViS2l0OiAiLCBwcmVmaXhMZW5ndGgp
OworICAgICAgICBidWZmZXIgKz0gcHJlZml4TGVuZ3RoOworICAgICAgICBtZW1jcHkoYnVmZmVy
LCBjb250ZW50LCBjb250ZW50TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICB9
CisKKyAgICBjb25zdCBjaGFyKiBtX2xvbmdOYW1lOworICAgIGNvbnN0IGNoYXIqIG1fc2hvcnRO
YW1lOworfTsKKworfQorCit1c2luZyBXVEY6OlRocmVhZE5hbWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcApp
bmRleCA0MGNlMzlhNDVkMzU0MGEyM2ZkNTg3OGNmOTA2N2VhZmQ3NjgxMzNjLi4xM2RmNTMyYzM5
NGEzMTMzMzU0YTU0MzBiODA0OGMwMjJhYTgzMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKQEAgLTM2
LDM4ICszNiwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKIHN0cnVjdCBOZXdUaHJlYWRDb250ZXh0IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdCBjaGFyKiBu
YW1lOworICAgIFRocmVhZE5hbWUgbmFtZTsKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50
cnlQb2ludDsKICAgICBNdXRleCBjcmVhdGlvbk11dGV4OwogfTsKIAotY29uc3QgY2hhciogbm9y
bWFsaXplVGhyZWFkTmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKQotewotI2lmIEhBVkUoUFRI
UkVBRF9TRVROQU1FX05QKQotICAgIHJldHVybiB0aHJlYWROYW1lOwotI2Vsc2UKLSAgICAvLyBU
aGlzIG5hbWUgY2FuIGJlIGNvbS5hcHBsZS5XZWJLaXQuUHJvY2Vzc0xhdW5jaGVyIG9yIGNvbS5h
cHBsZS5Db3JlSVBDLlJlY2VpdmVRdWV1ZS4KLSAgICAvLyBXZSBhcmUgdXNpbmcgdGhvc2UgbmFt
ZXMgZm9yIHRoZSB0aHJlYWQgbmFtZSwgYnV0IGJvdGggYXJlIGxvbmdlciB0aGFuIHRoZSBsaW1p
dCBvZgotICAgIC8vIHRoZSBwbGF0Zm9ybSB0aHJlYWQgbmFtZSBsZW5ndGgsIDMyIGZvciBXaW5k
b3dzIGFuZCAxNiBmb3IgTGludXguCi0gICAgU3RyaW5nVmlldyByZXN1bHQodGhyZWFkTmFtZSk7
Ci0gICAgc2l6ZV90IHNpemUgPSByZXN1bHQucmV2ZXJzZUZpbmQoJy4nKTsKLSAgICBpZiAoc2l6
ZSAhPSBub3RGb3VuZCkKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZyhzaXplICsg
MSk7Ci0KLSNpZiBPUyhXSU5ET1dTKQotICAgIGNvbnN0ZXhwciBjb25zdCBzaXplX3Qga1Zpc3Vh
bFN0dWRpb1RocmVhZE5hbWVMaW1pdCA9IDMyIC0gMTsKLSAgICBpZiAocmVzdWx0Lmxlbmd0aCgp
ID4ga1Zpc3VhbFN0dWRpb1RocmVhZE5hbWVMaW1pdCkKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0
LnJpZ2h0KGtWaXN1YWxTdHVkaW9UaHJlYWROYW1lTGltaXQpOwotI2VsaWYgT1MoTElOVVgpCi0g
ICAgY29uc3RleHByIGNvbnN0IHNpemVfdCBrTGludXhUaHJlYWROYW1lTGltaXQgPSAxNiAtIDE7
Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtMaW51eFRocmVhZE5hbWVMaW1pdCkKLSAgICAg
ICAgcmVzdWx0ID0gcmVzdWx0LnJpZ2h0KGtMaW51eFRocmVhZE5hbWVMaW1pdCk7Ci0jZW5kaWYK
LSAgICBBU1NFUlQocmVzdWx0LmNoYXJhY3RlcnM4KClbcmVzdWx0Lmxlbmd0aCgpXSA9PSAnXDAn
KTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4ocmVzdWx0LmNoYXJh
Y3RlcnM4KCkpOwotI2VuZGlmCi19Ci0KIHN0YXRpYyB2b2lkIHRocmVhZEVudHJ5UG9pbnQodm9p
ZCogY29udGV4dERhdGEpCiB7CiAgICAgTmV3VGhyZWFkQ29udGV4dCogY29udGV4dCA9IHN0YXRp
Y19jYXN0PE5ld1RocmVhZENvbnRleHQqPihjb250ZXh0RGF0YSk7CkBAIC04OCw3ICs2MSw3IEBA
IHN0YXRpYyB2b2lkIHRocmVhZEVudHJ5UG9pbnQodm9pZCogY29udGV4dERhdGEpCiAgICAgZW50
cnlQb2ludCgpOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChjb25zdCBjaGFy
KiBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50cnlQb2ludCkKK1RocmVhZElkZW50aWZp
ZXIgY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVu
dHJ5UG9pbnQpCiB7CiAgICAgTmV3VGhyZWFkQ29udGV4dCogY29udGV4dCA9IG5ldyBOZXdUaHJl
YWRDb250ZXh0IHsgbmFtZSwgV1RGTW92ZShlbnRyeVBvaW50KSwgeyB9IH07CiAKQEAgLTk4LDcg
KzcxLDcgQEAgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFtZSwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQKICAgICByZXR1cm4gY3JlYXRlVGhyZWFk
SW50ZXJuYWwodGhyZWFkRW50cnlQb2ludCwgY29udGV4dCwgbmFtZSk7CiB9CiAKLVRocmVhZElk
ZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRh
dGEsIGNvbnN0IGNoYXIqIG5hbWUpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJl
YWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBUaHJlYWROYW1lIG5hbWUpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZVRocmVhZChuYW1lLCBbZW50cnlQb2ludCwgZGF0YV0gewogICAgICAg
ICBlbnRyeVBvaW50KGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
LmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCAzMDUwZGQ4ZGY4NDhiNmU1YTA5
YzhlNzNhYWFjZjU0MDdmOGE0YjY1Li5kYzNhZWFiNzkyNzBhYmEzNTJmNjU5OGM2ODAwZjg1NzFh
OGNjZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmcuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPHd0Zi9B
dG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWROYW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4K
IApAQCAtNTUsNyArNTYsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbml0aWFsaXplVGhy
ZWFkaW5nKCk7CiAKIC8vIFJldHVybnMgMCBpZiB0aHJlYWQgY3JlYXRpb24gZmFpbGVkLgogLy8g
VGhlIHRocmVhZCBuYW1lIG11c3QgYmUgYSBsaXRlcmFsIHNpbmNlIG9uIHNvbWUgcGxhdGZvcm1z
IGl0J3MgcGFzc2VkIGluIHRvIHRoZSB0aHJlYWQuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFk
SWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogdGhyZWFkTmFtZSwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+KTsKK1dURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0
ZVRocmVhZChUaHJlYWROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogCiAvLyBNYXJrIHRo
ZSBjdXJyZW50IHRocmVhZCBhcyByZXF1aXJpbmcgVUkgcmVzcG9uc2l2ZW5lc3MuCiAvLyByZWxh
dGl2ZVByaW9yaXR5IGlzIGEgdmFsdWUgaW4gdGhlIHJhbmdlIFstMTUsIDBdIHdoZXJlIGEgbG93
ZXIgdmFsdWUgaW5kaWNhdGVzIGEgbG93ZXIgcHJpb3JpdHkuCkBAIC02OCwxNiArNjksMTQgQEAg
V1RGX0VYUE9SVF9QUklWQVRFIGludCB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihUaHJlYWRJZGVu
dGlmaWVyKTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRldGFjaFRocmVhZChUaHJlYWRJZGVu
dGlmaWVyKTsKIAogLy8gRGVwcmVjYXRlZCBmdW5jdGlvbi1wb2ludGVyLWJhc2VkIHRocmVhZCBj
cmVhdGlvbi4KLVdURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVh
ZChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOworV1RGX0VY
UE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9u
LCB2b2lkKiwgVGhyZWFkTmFtZSk7CiAKIC8vIEludGVybmFsIHBsYXRmb3JtLXNwZWNpZmljIGNy
ZWF0ZVRocmVhZCBpbXBsZW1lbnRhdGlvbi4KLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFk
SW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsK
K1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24sIHZv
aWQqLCBUaHJlYWROYW1lKTsKIAogLy8gQ2FsbGVkIGluIHRoZSB0aHJlYWQgZHVyaW5nIGluaXRp
YWxpemF0aW9uLgogLy8gSGVscGZ1bCBmb3IgcGxhdGZvcm1zIHdoZXJlIHRoZSB0aHJlYWQgbmFt
ZSBtdXN0IGJlIHNldCBmcm9tIHdpdGhpbiB0aGUgdGhyZWFkLgotdm9pZCBpbml0aWFsaXplQ3Vy
cmVudFRocmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwotCi1jb25zdCBjaGFy
KiBub3JtYWxpemVUaHJlYWROYW1lKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwordm9pZCBpbml0
aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUpOwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
IGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDBmOWYyZmM3MmM5
ZDNlODkwYzczYWFkYTczOTE1MDRhOTFhNzQyODAuLjUzY2EzOGVhNDdjNzUwNGM3ZTM5ZDlkYTBk
NGJmYmFlNmE0MDVlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJl
YWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTE2
OSw3ICsxNjksNyBAQCBzdGF0aWMgdm9pZCogd3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKiBwYXJh
bSkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJl
YWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBj
aGFyKikKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rp
b24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSkKIHsKICAgICBhdXRvIGludm9j
YXRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbj4oZW50cnlQ
b2ludCwgZGF0YSk7CiAgICAgcHRocmVhZF90IHRocmVhZEhhbmRsZTsKQEAgLTE5MiwxMiArMTky
LDE0IEBAIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rp
b24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uCiAgICAgcmV0dXJuIGVzdGFibGlzaElkZW50
aWZpZXJGb3JQdGhyZWFkSGFuZGxlKHRocmVhZEhhbmRsZSk7CiB9CiAKLXZvaWQgaW5pdGlhbGl6
ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKQordm9pZCBpbml0
aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICNp
ZiBIQVZFKFBUSFJFQURfU0VUTkFNRV9OUCkKLSAgICBwdGhyZWFkX3NldG5hbWVfbnAobm9ybWFs
aXplVGhyZWFkTmFtZSh0aHJlYWROYW1lKSk7CisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5u
YW1lKCk7CisgICAgcHRocmVhZF9zZXRuYW1lX25wKG5hbWUuZGF0YSgpKTsKICNlbGlmIE9TKExJ
TlVYKQotICAgIHByY3RsKFBSX1NFVF9OQU1FLCBub3JtYWxpemVUaHJlYWROYW1lKHRocmVhZE5h
bWUpKTsKKyAgICBhdXRvIG5hbWUgPSB0aHJlYWROYW1lLm5hbWUoKTsKKyAgICBwcmN0bChQUl9T
RVRfTkFNRSwgbmFtZS5kYXRhKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odGhyZWFkTmFt
ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IDU0YjQzZWZlZjM1Y2Q2NjMy
YTcwMDgxNTA3YTViMzc5OWRlZmI2ZmIuLjRjOWJjNTc3YTI2YTkwZGE1NTA5ZDJjNjIzODMxYmZi
ZWY4N2Q0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtMTIxLDE1ICsxMjEsMTYgQEAg
dHlwZWRlZiBzdHJ1Y3QgdGFnVEhSRUFETkFNRV9JTkZPIHsKIH0gVEhSRUFETkFNRV9JTkZPOwog
I3ByYWdtYSBwYWNrKHBvcCkKIAotdm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFs
KGNvbnN0IGNoYXIqIHN6VGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJ
bnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgQ09NUElMRVIoTUlOR1cpCiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0aHJlYWQgbmFtZSBzZXR0aW5nIHdpdGggTWluZ1cuCi0g
ICAgVU5VU0VEX1BBUkFNKHN6VGhyZWFkTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5h
bWUpOwogI2Vsc2UKKyAgICBhdXRvIG5hbWUgPSB0aHJlYWROYW1lLm5hbWUoKTsKICAgICBUSFJF
QUROQU1FX0lORk8gaW5mbzsKICAgICBpbmZvLmR3VHlwZSA9IDB4MTAwMDsKLSAgICBpbmZvLnN6
TmFtZSA9IG5vcm1hbGl6ZVRocmVhZE5hbWUoc3pUaHJlYWROYW1lKTsKKyAgICBpbmZvLnN6TmFt
ZSA9IG5hbWUuZGF0YSgpOwogICAgIGluZm8uZHdUaHJlYWRJRCA9IEdldEN1cnJlbnRUaHJlYWRJ
ZCgpOwogICAgIGluZm8uZHdGbGFncyA9IDA7CiAKQEAgLTE5OSw3ICsyMDAsNyBAQCBzdGF0aWMg
dW5zaWduZWQgX19zdGRjYWxsIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAgICAg
cmV0dXJuIDA7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhy
ZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciogdGhyZWFkTmFt
ZSkKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24g
ZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogICAgIHVu
c2lnbmVkIHRocmVhZElkZW50aWZpZXIgPSAwOwogICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFk
SUQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKaW5kZXggYjJhMGE3OWY0YWI1YWFjMjg5YjE2OWY5MmJi
YzFhODA1ODUyY2EzMi4uYzc2NDc4ZmQ1NjNiN2U4YTlmMTdmNGI0YTc3MDhmNDgxZTQwOWM3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrUXVldWUuY3BwCkBAIC0zOSwxMiArMzksMTIgQEAKIAogbmFtZXNwYWNlIFdURiB7
CiAKLVJlZjxXb3JrUXVldWU+IFdvcmtRdWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUsIFR5
cGUgdHlwZSwgUU9TIHFvcykKK1JlZjxXb3JrUXVldWU+IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVh
ZE5hbWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdvcmtRdWV1ZShuYW1lLCB0eXBlLCBxb3MpKTsKIH0KIAotV29ya1F1ZXVlOjpXb3JrUXVl
dWUoY29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQorV29ya1F1ZXVlOjpXb3Jr
UXVldWUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgcGxhdGZv
cm1Jbml0aWFsaXplKG5hbWUsIHR5cGUsIHFvcyk7CiB9CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQg
V29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIGNvbnN0IHN0ZDo6
ZnVuY3Rpb248dm9pZCAoc2l6CiAKICAgICAgICAgICAgIG1fd29ya2Vycy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHRocmVhZENvdW50KTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB0aHJlYWRDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVu
ZChjcmVhdGVUaHJlYWQoU3RyaW5nOjpmb3JtYXQoIlRocmVhZFBvb2wgV29ya2VyICV1IiwgaSku
dXRmOCgpLmRhdGEoKSwgW3RoaXNdIHsKKyAgICAgICAgICAgICAgICBtX3dvcmtlcnMuYXBwZW5k
KGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgIlRocmVhZFBvb2wgV29ya2VyIiwgIkNvbmN1cnJl
bnRBcHBseSIgfSwgW3RoaXNdIHsKICAgICAgICAgICAgICAgICAgICAgdGhyZWFkQm9keSgpOwog
ICAgICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1dvcmtRdWV1ZS5oIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKaW5kZXggZDkx
ODRiNDgyN2JmMTBiYTM4YTQ4MTQ4MDViMmYzMzY0NmQ3NmUwMy4uNDI3MjRhZjY4M2RkYTE3NmE2
ZDZlMDZjNDliNDhmNjg5M2RiNDkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1
ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbkRpc3BhdGNo
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRO
YW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgVVNFKENPQ09BX0VWRU5U
X0xPT1ApCkBAIC02Nyw3ICs2OCw3IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6IHB1YmxpYyBG
dW5jdGlvbkRpc3BhdGNoZXIgewogICAgICAgICBCYWNrZ3JvdW5kCiAgICAgfTsKIAotICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVmPFdvcmtRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIq
IG5hbWUsIFR5cGUgPSBUeXBlOjpTZXJpYWwsIFFPUyA9IFFPUzo6RGVmYXVsdCk7CisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoVGhyZWFkTmFtZSwg
VHlwZSA9IFR5cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsKICAgICB2aXJ0dWFsIH5X
b3JrUXVldWUoKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoKEZ1bmN0
aW9uPHZvaWQgKCk+JiYpIG92ZXJyaWRlOwpAQCAtODUsOSArODYsOSBAQCBjbGFzcyBXb3JrUXVl
dWUgZmluYWwgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVyIHsKICNlbmRpZgogCiBwcml2YXRl
OgotICAgIGV4cGxpY2l0IFdvcmtRdWV1ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOwor
ICAgIGV4cGxpY2l0IFdvcmtRdWV1ZShUaHJlYWROYW1lLCBUeXBlLCBRT1MpOwogCi0gICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKTsKKyAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lLCBUeXBlLCBRT1MpOwogICAgIHZvaWQg
cGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwIGIvU291cmNl
L1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCmluZGV4IDhlZGJmMjNjNTU4ODg4Mjk2
YzE0YzhjOWQwZWUwYzRmNjMzMGIzMjMuLmUxNTcxNWQxNzIxNTQ0ZDY4ZGFjNWFlY2M1MTZiZWIx
MzUwZDdhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29h
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKQEAgLTc5
LDcgKzc5LDcgQEAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgdGFyZ2V0UXVldWVGb3JRT1NDbGFz
cyhXb3JrUXVldWU6OlFPUyBxb3MpCiB9CiAjZW5kaWYKIAotdm9pZCBXb3JrUXVldWU6OnBsYXRm
b3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCit2b2lk
IFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSB0eXBl
LCBRT1MgcW9zKQogewogICAgIGRpc3BhdGNoX3F1ZXVlX2F0dHJfdCBhdHRyID0gdHlwZSA9PSBU
eXBlOjpDb25jdXJyZW50ID8gRElTUEFUQ0hfUVVFVUVfQ09OQ1VSUkVOVCA6IERJU1BBVENIX1FV
RVVFX1NFUklBTDsKICNpZiBIQVZFKFFPU19DTEFTU0VTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3Bh
dGNoUXVldWVFZmwuY3BwCmluZGV4IGI0YWQyYmRjNDM4ZjlkOTQ1N2UzZjdmYjQ5MjI0YzY4MTU5
NzZkYWYuLjJmMTBiMDJhMGUxOTNjMmYyOTJlYzkwYzJiYzJiMjhlNGVkM2M4OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGlj
IGNvbnN0IGNoYXIgd2FrZVVwVGhyZWFkTWVzc2FnZSA9ICdXJzsKIAogY2xhc3MgRGlzcGF0Y2hR
dWV1ZTo6VGhyZWFkQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgc3RhcnQoY29u
c3QgY2hhciogbmFtZSwgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVlKQor
ICAgIHN0YXRpYyB2b2lkIHN0YXJ0KFRocmVhZE5hbWUgbmFtZSwgUGFzc1JlZlB0cjxEaXNwYXRj
aFF1ZXVlPiBkaXNwYXRjaFF1ZXVlKQogICAgIHsKICAgICAgICAgLy8gVGhlIERpc3BhdGNoUXVl
dWVUaHJlYWRDb250ZXh0IGluc3RhbmNlIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSB0aHJlYWQgZnVu
Y3Rpb24gYW5kIGRlbGV0ZWQgaW4gaXQuCiAgICAgICAgIGRldGFjaFRocmVhZChjcmVhdGVUaHJl
YWQocmVpbnRlcnByZXRfY2FzdDxXVEY6OlRocmVhZEZ1bmN0aW9uPigmVGhyZWFkQ29udGV4dDo6
ZnVuY3Rpb24pLCBuZXcgVGhyZWFkQ29udGV4dChkaXNwYXRjaFF1ZXVlKSwgbmFtZSkpOwpAQCAt
NjEsNyArNjEsNyBAQCBjbGFzcyBEaXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0IHsKICAgICBS
ZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gbV9kaXNwYXRjaFF1ZXVlOwogfTsKIAotUGFzc1JlZlB0cjxE
aXNwYXRjaFF1ZXVlPiBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUoY29uc3QgY2hhciogbmFtZSkKK1Bh
c3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUg
bmFtZSkKIHsKICAgICBSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSA9IGFkb3B0
UmVmPERpc3BhdGNoUXVldWU+KG5ldyBEaXNwYXRjaFF1ZXVlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oIGIvU291cmNlL1dURi93dGYvZWZs
L0Rpc3BhdGNoUXVldWVFZmwuaAppbmRleCBmYzU1NTE5YjAxY2VlOGZlMDQ5YzEzYzFlNWZjZmM3
ZDk5Nzk0ZjI2Li41NzA5NDI2ZGJhZWJhYTcxMTVmNjI4MjZiYzI0ZGQ0ZmIyZTQxZTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHd0Zi9UaHJl
YWROYW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBA
IC0zNyw3ICszOCw3IEBAIGNsYXNzIFdvcmtJdGVtOwogCiBjbGFzcyBEaXNwYXRjaFF1ZXVlIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BhdGNoUXVldWU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFt
ZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gY3JlYXRlKFRocmVhZE5h
bWUpOwogICAgIH5EaXNwYXRjaFF1ZXVlKCk7CiAKICAgICB2b2lkIGRpc3BhdGNoKHN0ZDo6dW5p
cXVlX3B0cjxXb3JrSXRlbT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL1dvcmtR
dWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcAppbmRleCBk
YTkxM2JmMDRjZTcyNzMxMDc2N2VmNDc5NGZkZDJiODc4YTVmNGVkLi44MzI1ZjVkNmMzMTRkNGZi
YjgzMzNmMjE5MGQzZmJjZjE5NDdlMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwv
V29ya1F1ZXVlRWZsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNw
cApAQCAtMjUsNyArMjUsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdm9pZCBXb3JrUXVldWU6
OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdv
cmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQog
ewogICAgIG1fZGlzcGF0Y2hRdWV1ZSA9IERpc3BhdGNoUXVldWU6OmNyZWF0ZShuYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCmluZGV4IGY1OTRl
MjQwMTE2ZDRlMDQzZDRkYzNhM2Y2Y2Y3YzA3ZDRiMjM0NDIuLmRmNmUwNzIyZDFlNDAzYzdhYjk3
MDA3MGQ1N2Y2M2I2MjYxMjQyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMv
V29ya1F1ZXVlR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVl
dWVHZW5lcmljLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hh
ciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShU
aHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2lu
aXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgIG1fd29ya1F1ZXVlVGhyZWFkID0g
Y3JlYXRlVGhyZWFkKG5hbWUsIFt0aGlzXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0FTQ0lJTGl0ZXJhbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zOTQ2YTkyOTg0Zjk0NGIxMzVkNzAyOWY1MzFkZDcxYjhjYTY5OTY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwuaApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBBU0NJSUxpdGVy
YWwgeworcHVibGljOgorICAgIGV4cGxpY2l0IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwoY29uc3Qg
Y2hhciogY2hhcmFjdGVycykKKyAgICAgICAgOiBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykKKyAg
ICB7CisgICAgfQorCisgICAgY29uc3RleHByIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2NoYXJhY3RlcnM7CisgICAgfQorCitwcml2YXRlOgor
ICAgIGNvbnN0IGNoYXIqIG1fY2hhcmFjdGVyczsKK307CisKK30KKwordXNpbmcgV1RGOjpBU0NJ
SUxpdGVyYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIv
U291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCAwMWM3NjgxMGJkNmNkMWVkYmJl
ZjhhZmVkODQyZjgwODBkZjdkYWQzLi44MGU2NDQ3MWZlZDA4ODc0MDUzMzY1M2Y2ZjRlNjk2ZWFl
MDRiMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTI2LDYgKzI2LDcgQEAKIC8vIG9u
IHN5c3RlbXMgd2l0aG91dCBjYXNlLXNlbnNpdGl2ZSBmaWxlIHN5c3RlbXMuCiAKICNpbmNsdWRl
IDx3dGYvdGV4dC9BU0NJSUZhc3RQYXRoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlMaXRl
cmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogCiAjaWZkZWYgX19PQkpD
X18KQEAgLTM0LDggKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLWNsYXNzIEFTQ0lJTGl0
ZXJhbDsKLQogLy8gRGVjbGFyYXRpb25zIG9mIHN0cmluZyBvcGVyYXRpb25zCiAKIFdURl9FWFBP
UlRfU1RSSU5HX0FQSSBpbnQgY2hhcmFjdGVyc1RvSW50U3RyaWN0KGNvbnN0IExDaGFyKiwgc2l6
ZV90LCBib29sKiBvayA9IG51bGxwdHIsIGludCBiYXNlID0gMTApOwpAQCAtNjgxLDE1ICs2ODAs
NiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxTdHJpbmc+IHsKIAogdGVtcGxhdGUg
PD4gc3RydWN0IFZlY3RvclRyYWl0czxTdHJpbmc+IDogU2ltcGxlQ2xhc3NWZWN0b3JUcmFpdHMg
eyB9OwogCi1jbGFzcyBBU0NJSUxpdGVyYWwgewotcHVibGljOgotICAgIGV4cGxpY2l0IEFTQ0lJ
TGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKSA6IG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJz
KSB7IH0KLSAgICBvcGVyYXRvciBjb25zdCBjaGFyKigpIHsgcmV0dXJuIG1fY2hhcmFjdGVyczsg
fQotCi1wcml2YXRlOgotICAgIGNvbnN0IGNoYXIqIG1fY2hhcmFjdGVyczsKLX07Ci0KIC8vIFNo
YXJlZCBnbG9iYWwgZW1wdHkgc3RyaW5nLgogV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGNvbnN0IFN0
cmluZyYgZW1wdHlTdHJpbmcoKTsKIApAQCAtNzM4LDcgKzcyOCw2IEBAIHVzaW5nIFdURjo6Zmlu
ZDsKIHVzaW5nIFdURjo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVyczsKIHVzaW5nIFdURjo6aXNTcGFj
ZU9yTmV3bGluZTsKIHVzaW5nIFdURjo6cmV2ZXJzZUZpbmQ7Ci11c2luZyBXVEY6OkFTQ0lJTGl0
ZXJhbDsKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93
aW4vTWFpblRocmVhZFdpbi5jcHAKaW5kZXggZjMyNGU4YjYxZGQ0MWZhMDU2MDg2M2I2YzU4MTkx
MGY4NjdkMzZlYi4uZDE4ZjZhOGIyZjM0NGEzZmE3NWExNzFjZTgxY2RhOTZiYWNlOGEzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIGlu
aXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKQogICAgICAgICBDV19VU0VERUZBVUxULCAwLCBD
V19VU0VERUZBVUxULCAwLCBIV05EX01FU1NBR0UsIDAsIDAsIDApOwogICAgIHRocmVhZGluZ0Zp
cmVkTWVzc2FnZSA9IFJlZ2lzdGVyV2luZG93TWVzc2FnZVcoTCJjb20uYXBwbGUuV2ViS2l0Lk1h
aW5UaHJlYWRGaXJlZCIpOwogCi0gICAgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCgi
TWFpbiBUaHJlYWQiKTsKKyAgICBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVh
ZE5hbWUgeyAiTWFpbiBUaHJlYWQiLCAiTWFpblRocmVhZCIgfSk7CiB9CiAKIHZvaWQgc2NoZWR1
bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVhZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVX
aW4uY3BwCmluZGV4IGY0YzRiOGM3N2RjZTk5NWY1N2YyNTY3MDJjMWY5Y2VmOGM2NWE1YWEuLjcx
MjRhY2ZjOTdkY2FlOWEyMjE0ODQyNjgyOWI4NGQzNmQ4MmMyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9X
b3JrUXVldWVXaW4uY3BwCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpwZXJmb3Jt
V29ya09uUmVnaXN0ZXJlZFdvcmtUaHJlYWQoKQogICAgIG1fZnVuY3Rpb25RdWV1ZUxvY2sudW5s
b2NrKCk7CiB9CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hh
ciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShU
aHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAgICBtX2lzV29ya1RocmVhZFJlZ2lzdGVy
ZWQgPSAwOwogICAgIG1fdGltZXJRdWV1ZSA9IDo6Q3JlYXRlVGltZXJRdWV1ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cAppbmRleCA4NzQ3NjQzOGNhZTY1YTYzODdkOTAxYTc1Mjg4MTVlYzk1NDdmMjMyLi5mMmIwOWQ4
ZTc2ZmUyZjhhMTczYmI5OTI2Njc1N2JjMTBlNjg5NTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTYsNyAr
NTYsNyBAQCBJREJTZXJ2ZXI6OklEQlNlcnZlcihJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxl
SGFuZGxlciYgZmlsZUhhbmRsZXIpCiAgICAgOiBtX2JhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVI
YW5kbGVyKGZpbGVIYW5kbGVyKQogewogICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFz
ZVRocmVhZENyZWF0aW9uTG9jayk7Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJT
ZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVy
Iik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhy
ZWFkRW50cnksIHRoaXMsIFRocmVhZE5hbWUgeyAiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIsICJJ
REJTZXJ2ZXIiIH0pOwogfQogCiBJREJTZXJ2ZXI6OklEQlNlcnZlcihjb25zdCBTdHJpbmcmIGRh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIm
IGZpbGVIYW5kbGVyKQpAQCAtNjYsNyArNjYsNyBAQCBJREJTZXJ2ZXI6OklEQlNlcnZlcihjb25z
dCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYQog
ICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIgY3JlYXRlZCBhdCBwYXRoICVzIiwgZGF0YWJh
c2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgTG9ja2VyPExvY2s+IGxvY2tl
cihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgIkluZGV4ZWREYXRh
YmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6
ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgVGhyZWFkTmFtZSB7ICJJbmRleGVkRGF0YWJhc2Ug
U2VydmVyIiwgIklEQlNlcnZlciIgfSk7CiB9CiAKIHZvaWQgSURCU2VydmVyOjpyZWdpc3RlckNv
bm5lY3Rpb24oSURCQ29ubmVjdGlvblRvQ2xpZW50JiBjb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcAppbmRl
eCAyOTJmMDViOGNkNTA2ZTIyOWFlNmI4YmQ4NjI5YzA5NTRkMTg0NTliLi5iZGIwOWQ3MGQ4ZTA2
ZWI2NWZhMDBmNWY1YTE4ZGQyNjgwYWY2ZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcApAQCAtMzksNyArMzksNyBA
QCBBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRpb0RlY29kZXIoKQogewogICAgIC8vIFN0YXJ0
IHdvcmtlciB0aHJlYWQuCiAgICAgTG9ja0hvbGRlciBsb2NrKG1fdGhyZWFkQ3JlYXRpb25NdXRl
eCk7Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChBc3luY0F1ZGlvRGVjb2Rlcjo6dGhy
ZWFkRW50cnksIHRoaXMsICJBdWRpbyBEZWNvZGVyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0
ZVRocmVhZChBc3luY0F1ZGlvRGVjb2Rlcjo6dGhyZWFkRW50cnksIHRoaXMsIFRocmVhZE5hbWUg
eyAiQXVkaW8gRGVjb2RlciIsICJBdWRpb0RlY29kZXIiIH0pOwogfQogCiBBc3luY0F1ZGlvRGVj
b2Rlcjo6fkFzeW5jQXVkaW9EZWNvZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApp
bmRleCA1MDUyMzA0MTk3Y2RlZGRlNDdmZGNiYjkxMmVjNDc0MDU1Nzk3NDI4Li5lMjc2MzVlMzQy
NjExNWY3OWQ4M2E5NGU0MjJiODMwODc2NGI0ZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpzdGFydFJlbmRlcmluZygpCiAgICAgaWYgKCFtX3N0YXJ0ZWRSZW5kZXJpbmcpIHsKICAgICAg
ICAgbV9zdGFydGVkUmVuZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgcmVmKCk7IC8vIFNlZSBjb3Jy
ZXNwb25kaW5nIGRlcmVmKCkgY2FsbCBpbiBub3RpZnlDb21wbGV0ZURpc3BhdGNoKCkuCi0gICAg
ICAgIG1fcmVuZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6b2ZmbGluZVJlbmRlckVudHJ5LCB0aGlzLCAib2ZmbGluZSByZW5kZXJlciIpOworICAg
ICAgICBtX3JlbmRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGU6Om9mZmxpbmVSZW5kZXJFbnRyeSwgdGhpcywgVGhyZWFkTmFtZSB7ICJvZmZsaW5lIHJl
bmRlcmVyIiwgIk9mZmxpbmVSZW5kZXJlciIgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4
IDBkZGU1ZjcyNjhlZTY0MmMwMDQzMDVjZWZlMzZiMWM5ZTQ0Yjg3ZDMuLjdhYjE4Yzg0ZmQwMDA2
ZGY4MmY3ZjRlZTdiYjllNTE0NmVjZDNmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCkBAIC02Myw3ICs2Myw3IEBA
IGJvb2wgRGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KCkKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNl
VGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogRGF0YWJhc2UiKTsK
KyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRo
cmVhZFN0YXJ0LCB0aGlzLCBUaHJlYWROYW1lIHsgIldlYkNvcmU6IERhdGFiYXNlIiwgIldlYkRC
IiB9KTsKIAogICAgIHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXggNmY5ZmNhNjdmM2M0N2FkZGM4M2RlYzhjYjBk
NWViOGNjYjQwZDc0My4uMzMxMDlmNmUyNjYwMzBiZmE3ZGUzNmQ2Njk3NjFhZDZmM2FmYWVkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCkBAIC0xMDEs
NyArMTAxLDcgQEAgdm9pZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0Tm93SWZOb3REb25l
UmVjZW50bHkoKQogCiB2b2lkIEdDQ29udHJvbGxlcjo6Z2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0
ZVRocmVhZEZvckRlYnVnZ2luZyhib29sIHdhaXRVbnRpbERvbmUpCiB7Ci0gICAgVGhyZWFkSWRl
bnRpZmllciB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChjb2xsZWN0LCAwLCAiV2ViQ29yZTogR0ND
b250cm9sbGVyIik7CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCA9IGNyZWF0ZVRocmVh
ZChjb2xsZWN0LCAwLCBUaHJlYWROYW1lIHsgIldlYkNvcmU6IEdDIENvbnRyb2xsZXIiLCAiR0ND
b250cm9sbGVyIiB9KTsKIAogICAgIGlmICh3YWl0VW50aWxEb25lKSB7CiAgICAgICAgIHdhaXRG
b3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNy
eXB0by5jcHAKaW5kZXggZjY5MWY2YjA5ZjI2YTVkNjk1NGNlMTYzN2IzMjcyNjYwYjE2OWMwMC4u
N2U5OWZkMjQ1YWMwZjg2NjM2MzViN2VjNDQ5ZTQ0YWI0Yzk3MDlkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBTdWJ0bGVDcnlwdG86OlN1YnRsZUNyeXB0byhTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCi0g
ICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5Dcnlw
dG9RdWV1ZSIpKQorICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFt
ZSB7ICJjb20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIiwgIkNyeXB0b1F1ZXVlIiB9KSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCmluZGV4IDVi
ODEzNjExMmFkZGVhMTQ1Yzk1NTkwYThhM2MxNzYxZjFiMWI5ODMuLjQ1Nzk3YTFiZWUxOGQ5ZDgx
YmIxZDQ0MmM0NTAxM2ZlNjA2NmFhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvQXN5bmNGaWxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5j
RmlsZVN0cmVhbS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgY2FsbE9uRmlsZVRo
cmVhZChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogCiAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGNyZWF0ZUZpbGVUaHJlYWRPbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGNyZWF0ZUZp
bGVUaHJlYWRPbmNlLCBbXSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogQXN5bmNG
aWxlU3RyZWFtIiwgW10geworICAgICAgICBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSB7ICJXZWJD
b3JlOiBBc3luY0ZpbGVTdHJlYW0iLCAiQXN5bmNGaWxlU3RyZWFtIiB9LCBbXSB7CiAgICAgICAg
ICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgQXV0b2RyYWluZWRQb29sIHBvb2w7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IGVlNDM3
ZTg2MjhlYmY0ZTg2MzI3Y2M3NzAzMGY1ZjY5NGUzMGJiMmQuLjA2N2VjZGRmMTczMjMyNDY5ZWIw
MmQ0OGU4ZWQ2MTA1YjBkYmRkOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkRhdGFiYXNlLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIGJvb2wgSWNvbkRhdGFiYXNlOjpvcGVu
KGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQogICAgIC8v
IExvY2sgaGVyZSBhcyB3ZWxsIGFzIGZpcnN0IHRoaW5nIGluIHRoZSB0aHJlYWQgc28gdGhlIHRo
cmVhZCBkb2Vzbid0IGFjdHVhbGx5IGNvbW1lbmNlIHVudGlsIHRoZSBjcmVhdGVUaHJlYWQoKSBj
YWxsIAogICAgIC8vIGNvbXBsZXRlcyBhbmQgbV9zeW5jVGhyZWFkUnVubmluZyBpcyBwcm9wZXJs
eSBzZXQKICAgICBtX3N5bmNMb2NrLmxvY2soKTsKLSAgICBtX3N5bmNUaHJlYWQgPSBjcmVhdGVU
aHJlYWQoSWNvbkRhdGFiYXNlOjppY29uRGF0YWJhc2VTeW5jVGhyZWFkU3RhcnQsIHRoaXMsICJX
ZWJDb3JlOiBJY29uRGF0YWJhc2UiKTsKKyAgICBtX3N5bmNUaHJlYWQgPSBjcmVhdGVUaHJlYWQo
SWNvbkRhdGFiYXNlOjppY29uRGF0YWJhc2VTeW5jVGhyZWFkU3RhcnQsIHRoaXMsIFRocmVhZE5h
bWUgeyAiV2ViQ29yZTogSWNvbkRhdGFiYXNlIiwgIkljb25EQiIgfSk7CiAgICAgbV9zeW5jVGhy
ZWFkUnVubmluZyA9IG1fc3luY1RocmVhZDsKICAgICBtX3N5bmNMb2NrLnVubG9jaygpOwogICAg
IGlmICghbV9zeW5jVGhyZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNv
dXJjZVVzYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRo
cmVhZC5jcHAKaW5kZXggOTEyMDBjMzQ1ZjQ1NWY5NmQ0OTRiZmQyYWQ3MDNmMjhjNWM2MjlkMS4u
YWY0ZmY4YjEzMmNhZDEzYWNmNjJhODAzZWNjMDExZjQ3MjVlM2VlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9p
ZCBSZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fdm0gPSAmY29tbW9uVk0oKTsKLSAgICBtX3RocmVhZElkZW50aWZpZXIg
PSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsICJXZWJDb3JlOiBSZXNvdXJjZVVz
YWdlIik7CisgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxi
YWNrLCB0aGlzLCBUaHJlYWROYW1lIHsgIldlYkNvcmU6IFJlc291cmNlVXNhZ2UiLCAiUmVzb3Vy
Y2VVc2FnZSIgfSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6dGhyZWFkQ2FsbGJh
Y2sodm9pZCogcmVzb3VyY2VVc2FnZVRocmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCmluZGV4IDczMGMwYTZiZDkzZjQ1NzhkMWVk
YmY5YWNlMWNkODY1NjZlNmM5ODguLmY2NDE0MjQwYWViNjRjMzc1YTJhZmIyNmI1YzRmOTkzZTJm
MTg2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VGhyZWFkLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFNjcm9sbGluZ1RocmVhZDo6Y3JlYXRl
VGhyZWFkSWZOZWVkZWQoKQogICAgIHsKICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBs
b2NrKG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCk7CiAKLSAgICAgICAgbV90aHJlYWRJZGVudGlm
aWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCAiV2ViQ29yZTogU2Nyb2xs
aW5nIik7CisgICAgICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRD
YWxsYmFjaywgdGhpcywgVGhyZWFkTmFtZSB7ICJXZWJDb3JlOiBTY3JvbGxpbmciLCAiU2Nyb2xs
aW5nIiB9KTsKICAgICAgICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25WYXJpYWJsZS53YWl0KGxvY2ssIFt0aGlzXXsgcmV0dXJuIG1f
dGhyZWFkUnVuTG9vcDsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAppbmRleCBmNzEzMzNjNWEzN2E5OTg5NjRmM2E3NDFj
NzMxNTJlOTUxNDY2Y2Y2Li44YmU0MjcxN2EzOTA0NGRjZjgxMTZmZDQ5YTIyMzdkMzNiN2FmOWE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFz
ZUxvYWRlci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIEhSVEZEYXRhYmFzZUxvYWRlcjo6
bG9hZEFzeW5jaHJvbm91c2x5KCkKICAgICAKICAgICBpZiAoIW1faHJ0ZkRhdGFiYXNlLmdldCgp
ICYmICFtX2RhdGFiYXNlTG9hZGVyVGhyZWFkKSB7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBhc3lu
Y2hyb25vdXMgZGF0YWJhc2UgbG9hZGluZyBwcm9jZXNzLgotICAgICAgICBtX2RhdGFiYXNlTG9h
ZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKGRhdGFiYXNlTG9hZGVyRW50cnksIHRoaXMsICJIUlRG
IGRhdGFiYXNlIGxvYWRlciIpOworICAgICAgICBtX2RhdGFiYXNlTG9hZGVyVGhyZWFkID0gY3Jl
YXRlVGhyZWFkKGRhdGFiYXNlTG9hZGVyRW50cnksIHRoaXMsIFRocmVhZE5hbWUgeyAiSFJURiBk
YXRhYmFzZSBsb2FkZXIiLCAiSFJURkRCTG9hZGVyIiB9KTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCmluZGV4IDk2
ZjMzMDgyODA3OWE3OWFkNjQ4MjBkMDcyMWM1OWM1ZWExNmZkYjEuLmU4OTI5YTE3ZGI2OWJkYTAx
NWViYmI3MTllYzk5YmU5NGJmMjI1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIFJldmVyYkNv
bnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKEF1ZGlvQ2hhbm5lbCogaW1wdWxzZVJlc3BvbnNlLCBz
aXplX3QgcmVuZGVyU2xpCiAgICAgLy8gU3RhcnQgdXAgYmFja2dyb3VuZCB0aHJlYWQKICAgICAv
LyBGSVhNRTogd291bGQgYmUgYmV0dGVyIHRvIHVwIHRoZSB0aHJlYWQgcHJpb3JpdHkgaGVyZS4g
IEl0IGRvZXNuJ3QgbmVlZCB0byBiZSByZWFsLXRpbWUsIGJ1dCBoaWdoZXIgdGhhbiB0aGUgZGVm
YXVsdC4uLgogICAgIGlmICh0aGlzLT51c2VCYWNrZ3JvdW5kVGhyZWFkcygpICYmIG1fYmFja2dy
b3VuZFN0YWdlcy5zaXplKCkgPiAwKQotICAgICAgICBtX2JhY2tncm91bmRUaHJlYWQgPSBjcmVh
dGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5LCB0aGlzLCAiY29udm9sdXRp
b24gYmFja2dyb3VuZCB0aHJlYWQiKTsKKyAgICAgICAgbV9iYWNrZ3JvdW5kVGhyZWFkID0gY3Jl
YXRlVGhyZWFkKFdlYkNvcmU6OmJhY2tncm91bmRUaHJlYWRFbnRyeSwgdGhpcywgVGhyZWFkTmFt
ZSB7ICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIsICJDb252b2x1dGlvbiIgfSk7CiB9
CiAKIFJldmVyYkNvbnZvbHZlcjo6flJldmVyYkNvbnZvbHZlcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxMjk0OTgxNjBmMWJlM2U2Y2ZlN2YwNDc2NGI0
ZDc5ZDQ4ZjhmM2YuLmM1NDA1ZDJiMjc1MDUzNjZiYzJmNmQ1Y2U1YjE3NTc4NzcwNjAyMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zNzAsNyArMzcwLDcg
QEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQg
c2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1
c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25vLCBmbG9h
dCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gcmV0dXJuVmFsdWU7Ci0gICAg
YXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVkaW9GaWxlUmVhZGVyIiwgWyZyZXR1cm5W
YWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0geworICAgIGF1dG8gdGhyZWFk
SUQgPSBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSB7ICJBdWRpb0ZpbGVSZWFkZXIiLCAiQXVkaW9G
aWxlUmVhZGVyIiB9LCBbJnJldHVyblZhbHVlLCBmaWxlUGF0aCwgbWl4VG9Nb25vLCBzYW1wbGVS
YXRlXSB7CiAgICAgICAgIHJldHVyblZhbHVlID0gQXVkaW9GaWxlUmVhZGVyKGZpbGVQYXRoKS5j
cmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsKICAgICB9KTsKICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CkBAIC0zODAsNyArMzgwLDcgQEAgUGFzc1JlZlB0cjxB
dWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwgYm9v
bCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1
ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9Nb25v
LCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gcmV0dXJuVmFsdWU7
Ci0gICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVkaW9GaWxlUmVhZGVyIiwgWyZy
ZXR1cm5WYWx1ZSwgZGF0YSwgZGF0YVNpemUsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0geworICAg
IGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSB7ICJBdWRpb0ZpbGVSZWFk
ZXIiLCAiQXVkaW9GaWxlUmVhZGVyIiB9LCBbJnJldHVyblZhbHVlLCBkYXRhLCBkYXRhU2l6ZSwg
bWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CiAgICAgICAgIHJldHVyblZhbHVlID0gQXVkaW9GaWxl
UmVhZGVyKGRhdGEsIGRhdGFTaXplKS5jcmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsK
ICAgICB9KTsKICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcApp
bmRleCA4MWZiMWY5ODY4ZjMxMGU1MzU5ZDE2MWRjMmRhY2E1Y2M3ZDNhZWQ3Li4wZTI2YjI2ZjYx
Zjc1YWE0MzBlMGIyNzdlNDUwODRlMTk3MThlMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKQEAgLTI1Niw3ICsyNTYs
NyBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6Y2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleChO
YXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUltYWdlLAogUmVmPFdvcmtRdWV1ZT4gSW1hZ2VGcmFtZUNh
Y2hlOjpkZWNvZGluZ1F1ZXVlKCkKIHsKICAgICBpZiAoIW1fZGVjb2RpbmdRdWV1ZSkKLSAgICAg
ICAgbV9kZWNvZGluZ1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuSW1hZ2VE
ZWNvZGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50
ZXJhY3RpdmUpOworICAgICAgICBtX2RlY29kaW5nUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShU
aHJlYWROYW1lIHsgIkltYWdlRGVjb2RlciIsICJJbWFnZURlY29kZXIiIH0sIFdvcmtRdWV1ZTo6
VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKTsKICAgICAKICAg
ICByZXR1cm4gKm1fZGVjb2RpbmdRdWV1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGRhNGE4ODU3M2JhMWI1NWI0ZmVhNTIzODllNGMyNTJm
ZGU5ODQzNC4uMGM2MzIxOTRiYjdjYzAyZTVhNWQ0NDE2YmVkZmM3YTU1MDgzNDE1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdl
YlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTEwNjcsNyArMTA2
Nyw3IEBAIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVh
bWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywKICAgICA6IFN0cmVhbWluZ0NsaWVudChzcmMp
CiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11
dGV4KTsKLSAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCgiUmVzb3VyY2VIYW5kbGVTdHJlYW1p
bmdDbGllbnQiLCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldIHsKKyAgICBtX3Ro
cmVhZCA9IGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgIlJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50IiwgIlJTdHJlYW1pbmciIH0sIFt0aGlzLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0
KV0gewogICAgICAgICB7CiAgICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2luaXRpYWxp
emVSdW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgICAgICAgICAgbV9ydW5Mb29wID0gJlJ1bkxv
b3A6OmN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4
L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAppbmRleCA0Y2QxYmRkZjNhYjc2
NmEwMDA0OGY4YWM1NzZmYTI4NDdlYzYyNzBkLi4xODNhOTQxYzYwYjQ4NTJhNjczNDE0MDJmZTFi
YTE2YTU4NDM1ODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCkBAIC0xMTcsNyArMTE3LDcg
QEAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKGlu
dCBmZCwgc3RkOjpmdW5jdGlvbjx2b2lkICgKICAgICB9LCB0aGlzLCBudWxscHRyKTsKICAgICBn
X3NvdXJjZV9hdHRhY2gobV9zb3VyY2UuZ2V0KCksIG51bGxwdHIpOwogI2Vsc2UKLSAgICBtX3Ro
cmVhZElEID0gY3JlYXRlVGhyZWFkKCJXZWJDb3JlOiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIiLCBb
dGhpc10geyByZWFkQW5kTm90aWZ5KCk7IH0KKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KFRocmVhZE5hbWUgeyAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyIiwgIk1lbVByZXNzSGFuZGxlciIg
fSwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXgg
ZTE0MzQ1MWZkYWEzMzhjMzcxMDEwYjdmZWRmZGUwNTJhNWUzOTlmNy4uYWU0Yzc5ZjJmMWNmNTYw
Y2Y4ZWFlODUwMTUwMWFhYjk4YmY5MTVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAg
dW5zaWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeUltcGw6OmJsb2JTaXplKGNvbnN0IFVSTCYg
dXJsKQogCiBzdGF0aWMgV29ya1F1ZXVlJiBibG9iVXRpbGl0eVF1ZXVlKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJvcmcud2Via2l0LkJsb2JVdGlsaXR5IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtR
dWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxX
b3JrUXVldWU+PiBxdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgIm9yZy53ZWJr
aXQuQmxvYlV0aWxpdHkiLCAiQmxvYlV0aWxpdHkiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFs
LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpOwogICAgIHJldHVybiBxdWV1ZS5nZXQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJM
RGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNv
ZGVyLmNwcAppbmRleCBhYmZiNDZjZWNmODIxNDNiOWZmYWNkMDFiZTU3ODZhNTNhMDA4ZWMwLi5h
ZWEyZjg2NzZlZDhlNzQ1NzUzNzYzMTM5MmRjZDU1ZWMwZTE5NDNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgRGF0YVVSTERlY29kZXIgewogCiBzdGF0aWMgV29ya1F1ZXVlJiBk
ZWNvZGVRdWV1ZSgpCiB7Ci0gICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoIm9yZy53ZWJraXQuRGF0YVVSTERlY29kZXIiKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1
dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJvcmcud2Via2l0LkRh
dGFVUkxEZWNvZGVyIiwgIkRhdGFVUkxEZWNvZGVyIiB9KS5sZWFrUmVmKCk7CiAgICAgcmV0dXJu
IHF1ZXVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKaW5kZXggNDZiODk5NGE4NDFlZjcxZWEyNzljZTc3Y2Jj
OGZiNDNjMjlmMGE2Mi4uNzE4MGFkZDI2Mzg1MjA4MDc4NmI3Y2Q5M2Q4MTBkMjY0ZDAzNmViZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5M
b29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVy
UnVuTG9vcENGLmNwcApAQCAtNzcsNyArNzcsNyBAQCBDRlJ1bkxvb3BSZWYgbG9hZGVyUnVuTG9v
cCgpCiAgICAgc3RkOjp1bmlxdWVfbG9jazxTdGF0aWNMb2NrPiBsb2NrKGxvYWRlclJ1bkxvb3BN
dXRleCk7CiAKICAgICBpZiAoIWxvYWRlclJ1bkxvb3BPYmplY3QpIHsKLSAgICAgICAgY3JlYXRl
VGhyZWFkKHJ1bkxvYWRlclRocmVhZCwgMCwgIldlYkNvcmU6IENGTmV0d29yayBMb2FkZXIiKTsK
KyAgICAgICAgY3JlYXRlVGhyZWFkKHJ1bkxvYWRlclRocmVhZCwgMCwgVGhyZWFkTmFtZSB7ICJX
ZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIiwgIkNGTmV0d29ya0xvYWRlciIgfSk7CiAKICAgICAg
ICAgbG9hZGVyUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9jaywgW10geyByZXR1cm4g
bG9hZGVyUnVuTG9vcE9iamVjdDsgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAppbmRleCA0NDA4Y2QxOTg3
MDViYTg2Y2M4YzE5ODZmYjNlMmNhZGU3OTZkY2M2Li42YzRmZTJkNTY5Y2I3MzkyNDg4YmEyODFl
NTIyMzdlMmI0YzM1MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEN1cmxE
b3dubG9hZE1hbmFnZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQoKQogICAgICAgICBpZiAobV90aHJl
YWRJZCkKICAgICAgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKG1fdGhyZWFkSWQpOwog
ICAgICAgICBzZXRSdW5UaHJlYWQodHJ1ZSk7Ci0gICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVU
aHJlYWQoZG93bmxvYWRUaHJlYWQsIHRoaXMsICJkb3dubG9hZFRocmVhZCIpOworICAgICAgICBt
X3RocmVhZElkID0gY3JlYXRlVGhyZWFkKGRvd25sb2FkVGhyZWFkLCB0aGlzLCBUaHJlYWROYW1l
IHsgImRvd25sb2FkVGhyZWFkIiwgIkRvd25sb2FkZXIiIH0pOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhh
bmRsZUltcGxDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKaW5kZXggZTk0Zjg0YTY4MjMzOTUyZDRjMmM2
NTJjNmIyYWZmMjVkMjY2ZGM2Yi4uYTk4MGY1NGZjMGY2MzRiODRlYTRiN2RiMjNlOTdjYzk1NTZm
YjhkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Nv
Y2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCkBAIC0xOTksNyAr
MTk5LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVhZCgpCiAKICAg
ICByZWYoKTsgLy8gc3RvcFRocmVhZCgpIHdpbGwgY2FsbCBkZXJlZigpLgogCi0gICAgbV93b3Jr
ZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoIldlYlNvY2tldCB0aHJlYWQiLCBbdGhpc10geworICAg
IG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgeyAiV2ViU29ja2V0IHRo
cmVhZCIsICJXZWJTb2NrZXQiIH0sIFt0aGlzXSB7CiAKICAgICAgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA1
MWY0MmY1ZmZmZjJmYTZkYTY4NDU3ZTRkMjI2ZWI2ZjM3NmM0MGRhLi45ZTQ4YmExYmEyMTE1MzY1
OTA4YjBmYTljZTNlNDk2OTYyMzlkMDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgYm9vbCBXb3JrZXJUaHJlYWQ6OnN0YXJ0KCkK
ICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBtX3RocmVh
ZElEID0gY3JlYXRlVGhyZWFkKFdvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQsIHRoaXMs
ICJXZWJDb3JlOiBXb3JrZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKFdvcmtl
clRocmVhZDo6d29ya2VyVGhyZWFkU3RhcnQsIHRoaXMsIFRocmVhZE5hbWUgeyAiV2ViQ29yZTog
V2ViV29ya2VyIiwgIldlYldvcmtlciIgfSk7CiAKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAppbmRleCBiYjY2ZmNlYTdlNTI4
YmMyN2Y2MzNhM2U1Mjg3OGI1MDFlZjBlMTg3Li5lOWMyMGE3ZWJlZWViMjVkNWUwNDU2YmM1YmMw
OGU3MDI1NTA4ZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIGJvb2wgU3RvcmFnZVRocmVhZDo6c3RhcnQoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX3RocmVhZElEKQotICAgICAgICBtX3RocmVh
ZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFj
aywgdGhpcywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOworICAgICAgICBtX3RocmVhZElEID0g
Y3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhp
cywgVGhyZWFkTmFtZSB7ICJXZWJDb3JlOiBMb2NhbFN0b3JhZ2UiLCAiTG9jYWxTdG9yYWdlIiB9
KTsKICAgICBhY3RpdmVTdG9yYWdlVGhyZWFkcygpLmFkZCh0aGlzKTsKICAgICByZXR1cm4gbV90
aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9E
YXRhYmFzZVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlUHJvY2Vzcy5jcHAKaW5kZXggZDVlYWRiMGIzYjQxYWE0Mzk2MGYwMTg1YWMyYTNiYjVmMmFl
ZmE2NC4uZjhmZTgxYjg5ZWY4YzRhMzQ4MDMwMzhhYWUwMGE3ZTQzMmVmMmJmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAg
LTUzLDcgKzUzLDcgQEAgRGF0YWJhc2VQcm9jZXNzJiBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRv
bigpCiB9CiAKIERhdGFiYXNlUHJvY2Vzczo6RGF0YWJhc2VQcm9jZXNzKCkKLSAgICA6IG1fcXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIikp
CisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxl
LldlYktpdC5EYXRhYmFzZVByb2Nlc3MiLCAiREJQcm9jZXNzIiB9KSkKIHsKICAgICAvLyBNYWtl
IHN1cmUgdGhlIFVURjhFbmNvZGluZyBlbmNvZGluZyBhbmQgdGhlIHRleHQgZW5jb2RpbmcgbWFw
cyBoYXZlIGJlZW4gYnVpbHQgb24gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBhIGJhY2tncm91bmQg
dGhyZWFkIG5lZWRzIGl0LgogICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM1MzY1IC0gTmVlZCBhIG1vcmUgZXhwbGljaXQgd2F5IG9mIGRvaW5n
IHRoaXMgYmVzaWRlcyBhY2Nlc3NpbmcgdGhlIFVURjhFbmNvZGluZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCmluZGV4IGE4
MDI5MWZjMWQxZDU5YzdjMWRiNjAyMWI5NGNjZTgyNGM1MWM1OTcuLmVkMzg2NDVlMzE3OTY5NjMz
ZThkNWE3MTA2ZjU2MzQxMTIzZTU4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApAQCAtNTgzLDcgKzU4Myw3IEBAIHZv
aWQgQ2FjaGU6OmR1bXBDb250ZW50c1RvRmlsZSgpCiAKIHZvaWQgQ2FjaGU6OmRlbGV0ZUR1bXBG
aWxlKCkKIHsKLSAgICBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5k
ZWxldGUiKS0+ZGlzcGF0Y2goW3BhdGggPSBkdW1wRmlsZVBhdGgoKS5pc29sYXRlZENvcHkoKV0g
eworICAgIFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5D
YWNoZS5kZWxldGUiLCAiQ2FjaGVEZWxldGVyIiB9KS0+ZGlzcGF0Y2goW3BhdGggPSBkdW1wRmls
ZVBhdGgoKS5pc29sYXRlZENvcHkoKV0gewogICAgICAgICBXZWJDb3JlOjpkZWxldGVGaWxlKHBh
dGgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcAppbmRleCBl
ZjdiYTg5OTgyMDIzMjU4OWU3MzkxZjI3ZmNkM2Q2ZTE2OWY2ODk0Li4zYjk5NTA0YzUyMzU4MWEy
YjRhY2M5ODcxNTNlNDkzYjk1MTBlOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3Vw
LmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgSU9DaGFubmVsOjpyZWFkU3luY0luVGhyZWFk
KHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUqIHF1ZXVlLCBzCiAgICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBSZWZQdHI8SU9DaGFubmVsPiBjaGFubmVsKHRo
aXMpOwotICAgIGRldGFjaFRocmVhZChjcmVhdGVUaHJlYWQoIklPQ2hhbm5lbDo6cmVhZFN5bmMi
LCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgZGV0YWNo
VGhyZWFkKGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgIklPQ2hhbm5lbDo6cmVhZFN5bmMiLCAi
SU9DUmVhZFN5bmMiIH0sIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRsZXJd
IHsKICAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1pbihzaXplLCBnRGVmYXVsdFJl
YWRCdWZmZXJTaXplKTsKICAgICAgICAgdWludDhfdCogYnVmZmVyRGF0YSA9IHN0YXRpY19jYXN0
PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsKICAgICAgICAgR1JlZlB0cjxTb3Vw
QnVmZmVyPiByZWFkQnVmZmVyID0gYWRvcHRHUmVmKHNvdXBfYnVmZmVyX25ld193aXRoX293bmVy
KGJ1ZmZlckRhdGEsIGJ1ZmZlclNpemUsIGJ1ZmZlckRhdGEsIGZhc3RGcmVlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN0YXRpc3RpY3MuY3BwCmluZGV4IDEwYTUyMDNlZmQ4MTgwZTBhY2EzNGJlNTRkZjUyNTgy
ZjU5Yzk1ZjcuLjM5ZDk5ZDIwMTI2YzQzZDM3MzU1M2MwMjgwZmE1NjMyNzA1OGVlNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0
YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxTdGF0aXN0aWNzPiBTdGF0aXN0aWNzOjpvcGVuKGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoKQog
fQogCiBTdGF0aXN0aWNzOjpTdGF0aXN0aWNzKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQot
ICAgIDogbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6
OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgIDogbV9zZXJpYWxCYWNr
Z3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5X
ZWJLaXQuQ2FjaGUuU3RhdGlzdGljcy5CYWNrZ3JvdW5kIiwgIkNhY2hlU3RhdHNCRyIgfSwgV29y
a1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAs
IG1fd3JpdGVUaW1lcigqdGhpcywgJlN0YXRpc3RpY3M6OndyaXRlVGltZXJGaXJlZCkKIHsKICAg
ICBpbml0aWFsaXplKGRhdGFiYXNlUGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCmluZGV4IDhm
N2I2ZTNmMmRmZmQwOTNiMDJmYzc2MWFhZTYyZGU1MmEyNWU4ZGUuLmIxM2ZiNTZjYTVhNTFkZjEz
OGFlNWRkNDliMTViNTMwMmJiZDUxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCkBAIC0yMTMs
OSArMjEzLDkgQEAgU3RvcmFnZTo6U3RvcmFnZShjb25zdCBTdHJpbmcmIGJhc2VEaXJlY3RvcnlQ
YXRoLCBTYWx0IHNhbHQpCiAgICAgLCBtX3NhbHQoc2FsdCkKICAgICAsIG1fcmVhZE9wZXJhdGlv
blRpbWVvdXRUaW1lcigqdGhpcywgJlN0b3JhZ2U6OmNhbmNlbEFsbFJlYWRPcGVyYXRpb25zKQog
ICAgICwgbV93cml0ZU9wZXJhdGlvbkRpc3BhdGNoVGltZXIoKnRoaXMsICZTdG9yYWdlOjpkaXNw
YXRjaFBlbmRpbmdXcml0ZU9wZXJhdGlvbnMpCi0gICAgLCBtX2lvUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZSIsIFdvcmtRdWV1ZTo6VHlwZTo6
Q29uY3VycmVudCkpCi0gICAgLCBtX2JhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UuYmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6
VHlwZTo6Q29uY3VycmVudCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQotICAgICwgbV9z
ZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5DYWNoZS5TdG9yYWdlLnNlcmlhbEJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgICwgbV9pb1F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwg
IkNhY2hlU3RvcmFnZUZHIiB9LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQorICAgICwg
bV9iYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5h
cHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZUJHIiB9
LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5k
KSkKKyAgICAsIG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhy
ZWFkTmFtZSB7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2Uuc2VyaWFsQmFja2dyb3Vu
ZCIsICJDYWNoZVN0b3JhZ2VTQkciIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVl
dWU6OlFPUzo6QmFja2dyb3VuZCkpCiAgICAgLCBtX2Jsb2JTdG9yYWdlKG1ha2VCbG9iRGlyZWN0
b3J5UGF0aChiYXNlRGlyZWN0b3J5UGF0aCksIG1fc2FsdCkKIHsKICAgICBkZWxldGVPbGRWZXJz
aW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4
IGRhOGVhM2ZiYjA1ZTNkZmZlNDliZTMzMmE2NjAxZTI3YWJmY2FmNDEuLmVkOTQ2OTUwNTFlNzNi
ZDhiOGFkM2E3Yjg2MTM4MTVkNTNiMWYxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAKQEAgLTIzMSw3ICsyMzEsNyBAQCBDb25uZWN0aW9uOjpDb25uZWN0
aW9uKElkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50JiBjbGllbnQp
CiAgICAgLCBtX3Nob3VsZEV4aXRPblN5bmNNZXNzYWdlU2VuZEZhaWx1cmUoZmFsc2UpCiAgICAg
LCBtX2RpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soMCkKICAgICAsIG1faXND
b25uZWN0ZWQoZmFsc2UpCi0gICAgLCBtX2Nvbm5lY3Rpb25RdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLklQQy5SZWNlaXZlUXVldWUiKSkKKyAgICAsIG1fY29ubmVjdGlvblF1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLklQQy5SZWNlaXZlUXVl
dWUiLCAiSVBDUmVjZWl2ZVF1ZXVlIiB9KSkKICAgICAsIG1faW5TZW5kU3luY0NvdW50KDApCiAg
ICAgLCBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQoMCkKICAgICAsIG1faW5EaXNwYXRjaE1lc3Nh
Z2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoMCkKQEAgLTcyMCw3
ICs3MjAsNyBAQCB1aW50NjRfdCBDb25uZWN0aW9uOjppbnN0YWxsSW5jb21pbmdTeW5jTWVzc2Fn
ZUNhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYwogICAgIG1fbmV4dEluY29taW5nU3lu
Y01lc3NhZ2VDYWxsYmFja0lEKys7CiAKICAgICBpZiAoIW1faW5jb21pbmdTeW5jTWVzc2FnZUNh
bGxiYWNrUXVldWUpCi0gICAgICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUg
PSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5JUEMuSW5jb21pbmdTeW5jTWVz
c2FnZUNhbGxiYWNrUXVldWUiKTsKKyAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJh
Y2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktp
dC5JUEMuSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiLCAiSVN5bmNNc2dDQlF1ZXVl
IiB9KTsKIAogICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrcy5hZGQobV9uZXh0SW5j
b21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCAxNzU3ODlmYjlhZTcxM2YxNmVlZWRiZmFiZTAwZDZm
MzNlNjNjZjIzLi4zYjE3MzUwYTI3YWRlMDg3ZThmNTgzZTM0YjAzYjdhZjYxZTQ0NmIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0
aWMgdm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rpb24qKQog
ICAgIC8vIHRoZSBwcm9jZXNzIHdpbGwgZXhpdCBmb3JjaWJseS4KICAgICBhdXRvIHdhdGNoZG9n
RGVsYXkgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcygxMCk7CiAKLSAgICBXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dRdWV1ZSIpLT5kaXNwYXRj
aEFmdGVyKHdhdGNoZG9nRGVsYXksIFtdIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWRO
YW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuQ2hpbGRQcm9jZXNzLldhdGNoRG9nUXVldWUiLCAiQ2hp
bGRXZG9nUXVldWUiIH0pLT5kaXNwYXRjaEFmdGVyKHdhdGNoZG9nRGVsYXksIFtdIHsKICAgICAg
ICAgLy8gV2UgdXNlIF9leGl0IGhlcmUgc2luY2UgdGhlIHdhdGNoZG9nIGNhbGxiYWNrIGlzIGNh
bGxlZCBmcm9tIGFub3RoZXIgdGhyZWFkIGFuZCB3ZSBkb24ndCB3YW50CiAgICAgICAgIC8vIGds
b2JhbCBkZXN0cnVjdG9ycyBvciBhdGV4aXQgaGFuZGxlcnMgdG8gYmUgY2FsbGVkIGZyb20gdGhp
cyB0aHJlYWQgd2hpbGUgdGhlIG1haW4gdGhyZWFkIGlzIGJ1c3kKICAgICAgICAgLy8gZG9pbmcg
aXRzIHRoaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmNwcAppbmRleCA0MGRjNGY0NDU2YzI4ZmM5MzdkOWExNjZhYTIy
MTljZjdlOGVjNTMwLi4yZDA0YjcyNzcwMDU1ZGQyMzUzMDk1MzYzZDE1YTg0NDJmY2M4ZWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRp
bmdSdW5Mb29wLmNwcApAQCAtOTIsNyArOTIsNyBAQCBjbGFzcyBXb3JrUXVldWVQb29sIHsKICAg
ICAgICAgICAgICAgICBBU1NFUlQobV9zaGFyZWRXb3JrUXVldWUpOwogICAgICAgICAgICAgICAg
IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBtX3NoYXJlZFdvcmtRdWV1ZTsKICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9
IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LlRocmVhZGVkQ29tcG9zaXRvcldvcmtRdWV1
ZSIpOworICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXb3JrUXVl
dWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgIm9yZy53ZWJraXQuVGhyZWFkZWRDb21wb3NpdG9yV29y
a1F1ZXVlIiwgIlRocmVhZGVkQ29tcCIgfSk7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3RocmVh
ZENvdW50KQogICAgICAgICAgICAgICAgICAgICBtX3NoYXJlZFdvcmtRdWV1ZSA9IGFkZFJlc3Vs
dC5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAgICAgICAgICAgbV90aHJlYWRDb3VudCsrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCA4NTQzM2JkNTk4NmMx
MzZhOGJlY2M5ODFiZmQ3MGQ4NGVlNDdkNDZhLi5lMzczYTczM2E0MDg3NjZjZjExYjc5MTdmNGYy
MDc0NGI3NzA3NDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0
ZW1TaGltLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNw
cApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgV29ya1F1ZXVlJiB3b3JrUXVldWUoKQogICAgIHN0
YXRpYyBXb3JrUXVldWUqIHdvcmtRdWV1ZTsKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9u
Y2VUb2tlbjsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIHdvcmtR
dWV1ZSA9ICZXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIp
LmxlYWtSZWYoKTsKKyAgICAgICAgd29ya1F1ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRlKFRocmVh
ZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIsICJTZWNJdGVtU2hpbSIgfSku
bGVha1JlZigpOwogCiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCmluZGV4IDNh
NzQwZmQ1MGE1ZjMzODQ1ODlkMDc2MjdkY2ZjMzBhMmM2OTlhYWIuLjk2NjI4NmVhMzFlNTVkODg4
ODBkMDdiODk4MzRmYzVmMDcyY2YwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcApAQCAt
NjQsOSArNjQsOSBAQCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlKCkKIAogVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6VXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoKQogICAgIDogbV9zdG9yZVBh
dGgoc3RvcmVQYXRoKQotICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6
Q29uY3VycmVudCkpCi0gICAgLCBtX3JlYWRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZSBSZWFkIFF1ZXVlIikpCi0gICAgLCBtX3JlbW92ZVF1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlbW92ZSBRdWV1ZSIp
KQorICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlIENvbXBpbGUgUXVldWUiLCAiVUNFeFN0Q29tcFF1ZXVl
IiB9LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQorICAgICwgbV9yZWFkUXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJl
YWQgUXVldWUiLCAiVUNFeFN0UmRRdWV1ZSIgfSkpCisgICAgLCBtX3JlbW92ZVF1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZW1v
dmUgUXVldWUiLCAiVUNFeFN0Um1RdWV1ZSIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxZmUxMDI1
NGQ3YzU2MGFjZmE2OTA1MTZhNTMzOGRlNDRiMGZkM2NhLi4xYWVkNDRlYTE1YmFiMDQ0YzM0ODMz
MjBlNWU3MjRlOWI5NjczNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgUmVmPFN0b3Jh
Z2VNYW5hZ2VyPiBTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbG9jYWxTdG9y
YWdlRGlyZWN0b3J5KQogfQogCiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1hbmFnZXIoY29uc3Qg
U3RyaW5nJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VNYW5hZ2VyIikpCisgICAgOiBtX3F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
TWFuYWdlciIsICJTdG9yYWdlTWdyIiB9KSkKICAgICAsIG1fbG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyKExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6Y3JlYXRlKG1fcXVldWUuY29weVJl
ZigpLCBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKQogewogICAgIC8vIE1ha2Ugc3VyZSB0aGUgZW5j
b2RpbmcgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIHdlIHN0YXJ0IGRpc3BhdGNoaW5nIHRoaW5ncyB0
byB0aGUgcXVldWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IGMyZjhlNmE0YmE3MzUwYTQ2
M2E0NTlkZTQ4ZTU2YWFkZmJkMmEyNTAuLjM0Njg5YjY4ZDdhYWExZjVlMTc1ZjFkNTQxNjYxMjUw
MWJiYzg5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFJlZjxX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU+IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Y3JlYXRlKGNvbnN0CiAKIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKGNvbnN0IFN0cmluZyYgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RpcmVjdG9yeSkKICAgICA6IG1fcmVzb3VyY2VTdGF0aXN0aWNzU3RvcmUoUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoKSkKLSAgICAsIG1fc3RhdGlzdGljc1F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgUHJvY2Vz
cyBEYXRhIFF1ZXVlIikpCisgICAgLCBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZShUaHJlYWROYW1lIHsgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERh
dGEgUXVldWUiLCAiV2ViUnNTdGF0UXVldWUiIH0pKQogICAgICwgbV9zdG9yYWdlUGF0aChyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDdhODQzYjFmMDQzYmY3ZDBlYzdlYzNmNmIzZDE3OTEwMzNkZmVlMWMuLmQ0NGU4MDY4MzRlNDc4
MGRkMmVjYmY2ZWNjYmNlNjNiZDQxOWI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTgwLDcg
KzgwLDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9u
IGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0
aW9uKSkKICAgICAsIG1fc3RvcmFnZU1hbmFnZXIoU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShtX2Nv
bmZpZ3VyYXRpb24ubG9jYWxTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAsIG1fcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShtX2NvbmZp
Z3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkpCi0gICAgLCBtX3F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiKSkK
KyAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBwbGUu
V2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIiB9KSkKIHsKICAgICBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKIH0KQEAgLTg5LDcgKzg5LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6
V2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9p
ZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lv
bklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKCkKLSAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFTdG9yZSIpKQorICAgICwgbV9xdWV1
ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0
ZURhdGFTdG9yZSIsICJXZWJEYXRhU3RvcmUiIH0pKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9y
eVByZXNzdXJlTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVt
b3J5UHJlc3N1cmVNb25pdG9yLmNwcAppbmRleCAwNjA4YWI3MmY5OTI0OGVmMjRjZDJkNTI0NWVl
NTMzM2EwMGQ5ZDBkLi5hZDAwMzBjMDFlYzBjYWQwODg1Y2RiYzMzNDA0Zjk0NjAzMzllMjEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5UHJl
c3N1cmVNb25pdG9yLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIE1lbW9yeVByZXNzdXJlTW9uaXRv
cjo6TWVtb3J5UHJlc3N1cmVNb25pdG9yKCkKICAgICBpZiAobV9ldmVudEZEID09IC0xKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBj
cmVhdGVUaHJlYWQoIk1lbW9yeVByZXNzdXJlTW9uaXRvciIsIFt0aGlzXSB7CisgICAgVGhyZWFk
SWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgeyAi
TWVtb3J5UHJlc3N1cmVNb25pdG9yIiwgIk1lbVByZXNzTW9uaXRvciIgfSwgW3RoaXNdIHsKICAg
ICAgICAgZG91YmxlIHBvbGxJbnRlcnZhbCA9IHNfbWF4UG9sbGluZ0ludGVydmFsSW5TZWNvbmRz
OwogICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgc2xlZXAocG9sbEludGVydmFs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Q
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHku
Y3BwCmluZGV4IDIxZWE3YjAxMmIxODk4ZDIxMDEyYjIyODcyNWJlZTEwNmZjYTZkYjQuLjc3NDll
YWZjYTE5NDRiYWVkNGNkYWUyMTU2NDc0ODMxNWUxODZjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcApAQCAtNDcsNyArNDcsNyBA
QCBTZWNJdGVtU2hpbVByb3h5JiBTZWNJdGVtU2hpbVByb3h5OjpzaW5nbGV0b24oKQogfQogCiBT
ZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtU2hpbVByb3h5KCkKLSAgICA6IG1fcXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW1Qcm94eSIpKQorICAgIDog
bV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQu
U2VjSXRlbVNoaW1Qcm94eSIsICJTZWNJdGVtU2hpbVAiIH0pKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCmluZGV4IGNiYzRmMGUzZTg0MjliYWFkNWU4OGNh
YWUzNmQ1ZmIzNTE5ZDg4NmIuLjRhYmQ5NzNjZWM3YmNjNmE0MDBjNTQwZDAxMGRmOTEyNjY5YzUy
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIFJlZjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkKIH0KIAogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIoKQotICAgIDogbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXIiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7
ICJjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciIsICJQbHVn
aW5Db25uTWdyIiB9KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCAxZjIyMjY1OGM5MDZiNzNmNzU1
NDFhY2EzNzJlOGVmNTA5OThkMTdhLi5hOGQ1Y2RhYzE0ZGNkNzg4MGQ4N2Y5OTBlZjhlOTk3NmVi
NjQxYjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8RXZlbnREaXNwYXRjaGVy
PiBFdmVudERpc3BhdGNoZXI6OmNyZWF0ZSgpCiB9CiAKIEV2ZW50RGlzcGF0Y2hlcjo6RXZlbnRE
aXNwYXRjaGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQuRXZlbnREaXNwYXRjaGVyIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1
ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuRXZlbnREaXNwYXRjaGVyIiwgIkV2ZW50
RGlzcGF0Y2giIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNl
ckludGVyYWN0aXZlKSkKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyKFdoZWVs
RXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcAppbmRl
eCBjOGUzNjM4NjFmMjA1N2EwODZhM2Y3OGQ1ZGI0NWIyM2EwYzViODZhLi4zOGEwNzllODhiOWM2
MGE4YTQ0ODFhOTdiOGI4OTc3MWY5MTNkNTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKQEAgLTQx
LDcgKzQxLDcgQEAgUmVmPFZpZXdVcGRhdGVEaXNwYXRjaGVyPiBWaWV3VXBkYXRlRGlzcGF0Y2hl
cjo6Y3JlYXRlKCkKIH0KIAogVmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNwYXRj
aGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQu
Vmlld1VwZGF0ZURpc3BhdGNoZXIiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
VGhyZWFkTmFtZSB7ICJjb20uYXBwbGUuV2ViS2l0LlZpZXdVcGRhdGVEaXNwYXRjaGVyIiwgIlZV
cGRhdGVEaXNwYXRjaCIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3YTUwYmM3YmZjNTVlZDZjNTVmODFlODFhNzJjODkxYjYz
NjcxMWY3Li40MWFlYWUwNTRhYjM0YWVjN2E4ZTdkNDRiYmM4OTk4NmZiNjlmMzAxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRU
aHJlYWQpOgorICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhyZWFkcyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAodGVzdFRocmVhZElk
ZW50aWZpZXJNYXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlv
bi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpydW5Mb2NrVGVzdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpUb1VwcGVyQ29udmVydGVyOjpwcm9kdWNlUXVldWUpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VG9VcHBlckNvbnZlcnRlcjo6Y29uc3VtZVF1ZXVlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGli
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHA6CisgICAgICAgIChXZWJL
aXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKToKKwogMjAxNy0wMS0wOSAgTWlsYW4gQ3Jo
YSAgPG1jcmhhQHJlZGhhdC5jb20+CiAKICAgICAgICAgcHJlcGFyZS1DaGFuZ2VMb2c6IENvcnJl
Y3QgaGVscCBzdHJpbmcgZm9yIC0tc3R5bGUgb3B0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCmluZGV4IGUyZjliYWRlNmNhN2MyNjk0ODVhNGNkY2Jl
NjA5OWMzNmJhMDIxOTguLjE3NjhhNTZkODZkYWJlYjhjMmRiNzhhZjhmNTE3OWIwZjJhZDY2MmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAgICBU
aHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgZGV0YWNo
VGhyZWFkKHRocmVhZCk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkucmVtb3ZlKHRocmVh
ZCk7Ci0gICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRkKGNyZWF0ZVRocmVhZCgmcnVuSmF2
YVNjcmlwdFRocmVhZCwgMCwgMCkpOworICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChj
cmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIFRocmVhZE5hbWUgeyAiIiwgIiIg
fSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIHN0
YXJ0SmF2YVNjcmlwdFRocmVhZHMoKQogICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRU
aHJlYWRzTXV0ZXgoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGphdmFTY3JpcHRU
aHJlYWRzQ291bnQ7ICsraSkKLSAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQoY3JlYXRl
VGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCAwKSk7CisgICAgICAgIGphdmFTY3JpcHRU
aHJlYWRzKCkuYWRkKGNyZWF0ZVRocmVhZCgmcnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgVGhyZWFk
TmFtZSB7ICIiLCAiIiB9KSk7CiB9CiAKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA3MTgxMzc3MGI4
NzczNDM5Y2M2MGYzODcyZjg1NWI0MmZmMmMzNmYwLi44Mjg1MmMzOTFmMzFkNGI0NmEwMThjMzhh
YTQyNjdlZmYwMjNmMWVhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCkBAIC0xMTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VGhyZWFkSWRlbnRp
Zmllck1hcCgpCiAKICAgICAvLyBOb3cgY3JlYXRlIGFub3RoZXIgdGhyZWFkIHVzaW5nIFdURi4g
T24gT1NYLCBpdCB3aWxsIGhhdmUgdGhlIHNhbWUgcHRocmVhZCBoYW5kbGUKICAgICAvLyBidXQg
c2hvdWxkIGdldCBhIGRpZmZlcmVudCBUaHJlYWRJZGVudGlmaWVyLgotICAgIGNyZWF0ZVRocmVh
ZChydW5UaHJlYWQsIDAsICJEdW1wUmVuZGVyVHJlZTogdGVzdCIpOworICAgIGNyZWF0ZVRocmVh
ZChydW5UaHJlYWQsIDAsIFRocmVhZE5hbWUgeyAiRHVtcFJlbmRlclRyZWU6IHRlc3QiLCAiRFJU
VGVzdCIgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFsbG9jYXRlR2xvYmFsQ29udHJvbGxlcnMoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKaW5kZXggODQ4NTI3
MzUxZjYwNjNmYzI2MzY4NzgwNTZkOWMyNGRiYWJlODNkYy4uNTIxY2JlNzQyOWUzMDgyNzNlYzJi
NTU3Nzk4YjJkYjA3NzhkNTFmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvQ29uZGl0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
b25kaXRpb24uY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgcnVuVGVzdCgKICAgICAKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBudW1Db25zdW1lcnM7IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRl
bnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIkNv
bnN1bWVyIHRocmVhZCIsCisgICAgICAgICAgICBUaHJlYWROYW1lIHsgIkNvbnN1bWVyIHRocmVh
ZCIsICJDb25zdW1lciIgfSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAg
Zm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1bHQ7CkBAIC0xMzIs
NyArMTMyLDcgQEAgdm9pZCBydW5UZXN0KAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtUHJv
ZHVjZXJzOyBpLS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJQcm9kdWNlciBUaHJlYWQiLAorICAgICAg
ICAgICAgVGhyZWFkTmFtZSB7ICJQcm9kdWNlciBUaHJlYWQiLCAiUHJvZHVjZXIiIH0sCiAgICAg
ICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgYm9v
bCBzaG91bGROb3RpZnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0xvY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5j
cHAKaW5kZXggNTU3NjMwMmQ2OTBkZmNhMzU5OTI5MjhiMWM4NTNjNzYyMmU0NWZiOS4uYzk3MWE4
MDQ2M2Y0YWU0YzI3MjRjZWJjNWM3ZjczMTk3NjRhYjkxNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvTG9jay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBydW5Mb2NrVGVzdCh1bnNp
Z25lZCBudW1UaHJlYWRHcm91cHMsIHVuc2lnbmVkIG51bVRocmVhZHNQZXJHcm91cCwgdW5zaWdu
ZWQKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkc1Blckdy
b3VwOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgdGhyZWFkc1t0aHJlYWRHcm91cElu
ZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFkKAot
ICAgICAgICAgICAgICAgICJMb2NrIHRlc3QgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICBUaHJl
YWROYW1lIHsgIkxvY2sgdGVzdCB0aHJlYWQiLCAiTG9ja1Rlc3RlciIgfSwKICAgICAgICAgICAg
ICAgICBbdGhyZWFkR3JvdXBJbmRleCwgJmxvY2tzLCAmd29yZHMsIG51bUl0ZXJhdGlvbnMsIHdv
cmtQZXJDcml0aWNhbFNlY3Rpb25dICgpIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gbnVtSXRlcmF0aW9uczsgaS0tOykgewogICAgICAgICAgICAgICAgICAgICAgICAg
bG9ja3NbdGhyZWFkR3JvdXBJbmRleF0ubG9jaygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9QYXJraW5nTG90LmNwcAppbmRleCBjNjdlMWUwODE1YTgzYWZhOTMzM2UyYWM5YTJi
ZDc4YjY3YjE2NDViLi41MGRjMmY5NGE3M2Y5ODg1MTk4MzEzNmIyZGFmNDkzZGMxNTdhM2ZiIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcApAQCAtNDks
NyArNDksNyBAQCBzdHJ1Y3QgU2luZ2xlTGF0Y2hUZXN0IHsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbnVtVGhyZWFkczsgaS0tOykgewogICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAg
ICAgICAgICAgICAgICAgY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICAgICAiUGFya2lu
ZyBUZXN0IFRocmVhZCIsCisgICAgICAgICAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiUGFya2lu
ZyBUZXN0IHRocmVhZCIsICJQYXJraW5nVGVzdGVyIiB9LAogICAgICAgICAgICAgICAgICAgICBb
Jl0gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKDB1LCBjdXJyZW50VGhy
ZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5j
aHJvbml6ZWRGaXhlZFF1ZXVlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5
bmNocm9uaXplZEZpeGVkUXVldWUuY3BwCmluZGV4IDMxNDM2YmMyMjMwN2Y5ZGQ3M2Y2OTE4YjI0
YWRiNDBlNzg5ZmI1ZWMuLmY3MmQ2MDZjMTYzNzQ3ZjdiZjI5NGMwN2U2MmNkODY0YmYwZWQ3Yjcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZp
eGVkUXVldWUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9u
aXplZEZpeGVkUXVldWUuY3BwCkBAIC02MiwxNCArNjIsMTQgQEAgY2xhc3MgVG9VcHBlckNvbnZl
cnRlciB7CiAgICAgV29ya1F1ZXVlKiBwcm9kdWNlUXVldWUoKQogICAgIHsKICAgICAgICAgaWYg
KCFtX3Byb2R1Y2VRdWV1ZSkKLSAgICAgICAgICAgIG1fcHJvZHVjZVF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoIm9yZy53ZWJraXQuUHJvZHVjZSIpOworICAgICAgICAgICAgbV9wcm9kdWNlUXVl
dWUgPSBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgIm9yZy53ZWJraXQuUHJvZHVjZSIs
ICJQcm9kdWNlciIgfSk7CiAgICAgICAgIHJldHVybiBtX3Byb2R1Y2VRdWV1ZS5nZXQoKTsKICAg
ICB9CiAKICAgICBXb3JrUXVldWUqIGNvbnN1bWVRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAo
IW1fY29uc3VtZVF1ZXVlKQotICAgICAgICAgICAgbV9jb25zdW1lUXVldWUgPSBXb3JrUXVldWU6
OmNyZWF0ZSgib3JnLndlYmtpdC5Db25zdW1lIik7CisgICAgICAgICAgICBtX2NvbnN1bWVRdWV1
ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAib3JnLndlYmtpdC5Db25zdW1lIiwg
IkNvbnN1bWVyIiB9KTsKICAgICAgICAgcmV0dXJuIG1fY29uc3VtZVF1ZXVlLmdldCgpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVl
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKaW5kZXgg
N2UyNzdlOTRjNDdjZTNjZTJmYjgyNTJmNmNkYzNhNTVhZjM3YmU3OS4uNjYzN2I3NzhjMWQ1NTE3
NjE3MmMwOWI5NDU2NGYxNGQ5YWRkOWI2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9Xb3JrUXVldWUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwg
U2ltcGxlKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsb25nVGVzdExhYmVsID0gImxvbmdUZXN0
IjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdGhpcmRUZXN0TGFiZWwgPSAidGhpcmRUZXN0IjsK
IAotICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5U
ZXN0LnNpbXBsZSIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWRO
YW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5zaW1wbGUiLCAiU2ltcGxlVGVzdCIgfSk7CiAg
ICAgaW50IGluaXRpYWxSZWZDb3VudCA9IHF1ZXVlLT5yZWZDb3VudCgpOwogICAgIEVYUEVDVF9F
USgxLCBpbml0aWFsUmVmQ291bnQpOwogCkBAIC0xMDYsOCArMTA2LDggQEAgVEVTVChXVEZfV29y
a1F1ZXVlLCBUd29RdWV1ZXMpCiAgICAgYm9vbCBjYWxsZWRMb25nVGVzdCA9IGZhbHNlOwogICAg
IGJvb2wgY2FsbGVkVGhpcmRUZXN0ID0gZmFsc2U7CiAgICAgCi0gICAgYXV0byBxdWV1ZTEgPSBX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LnR3b1F1ZXVlczEiKTsKLSAg
ICBhdXRvIHF1ZXVlMiA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3Qu
dHdvUXVldWVzMiIpOworICAgIGF1dG8gcXVldWUxID0gV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFk
TmFtZSB7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIsICJUd29RdWV1ZXMxVGVz
dCIgfSk7CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsg
ImNvbS5hcHBsZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMyIiwgIlR3b1F1ZXVlczJUZXN0IiB9KTsK
IAogICAgIEVYUEVDVF9FUSgxLCBxdWV1ZTEtPnJlZkNvdW50KCkpOwogICAgIEVYUEVDVF9FUSgx
LCBxdWV1ZTItPnJlZkNvdW50KCkpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1QoV1RGX1dvcmtR
dWV1ZSwgRGlzcGF0Y2hBZnRlcikKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsK
ICAgICBib29sIGNhbGxlZERpc3BhdGNoQWZ0ZXJUZXN0ID0gZmFsc2U7CiAKLSAgICBhdXRvIHF1
ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFm
dGVyIik7CisgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAi
Y29tLmFwcGxlLldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiLCAiRGlzcGF0Y2hBZnRlciIgfSk7
CiAKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwogCkBAIC0yMTEsNyArMjExLDcgQEAg
VEVTVChXVEZfV29ya1F1ZXVlLCBEZXN0cm95T25TZWxmKQogICAgIHsKICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobG9jayk7CiAgICAgICAgIHsKLSAgICAgICAgICAgIGF1dG8gcXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiKTsK
KyAgICAgICAgICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsg
ImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kZXN0cm95T25TZWxmIiwgIkRlc3Ryb3lPblNlbGYiIH0p
OwogICAgICAgICAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vj
b25kcyg1MDApLCBbJl0odm9pZCkgewogICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KGxvY2spOwogICAgICAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJUZXN0U3RhcnRlZC53YWl0KGxv
Y2ssIFsmXSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGli
L1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9X
b3JrUXVldWVHTGliLmNwcAppbmRleCA5OTIzZDY1ODAwZWQ3MTRiYTY4MDZiMTNmN2U1MWZlZTU4
MDM1YWQwLi40MGNhNDEzMGIyMmM0MTQ3ZGIyYmEzNWI2NTIwYTFkMGNlN2ViZmY0IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgICAg
ICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBjb250ZXh0OwogCi0gICAgYXV0
byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJ
TyIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNv
bS5hcHBsZS5XZWJLaXQuVGVzdC5Bc3luY0lPIiwgIkFzeW5jSU9UZXN0IiB9KTsKICAgICBjb250
ZXh0Lm1fbWFpbkNvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CiAgICAgRVhQRUNU
X0ZBTFNFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5j
cHAKaW5kZXggZGU5NDY2YzM5ZDcxY2ZjMmFiZjQ0OWZjZmRlMzg5YjU0NDlkZjMyNy4uNjMyMWJm
NzM5ZjU2OWEwYzBhM2JlNTQ5MTgxNmFiOTkzZGYzMzZmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCkBAIC0y
OCw3ICsyOCw3IEBAIFdlYktpdFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2ZXIoU2VydmVyT3B0
aW9ucyBvcHRpb25zKQogewogICAgIGlmIChvcHRpb25zICYgU2VydmVyUnVuSW5UaHJlYWQpIHsK
ICAgICAgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgICAgIG1fcXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZSgiV2ViS2l0VGVzdFNlcnZlciIpOworICAgICAgICBtX3F1ZXVlID0g
V29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJXZWJLaXRUZXN0U2VydmVyIiwgIlRlc3RT
ZXJ2ZXIiIH0pOwogICAgIH0KIAogICAgIEdVbmlxdWVQdHI8Y2hhcj4gc3NsQ2VydGlmaWNhdGVG
aWxlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298376</attachid>
            <date>2017-01-09 12:05:40 -0800</date>
            <delta_ts>2017-01-09 12:25:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170110050405.patch</filename>
            <type>text/plain</type>
            <size>103465</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZjExNDUxMzhkYTdlNWE0ZjE4ZjQxZDhmOWY3YmY1OWFjOWVhMzVjLi43OWVlYjM5ZTY1OTM4YzNh
NzgwYTVkN2Y3YTRjOTFmNWViMzRmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCiAyMDE3LTAxLTA4
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmplY3QgTWFy
a2VkU3BhY2Ugc2l6ZSBjbGFzc2VzIGZvciBhIGZldyBtb3JlIGhpZ2gtdm9sdW1lIG9iamVjdHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDAyNjU2Y2RlOGNjNDZmMTBjMDM4MmQzMTEyNWFiNTU2Nzc5MDFkY2YuLmFjZTI1YzUy
MDk2M2JmYzRiYTQyOGVjZWJhNzRlNjJlYmQyYTRkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTUgQEAKKzIw
MTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRy
b2R1Y2VzIFRocmVhZE5hbWUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWluZworICAgICAgICBw
b2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIFRocmVhZE5hbWUgdGFrZXMg
MiBuYW1lcywgc2hvcnQgYW5kIGxvbmcgbmFtZXMuIFRoZSBsb25nIG5hbWUKKyAgICAgICAgaXMg
dXNlZCBmb3IgbWFjT1MgYW5kIGlPUyBzaW5jZSB0aGV5IGRvIG5vdCBoYXZlIHRoZSBsaW1pdGF0
aW9uLiBPbiB0aGUKKyAgICAgICAgb3RoZXIgaGFuZCwgTGludXggb25seSBhbGxvd3MgMTUgY2hh
cmFjdGVycyBmb3IgdGhyZWFkIG5hbWVzLiBTbyBmb3IKKyAgICAgICAgTGludXgsIHdlIHVzZSB0
aGUgc2hvcnQgbmFtZS4gV2luZG93cyBhbHNvIGhhcyAzMSBjaGFyYWN0ZXJzIGxpbWl0YXRpb24u
CisgICAgICAgIFdpbmRvd3MgYWxzbyB1c2VzIHRoZSBzaG9ydCBuYW1lLgorCisgICAgICAgIFdo
ZW4geW91IHNwZWNpZnkgdGhlIG5hbWUgbGlrZSwKKworICAgICAgICAgICAgeyAiQXN5bmNocm9u
b3VzIERpc2Fzc2VtYmxlciIsICJBc3luY0Rpc2FzbSIgfSwKKworICAgICAgICBUaGUgdGhyZWFk
IG5hbWUgYmVjb21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAg
ICAgICAgIFdpbmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1Mg
YW5kIGlPUzogIldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBU
aHJlYWROYW1lIGNoZWNrcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydCBuYW1lIGlzIDw9IDE1IGF0
IGNvbXBpbGUKKyAgICAgICAgdGltZS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCwgY29t
cGlsZSBlcnJvciBvY2N1cnMuCisKKyAgICAgICAgVGhlICJXZWJLaXQ6ICIgcHJlZml4IGlzIGF1
dG9tYXRpY2FsbHkgYWRkZWQgYnkgVGhyZWFkTmFtZS4KKyAgICAgICAgVGhpcyBwcmVmaXggaXMg
aW1wb3J0YW50IHNpbmNlIGl0IGNhbiBzYXkgdGhhdCB0aGlzIHRocmVhZCBpcyByZWxhdGVkIHRv
IFdlYktpdC4KKyAgICAgICAgV2hlbiB1c2luZyBXZWJLaXQgYXMgZnJhbWV3b3JrLCBXZWJLaXQg
cmVsYXRlZCB0aHJlYWRzIHdpbGwgYmUgbGF1bmNoZWQgYWxvbmcKKyAgICAgICAgd2l0aCB1c2Vy
IGFwcGxpY2F0aW9uJ3MgdGhyZWFkcy4gV2l0aG91dCAiV2ViS2l0OiAiIHByZWZpeCwgaXQgaXMg
YSBiaXQgZGlmZmljdWx0CisgICAgICAgIHRvIGRpc3Rpbmd1aXNoIHVzZXIncyB0aHJlYWRzIGZy
b20gV2ViS2l0IHJlbGF0ZWQgb25lcy4KKworICAgICAgICBXZSBhcHBseSB0aGlzIHBvbGljeSB0
byBhbGwgdGhlIFdlYktpdCB0aHJlYWQgbmFtZXMgZXhjZXB0IGZvciBibWFsbG9jJ3Mgb25lLgor
ICAgICAgICBUaGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBbMV0uCisKKyAgICAgICAgWzFdOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njg0CisKKyAgICAgICAgKiBX
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0NvbmRp
dGlvblNwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0
LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAq
IHd0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQp
OgorICAgICAgICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvUGFyYWxs
ZWxIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpQYXJh
bGxlbEhlbHBlclBvb2wpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVh
ZDo6VGhyZWFkKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAg
IChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6bmFtZSk6CisgICAgICAgICogd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpUaHJl
YWRQcml2YXRlOjp0cnlMb2NrRm9yKToKKyAgICAgICAgKiB3dGYvVGhyZWFkTmFtZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlVGhy
ZWFkKToKKyAgICAgICAgKFdURjo6bm9ybWFsaXplVGhyZWFkTmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgICogd3RmL1RocmVhZGluZy5oOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHA6CisgICAgICAgIChXVEY6OmNyZWF0ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKFdURjo6
aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgICogd3RmL1RocmVhZGlu
Z1dpbi5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwp
OgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgICogd3RmL1dv
cmtRdWV1ZS5jcHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdURjo6V29ya1F1ZXVlOjpXb3JrUXVldWUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OmNv
bmN1cnJlbnRBcHBseSk6CisgICAgICAgICogd3RmL1dvcmtRdWV1ZS5oOgorICAgICAgICAqIHd0
Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6cGxh
dGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiB3dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3Bw
OgorICAgICAgICAoRGlzcGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dDo6c3RhcnQpOgorICAgICAg
ICAoRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiB3dGYvZWZsL0Rpc3BhdGNoUXVl
dWVFZmwuaDoKKyAgICAgICAgKiB3dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHA6CisgICAgICAgIChX
VEY6OldvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiB3dGYvZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0
aWFsaXplKToKKyAgICAgICAgKiB3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaDogQ29waWVkIGZyb20g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwLgorICAgICAgICAo
V1RGOjpBU0NJSUxpdGVyYWw6OkFTQ0lJTGl0ZXJhbCk6CisgICAgICAgIChXVEY6OkFTQ0lJTGl0
ZXJhbDo6b3BlcmF0b3IgY29uc3QgY2hhciopOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmlu
Zy5oOgorICAgICAgICAoV1RGOjpBU0NJSUxpdGVyYWw6OkFTQ0lJTGl0ZXJhbCk6IERlbGV0ZWQu
CisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6b3BlcmF0b3IgY29uc3QgY2hhciopOiBEZWxl
dGVkLgorICAgICAgICAqIHd0Zi93aW4vTWFpblRocmVhZFdpbi5jcHA6CisgICAgICAgIChXVEY6
OmluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0pOgorICAgICAgICAqIHd0Zi93aW4vV29ya1F1
ZXVlV2luLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUp
OgorCiAyMDE3LTAxLTA2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFA
Y29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIFNob3VsZCBzdXBwb3J0IGtleSBhbmQg
Y29kZSBwcm9wZXJ0aWVzIG9uIGtleWJvYXJkIGV2ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI5MjQ4YjM4
NDgwNWNlNzA4MjhjN2ZkYjBkOTcyZjFjOTI3NDExYjQuLjFjMDU2ZDZlYWIwMzhiMzU1MGM2MDk1
NzIyMzFjNDFlNTlkYzRkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxNy0wMS0w
OSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2Ug
VGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OklEQlNlcnZlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVj
b2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0F1ZGlvRGVjb2Rlcjo6QXN5bmNBdWRp
b0RlY29kZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZTo6c3RhcnRSZW5kZXJpbmcpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OnN0YXJ0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVi
dWdnaW5nKToKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKToKKyAgICAgICAgKiBmaWxlYXBpL0Fz
eW5jRmlsZVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWxsT25GaWxlVGhyZWFkKToK
KyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SWNvbkRhdGFiYXNlOjpvcGVuKToKKyAgICAgICAgKiBwYWdlL1Jlc291cmNlVXNhZ2VUaHJl
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRlVGhy
ZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVl
ZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZXZlcmJDb252b2x2ZXI6OlJldmVyYkNvbnZvbHZlcik6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJh
bWVDYWNoZTo6ZGVjb2RpbmdRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChSZXNvdXJjZUhh
bmRsZVN0cmVhbWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6RXZl
bnRGRFBvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsb2JVdGlsaXR5UXVldWUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YVVSTERlY29kZXI6OmRlY29kZVF1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L0xvYWRlclJ1bkxvb3BDRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkZXJSdW5Mb29wKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZE1hbmFnZXI6OnN0YXJ0VGhyZWFkSWZOZWVkZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3Vy
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRo
cmVhZCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjpzdGFydCk6CisKIDIwMTctMDEtMDkgIERhbmllbCBCYXRlcyAg
PGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEV2YWx1YXRpbmcgd2luZG93IG5hbWVkIGVs
ZW1lbnQgbWF5IHJldHVybiB3cm9uZyByZXN1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjVmZDg1Y2FhZmU0ZWQ4
ZWU0OGE1MWJkMTc1YzZiNDZkNWM2ZWYxZi4uZTcwMmZhMzAzOGI2YWU2MjM1NGE4NzVhODA0ZDg4
MWQxMjgwNThmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMS0wOSAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFt
ZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhyZWFkOjpzdGFydCk6CisKIDIwMTctMDEtMDUgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5dIENvbXBp
bGUgZXJyb3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTgxY2MxMGE1NzRiZGY0NGRmNmEyMDVjNjMzNDg2ODg2
ZGQxNjJlYy4uNjIwNmM5YWMyOGFlYzI5YzI5MTA3YjY5OTg3ZmExMTk0NGY3ZGE5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkgbG9u
ZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6RGF0YWJhc2VQcm9jZXNzKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkNhY2hlOjpkZWxldGVEdW1wRmlsZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFubmVsOjpyZWFkU3luY0luVGhyZWFkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdGF0aXN0aWNzOjpTdGF0aXN0aWNzKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpTdG9yYWdlOjpTdG9yYWdlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhY2hlOjptX2JhY2tncm91bmRJT1F1ZXVlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0NhY2hlOjptX3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKToKKyAgICAgICAgKiBQ
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OkNv
bm5lY3Rpb24pOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjppbnN0YWxsSW5jb21pbmdTeW5j
TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6ZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUpOgorICAgICAgICAq
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGlu
Z1J1bkxvb3AuY3BwOgorICAgICAgICAoV2ViS2l0OjpXb3JrUXVldWVQb29sOjpnZXRPckNyZWF0
ZVdvcmtRdWV1ZUZvckNvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0u
Y3BwOgorICAgICAgICAoV2ViS2l0Ojp3b3JrUXVldWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHA6CisgICAgICAgIChBUEk6OlVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmU6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUpOgorICAgICAg
ICAoQVBJOjptX3JlYWRRdWV1ZSk6CisgICAgICAgIChBUEk6Om1fcmVtb3ZlUXVldWUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lbW9yeVByZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVN
b25pdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTZWNJdGVtU2hpbVByb3h5OjpTZWNJdGVtU2hpbVByb3h5KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNo
ZXI6OkV2ZW50RGlzcGF0Y2hlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdV
cGRhdGVEaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNo
ZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKToKKwogMjAxNy0wMS0wNiAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1RL
XSBTaG91bGQgc3VwcG9ydCBrZXkgYW5kIGNvZGUgcHJvcGVydGllcyBvbiBrZXlib2FyZCBldmVu
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFu
ZFN3YXBUZXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFu
ZFN3YXBUZXN0LmNwcAppbmRleCBlNzgwODZjM2E5NjEyYTJmMGI0ZDdhYWYxYWRjN2JhMWExMDFj
NTQ3Li4xNGMzZTRkZGQ1NjA5ODM1NGIyZDZjOTJjNzY1NGQyZGY1Y2EwMjQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3Qu
Y3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZUFuZFN3YXAoKQogICAgICAg
ICBkYXRhW2ldLmlkID0gaTsKICAgICAgICAgZGF0YVtpXS5udW1UaHJlYWRzID0gbnVtVGhyZWFk
czsKICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRocmVhZEZ1bmMgPSBzdGQ6OmJpbmQo
c2V0Qml0VGhyZWFkRnVuYywgJmRhdGFbaV0pOwotICAgICAgICB0aHJlYWRJRHNbaV0gPSBjcmVh
dGVUaHJlYWQoInNldEJpdFRocmVhZEZ1bmMiLCB0aHJlYWRGdW5jKTsKKyAgICAgICAgdGhyZWFk
SURzW2ldID0gY3JlYXRlVGhyZWFkKHsgInNldEJpdFRocmVhZEZ1bmMiLCAic2V0Qml0VGhyZWFk
RnVuYyIgfSwgdGhyZWFkRnVuYyk7CiAgICAgfQogCiAgICAgcHJpbnRmKCJXYWl0aW5nIGZvciAl
ZCB0aHJlYWRzIHRvIGpvaW5cbiIsIG51bVRocmVhZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvdGVzdGFpci5jcHAKaW5kZXggOWY4YThkODNlNWZkMzMxZTQ0OWVmOTFmM2RhNzg0ZDQ1
NzZjZjQ0Zi4uNDNkNzk4ZDVjYzdjMjIyODU5MWZmMjAyYWE2NTg4MTRkMmQ4YTJiOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCkBAIC0xOTEzLDcgKzE5MTMsNyBA
QCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgZm9yICh1bnNpZ25lZCBpID0gZmls
dGVyID8gMSA6IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpOyBpLS07KSB7CiAgICAgICAg
IHRocmVhZHMuYXBwZW5kKAogICAgICAgICAgICAgY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAg
ICAgICJ0ZXN0YjMgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICB7ICJ0ZXN0YjMgdGhyZWFkIiwg
IlRlc3RCM1RocmVhZCIgfSwKICAgICAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAg
ICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U2hhcmVk
VGFzazx2b2lkKCk+PiB0YXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAppbmRleCBm
YzMzYzZmY2ZhZGY4OTI4ZDdiZTJmNGEyYzMyMzc5YzA1YjQ1NWUxLi5hODBiYzdlMmFkY2UwZTBm
ZDEwNzQ3NjdjZmUxYzE3MWY0NmU0MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNw
cApAQCAtMTU2NjEsNyArMTU2NjEsNyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gZmlsdGVyID8gMSA6IFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JD
b3JlcygpOyBpLS07KSB7CiAgICAgICAgIHRocmVhZHMuYXBwZW5kKAogICAgICAgICAgICAgY3Jl
YXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICJ0ZXN0YjMgdGhyZWFkIiwKKyAgICAgICAgICAg
ICAgICB7ICJ0ZXN0YjMgdGhyZWFkIiwgIlRlc3RCM1RocmVhZCIgfSwKICAgICAgICAgICAgICAg
ICBbJl0gKCkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+PiB0YXNrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRleCBhNGUyMWY5ZmEz
Y2Q0NzIxZWEyNjc1ZTA2ZTRkNTMwYzViYTk1YjM1Li5jYjJkNjhjMmFlZGYwZTViMmIzNTRjMTk2
NTcxN2I1YjJlMzVmOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3VwZXJTYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3VwZXJTYW1wbGVyLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIGluaXRpYWxpemVTdXBlclNh
bXBsZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJK
U0MgU3VwZXIgU2FtcGxlciIsCisgICAgICAgIHsgIkpTQyBTdXBlciBTYW1wbGVyIiwgIlN1cGVy
U2FtcGxlciIgfSwKICAgICAgICAgW10gKCkgewogICAgICAgICAgICAgY29uc3QgaW50IHNsZWVw
UXVhbnR1bSA9IDEwOwogICAgICAgICAgICAgY29uc3QgaW50IHByaW50aW5nUGVyaW9kID0gMTAw
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggNWUzMzhm
MDEyYjg5OTRkOTg2NTQ0NmU4NzgxNDc4NGQ4ZTg1NTA3Yi4uNDhlM2M0MTc0ZGViZjFhMGUyNWMy
ZmEyOGM4MGM2YzlkOGJiOGVhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAKQEAgLTQwLDggKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogCiBjbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQg
ewogcHVibGljOgotICAgIFRocmVhZEJvZHkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3Jr
bGlzdCYgd29ya2xpc3QsIFRocmVhZERhdGEmIGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8
QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5
KQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRpdGlvbikKKyAg
ICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0
LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSwgVGhyZWFkTmFtZSB0
aHJlYWROYW1lKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIGNvbmRp
dGlvbiwgdGhyZWFkTmFtZSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgICAg
ICAsIG1fZGF0YShkYXRhKQogICAgICAgICAsIG1fcmVsYXRpdmVQcmlvcml0eShyZWxhdGl2ZVBy
aW9yaXR5KQpAQCAtMTczLDggKzE3Myw4IEBAIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDog
cHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiAgICAgUmVmUHRyPFBsYW4+IG1fcGxhbjsKIH07CiAK
LVdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nIHdvcmtsaXN0TmFtZSkKLSAgICA6IG1fdGhyZWFk
TmFtZSh0b0NTdHJpbmcod29ya2xpc3ROYW1lLCAiIFdvcmtlciBUaHJlYWQiKSkKK1dvcmtsaXN0
OjpXb3JrbGlzdChUaHJlYWROYW1lIHRocmVhZE5hbWUpCisgICAgOiBtX3RocmVhZE5hbWUodGhy
ZWFkTmFtZSkKICAgICAsIG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9wbGFu
RW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fbnVt
YmVyT2ZBY3RpdmVUaHJlYWRzKDApCkBAIC0yMDAsMTQgKzIwMCwxNCBAQCB2b2lkIFdvcmtsaXN0
OjpmaW5pc2hDcmVhdGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVBy
aW9yaXR5KQogICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bWJlck9mVGhyZWFkczsgaS0tOykgewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGhyZWFkRGF0YT4gZGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkRGF0YT4odGhpcyk7Ci0g
ICAgICAgIGRhdGEtPm1fdGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJvZHkobG9ja2VyLCAq
dGhpcywgKmRhdGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1ZWQsIHJlbGF0aXZlUHJpb3JpdHkpKTsK
KyAgICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIs
ICp0aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSwg
bV90aHJlYWROYW1lKSk7CiAgICAgICAgIG1fdGhyZWFkcy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7
CiAgICAgfQogfQogCi1SZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoQ1N0cmluZyB3b3Jr
bGlzdE5hbWUsIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkp
CitSZWY8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUoVGhyZWFkTmFtZSB0aHJlYWROYW1lLCB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5KQogewotICAgIFJl
ZjxXb3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh3b3JrbGlzdE5hbWUp
KTsKKyAgICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3QodGhy
ZWFkTmFtZSkpOwogICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24obnVtYmVyT2ZUaHJlYWRzLCBy
ZWxhdGl2ZVByaW9yaXR5KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNTE2LDcgKzUxNiw3
IEBAIFdvcmtsaXN0JiBlbnN1cmVHbG9iYWxERkdXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6
Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAg
IHRoZUdsb2JhbERGR1dvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkRGRyBXb3JrbGlzdCIs
IE9wdGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5
RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2Jh
bERGR1dvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoeyAiREZHIFdvcmtsaXN0IiwgIkRGR1dv
cmtsaXN0IiB9LCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25z
Ojpwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0p
OwogICAgIHJldHVybiAqdGhlR2xvYmFsREZHV29ya2xpc3Q7CiB9CkBAIC01MzIsNyArNTMyLDcg
QEAgV29ya2xpc3QmIGVuc3VyZUdsb2JhbEZUTFdvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpj
YWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAg
dGhlR2xvYmFsRlRMV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSgiRlRMIFdvcmtsaXN0Iiwg
T3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlE
ZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICAgICAgdGhlR2xvYmFs
RlRMV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSh7ICJGVExXb3JrbGlzdCIsICJGVExXb3Jr
bGlzdCIgfSwgT3B0aW9uczo6bnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6
cHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsK
ICAgICByZXR1cm4gKnRoZUdsb2JhbEZUTFdvcmtsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5oCmluZGV4IGQ5MDFlNzJkYTBkODdmMWUyNmZjMzIyMTliMGZhNDRm
NmYxMWM3ZjguLmMxMDQ3MjdmOWJiMGYxMThjMDliOWVmYjczYmQ3ZDM0ODc1ZTAwYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xh
c3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogCiAgICAgfldvcmts
aXN0KCk7CiAgICAgCi0gICAgc3RhdGljIFJlZjxXb3JrbGlzdD4gY3JlYXRlKENTdHJpbmcgd29y
a2xpc3ROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5
ID0gMCk7CisgICAgc3RhdGljIFJlZjxXb3JrbGlzdD4gY3JlYXRlKFRocmVhZE5hbWUsIHVuc2ln
bmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsKICAgICAKICAg
ICB2b2lkIGVucXVldWUoUGFzc1JlZlB0cjxQbGFuPik7CiAgICAgCkBAIC04Miw3ICs4Miw3IEBA
IGNsYXNzIFdvcmtsaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKICAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKIHByaXZhdGU6Ci0gICAgV29ya2xpc3Qo
Q1N0cmluZyB3b3JrbGlzdE5hbWUpOworICAgIFdvcmtsaXN0KFRocmVhZE5hbWUpOwogICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQpOwogICAgIAog
ICAgIGNsYXNzIFRocmVhZEJvZHk7CkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIFdvcmtsaXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKIAogICAgIHZvaWQgZHVtcChjb25zdCBMb2Nr
SG9sZGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKLSAgICBDU3RyaW5nIG1fdGhyZWFk
TmFtZTsKKyAgICBUaHJlYWROYW1lIG1fdGhyZWFkTmFtZTsKICAgICAKICAgICAvLyBVc2VkIHRv
IGluZm9ybSB0aGUgdGhyZWFkIGFib3V0IHdoYXQgd29yayB0aGVyZSBpcyBsZWZ0IHRvIGRvLgog
ICAgIERlcXVlPFJlZlB0cjxQbGFuPj4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcAppbmRleCA3ODhhNmMzNjIzNjlj
NThkYWQyOWE2MGEzODcxMDQ0ZTQ2NGVkMzA1Li4xZDVjNWZlNmM1ZDQ5NTgwMmE4MGQzMGI0ZTYw
NWRiZDBmMWRiMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1i
bGVyL0Rpc2Fzc2VtYmxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2Vt
Ymxlci9EaXNhc3NlbWJsZXIuY3BwCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIEFzeW5jaHJvbm91
c0Rpc2Fzc2VtYmxlciB7CiBwdWJsaWM6CiAgICAgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVyKCkK
ICAgICB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZCgiQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIs
IFsmXSAoKSB7IHJ1bigpOyB9KTsKKyAgICAgICAgY3JlYXRlVGhyZWFkKHsgIkFzeW5jaHJvbm91
cyBEaXNhc3NlbWJsZXIiLCAiQXN5bmNEaXNhc20iIH0sIFsmXSAoKSB7IHJ1bigpOyB9KTsKICAg
ICB9CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJseVRh
c2s+IHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDI2NTgzYzRlOTQ2
MDgwYWQ2YjdhZmNjMTlkNjdiYjUzZTBhZGFiZDguLmI4MmE4Y2FhN2E0Y2FjZjA5ZmViMzgwZjE2
MDE2ZTcyMGVlNzJhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0yMzks
NyArMjM5LDcgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDogcHVi
bGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xk
ZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2Vy
LCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbikKKyAgICAgICAgOiBB
dXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENv
bmRpdGlvbiwgeyAiSGVhcCBDb2xsZWN0b3IiLCAiSGVhcENvbGxlY3RvciIgfSkKICAgICAgICAg
LCBtX2hlYXAoaGVhcCkKICAgICB7CiAgICAgfQpAQCAtMjE0Nyw3ICsyMTQ3LDcgQEAgdm9pZCBI
ZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3QoKQogICAgIAogICAgIGlmIChPcHRpb25zOjpjb2xs
ZWN0Q29udGludW91c2x5KCkpIHsKICAgICAgICAgbV9jb2xsZWN0Q29udGludW91c2x5VGhyZWFk
ID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIkpTQyBERUJVRyBDb250aW51b3VzIEdDIiwK
KyAgICAgICAgICAgIHsgIkpTQyBERUJVRyBDb250aW51b3VzIEdDIiwgIkNvbnRpbnVvdXNHQyIg
fSwKICAgICAgICAgICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICAgICAgTW9ub3RvbmljVGlt
ZSBpbml0aWFsVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgICAgICAgICAgICAgIFNl
Y29uZHMgcGVyaW9kID0gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhPcHRpb25zOjpjb2xsZWN0
Q29udGludW91c2x5UGVyaW9kTVMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwSGVscGVyUG9vbC5jcHAKaW5kZXggNzkxYWE3NTZmOTVlMWNiNTY0MGZjMzNiNDU2Nzc0NTFl
ZTFhMjUzNi4uOWVlZGQwMDNjZTBjZDY3N2E3OWMxMTNmOGY1MGZmZmVhYThlYjU1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcApAQCAtMzgsNyAr
MzgsNyBAQCBQYXJhbGxlbEhlbHBlclBvb2wmIGhlYXBIZWxwZXJQb29sKCkKICAgICBzdGQ6OmNh
bGxfb25jZSgKICAgICAgICAgaW5pdGlhbGl6ZUhlbHBlclBvb2xPbmNlRmxhZywKICAgICAgICAg
W10gewotICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBlclBvb2woKTsK
KyAgICAgICAgICAgIGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29sKHsgIkhlYXAg
SGVscGVyIiwgIkhlYXBIZWxwZXIiIH0pOwogICAgICAgICAgICAgaGVscGVyUG9vbC0+ZW5zdXJl
VGhyZWFkcyhPcHRpb25zOjpudW1iZXJPZkdDTWFya2VycygpIC0gMSk7CiAgICAgICAgIH0pOwog
ICAgIHJldHVybiAqaGVscGVyUG9vbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSUNTdGF0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3Bw
CmluZGV4IDIwODBjZDkzNDU4MzNkMmQyMzJiOGE5Y2Q2ZjNkYmZlYmUwNWNiMjMuLmVjNDU5NzQ5
OGIxY2MwOTJlODU3NDg4NmRkNDFkN2E4NGYzMWJmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9JQ1N0YXRzLmNwcApAQCAtNTksNyArNTksNyBAQCBBdG9taWM8SUNTdGF0cyo+IElDU3RhdHM6
OnNfaW5zdGFuY2U7CiBJQ1N0YXRzOjpJQ1N0YXRzKCkKIHsKICAgICBtX3RocmVhZCA9IGNyZWF0
ZVRocmVhZCgKLSAgICAgICAgIkpTQyBJQ1N0YXRzIiwKKyAgICAgICAgeyAiSlNDIElDU3RhdHMi
LCAiSUNTdGF0cyIgfSwKICAgICAgICAgW3RoaXNdICgpIHsKICAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgICAgICBmb3IgKDs7KSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCmluZGV4IDJjMjJkYTM4OThiYzI4NzliYWY3N2Q5
NjE2YWNlZDA0Y2E3ZjUxYTYuLjI4MTkzOTIyMTU0YTUzMDAzYjlmMDcyNzQ4MzQyZmZmZjllYjJj
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCkBAIC0xMDAs
NyArMTAwLDcgQEAgY2xhc3MgSklUV29ya2xpc3Q6OlBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8SklUV29ya2xpc3Q6OlBsYW4+IHsKIGNsYXNzIEpJVFdvcmtsaXN0OjpUaHJlYWQg
OiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9j
a0hvbGRlciYgbG9ja2VyLCBKSVRXb3JrbGlzdCYgd29ya2xpc3QpCi0gICAgICAgIDogQXV0b21h
dGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3b3JrbGlzdC5tX2NvbmRpdGlvbikK
KyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmts
aXN0Lm1fY29uZGl0aW9uLCB7ICJCYXNlbGluZSBKSVQgQ29tcGlsZXIgV29ya2VyIiwgIkpJVENv
bXBpbGVyIiB9KQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgewogICAgICAg
ICBtX3dvcmtsaXN0Lm1fbnVtQXZhaWxhYmxlVGhyZWFkcysrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApp
bmRleCAzYTdhM2Y0NzI3ZDAyMDJlNzJlNWE4ZWVmZTAzMjg3NjIwODI1YjMzLi4zYzMwZjAwYzM2
NGU4Y2NlMmNmMzZjYTk0ZTc1NmNjNjI1M2VlMWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAt
MjcxOSw3ICsyNzE5LDcgQEAgc3RhdGljIHZvaWQgc3RhcnRUaW1lb3V0VGhyZWFkSWZOZWVkZWQo
KQogICAgICAgICAgICAgZGF0YUxvZygiV0FSTklORzogdGltZW91dCBzdHJpbmcgaXMgbWFsZm9y
bWVkLCBnb3QgIiwgdGltZW91dFN0cmluZywKICAgICAgICAgICAgICAgICAiIGJ1dCBleHBlY3Rl
ZCBhIG51bWJlci4gTm90IHVzaW5nIGEgdGltZW91dC5cbiIpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIGNyZWF0ZVRocmVhZCh0aW1lb3V0VGhyZWFkTWFpbiwgMCwgImpzYyBUaW1lb3V0
IFRocmVhZCIpOworICAgICAgICAgICAgY3JlYXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRNYWluLCAw
LCB7ICJqc2MgVGltZW91dCBUaHJlYWQiLCAiVGltZW91dFRocmVhZCIgfSk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
Y3BwCmluZGV4IDcwMzRkYzY5NmI5ZTExNDkyODhjN2JiOWVkZGVmZTJhYjE2YjE3Y2EuLjg3OWE4
OGU3MjgxYzU2OGU0MGJiMzExNDc5MTQ5MzNhMmNiZTA4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC0yMTMsNyArMjEz
LDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpjcmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25z
dCBMb2NrSG9sZGVyJikKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFNhbXBsaW5nUHJv
ZmlsZXI+IHByb2ZpbGVyID0gdGhpczsKLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVU
aHJlYWQoImpzYy5zYW1wbGluZy1wcm9maWxlci50aHJlYWQiLCBbcHJvZmlsZXJdIHsKKyAgICBt
X3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoeyAianNjLnNhbXBsaW5nLXByb2ZpbGVy
LnRocmVhZCIsICJTYW1wbGluZyIgfSwgW3Byb2ZpbGVyXSB7CiAgICAgICAgIHByb2ZpbGVyLT50
aW1lckxvb3AoKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dhdGNoZG9nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dh
dGNoZG9nLmNwcAppbmRleCBmNjAwNGU2ZWYxYzBiYzRkMjUzOTI4NDhmNjBjOTU3MjU2Y2I1YzIz
Li40ZDM5OGE1YTA5OGQ0Nzk2N2ExZjhkNGY4NDQ5MzA1NjU5YjRjNjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdhdGNo
ZG9nOjpXYXRjaGRvZygpCiAgICAgLCBtX2NhbGxiYWNrKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0
YTEoMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMigwKQotICAgICwgbV90aW1lclF1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKCJqc2Mud2F0Y2hkb2cucXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQorICAgICwgbV90aW1lclF1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKHsgImpzYy53YXRjaGRvZy5xdWV1ZSIsICJXYXRjaGRvZyIgfSwgV29ya1F1ZXVl
OjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVdGlsaXR5KSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCmluZGV4IDU5ODBiNTFlODc0MjIyMzc1NWNl
MGMzZGYyYzE2YjFkZTllYzhmMTIuLjk3Nzc5NjdkMWE1MzMyMmQ0MzIxNGZjZDU2YmNhZGMyZmIx
MzM2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAKQEAgLTE5Nyw3
ICsxOTcsNyBAQCB2b2lkIFBsYW46OnJ1bigpCiAgICAgVmVjdG9yPFRocmVhZElkZW50aWZpZXI+
IHRocmVhZHM7CiAgICAgdGhyZWFkcy5yZXNlcnZlQ2FwYWNpdHkobnVtV29ya2VyVGhyZWFkcyk7
CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IG51bVdvcmtlclRocmVhZHM7IGkrKykKLSAg
ICAgICAgdGhyZWFkcy51bmNoZWNrZWRBcHBlbmQoY3JlYXRlVGhyZWFkKCJqc2Mud2FzbS1iMy1j
b21waWxhdGlvbi50aHJlYWQiLCBkb1dvcmspKTsKKyAgICAgICAgdGhyZWFkcy51bmNoZWNrZWRB
cHBlbmQoY3JlYXRlVGhyZWFkKHsgImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRocmVhZCIsICJX
YXNtQjNDb21waWxlciIgfSwgZG9Xb3JrKSk7CiAKICAgICBkb1dvcmsoKTsgLy8gTGV0IHRoZSBt
YWluIHRocmVhZCBkbyBzb21lIHdvcmsgdG9vLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTc4MDQ0OTNjOTVmODljZGE2YmYzMWEzODE1OTBmMWNmYzBl
MDRjLi5kMWQxY2U1YzI4N2IzMGUyMWZkYTk2ZjdhMTVlZWE0MjE0MWFlYzMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2OCw2ICszNjgsOCBAQAogCQlG
RTg5MjVCMDFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAvKiBJ
bmRlbnRlci5oICovOyB9OwogCQlGRURBQ0QzRDE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURB
Q0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi87IH07CiAJCUZFREFDRDNF
MTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tT
dGF0cy5oICovOyB9OworCQk4QUQ4OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRlcmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE5QkQ0
NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi87IH07CisJCTg5NjZFNDE4NkI5
RjRFQzFBQ0MyMjVDQSAvKiBUaHJlYWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGMUUyRTVERTZFRDY0NENBOTE4OEVCNTUgLyogVGhyZWFkTmFt
ZS5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC03NDgsNiArNzUwLDggQEAKIAkJRkU4
OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluZGVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
REFDRDNCMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YWNrU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja1N0YXRzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQVNDSUlMaXRlcmFsLmg7IHBhdGgg
PSBBU0NJSUxpdGVyYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjFFMkU1REU2
RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gVGhyZWFkTmFtZS5oOyBwYXRoID0gVGhyZWFkTmFtZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBC
ZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMTMyLDYgKzExMzYs
NyBAQAogCQkJCUU0QTBBRDM4MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuaCAqLywKIAkJ
CQlBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgKi8sCiAJCQkJ
QThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAqLywKKwkJCQlGMUUy
RTVERTZFRDY0NENBOTE4OEVCNTUgLyogVGhyZWFkTmFtZS5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSB3dGY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTIyMCw2ICsxMjI1LDcgQEAK
IAkJCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCAqLywK
IAkJCQlBOEE0NzMyRDE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCAqLywKIAkJCQlB
OEE0NzMyRTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggKi8sCisJCQkJNzFBOUJENDVF
MDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovLAogCQkJKTsKIAkJCXBhdGggPSB0
ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE1NjgsNiArMTU3NCw4IEBACiAJ
CQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIwMDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0M0E0Njk5MUUyMjhCOTEwMDI3NkIwNSAvKiBDb2Rlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJODk2NkU0MTg2QjlGNEVDMUFDQzIyNUNBIC8qIFRocmVhZE5hbWUuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlv
blNwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0
LmNwcAppbmRleCBjYjFkMTAxZTg1NjUyOWU4YWFlYTZhYmY2MGVjMzhlYTBiOGRkZTcyLi5mZDVj
OWU4ODJjZThlMmRmMDZlNDA2MDNjYTI5MTlkOGJkYzhmZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2Jl
bmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lkIHJ1
blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29uc3VtZXJzOyBpLS07KSB7
CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVh
ZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAgICAgICAgeyAiQ29uc3Vt
ZXIgdGhyZWFkIiwgIkNvbnN1bWVyIiB9LAogICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAg
ICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJlc3VsdDsK
QEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIHJ1blRlc3QoCiAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJ
ZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIlByb2R1Y2VyIFRocmVhZCIs
CisgICAgICAgICAgICB7ICJQcm9kdWNlciBUaHJlYWQiLCAiUHJvZHVjZXIiIH0sCiAgICAgICAg
ICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
dW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgYm9vbCBt
dXN0Tm90aWZ5ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9j
a0ZhaXJuZXNzVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVz
dC5jcHAKaW5kZXggZjA4MzIxYzBmNjg4MzY1MzVkODNjYjZiYzc1MTE4NDhiYjUyZDk0Zi4uNDkw
M2M4NzU5MGEyOGIyYjY1ZWMxYzE5OTk3OTdkMmFjMWQ0OTcwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVu
Y2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcApAQCAtNzEsNyArNzEsNyBAQCBzdHJ1Y3QgQmVu
Y2htYXJrIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCB0aHJlYWRJbmRleCA9IG51bVRocmVhZHM7
IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICBjb3VudHNbdGhyZWFkSW5kZXhdID0gMDsK
ICAgICAgICAgICAgIHRocmVhZHNbdGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFkKAotICAgICAg
ICAgICAgICAgICJCZW5jaG1hcmsgVGhyZWFkIiwKKyAgICAgICAgICAgICAgICB7ICJCZW5jaG1h
cmsgdGhyZWFkIiwgIkJlbmNobWFya1J1bm5lciIgfSwKICAgICAgICAgICAgICAgICBbJiwgdGhy
ZWFkSW5kZXhdICgpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtaWNyb3NlY29uZHNJbkNy
aXRpY2FsU2VjdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGtlZXBHb2lu
ZykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3Bw
IGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCmluZGV4IDU0NWQyZTBi
MDQ4OGYzMzg5NGE1OTY4OGZkOTFiMGQzYTM4N2NjYTIuLjI5ZjAzOGI1Y2E4ZGI2NDE4Mzg2ZjA1
OWI2Y2Y2OWE1Y2Q4MGFhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2Nr
U3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5j
cHAKQEAgLTkxLDcgKzkxLDcgQEAgc3RydWN0IEJlbmNobWFyayB7CiAKICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJlYWRzUGVyR3JvdXA7IHRocmVhZEluZGV4
LS07KSB7CiAgICAgICAgICAgICAgICAgdGhyZWFkc1t0aHJlYWRHcm91cEluZGV4ICogbnVtVGhy
ZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAg
ICAgICAgICAiQmVuY2htYXJrIHRocmVhZCIsCisgICAgICAgICAgICAgICAgICAgIHsgIkJlbmNo
bWFyayB0aHJlYWQiLCAiQmVuY2htYXJrUnVubmVyIiB9LAogICAgICAgICAgICAgICAgICAgICBb
dGhyZWFkR3JvdXBJbmRleCwgJmxvY2tzLCAmd29yZHMsICZrZWVwR29pbmcsICZudW1JdGVyYXRp
b25zTG9jaywgJm51bUl0ZXJhdGlvbnNdICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGRv
dWJsZSBsb2NhbFdvcmQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHZhbHVl
ID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCmluZGV4IDRkOGZiODQ4OWY5OWNiOGY2
N2U3Y2MyZDEzYmY0MTU1ZWU4N2U1YzUuLmM2NGM2MDg2ZDU5ZTk5YWU1MTdhN2Q0MWZjZDY5ZmFh
MGQ1Mjk4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcApAQCAtOTgsOSArOTgsMTAg
QEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNvbnRhaW5zKGNvbnN0IExvY2tIb2xk
ZXImLCBBdXRvbWF0aWNUaHJlYWQqIHRocmUKICAgICByZXR1cm4gbV90aHJlYWRzLmNvbnRhaW5z
KHRocmVhZCk7CiB9CiAKLUF1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0IExv
Y2tIb2xkZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb24+IGNvbmRpdGlvbikKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNv
bnN0IExvY2tIb2xkZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogICAgIDog
bV9sb2NrKGxvY2spCiAgICAgLCBtX2NvbmRpdGlvbihjb25kaXRpb24pCisgICAgLCBtX25hbWUo
dGhyZWFkTmFtZSkKIHsKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgZGF0YUxvZyhSYXdQb2lu
dGVyKHRoaXMpLCAiOiBBbGxvY2F0ZWQgQXV0b21hdGljVGhyZWFkLlxuIik7CkBAIC0xNTYsNyAr
MTU3LDcgQEAgdm9pZCBBdXRvbWF0aWNUaHJlYWQ6OnN0YXJ0KGNvbnN0IExvY2tIb2xkZXImKQog
ICAgIG1faGFzVW5kZXJseWluZ1RocmVhZCA9IHRydWU7CiAgICAgCiAgICAgVGhyZWFkSWRlbnRp
ZmllciB0aHJlYWQgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJXVEY6OkF1dG9tYXRpY1RocmVh
ZCIsCisgICAgICAgIG1fbmFtZSwKICAgICAgICAgWz1dICgpIHsKICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQogICAgICAgICAgICAgICAgIGRhdGFMb2coUmF3UG9pbnRlcih0aGlzKSwgIjogUnVu
bmluZyBhdXRvbWF0aWMgdGhyZWFkIVxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9B
dXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCmluZGV4
IDY5MjZmNjIzNjUzZDRjNTkyMTM3MGNjNGQ5Y2VjOGQwNmMzM2VkYTguLjcxOWZjYmRkZDcwY2Jj
Y2Q0ZGU5ZmFiOTQ1ZDdiM2E4MDE5ZTlkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCkBA
IC0xMzAsNyArMTMwLDcgQEAgY2xhc3MgV1RGX0VYUE9SVF9QUklWQVRFIEF1dG9tYXRpY1RocmVh
ZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdXRvbWF0aWMKIHByb3RlY3RlZDoKICAg
ICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVzIHRoZSB0aHJlYWQsIGJ1dCBpbiByZWFsaXR5IHRo
ZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1bnRpbCBzb21lb25lCiAgICAgLy8gY2FsbHMgQXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoKSBvciBub3RpZnlBbGwoKS4KLSAgICBB
dXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYsIEJveDxMb2NrPiwgUmVmUHRyPEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbj4pOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBMb2NrSG9s
ZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiwgVGhyZWFk
TmFtZSk7CiAgICAgCiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVz
dWx0LCBpbWFnaW5lIHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtl
CiAgICAgLy8gc286CkBAIC0xODIsNiArMTgyLDcgQEAgY2xhc3MgV1RGX0VYUE9SVF9QUklWQVRF
IEF1dG9tYXRpY1RocmVhZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdXRvbWF0aWMK
ICAgICBib29sIG1faGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07CiAgICAgQ29uZGl0aW9u
IG1fd2FpdENvbmRpdGlvbjsKICAgICBDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRpb247Cisg
ICAgVGhyZWFkTmFtZSBtX25hbWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCmluZGV4IDk0OTJmZGRkZjE5NjQ5ZDY1YjUxMGIxZTQz
YzAyYWE5NTE0YzA3MzEuLjJjM2JmMDc0MDg4ZTI5YTk5MThmMjlmYWZmOTRjZDBjNWI2MmQxM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcApAQCAtMTIzLDkgKzEyMywxMCBA
QCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZv
aWQgKCk+PiB0YXNrKQogICAgIH0KIH0KIAotUGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhl
bHBlclBvb2woKQorUGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woVGhyZWFk
TmFtZSB0aHJlYWROYW1lKQogICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAg
LCBtX3dvcmtBdmFpbGFibGVDb25kaXRpb24oQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVh
dGUoKSkKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1lKQogewogfQogCkBAIC0xNzEsNyArMTcyLDcg
QEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRvU29tZUhlbHBpbmcoKQogY2xhc3MgUGFyYWxs
ZWxIZWxwZXJQb29sOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoK
ICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBQYXJhbGxlbEhlbHBlclBvb2wm
IHBvb2wpCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgcG9vbC5tX2xvY2ssIHBv
b2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChs
b2NrZXIsIHBvb2wubV9sb2NrLCBwb29sLm1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbiwgcG9vbC5u
YW1lKCkpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oIGIvU291cmNlL1dURi93dGYvUGFy
YWxsZWxIZWxwZXJQb29sLmgKaW5kZXggODE2MzViYjc4MTkwMDNhYzlkN2Y0YTY4MWNjNTU0NGU5
MGRhN2Q5MS4uZWRjMWFlZTFhMjRhZDdiODA0NjUyMjE1NWFmNjRiYTA0ZGJjYmJlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKQEAgLTE3OSw3ICsxNzksNyBAQCBjbGFzcyBQYXJh
bGxlbEhlbHBlckNsaWVudCB7CiAKIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKIHB1YmxpYzoKLSAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKCk7CisgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lKTsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsKQEAgLTE4OCw2ICsxODgsOCBA
QCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
UGFyYWxsZWxIZWxwZXJQb29sPiB7CiAgICAgCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZG9Tb21lSGVscGluZygpOwogCisgICAgVGhyZWFkTmFtZSBuYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lOyB9CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhcmFsbGVsSGVscGVyQ2xp
ZW50OwogICAgIGNsYXNzIFRocmVhZDsKQEAgLTIwNyw2ICsyMDksNyBAQCBjbGFzcyBQYXJhbGxl
bEhlbHBlclBvb2wgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQ
b29sPiB7CiAgICAgCiAgICAgVmVjdG9yPFBhcmFsbGVsSGVscGVyQ2xpZW50Kj4gbV9jbGllbnRz
OwogICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4gbV90aHJlYWRzOworICAgIFRo
cmVhZE5hbWUgbV9uYW1lOwogICAgIHVuc2lnbmVkIG1fbnVtVGhyZWFkcyB7IDAgfTsgLy8gVGhp
cyBjYW4gYmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNpemUoKSBiZWNhdXNlIHdlIHN0YXJ0IHRo
cmVhZHMgb25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCiAgICAgYm9vbCBtX2lzRHlpbmcgeyBmYWxz
ZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
Y3BwIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAKaW5kZXggNDAyM2Y0
M2U2ZjIwYTM4ZTEwM2U3YzlhMmU0ZjBmN2UwNjEwNTcxNC4uZWQ0YjNmNjVkMjFkMmNjYWUwZjNl
NDhiYzM1OWQ5MzU1YWUxNmYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxK
b2JzR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5j
cHAKQEAgLTk0LDcgKzk0LDcgQEAgYm9vbCBQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2
YXRlOjp0cnlMb2NrRm9yKFBhcmFsbGVsRW52aXJvbm1lbnQqIHBhcmVudCkKICAgICB9CiAKICAg
ICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoJlBh
cmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCwgdGhpcywgIlBh
cmFsbGVsIHdvcmtlciIpOworICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKCZQYXJh
bGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQsIHRoaXMsIHsgIlBh
cmFsbGVsIHdvcmtlciIsICJQYXJhbGxlbFdvcmtlciIgfSk7CiAKICAgICBpZiAobV90aHJlYWRJ
RCkKICAgICAgICAgbV9wYXJlbnQgPSBwYXJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWROYW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGU0ZmMyNGY2YjVjMjk0NGRmMjI5NmY2OWIwYTZlN2RlYTdkZjdmNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUuaApAQCAtMCwwICsxLDgzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPi4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitj
bGFzcyB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dW5zaWduZWQgbG9uZ05hbWVDb3VudCwgdW5z
aWduZWQgc2hvcnROYW1lQ291bnQ+CisgICAgZXhwbGljaXQgY29uc3RleHByIFRocmVhZE5hbWUo
Y29uc3QgY2hhciAoJmxvbmdOYW1lKVtsb25nTmFtZUNvdW50XSwgY29uc3QgY2hhciAoJnNob3J0
TmFtZSlbc2hvcnROYW1lQ291bnRdKQorICAgICAgICA6IG1fbG9uZ05hbWUobG9uZ05hbWUpCisg
ICAgICAgICwgbV9zaG9ydE5hbWUoc2hvcnROYW1lKQorICAgIHsKKyNpZiBPUyhMSU5VWCkKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChzdHJpbmdDb3VudChzaG9ydE5hbWUpIDw9ICgxNiAtIDEpLCAi
Iik7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0cmluZ0NvdW50
KCJXZWJLaXQ6ICIpICsgc3RyaW5nQ291bnQoc2hvcnROYW1lKSA8PSAoMzIgLSAxKSwgIiIpOwor
I2VuZGlmCisgICAgfQorCisgICAgQ1N0cmluZyBuYW1lKCkgY29uc3QKKyAgICB7CisjaWYgT1Mo
TElOVVgpCisgICAgICAgIHJldHVybiBtX3Nob3J0TmFtZTsKKyNlbGlmIE9TKFdJTkRPV1MpCisg
ICAgICAgIHJldHVybiBwcmVmaXhlZE5hbWUobV9zaG9ydE5hbWUpOworI2Vsc2UKKyAgICAgICAg
cmV0dXJuIHByZWZpeGVkTmFtZShtX2xvbmdOYW1lKTsKKyNlbmRpZgorICAgIH0KKworcHJpdmF0
ZToKKyAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzdHJpbmdDb3VudD4KKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIHN0cmluZ0xlbmd0aChjb25zdCBjaGFyICgmKVtzdHJpbmdDb3VudF0pCisg
ICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQ291bnQgLSAxOworICAgIH0KKworICAgIHN0YXRp
YyBDU3RyaW5nIHByZWZpeGVkTmFtZShjb25zdCBjaGFyKiBjb250ZW50KQorICAgIHsKKyAgICAg
ICAgY29uc3RleHByIHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IHN0cmluZ0xlbmd0aCgiV2ViS2l0
OiAiKTsKKyAgICAgICAgdW5zaWduZWQgY29udGVudExlbmd0aCA9IHN0cmxlbihjb250ZW50KTsK
KyAgICAgICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgQ1N0cmluIHN0cmluZyA9
IENTdHJpbmc6Om5ld1VuaW5pdGlhbGl6ZWQocHJlZml4TGVuZ3RoICsgY29udGVudExlbmd0aCwg
YnVmZmVyKTsKKyAgICAgICAgbWVtY3B5KGJ1ZmZlciwgIldlYktpdDogIiwgcHJlZml4TGVuZ3Ro
KTsKKyAgICAgICAgYnVmZmVyICs9IHByZWZpeExlbmd0aDsKKyAgICAgICAgbWVtY3B5KGJ1ZmZl
ciwgY29udGVudCwgY29udGVudExlbmd0aCk7CisgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAg
fQorCisgICAgY29uc3QgY2hhciogbV9sb25nTmFtZTsKKyAgICBjb25zdCBjaGFyKiBtX3Nob3J0
TmFtZTsKK307CisKK30KKwordXNpbmcgV1RGOjpUaHJlYWROYW1lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAK
aW5kZXggNDBjZTM5YTQ1ZDM1NDBhMjNmZDU4NzhjZjkwNjdlYWZkNzY4MTMzYy4uMTNkZjUzMmMz
OTRhMzEzMzM1NGE1NDMwYjgwNDhjMDIyYWE4MzBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0z
NiwzOCArMzYsMTEgQEAgbmFtZXNwYWNlIFdURiB7CiBzdHJ1Y3QgTmV3VGhyZWFkQ29udGV4dCB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3QgY2hhciog
bmFtZTsKKyAgICBUaHJlYWROYW1lIG5hbWU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVu
dHJ5UG9pbnQ7CiAgICAgTXV0ZXggY3JlYXRpb25NdXRleDsKIH07CiAKLWNvbnN0IGNoYXIqIG5v
cm1hbGl6ZVRocmVhZE5hbWUoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKLXsKLSNpZiBIQVZFKFBU
SFJFQURfU0VUTkFNRV9OUCkKLSAgICByZXR1cm4gdGhyZWFkTmFtZTsKLSNlbHNlCi0gICAgLy8g
VGhpcyBuYW1lIGNhbiBiZSBjb20uYXBwbGUuV2ViS2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20u
YXBwbGUuQ29yZUlQQy5SZWNlaXZlUXVldWUuCi0gICAgLy8gV2UgYXJlIHVzaW5nIHRob3NlIG5h
bWVzIGZvciB0aGUgdGhyZWFkIG5hbWUsIGJ1dCBib3RoIGFyZSBsb25nZXIgdGhhbiB0aGUgbGlt
aXQgb2YKLSAgICAvLyB0aGUgcGxhdGZvcm0gdGhyZWFkIG5hbWUgbGVuZ3RoLCAzMiBmb3IgV2lu
ZG93cyBhbmQgMTYgZm9yIExpbnV4LgotICAgIFN0cmluZ1ZpZXcgcmVzdWx0KHRocmVhZE5hbWUp
OwotICAgIHNpemVfdCBzaXplID0gcmVzdWx0LnJldmVyc2VGaW5kKCcuJyk7Ci0gICAgaWYgKHNp
emUgIT0gbm90Rm91bmQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc2l6ZSAr
IDEpOwotCi0jaWYgT1MoV0lORE9XUykKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtWaXN1
YWxTdHVkaW9UaHJlYWROYW1lTGltaXQgPSAzMiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgo
KSA+IGtWaXN1YWxTdHVkaW9UaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3Vs
dC5yaWdodChrVmlzdWFsU3R1ZGlvVGhyZWFkTmFtZUxpbWl0KTsKLSNlbGlmIE9TKExJTlVYKQot
ICAgIGNvbnN0ZXhwciBjb25zdCBzaXplX3Qga0xpbnV4VGhyZWFkTmFtZUxpbWl0ID0gMTYgLSAx
OwotICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPiBrTGludXhUaHJlYWROYW1lTGltaXQpCi0gICAg
ICAgIHJlc3VsdCA9IHJlc3VsdC5yaWdodChrTGludXhUaHJlYWROYW1lTGltaXQpOwotI2VuZGlm
Ci0gICAgQVNTRVJUKHJlc3VsdC5jaGFyYWN0ZXJzOCgpW3Jlc3VsdC5sZW5ndGgoKV0gPT0gJ1ww
Jyk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC5jaGFy
YWN0ZXJzOCgpKTsKLSNlbmRpZgotfQotCiBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZv
aWQqIGNvbnRleHREYXRhKQogewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBzdGF0
aWNfY2FzdDxOZXdUaHJlYWRDb250ZXh0Kj4oY29udGV4dERhdGEpOwpAQCAtODgsNyArNjEsNyBA
QCBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogICAgIGVu
dHJ5UG9pbnQoKTsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hh
ciogbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQpCitUaHJlYWRJZGVudGlm
aWVyIGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBl
bnRyeVBvaW50KQogewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBuZXcgTmV3VGhy
ZWFkQ29udGV4dCB7IG5hbWUsIFdURk1vdmUoZW50cnlQb2ludCksIHsgfSB9OwogCkBAIC05OCw3
ICs3MSw3IEBAIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUs
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVh
ZEludGVybmFsKHRocmVhZEVudHJ5UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi1UaHJlYWRJ
ZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBk
YXRhLCBjb25zdCBjaGFyKiBuYW1lKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhy
ZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSBuYW1lKQogewog
ICAgIHJldHVybiBjcmVhdGVUaHJlYWQobmFtZSwgW2VudHJ5UG9pbnQsIGRhdGFdIHsKICAgICAg
ICAgZW50cnlQb2ludChkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Zy5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKaW5kZXggMzA1MGRkOGRmODQ4YjZlNWEw
OWM4ZTczYWFhY2Y1NDA3ZjhhNGI2NS4uZGMzYWVhYjc5MjcwYWJhMzUyZjY1OThjNjgwMGY4NTcx
YThjY2Y5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYv
QXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+
CiAKQEAgLTU1LDcgKzU2LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRo
cmVhZGluZygpOwogCiAvLyBSZXR1cm5zIDAgaWYgdGhyZWFkIGNyZWF0aW9uIGZhaWxlZC4KIC8v
IFRoZSB0aHJlYWQgbmFtZSBtdXN0IGJlIGEgbGl0ZXJhbCBzaW5jZSBvbiBzb21lIHBsYXRmb3Jt
cyBpdCdzIHBhc3NlZCBpbiB0byB0aGUgdGhyZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVh
ZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUsIHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPik7CitXVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVh
dGVUaHJlYWQoVGhyZWFkTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogLy8gTWFyayB0
aGUgY3VycmVudCB0aHJlYWQgYXMgcmVxdWlyaW5nIFVJIHJlc3BvbnNpdmVuZXNzLgogLy8gcmVs
YXRpdmVQcmlvcml0eSBpcyBhIHZhbHVlIGluIHRoZSByYW5nZSBbLTE1LCAwXSB3aGVyZSBhIGxv
d2VyIHZhbHVlIGluZGljYXRlcyBhIGxvd2VyIHByaW9yaXR5LgpAQCAtNjgsMTYgKzY5LDE0IEBA
IFdURl9FWFBPUlRfUFJJVkFURSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRl
bnRpZmllcik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRl
bnRpZmllcik7CiAKIC8vIERlcHJlY2F0ZWQgZnVuY3Rpb24tcG9pbnRlci1iYXNlZCB0aHJlYWQg
Y3JlYXRpb24uCi1XVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJl
YWQoVGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1dURl9F
WFBPUlRfUFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlv
biwgdm9pZCosIFRocmVhZE5hbWUpOwogCiAvLyBJbnRlcm5hbCBwbGF0Zm9ybS1zcGVjaWZpYyBj
cmVhdGVUaHJlYWQgaW1wbGVtZW50YXRpb24uCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVh
ZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7
CitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2
b2lkKiwgVGhyZWFkTmFtZSk7CiAKIC8vIENhbGxlZCBpbiB0aGUgdGhyZWFkIGR1cmluZyBpbml0
aWFsaXphdGlvbi4KIC8vIEhlbHBmdWwgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgdGhyZWFkIG5h
bWUgbXVzdCBiZSBzZXQgZnJvbSB3aXRoaW4gdGhlIHRocmVhZC4KLXZvaWQgaW5pdGlhbGl6ZUN1
cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKLQotY29uc3QgY2hh
ciogbm9ybWFsaXplVGhyZWFkTmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK3ZvaWQgaW5p
dGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1lKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCAwZjlmMmZjNzJj
OWQzZTg5MGM3M2FhZGE3MzkxNTA0YTkxYTc0MjgwLi41M2NhMzhlYTQ3Yzc1MDRjN2UzOWQ5ZGEw
ZDRiZmJhZTZhNDA1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhy
ZWFkcy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0x
NjksNyArMTY5LDcgQEAgc3RhdGljIHZvaWQqIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFy
YW0pCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhy
ZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3Qg
Y2hhciopCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0
aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUpCiB7CiAgICAgYXV0byBpbnZv
Y2F0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+KGVudHJ5
UG9pbnQsIGRhdGEpOwogICAgIHB0aHJlYWRfdCB0aHJlYWRIYW5kbGU7CkBAIC0xOTIsMTIgKzE5
MiwxNCBAQCBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0
aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbgogICAgIHJldHVybiBlc3RhYmxpc2hJZGVu
dGlmaWVyRm9yUHRocmVhZEhhbmRsZSh0aHJlYWRIYW5kbGUpOwogfQogCi12b2lkIGluaXRpYWxp
emVDdXJyZW50VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK3ZvaWQgaW5p
dGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAj
aWYgSEFWRShQVEhSRUFEX1NFVE5BTUVfTlApCi0gICAgcHRocmVhZF9zZXRuYW1lX25wKG5vcm1h
bGl6ZVRocmVhZE5hbWUodGhyZWFkTmFtZSkpOworICAgIGF1dG8gbmFtZSA9IHRocmVhZE5hbWUu
bmFtZSgpOworICAgIHB0aHJlYWRfc2V0bmFtZV9ucChuYW1lLmRhdGEoKSk7CiAjZWxpZiBPUyhM
SU5VWCkKLSAgICBwcmN0bChQUl9TRVRfTkFNRSwgbm9ybWFsaXplVGhyZWFkTmFtZSh0aHJlYWRO
YW1lKSk7CisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CisgICAgcHJjdGwoUFJf
U0VUX05BTUUsIG5hbWUuZGF0YSgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5h
bWUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3Bw
IGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAppbmRleCA1NGI0M2VmZWYzNWNkNjYz
MmE3MDA4MTUwN2E1YjM3OTlkZWZiNmZiLi40YzliYzU3N2EyNmE5MGRhNTUwOWQyYzYyMzgzMWJm
YmVmODdkNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKQEAgLTEyMSwxNSArMTIxLDE2IEBA
IHR5cGVkZWYgc3RydWN0IHRhZ1RIUkVBRE5BTUVfSU5GTyB7CiB9IFRIUkVBRE5BTUVfSU5GTzsK
ICNwcmFnbWEgcGFjayhwb3ApCiAKLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5h
bChjb25zdCBjaGFyKiBzelRocmVhZE5hbWUpCit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFk
SW50ZXJuYWwoVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogI2lmIENPTVBJTEVSKE1JTkdXKQog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhyZWFkIG5hbWUgc2V0dGluZyB3aXRoIE1pbmdXLgot
ICAgIFVOVVNFRF9QQVJBTShzelRocmVhZE5hbWUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJlYWRO
YW1lKTsKICNlbHNlCisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CiAgICAgVEhS
RUFETkFNRV9JTkZPIGluZm87CiAgICAgaW5mby5kd1R5cGUgPSAweDEwMDA7Ci0gICAgaW5mby5z
ek5hbWUgPSBub3JtYWxpemVUaHJlYWROYW1lKHN6VGhyZWFkTmFtZSk7CisgICAgaW5mby5zek5h
bWUgPSBuYW1lLmRhdGEoKTsKICAgICBpbmZvLmR3VGhyZWFkSUQgPSBHZXRDdXJyZW50VGhyZWFk
SWQoKTsKICAgICBpbmZvLmR3RmxhZ3MgPSAwOwogCkBAIC0xOTksNyArMjAwLDcgQEAgc3RhdGlj
IHVuc2lnbmVkIF9fc3RkY2FsbCB3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAg
IHJldHVybiAwOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRo
cmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIHRocmVhZE5h
bWUpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9u
IGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICAgICB1
bnNpZ25lZCB0aHJlYWRJZGVudGlmaWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVh
ZElEID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCmluZGV4IGIyYTBhNzlmNGFiNWFhYzI4OWIxNjlmOTJi
YmMxYTgwNTg1MmNhMzIuLmMyODkxNjY5ZDYwZjE5NThjYmRlZDZlNzkxNTJhMjc1ZDY2Mjc2M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvV29ya1F1ZXVlLmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYg
ewogCi1SZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBU
eXBlIHR5cGUsIFFPUyBxb3MpCitSZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShUaHJl
YWROYW1lIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXb3JrUXVldWUobmFtZSwgdHlwZSwgcW9zKSk7CiB9CiAKLVdvcmtRdWV1ZTo6V29ya1F1
ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK1dvcmtRdWV1ZTo6V29y
a1F1ZXVlKFRocmVhZE5hbWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHBsYXRm
b3JtSW5pdGlhbGl6ZShuYW1lLCB0eXBlLCBxb3MpOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lk
IFdvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6
OmZ1bmN0aW9uPHZvaWQgKHNpegogCiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eSh0aHJlYWRDb3VudCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgdGhyZWFkQ291bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBl
bmQoY3JlYXRlVGhyZWFkKFN0cmluZzo6Zm9ybWF0KCJUaHJlYWRQb29sIFdvcmtlciAldSIsIGkp
LnV0ZjgoKS5kYXRhKCksIFt0aGlzXSB7CisgICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVu
ZChjcmVhdGVUaHJlYWQoeyAiVGhyZWFkUG9vbCBXb3JrZXIiLCAiQ29uY3VycmVudEFwcGx5IiB9
LCBbdGhpc10gewogICAgICAgICAgICAgICAgICAgICB0aHJlYWRCb2R5KCk7CiAgICAgICAgICAg
ICAgICAgfSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29y
a1F1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAppbmRleCBkOTE4NGI0ODI3YmYx
MGJhMzhhNDgxNDgwNWIyZjMzNjQ2ZDc2ZTAzLi40MjcyNGFmNjgzZGRhMTc2YTZkNmUwNmM0OWI0
OGY2ODkzZGI0OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKQEAg
LTY3LDcgKzY4LDcgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlz
cGF0Y2hlciB7CiAgICAgICAgIEJhY2tncm91bmQKICAgICB9OwogCi0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlw
ZSA9IFR5cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lLCBUeXBlID0gVHlw
ZTo6U2VyaWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOwogICAgIHZpcnR1YWwgfldvcmtRdWV1ZSgp
OwogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAo
KT4mJikgb3ZlcnJpZGU7CkBAIC04NSw5ICs4Niw5IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6
IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgV29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgZXhwbGlj
aXQgV29ya1F1ZXVlKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAKLSAgICB2b2lkIHBsYXRmb3Jt
SW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOworICAgIHZvaWQgcGxhdGZv
cm1Jbml0aWFsaXplKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
dmFsaWRhdGUoKTsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKaW5kZXggOGVkYmYyM2M1NTg4ODgyOTZjMTRjOGM5ZDBl
ZTBjNGY2MzMwYjMyMy4uZTE1NzE1ZDE3MjE1NDRkNjhkYWM1YWVjYzUxNmJlYjEzNTBkN2FlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcApAQCAtNzksNyArNzksNyBA
QCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB0YXJnZXRRdWV1ZUZvclFPU0NsYXNzKFdvcmtRdWV1
ZTo6UU9TIHFvcykKIH0KICNlbmRpZgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFs
aXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK3ZvaWQgV29ya1F1ZXVl
OjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3Mp
CiB7CiAgICAgZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0dHIgPSB0eXBlID09IFR5cGU6OkNvbmN1
cnJlbnQgPyBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UIDogRElTUEFUQ0hfUVVFVUVfU0VSSUFM
OwogI2lmIEhBVkUoUU9TX0NMQVNTRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwv
RGlzcGF0Y2hRdWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVm
bC5jcHAKaW5kZXggYjRhZDJiZGM0MzhmOWQ5NDU3ZTNmN2ZiNDkyMjRjNjgxNTk3NmRhZi4uMmYx
MGIwMmEwZTE5M2MyZjI5MmVjOTBjMmJjMmIyOGU0ZWQzYzg4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2Vm
bC9EaXNwYXRjaFF1ZXVlRWZsLmNwcApAQCAtNDAsNyArNDAsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciB3YWtlVXBUaHJlYWRNZXNzYWdlID0gJ1cnOwogCiBjbGFzcyBEaXNwYXRjaFF1ZXVlOjpUaHJl
YWRDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBzdGFydChjb25zdCBjaGFyKiBu
YW1lLCBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUpCisgICAgc3RhdGlj
IHZvaWQgc3RhcnQoVGhyZWFkTmFtZSBuYW1lLCBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGRp
c3BhdGNoUXVldWUpCiAgICAgewogICAgICAgICAvLyBUaGUgRGlzcGF0Y2hRdWV1ZVRocmVhZENv
bnRleHQgaW5zdGFuY2Ugd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRocmVhZCBmdW5jdGlvbiBhbmQg
ZGVsZXRlZCBpbiBpdC4KICAgICAgICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZChyZWludGVy
cHJldF9jYXN0PFdURjo6VGhyZWFkRnVuY3Rpb24+KCZUaHJlYWRDb250ZXh0OjpmdW5jdGlvbiks
IG5ldyBUaHJlYWRDb250ZXh0KGRpc3BhdGNoUXVldWUpLCBuYW1lKSk7CkBAIC02MSw3ICs2MSw3
IEBAIGNsYXNzIERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRleHQgewogICAgIFJlZlB0cjxEaXNw
YXRjaFF1ZXVlPiBtX2Rpc3BhdGNoUXVldWU7CiB9OwogCi1QYXNzUmVmUHRyPERpc3BhdGNoUXVl
dWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lKQorUGFzc1JlZlB0cjxE
aXNwYXRjaFF1ZXVlPiBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSBuYW1lKQogewog
ICAgIFJlZlB0cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVlID0gYWRvcHRSZWY8RGlzcGF0
Y2hRdWV1ZT4obmV3IERpc3BhdGNoUXVldWUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmggYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hR
dWV1ZUVmbC5oCmluZGV4IGZjNTU1MTliMDFjZWU4ZmUwNDljMTNjMWU1ZmNmYzdkOTk3OTRmMjYu
LjU3MDk0MjZkYmFlYmFhNzExNWY2MjgyNmJjMjRkZDRmYjJlNDFlOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmgKKysrIGIvU291cmNlL1dURi93dGYv
ZWZsL0Rpc3BhdGNoUXVldWVFZmwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8ZnVu
Y3Rpb25hbD4KICNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nUHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM3LDcgKzM4
LDcgQEAgY2xhc3MgV29ya0l0ZW07CiAKIGNsYXNzIERpc3BhdGNoUXVldWUgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8RGlzcGF0Y2hRdWV1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShjb25zdCBjaGFyKiBuYW1lKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVhdGUoVGhyZWFkTmFtZSk7CiAgICAg
fkRpc3BhdGNoUXVldWUoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2goc3RkOjp1bmlxdWVfcHRyPFdv
cmtJdGVtPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCmluZGV4IGRhOTEzYmYwNGNl
NzI3MzEwNzY3ZWY0Nzk0ZmRkMmI4NzhhNWY0ZWQuLjgzMjVmNWQ2YzMxNGQ0ZmJiODMzM2YyMTkw
ZDNmYmNmMTk0N2UxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0yNSw3
ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1J
bml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpw
bGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlLCBRT1MpCiB7CiAgICAgbV9k
aXNwYXRjaFF1ZXVlID0gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKG5hbWUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKaW5kZXggZjU5NGUyNDAxMTZkNGUw
NDNkNGRjM2EzZjZjZjdjMDdkNGIyMzQ0Mi4uZGY2ZTA3MjJkMWU0MDNjN2FiOTcwMDcwZDU3ZjYz
YjYyNjEyNDIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVH
ZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMu
Y3BwCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAotdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBU
eXBlLCBRT1MpCit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUg
bmFtZSwgVHlwZSwgUU9TKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1
bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgbV93b3JrUXVldWVUaHJlYWQgPSBjcmVhdGVUaHJl
YWQobmFtZSwgW3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlM
aXRlcmFsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM5NDZhOTI5ODRmOTQ0YjEzNWQ3MDI5ZjUzMWRkNzFiOGNhNjk5NjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFTQ0lJTGl0ZXJhbCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgY29uc3RleHByIEFTQ0lJTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFy
YWN0ZXJzKQorICAgICAgICA6IG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQorICAgIHsKKyAgICB9
CisKKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgY29uc3QgY2hhciooKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fY2hhcmFjdGVyczsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3Qg
Y2hhciogbV9jaGFyYWN0ZXJzOworfTsKKworfQorCit1c2luZyBXVEY6OkFTQ0lJTGl0ZXJhbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IDAxYzc2ODEwYmQ2Y2QxZWRiYmVmOGFmZWQ4NDJm
ODA4MGRmN2RhZDMuLjgwZTY0NDcxZmVkMDg4NzQwNTMzNjUzZjZmNGU2OTZlYWUwNGIwYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMjYsNiArMjYsNyBAQAogLy8gb24gc3lzdGVtcyB3
aXRob3V0IGNhc2Utc2Vuc2l0aXZlIGZpbGUgc3lzdGVtcy4KIAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0FTQ0lJRmFzdFBhdGguaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMzQs
OCArMzUsNiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgQVNDSUlMaXRlcmFsOwotCiAv
LyBEZWNsYXJhdGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlvbnMKIAogV1RGX0VYUE9SVF9TVFJJTkdf
QVBJIGludCBjaGFyYWN0ZXJzVG9JbnRTdHJpY3QoY29uc3QgTENoYXIqLCBzaXplX3QsIGJvb2wq
IG9rID0gbnVsbHB0ciwgaW50IGJhc2UgPSAxMCk7CkBAIC02ODEsMTUgKzY4MCw2IEBAIHRlbXBs
YXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFN0cmluZz4gewogCiB0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
VmVjdG9yVHJhaXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07CiAKLWNs
YXNzIEFTQ0lJTGl0ZXJhbCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgQVNDSUlMaXRlcmFsKGNv
bnN0IGNoYXIqIGNoYXJhY3RlcnMpIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpIHsgfQotICAg
IG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgeyByZXR1cm4gbV9jaGFyYWN0ZXJzOyB9Ci0KLXByaXZh
dGU6Ci0gICAgY29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOwotfTsKLQogLy8gU2hhcmVkIGdsb2Jh
bCBlbXB0eSBzdHJpbmcuCiBXVEZfRVhQT1JUX1NUUklOR19BUEkgY29uc3QgU3RyaW5nJiBlbXB0
eVN0cmluZygpOwogCkBAIC03MzgsNyArNzI4LDYgQEAgdXNpbmcgV1RGOjpmaW5kOwogdXNpbmcg
V1RGOjppc0FsbFNwZWNpYWxDaGFyYWN0ZXJzOwogdXNpbmcgV1RGOjppc1NwYWNlT3JOZXdsaW5l
OwogdXNpbmcgV1RGOjpyZXZlcnNlRmluZDsKLXVzaW5nIFdURjo6QVNDSUlMaXRlcmFsOwogCiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhy
ZWFkV2luLmNwcAppbmRleCBmMzI0ZThiNjFkZDQxZmEwNTYwODYzYjZjNTgxOTEwZjg2N2QzNmVi
Li41MjY5ZDlmMjJlMGE4ZDU4ZmIxNmZiMjc5M2I1YzlkMjgyMWUyMzZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
d2luL01haW5UaHJlYWRXaW4uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgaW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSgpCiAgICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFV
TFQsIDAsIEhXTkRfTUVTU0FHRSwgMCwgMCwgMCk7CiAgICAgdGhyZWFkaW5nRmlyZWRNZXNzYWdl
ID0gUmVnaXN0ZXJXaW5kb3dNZXNzYWdlVyhMImNvbS5hcHBsZS5XZWJLaXQuTWFpblRocmVhZEZp
cmVkIik7CiAKLSAgICBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKCJNYWluIFRocmVh
ZCIpOworICAgIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoeyAiTWFpbiBUaHJlYWQi
LCAiTWFpblRocmVhZCIgfSk7CiB9CiAKIHZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09u
TWFpblRocmVhZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2lu
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IGY0YzRiOGM3
N2RjZTk5NWY1N2YyNTY3MDJjMWY5Y2VmOGM2NWE1YWEuLjcxMjRhY2ZjOTdkY2FlOWEyMjE0ODQy
NjgyOWI4NGQzNmQ4MmMyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVl
dWVXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCkBAIC03
MSw3ICs3MSw3IEBAIHZvaWQgV29ya1F1ZXVlOjpwZXJmb3JtV29ya09uUmVnaXN0ZXJlZFdvcmtU
aHJlYWQoKQogICAgIG1fZnVuY3Rpb25RdWV1ZUxvY2sudW5sb2NrKCk7CiB9CiAKLXZvaWQgV29y
a1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQor
dm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUs
IFFPUykKIHsKICAgICBtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQgPSAwOwogICAgIG1fdGltZXJR
dWV1ZSA9IDo6Q3JlYXRlVGltZXJRdWV1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCA4NzQ3NjQzOGNhZTY1
YTYzODdkOTAxYTc1Mjg4MTVlYzk1NDdmMjMyLi5hYjFlZjY0ODBhNjI1YzliZGU0ZGRiMTg1MWRk
ZTkwMjMyZWJmZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBJREJTZXJ2ZXI6OklE
QlNlcnZlcihJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIp
CiAgICAgOiBtX2JhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyKGZpbGVIYW5kbGVyKQog
ewogICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7
Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFk
RW50cnksIHRoaXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIik7CisgICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMsIHsgIklu
ZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVyIiB9KTsKIH0KIAogSURCU2VydmVyOjpJ
REJTZXJ2ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdT
dG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKQEAgLTY2LDcgKzY2LDcgQEAg
SURCU2VydmVyOjpJREJTZXJ2ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgs
IElEQkJhY2tpbmdTdG9yZVRlbXBvcmEKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyIGNy
ZWF0ZWQgYXQgcGF0aCAlcyIsIGRhdGFiYXNlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsK
IAogICAgIExvY2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7
Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFk
RW50cnksIHRoaXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIik7CisgICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMsIHsgIklu
ZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVyIiB9KTsKIH0KIAogdm9pZCBJREJTZXJ2
ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9E
ZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0Rl
Y29kZXIuY3BwCmluZGV4IDI5MmYwNWI4Y2Q1MDZlMjI5YWU2YjhiZDg2MjljMDk1NGQxODQ1OWIu
LjAzZDg4NGVjNGZkZDAyY2Y1ZGQ0Y2EzOTE5YjdlZGRkMWYwMDE1ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCkBA
IC0zOSw3ICszOSw3IEBAIEFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2RlcigpCiB7
CiAgICAgLy8gU3RhcnQgd29ya2VyIHRocmVhZC4KICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJl
YWRDcmVhdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVk
aW9EZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhpcywgIkF1ZGlvIERlY29kZXIiKTsKKyAgICBtX3Ro
cmVhZElEID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhp
cywgeyAiQXVkaW8gRGVjb2RlciIsICJBdWRpb0RlY29kZXIiIH0pOwogfQogCiBBc3luY0F1ZGlv
RGVjb2Rlcjo6fkFzeW5jQXVkaW9EZWNvZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cAppbmRleCA1MDUyMzA0MTk3Y2RlZGRlNDdmZGNiYjkxMmVjNDc0MDU1Nzk3NDI4Li5iYTczYjgw
MDQyNTgzMDEzOTRlOWNkNjQxOGIzOTI3MzY1ZGQ1MjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlOjpzdGFydFJlbmRlcmluZygpCiAgICAgaWYgKCFtX3N0YXJ0ZWRSZW5kZXJpbmcpIHsKICAg
ICAgICAgbV9zdGFydGVkUmVuZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgcmVmKCk7IC8vIFNlZSBj
b3JyZXNwb25kaW5nIGRlcmVmKCkgY2FsbCBpbiBub3RpZnlDb21wbGV0ZURpc3BhdGNoKCkuCi0g
ICAgICAgIG1fcmVuZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6b2ZmbGluZVJlbmRlckVudHJ5LCB0aGlzLCAib2ZmbGluZSByZW5kZXJlciIpOwor
ICAgICAgICBtX3JlbmRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGU6Om9mZmxpbmVSZW5kZXJFbnRyeSwgdGhpcywgeyAib2ZmbGluZSByZW5kZXJlciIs
ICJPZmZsaW5lUmVuZGVyZXIiIH0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAppbmRleCAwZGRlNWY3
MjY4ZWU2NDJjMDA0MzA1Y2VmZTM2YjFjOWU0NGI4N2QzLi44ZGZkNmRiYjQwZDVkOWNhYTU0YzNh
YzRhNTBmZWJiZGRiMjFmOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIERh
dGFiYXNlVGhyZWFkOjpzdGFydCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6
ZGF0YWJhc2VUaHJlYWRTdGFydCwgdGhpcywgIldlYkNvcmU6IERhdGFiYXNlIik7CisgICAgbV90
aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWRTdGFy
dCwgdGhpcywgeyAiV2ViQ29yZTogRGF0YWJhc2UiLCAiV2ViREIiIH0pOwogCiAgICAgcmV0dXJu
IG1fdGhyZWFkSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9H
Q0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVy
LmNwcAppbmRleCA2ZjlmY2E2N2YzYzQ3YWRkYzgzZGVjOGNiMGQ1ZWI4Y2NiNDBkNzQzLi4zZTI0
ZjBiMDgwOWMxZjFjNWQ3NDY2ODhhY2E5MjYxYzIwYzE3ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEdD
Q29udHJvbGxlcjo6Z2FyYmFnZUNvbGxlY3ROb3dJZk5vdERvbmVSZWNlbnRseSgpCiAKIHZvaWQg
R0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5n
KGJvb2wgd2FpdFVudGlsRG9uZSkKIHsKLSAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0g
Y3JlYXRlVGhyZWFkKGNvbGxlY3QsIDAsICJXZWJDb3JlOiBHQ0NvbnRyb2xsZXIiKTsKKyAgICBU
aHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKGNvbGxlY3QsIDAsIHsgIldl
YkNvcmU6IEdDIENvbnRyb2xsZXIiLCAiR0NDb250cm9sbGVyIiB9KTsKIAogICAgIGlmICh3YWl0
VW50aWxEb25lKSB7CiAgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZjY5MWY2YjA5ZjI2YTVk
Njk1NGNlMTYzN2IzMjcyNjYwYjE2OWMwMC4uZjA4ZTBjMDFkOWNlNGFmMjhjNjM5YjUxYTY0MmRh
ODZmZTk4NGEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0
by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKQEAgLTMy
LDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdWJ0bGVDcnlwdG86OlN1YnRsZUNy
eXB0byhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCi0gICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DcnlwdG9RdWV1ZSIpKQorICAgICwgbV93b3JrUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5DcnlwdG9RdWV1ZSIsICJDcnlw
dG9RdWV1ZSIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QXN5bmNGaWxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3Ry
ZWFtLmNwcAppbmRleCA1YjgxMzYxMTJhZGRlYTE0NWM5NTU5MGE4YTNjMTc2MWYxYjFiOTgzLi5h
ZmIyZTBkZjIyMmRiNGQzM2FjZmZhOGY1YWI4OTY5ZjM5NTk5NmM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyB2
b2lkIGNhbGxPbkZpbGVUaHJlYWQoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIAogICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBjcmVhdGVGaWxlVGhyZWFkT25jZTsKICAgICBzdGQ6OmNh
bGxfb25jZShjcmVhdGVGaWxlVGhyZWFkT25jZSwgW10gewotICAgICAgICBjcmVhdGVUaHJlYWQo
IldlYkNvcmU6IEFzeW5jRmlsZVN0cmVhbSIsIFtdIHsKKyAgICAgICAgY3JlYXRlVGhyZWFkKHsg
IldlYkNvcmU6IEFzeW5jRmlsZVN0cmVhbSIsICJBc3luY0ZpbGVTdHJlYW0iIH0sIFtdIHsKICAg
ICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9v
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXgg
ZWU0MzdlODYyOGViZjRlODYzMjdjYzc3MDMwZjVmNjk0ZTMwYmIyZC4uOThmMTg5MDM5M2FjYTJk
MDMwOTllM2ZjZmU3ODY3MGVhMWE5OTQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6
Om9wZW4oY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUpCiAg
ICAgLy8gTG9jayBoZXJlIGFzIHdlbGwgYXMgZmlyc3QgdGhpbmcgaW4gdGhlIHRocmVhZCBzbyB0
aGUgdGhyZWFkIGRvZXNuJ3QgYWN0dWFsbHkgY29tbWVuY2UgdW50aWwgdGhlIGNyZWF0ZVRocmVh
ZCgpIGNhbGwgCiAgICAgLy8gY29tcGxldGVzIGFuZCBtX3N5bmNUaHJlYWRSdW5uaW5nIGlzIHBy
b3Blcmx5IHNldAogICAgIG1fc3luY0xvY2subG9jaygpOwotICAgIG1fc3luY1RocmVhZCA9IGNy
ZWF0ZVRocmVhZChJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYWRTdGFydCwgdGhp
cywgIldlYkNvcmU6IEljb25EYXRhYmFzZSIpOworICAgIG1fc3luY1RocmVhZCA9IGNyZWF0ZVRo
cmVhZChJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYWRTdGFydCwgdGhpcywgeyAi
V2ViQ29yZTogSWNvbkRhdGFiYXNlIiwgIkljb25EQiIgfSk7CiAgICAgbV9zeW5jVGhyZWFkUnVu
bmluZyA9IG1fc3luY1RocmVhZDsKICAgICBtX3N5bmNMb2NrLnVubG9jaygpOwogICAgIGlmICgh
bV9zeW5jVGhyZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVz
YWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5j
cHAKaW5kZXggOTEyMDBjMzQ1ZjQ1NWY5NmQ0OTRiZmQyYWQ3MDNmMjhjNWM2MjlkMS4uODgwNDBi
YTM4ODU0Y2Y5OTMzNDNlNWFhNmYzNGU1ZDE0YTVlOWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBSZXNv
dXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsK
IAogICAgIG1fdm0gPSAmY29tbW9uVk0oKTsKLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVh
dGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsICJXZWJDb3JlOiBSZXNvdXJjZVVzYWdlIik7
CisgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0
aGlzLCB7ICJXZWJDb3JlOiBSZXNvdXJjZVVzYWdlIiwgIlJlc291cmNlVXNhZ2UiIH0pOwogfQog
CiB2b2lkIFJlc291cmNlVXNhZ2VUaHJlYWQ6OnRocmVhZENhbGxiYWNrKHZvaWQqIHJlc291cmNl
VXNhZ2VUaHJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVGhyZWFkLmNwcAppbmRleCA3MzBjMGE2YmQ5M2Y0NTc4ZDFlZGJmOWFjZTFjZDg2NTY2ZTZj
OTg4Li5mOGJlYmNjNWIyMGZmNTM3NTk3NmExMzRiZWY2MDdlMWNmZTQ0ODUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKQEAgLTgx
LDcgKzgxLDcgQEAgdm9pZCBTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkK
ICAgICB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVS
dW5Mb29wTXV0ZXgpOwogCi0gICAgICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVh
ZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IFNjcm9sbGluZyIpOworICAgICAgICBt
X3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIHsg
IldlYkNvcmU6IFNjcm9sbGluZyIsICJTY3JvbGxpbmciIH0pOwogICAgICAgICAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxl
LndhaXQobG9jaywgW3RoaXNdeyByZXR1cm4gbV90aHJlYWRSdW5Mb29wOyB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCmlu
ZGV4IGY3MTMzM2M1YTM3YTk5ODk2NGYzYTc0MWM3MzE1MmU5NTE0NjZjZjYuLmI4Y2Q2MmI5ODM4
NjlhZjdiZGM4MjYyNzNlMjAzOGFlNmViMzc0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcApAQCAtMTA2LDcgKzEwNiw3
IEBAIHZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoKQogICAgIAog
ICAgIGlmICghbV9ocnRmRGF0YWJhc2UuZ2V0KCkgJiYgIW1fZGF0YWJhc2VMb2FkZXJUaHJlYWQp
IHsKICAgICAgICAgLy8gU3RhcnQgdGhlIGFzeW5jaHJvbm91cyBkYXRhYmFzZSBsb2FkaW5nIHBy
b2Nlc3MuCi0gICAgICAgIG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoZGF0
YWJhc2VMb2FkZXJFbnRyeSwgdGhpcywgIkhSVEYgZGF0YWJhc2UgbG9hZGVyIik7CisgICAgICAg
IG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoZGF0YWJhc2VMb2FkZXJFbnRy
eSwgdGhpcywgeyAiSFJURiBkYXRhYmFzZSBsb2FkZXIiLCAiSFJURkRCTG9hZGVyIiB9KTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVy
YkNvbnZvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252
b2x2ZXIuY3BwCmluZGV4IDk2ZjMzMDgyODA3OWE3OWFkNjQ4MjBkMDcyMWM1OWM1ZWExNmZkYjEu
LjEyOTU5YzNlZjcxMWViNzZhODdkMjFmOTkxMWM2ODBhYTY3OTFlMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMTMwLDcg
KzEzMCw3IEBAIFJldmVyYkNvbnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKEF1ZGlvQ2hhbm5lbCog
aW1wdWxzZVJlc3BvbnNlLCBzaXplX3QgcmVuZGVyU2xpCiAgICAgLy8gU3RhcnQgdXAgYmFja2dy
b3VuZCB0aHJlYWQKICAgICAvLyBGSVhNRTogd291bGQgYmUgYmV0dGVyIHRvIHVwIHRoZSB0aHJl
YWQgcHJpb3JpdHkgaGVyZS4gIEl0IGRvZXNuJ3QgbmVlZCB0byBiZSByZWFsLXRpbWUsIGJ1dCBo
aWdoZXIgdGhhbiB0aGUgZGVmYXVsdC4uLgogICAgIGlmICh0aGlzLT51c2VCYWNrZ3JvdW5kVGhy
ZWFkcygpICYmIG1fYmFja2dyb3VuZFN0YWdlcy5zaXplKCkgPiAwKQotICAgICAgICBtX2JhY2tn
cm91bmRUaHJlYWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5
LCB0aGlzLCAiY29udm9sdXRpb24gYmFja2dyb3VuZCB0aHJlYWQiKTsKKyAgICAgICAgbV9iYWNr
Z3JvdW5kVGhyZWFkID0gY3JlYXRlVGhyZWFkKFdlYkNvcmU6OmJhY2tncm91bmRUaHJlYWRFbnRy
eSwgdGhpcywgeyAiY29udm9sdXRpb24gYmFja2dyb3VuZCB0aHJlYWQiLCAiQ29udm9sdXRpb24i
IH0pOwogfQogCiBSZXZlcmJDb252b2x2ZXI6On5SZXZlcmJDb252b2x2ZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRl
ckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCA5MTI5NDk4MTYwZjFiZTNlNmNmZTdm
MDQ3NjRiNGQ3OWQ0OGY4ZjNmLi5jZDhmNmNhZTA5ZWNjNWZlZjhjNzQwYTYyMTc5ZmQ2NmY1MjAx
N2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMzcwLDcg
KzM3MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVz
KGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBj
cmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9u
bywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVl
OwotICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsm
cmV0dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRv
IHRocmVhZElEID0gY3JlYXRlVGhyZWFkKHsgIkF1ZGlvRmlsZVJlYWRlciIsICJBdWRpb0ZpbGVS
ZWFkZXIiIH0sIFsmcmV0dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVd
IHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZmlsZVBhdGgpLmNyZWF0
ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAgIHdhaXRGb3JUaHJlYWRD
b21wbGV0aW9uKHRocmVhZElEKTsKQEAgLTM4MCw3ICszODAsNyBAQCBQYXNzUmVmUHRyPEF1ZGlv
QnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1p
eFRvTW9ubwogUGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9G
aWxlKGNvbnN0IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9vbCBtaXhUb01vbm8sIGZs
b2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgUmVmUHRyPEF1ZGlvQnVzPiByZXR1cm5WYWx1ZTsKLSAg
ICBhdXRvIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKCJBdWRpb0ZpbGVSZWFkZXIiLCBbJnJldHVy
blZhbHVlLCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CisgICAgYXV0
byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCh7ICJBdWRpb0ZpbGVSZWFkZXIiLCAiQXVkaW9GaWxl
UmVhZGVyIiB9LCBbJnJldHVyblZhbHVlLCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1w
bGVSYXRlXSB7CiAgICAgICAgIHJldHVyblZhbHVlID0gQXVkaW9GaWxlUmVhZGVyKGRhdGEsIGRh
dGFTaXplKS5jcmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsKICAgICB9KTsKICAgICB3
YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAppbmRleCA4MWZiMWY5ODY4
ZjMxMGU1MzU5ZDE2MWRjMmRhY2E1Y2M3ZDNhZWQ3Li45M2ZhNTlkMGFiMjVhNTkwNDAzNzI0YTI1
MzYxZmUwODY2ZDQ0MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIEltYWdl
RnJhbWVDYWNoZTo6Y2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleChOYXRpdmVJbWFnZVB0ciYm
IG5hdGl2ZUltYWdlLAogUmVmPFdvcmtRdWV1ZT4gSW1hZ2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1
ZXVlKCkKIHsKICAgICBpZiAoIW1fZGVjb2RpbmdRdWV1ZSkKLSAgICAgICAgbV9kZWNvZGluZ1F1
ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuSW1hZ2VEZWNvZGVyIiwgV29ya1F1
ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpOworICAg
ICAgICBtX2RlY29kaW5nUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJJbWFnZURlY29kZXIi
LCAiSW1hZ2VEZWNvZGVyIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpR
T1M6OlVzZXJJbnRlcmFjdGl2ZSk7CiAgICAgCiAgICAgcmV0dXJuICptX2RlY29kaW5nUXVldWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDBk
YTRhODg1NzNiYTFiNTViNGZlYTUyMzg5ZTRjMjUyZmRlOTg0MzQuLjA3OTdjYTFlNDUyMjQ1Nzk1
YzA4ZTQ1OTNiMjRiNmRlMjZhODlkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVh
bWluZ0NsaWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBz
cmMsCiAgICAgOiBTdHJlYW1pbmdDbGllbnQoc3JjKQogewogICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7Ci0gICAgbV90aHJlYWQgPSBjcmVh
dGVUaHJlYWQoIlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IiwgW3RoaXMsIHJlcXVlc3Qg
PSBXVEZNb3ZlKHJlcXVlc3QpXSB7CisgICAgbV90aHJlYWQgPSBjcmVhdGVUaHJlYWQoeyAiUmVz
b3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCAiUlN0cmVhbWluZyIgfSwgW3RoaXMsIHJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3QpXSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAgICAg
ICBtX3J1bkxvb3AgPSAmUnVuTG9vcDo6Y3VycmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3Bw
CmluZGV4IDRjZDFiZGRmM2FiNzY2YTAwMDQ4ZjhhYzU3NmZhMjg0N2VjNjI3MGQuLmFjZDJmZTBh
Mjk0MTM3MzYzYzg5NDAxYjRlNjkwOTc3NDIwODQ4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5j
cHAKQEAgLTExNyw3ICsxMTcsNyBAQCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OkV2ZW50RkRQb2xs
ZXI6OkV2ZW50RkRQb2xsZXIoaW50IGZkLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKAogICAgIH0sIHRo
aXMsIG51bGxwdHIpOwogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgbnVsbHB0
cik7CiAjZWxzZQotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIldlYkNvcmU6IE1lbW9y
eVByZXNzdXJlSGFuZGxlciIsIFt0aGlzXSB7IHJlYWRBbmROb3RpZnkoKTsgfQorICAgIG1fdGhy
ZWFkSUQgPSBjcmVhdGVUaHJlYWQoeyAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyIiwgIk1lbVByZXNz
SGFuZGxlciIgfSwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHAKaW5kZXggZTE0MzQ1MWZkYWEzMzhjMzcxMDEwYjdmZWRmZGUwNTJhNWUzOTlmNy4uYjNhMjUy
OTI2NTYxMjg2YjNmZDBhYWUyY2ZjYWI3YTcwMjc3M2FiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC0yNDMsNyAr
MjQzLDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeUltcGw6OmJsb2JTaXplKGNv
bnN0IFVSTCYgdXJsKQogCiBzdGF0aWMgV29ya1F1ZXVlJiBibG9iVXRpbGl0eVF1ZXVlKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkJsb2JVdGlsaXR5IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJlZjxXb3JrUXVldWU+PiBxdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJvcmcud2Via2l0
LkJsb2JVdGlsaXR5IiwgIkJsb2JVdGlsaXR5IiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwg
V29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKTsKICAgICByZXR1cm4gcXVldWUuZ2V0KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERl
Y29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rl
ci5jcHAKaW5kZXggYWJmYjQ2Y2VjZjgyMTQzYjlmZmFjZDAxYmU1Nzg2YTUzYTAwOGVjMC4uMTY2
MzZjOTYwNmQ2MzhmYzZiZWQzMGFiOTkwOTQyNjNkNjkzMThiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQwLDcgKzQw
LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIAogc3RhdGljIFdvcmtRdWV1ZSYgZGVj
b2RlUXVldWUoKQogewotICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRl
KCJvcmcud2Via2l0LkRhdGFVUkxEZWNvZGVyIikubGVha1JlZigpOworICAgIHN0YXRpYyBhdXRv
JiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJraXQuRGF0YVVSTERlY29kZXIi
LCAiRGF0YVVSTERlY29kZXIiIH0pLmxlYWtSZWYoKTsKICAgICByZXR1cm4gcXVldWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVu
TG9vcENGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVu
TG9vcENGLmNwcAppbmRleCA0NmI4OTk0YTg0MWVmNzFlYTI3OWNlNzdjYmM4ZmI0M2MyOWYwYTYy
Li5jNGJhYThkZDkxODE4NmIyOGQwOTQ2OTM3ZmI0MjdiOTQ5Yjg1YWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3Bw
CkBAIC03Nyw3ICs3Nyw3IEBAIENGUnVuTG9vcFJlZiBsb2FkZXJSdW5Mb29wKCkKICAgICBzdGQ6
OnVuaXF1ZV9sb2NrPFN0YXRpY0xvY2s+IGxvY2sobG9hZGVyUnVuTG9vcE11dGV4KTsKIAogICAg
IGlmICghbG9hZGVyUnVuTG9vcE9iamVjdCkgewotICAgICAgICBjcmVhdGVUaHJlYWQocnVuTG9h
ZGVyVGhyZWFkLCAwLCAiV2ViQ29yZTogQ0ZOZXR3b3JrIExvYWRlciIpOworICAgICAgICBjcmVh
dGVUaHJlYWQocnVuTG9hZGVyVGhyZWFkLCAwLCB7ICJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVy
IiwgIkNGTmV0d29ya0xvYWRlciIgfSk7CiAKICAgICAgICAgbG9hZGVyUnVuTG9vcENvbmRpdGlv
blZhcmlhYmxlLndhaXQobG9jaywgW10geyByZXR1cm4gbG9hZGVyUnVuTG9vcE9iamVjdDsgfSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxEb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybERvd25sb2FkLmNwcAppbmRleCA0NDA4Y2QxOTg3MDViYTg2Y2M4YzE5ODZmYjNlMmNhZGU3
OTZkY2M2Li4zNjFhZmVjOTJiMjM2ZjNhZWMxZTJmZThkYzg1ZGFhOTFhYjFkMDgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2Fk
LmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0YXJ0VGhy
ZWFkSWZOZWVkZWQoKQogICAgICAgICBpZiAobV90aHJlYWRJZCkKICAgICAgICAgICAgIHdhaXRG
b3JUaHJlYWRDb21wbGV0aW9uKG1fdGhyZWFkSWQpOwogICAgICAgICBzZXRSdW5UaHJlYWQodHJ1
ZSk7Ci0gICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxvYWRUaHJlYWQsIHRo
aXMsICJkb3dubG9hZFRocmVhZCIpOworICAgICAgICBtX3RocmVhZElkID0gY3JlYXRlVGhyZWFk
KGRvd25sb2FkVGhyZWFkLCB0aGlzLCB7ICJkb3dubG9hZFRocmVhZCIsICJEb3dubG9hZGVyIiB9
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCmluZGV4
IGU5NGY4NGE2ODIzMzk1MmQ0YzJjNjUyYzZiMmFmZjI1ZDI2NmRjNmIuLjViMDMxNmJjMDAxMWM5
YWI5ZDIyYmU2NDgwNGM3NzY5YTIxNTVmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUlt
cGxDdXJsLmNwcApAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6c3RhcnRUaHJlYWQoKQogCiAgICAgcmVmKCk7IC8vIHN0b3BUaHJlYWQoKSB3aWxsIGNhbGwg
ZGVyZWYoKS4KIAotICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFkKCJXZWJTb2NrZXQg
dGhyZWFkIiwgW3RoaXNdIHsKKyAgICBtX3dvcmtlclRocmVhZCA9IGNyZWF0ZVRocmVhZCh7ICJX
ZWJTb2NrZXQgdGhyZWFkIiwgIldlYlNvY2tldCIgfSwgW3RoaXNdIHsKIAogICAgICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwCmluZGV4IDUxZjQyZjVmZmZmMmZhNmRhNjg0NTdlNGQyMjZlYjZmMzc2YzQwZGEuLmZlNTkx
YTNhOTJkMzI1NjYyNjhlMjNkYTdjZGM5ZGYwYzgxZWNjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBib29sIFdvcmtlclRocmVh
ZDo6c3RhcnQoKQogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRT
dGFydCwgdGhpcywgIldlYkNvcmU6IFdvcmtlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVU
aHJlYWQoV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRTdGFydCwgdGhpcywgeyAiV2ViQ29yZTog
V2ViV29ya2VyIiwgIldlYldvcmtlciIgfSk7CiAKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAppbmRleCBiYjY2ZmNlYTdlNTI4
YmMyN2Y2MzNhM2U1Mjg3OGI1MDFlZjBlMTg3Li45NWM0YmU3NjM2OGQyY2ZiNTQwZjU0MWU0ZWQ0
YjA2NzAzMzA5ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIGJvb2wgU3RvcmFnZVRocmVhZDo6c3RhcnQoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX3RocmVhZElEKQotICAgICAgICBtX3RocmVh
ZElEID0gY3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFj
aywgdGhpcywgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOworICAgICAgICBtX3RocmVhZElEID0g
Y3JlYXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhp
cywgeyAiV2ViQ29yZTogTG9jYWxTdG9yYWdlIiwgIkxvY2FsU3RvcmFnZSIgfSk7CiAgICAgYWN0
aXZlU3RvcmFnZVRocmVhZHMoKS5hZGQodGhpcyk7CiAgICAgcmV0dXJuIG1fdGhyZWFkSUQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3Mu
Y3BwCmluZGV4IGQ1ZWFkYjBiM2I0MWFhNDM5NjBmMDE4NWFjMmEzYmI1ZjJhZWZhNjQuLmVlNjcw
YTc1MTIzMWI0M2Y5YjFmMGFlYzA1NTJiYmRkYWI0M2RhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIERhdGFiYXNlUHJvY2VzcyYgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKQogfQogCiBE
YXRhYmFzZVByb2Nlc3M6OkRhdGFiYXNlUHJvY2VzcygpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlUHJvY2VzcyIpKQorICAgIDogbV9x
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlUHJvY2Vz
cyIsICJEQlByb2Nlc3MiIH0pKQogewogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRGOEVuY29kaW5n
IGVuY29kaW5nIGFuZCB0aGUgdGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0
aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGEgYmFja2dyb3VuZCB0aHJlYWQgbmVlZHMgaXQuCiAgICAg
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzNjUg
LSBOZWVkIGEgbW9yZSBleHBsaWNpdCB3YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVzIGFjY2Vzc2lu
ZyB0aGUgVVRGOEVuY29kaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKaW5kZXggYTgwMjkxZmMxZDFkNTljN2MxZGI2MDIx
Yjk0Y2NlODI0YzUxYzU5Ny4uMDViODNiZDZhYWE0NWUyMzdmOTc2N2RlYTgwYWIxMGQ0MzdlYzZl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuY3BwCkBAIC01ODMsNyArNTgzLDcgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRz
VG9GaWxlKCkKIAogdm9pZCBDYWNoZTo6ZGVsZXRlRHVtcEZpbGUoKQogewotICAgIFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIpLT5kaXNwYXRjaChbcGF0
aCA9IGR1bXBGaWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CisgICAgV29ya1F1ZXVlOjpjcmVh
dGUoeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5kZWxldGUiLCAiQ2FjaGVEZWxldGVyIiB9KS0+
ZGlzcGF0Y2goW3BhdGggPSBkdW1wRmlsZVBhdGgoKS5pc29sYXRlZENvcHkoKV0gewogICAgICAg
ICBXZWJDb3JlOjpkZWxldGVGaWxlKHBhdGgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJ
T0NoYW5uZWxTb3VwLmNwcAppbmRleCBlZjdiYTg5OTgyMDIzMjU4OWU3MzkxZjI3ZmNkM2Q2ZTE2
OWY2ODk0Li5jMjRjMGZiMzA2N2E0ODQ5MzUzNmFjZTA1YWZiYjg1Y2ZjMTcwMDAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0No
YW5uZWxTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgSU9D
aGFubmVsOjpyZWFkU3luY0luVGhyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3Jr
UXVldWUqIHF1ZXVlLCBzCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBSZWZQ
dHI8SU9DaGFubmVsPiBjaGFubmVsKHRoaXMpOwotICAgIGRldGFjaFRocmVhZChjcmVhdGVUaHJl
YWQoIklPQ2hhbm5lbDo6cmVhZFN5bmMiLCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRp
b25IYW5kbGVyXSB7CisgICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZCh7ICJJT0NoYW5uZWw6
OnJlYWRTeW5jIiwgIklPQ1JlYWRTeW5jIiB9LCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUsIGNvbXBs
ZXRpb25IYW5kbGVyXSB7CiAgICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gc3RkOjptaW4oc2l6
ZSwgZ0RlZmF1bHRSZWFkQnVmZmVyU2l6ZSk7CiAgICAgICAgIHVpbnQ4X3QqIGJ1ZmZlckRhdGEg
PSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhidWZmZXJTaXplKSk7CiAgICAgICAg
IEdSZWZQdHI8U291cEJ1ZmZlcj4gcmVhZEJ1ZmZlciA9IGFkb3B0R1JlZihzb3VwX2J1ZmZlcl9u
ZXdfd2l0aF9vd25lcihidWZmZXJEYXRhLCBidWZmZXJTaXplLCBidWZmZXJEYXRhLCBmYXN0RnJl
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAppbmRleCAxMGE1MjAzZWZkODE4MGUwYWNh
MzRiZTU0ZGY1MjU4MmY1OWM5NWY3Li4yMDgyNGIyZWIxYzM1ZDc5MDI2MDNmNGY2NTE5YzU3MjIy
MTEyYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcApAQCAtODIsNyArODIsNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8U3RhdGlzdGljcz4gU3RhdGlzdGljczo6b3Blbihjb25zdCBTdHJpbmcm
IGNhY2hlUGF0aCkKIH0KIAogU3RhdGlzdGljczo6U3RhdGlzdGljcyhjb25zdCBTdHJpbmcmIGRh
dGFiYXNlUGF0aCkKLSAgICA6IG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RhdGlzdGljcy5CYWNrZ3JvdW5kIiwgV29y
a1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICA6
IG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxl
LldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCAiQ2FjaGVTdGF0c0JHIiB9LCBX
b3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAg
ICwgbV93cml0ZVRpbWVyKCp0aGlzLCAmU3RhdGlzdGljczo6d3JpdGVUaW1lckZpcmVkKQogewog
ICAgIGluaXRpYWxpemUoZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXgg
OGY3YjZlM2YyZGZmZDA5M2IwMmZjNzYxYWFlNjJkZTUyYTI1ZThkZS4uY2U0YTcxZWExMDczYzU0
ZWYzZmVkYjkyYmFjOGJiYmJiNTBkZGFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKQEAgLTIx
Myw5ICsyMTMsOSBAQCBTdG9yYWdlOjpTdG9yYWdlKGNvbnN0IFN0cmluZyYgYmFzZURpcmVjdG9y
eVBhdGgsIFNhbHQgc2FsdCkKICAgICAsIG1fc2FsdChzYWx0KQogICAgICwgbV9yZWFkT3BlcmF0
aW9uVGltZW91dFRpbWVyKCp0aGlzLCAmU3RvcmFnZTo6Y2FuY2VsQWxsUmVhZE9wZXJhdGlvbnMp
CiAgICAgLCBtX3dyaXRlT3BlcmF0aW9uRGlzcGF0Y2hUaW1lcigqdGhpcywgJlN0b3JhZ2U6OmRp
c3BhdGNoUGVuZGluZ1dyaXRlT3BlcmF0aW9ucykKLSAgICAsIG1faW9RdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgV29ya1F1ZXVlOjpUeXBl
OjpDb25jdXJyZW50KSkKLSAgICAsIG1fYmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3JvdW5kIiwgV29ya1F1ZXVl
OjpUeXBlOjpDb25jdXJyZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCi0gICAgLCBt
X3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2Vi
S2l0LkNhY2hlLlN0b3JhZ2Uuc2VyaWFsQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6VHlwZTo6U2Vy
aWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX2lvUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgIkNhY2hlU3Rv
cmFnZUZHIiB9LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQorICAgICwgbV9iYWNrZ3Jv
dW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0
b3JhZ2UuYmFja2dyb3VuZCIsICJDYWNoZVN0b3JhZ2VCRyIgfSwgV29ya1F1ZXVlOjpUeXBlOjpD
b25jdXJyZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX3NlcmlhbEJh
Y2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuQ2Fj
aGUuU3RvcmFnZS5zZXJpYWxCYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZVNCRyIgfSwgV29ya1F1
ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAsIG1f
YmxvYlN0b3JhZ2UobWFrZUJsb2JEaXJlY3RvcnlQYXRoKGJhc2VEaXJlY3RvcnlQYXRoKSwgbV9z
YWx0KQogewogICAgIGRlbGV0ZU9sZFZlcnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggZGE4ZWEzZmJiMDVlM2RmZmU0OWJlMzMyYTY2MDFl
MjdhYmZjYWY0MS4uNmZmNWEwYWQxYjY5YWY1NTk4OTJjYTk1OGNiYTFlMGMwZjdlZjM3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjMxLDcgKzIz
MSw3IEBAIENvbm5lY3Rpb246OkNvbm5lY3Rpb24oSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29s
IGlzU2VydmVyLCBDbGllbnQmIGNsaWVudCkKICAgICAsIG1fc2hvdWxkRXhpdE9uU3luY01lc3Nh
Z2VTZW5kRmFpbHVyZShmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWVDYWxsYmFjaygwKQogICAgICwgbV9pc0Nvbm5lY3RlZChmYWxzZSkKLSAgICAsIG1fY29ubmVj
dGlvblF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuSVBDLlJlY2VpdmVRdWV1ZSIp
KQorICAgICwgbV9jb25uZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxl
LklQQy5SZWNlaXZlUXVldWUiLCAiSVBDUmVjZWl2ZVF1ZXVlIiB9KSkKICAgICAsIG1faW5TZW5k
U3luY0NvdW50KDApCiAgICAgLCBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQoMCkKICAgICAsIG1f
aW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291
bnQoMCkKQEAgLTcyMCw3ICs3MjAsNyBAQCB1aW50NjRfdCBDb25uZWN0aW9uOjppbnN0YWxsSW5j
b21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYwogICAgIG1f
bmV4dEluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja0lEKys7CiAKICAgICBpZiAoIW1faW5jb21p
bmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUpCi0gICAgICAgIG1faW5jb21pbmdTeW5jTWVzc2Fn
ZUNhbGxiYWNrUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5JUEMu
SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiKTsKKyAgICAgICAgbV9pbmNvbWluZ1N5
bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5X
ZWJLaXQuSVBDLkluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlIiwgIklTeW5jTXNnQ0JR
dWV1ZSIgfSk7CiAKICAgICBtX2luY29taW5nU3luY01lc3NhZ2VDYWxsYmFja3MuYWRkKG1fbmV4
dEluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja0lELCBjYWxsYmFjayk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKaW5kZXggMTc1Nzg5ZmI5YWU3MTNmMTZlZWVkYmZhYmUw
MGQ2ZjMzZTYzY2YyMy4uYzc1NWVhODEyNGM5ZTA2NDVmNzczMzdlOTNhNTQxZDkyY2UxNWE3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTUwLDcgKzUwLDcgQEAg
c3RhdGljIHZvaWQgZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoSVBDOjpDb25uZWN0aW9u
KikKICAgICAvLyB0aGUgcHJvY2VzcyB3aWxsIGV4aXQgZm9yY2libHkuCiAgICAgYXV0byB3YXRj
aGRvZ0RlbGF5ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoMTApOwogCi0gICAgV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2hpbGRQcm9jZXNzLldhdGNoRG9nUXVldWUiKS0+ZGlz
cGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CisgICAgV29ya1F1ZXVlOjpjcmVhdGUoeyAi
Y29tLmFwcGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dRdWV1ZSIsICJDaGlsZFdkb2dR
dWV1ZSIgfSktPmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwgW10gewogICAgICAgICAvLyBX
ZSB1c2UgX2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cgY2FsbGJhY2sgaXMgY2FsbGVkIGZy
b20gYW5vdGhlciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQKICAgICAgICAgLy8gZ2xvYmFsIGRl
c3RydWN0b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxsZWQgZnJvbSB0aGlzIHRocmVh
ZCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAgICAgICAvLyBkb2luZyBpdHMgdGhp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuY3BwCmluZGV4IDQwZGM0ZjQ0NTZjMjhmYzkzN2Q5YTE2NmFhMjIxOWNmN2U4
ZWM1MzAuLjNhZDIzOGI4ZTAxMjkzYzVlZGQxYTU5Mjc4OGNiNTBjNThlYmI0YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuY3BwCkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFdvcmtRdWV1ZVBvb2wgewogICAgICAgICAg
ICAgICAgIEFTU0VSVChtX3NoYXJlZFdvcmtRdWV1ZSk7CiAgICAgICAgICAgICAgICAgYWRkUmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG1fc2hhcmVkV29ya1F1ZXVlOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1
ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuVGhyZWFkZWRDb21wb3NpdG9yV29ya1F1ZXVlIik7Cisg
ICAgICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKHsgIm9yZy53ZWJraXQuVGhyZWFkZWRDb21wb3NpdG9yV29ya1F1ZXVlIiwgIlRocmVhZGVk
Q29tcCIgfSk7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3RocmVhZENvdW50KQogICAgICAgICAg
ICAgICAgICAgICBtX3NoYXJlZFdvcmtRdWV1ZSA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7
CiAgICAgICAgICAgICAgICAgbV90aHJlYWRDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1NlY0l0ZW1TaGltLmNwcAppbmRleCA4NTQzM2JkNTk4NmMxMzZhOGJlY2M5ODFiZmQ3MGQ4
NGVlNDdkNDZhLi5kM2ViODQ2ZGRjMzJhMjk0YzMxMjQ5YjRjNDBlYzk4YjkxN2E2MjhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApAQCAtNjQsNyArNjQsNyBA
QCBzdGF0aWMgV29ya1F1ZXVlJiB3b3JrUXVldWUoKQogICAgIHN0YXRpYyBXb3JrUXVldWUqIHdv
cmtRdWV1ZTsKICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKICAgICBkaXNw
YXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIHdvcmtRdWV1ZSA9ICZXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIpLmxlYWtSZWYoKTsKKyAgICAg
ICAgd29ya1F1ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU2Vj
SXRlbVNoaW0iLCAiU2VjSXRlbVNoaW0iIH0pLmxlYWtSZWYoKTsKIAogICAgIH0pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlLmNwcAppbmRleCAzYTc0MGZkNTBhNWYzMzg0NTg5ZDA3NjI3ZGNmYzMw
YTJjNjk5YWFiLi4yM2JiZDRhODg0ODQ3MzI3MTgxYzBkM2UxODg4MzI5ZWVjYTQwYTEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZS5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSgpCiAKIFVzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmU6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUoY29uc3QgV1RGOjpTdHJpbmcm
IHN0b3JlUGF0aCkKICAgICA6IG1fc3RvcmVQYXRoKHN0b3JlUGF0aCkKLSAgICAsIG1fY29tcGls
ZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIENvbXBp
bGUgUXVldWUiLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQotICAgICwgbV9yZWFkUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVhZCBRdWV1
ZSIpKQotICAgICwgbV9yZW1vdmVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZSBSZW1vdmUgUXVldWUiKSkKKyAgICAsIG1fY29tcGlsZVF1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIs
ICJVQ0V4U3RDb21wUXVldWUiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAg
LCBtX3JlYWRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlIFJlYWQgUXVldWUiLCAiVUNFeFN0UmRRdWV1ZSIgfSkpCisgICAgLCBtX3JlbW92ZVF1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVtb3ZlIFF1
ZXVlIiwgIlVDRXhTdFJtUXVldWUiIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMWZlMTAyNTRkN2M1
NjBhY2ZhNjkwNTE2YTUzMzhkZTQ0YjBmZDNjYS4uM2Y1MzEzMTI5ZGU2ODQ1MGIxMDE3ZTBjMjM5
YzFkY2UzOWNkMjM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIFJlZjxTdG9yYWdlTWFu
YWdlcj4gU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURp
cmVjdG9yeSkKIH0KIAogU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VNYW5hZ2VyKGNvbnN0IFN0cmlu
ZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYktpdC5TdG9yYWdlTWFuYWdlciIpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VNYW5hZ2VyIiwgIlN0b3Jh
Z2VNZ3IiIH0pKQogICAgICwgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVmKCksIGxvY2FsU3RvcmFn
ZURpcmVjdG9yeSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBpbml0aWFs
aXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYzJmOGU2YTRiYTczNTBhNDYzYTQ1OWRlNDhlNTZhYWRm
YmQyYTI1MC4uN2U5MDc2OTU1MDhjZWMyNTE1OGE0NmJmZGFmOTJjZmY1OTdmMjQ3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoY29u
c3QKIAogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KQogICAgIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNyZWF0ZSgpKQotICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiKSkK
KyAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCAiV2ViUnNTdGF0UXVldWUi
IH0pKQogICAgICwgbV9zdG9yYWdlUGF0aChyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDdhODQzYjFmMDQzYmY3ZDBlYzdlYzNmNmIz
ZDE3OTEwMzNkZmVlMWMuLjEwNDYyNjNkZmExNDA3OGI0MTU3NmU5NDg2ZmI1NThjOThmYzUzMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6
V2Vic2l0ZURhdGFTdG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2Nv
bmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKICAgICAsIG1fc3RvcmFnZU1hbmFn
ZXIoU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ubG9jYWxTdG9yYWdlRGly
ZWN0b3J5KSkKICAgICAsIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyhXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSkpCi0gICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiKSkKKyAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3JlIiwgIldlYkRhdGFTdG9y
ZSIgfSkpCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiB9CkBAIC04OSw3ICs4OSw3IEBA
IFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fY29uZmlndXJhdGlvbigpCi0gICAgLCBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3Rv
cmUiKSkKKyAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktp
dC5XZWJzaXRlRGF0YVN0b3JlIiwgIldlYkRhdGFTdG9yZSIgfSkpCiB7CiAgICAgcGxhdGZvcm1J
bml0aWFsaXplKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGlu
dXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9s
aW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCmluZGV4IDA2MDhhYjcyZjk5MjQ4ZWYyNGNk
MmQ1MjQ1ZWU1MzMzYTAwZDlkMGQuLmUyMDlkZmQxYmFiNmVjMmVlYzkzMjQ4ZmUzNDY1NjcxZDAz
ZGExMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQ
cmVzc3VyZU1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9N
ZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgTWVtb3J5UHJlc3N1
cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IoKQogICAgIGlmIChtX2V2ZW50RkQgPT0g
LTEpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRp
ZmllciA9IGNyZWF0ZVRocmVhZCgiTWVtb3J5UHJlc3N1cmVNb25pdG9yIiwgW3RoaXNdIHsKKyAg
ICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoeyAiTWVt
b3J5UHJlc3N1cmVNb25pdG9yIiwgIk1lbVByZXNzTW9uaXRvciIgfSwgW3RoaXNdIHsKICAgICAg
ICAgZG91YmxlIHBvbGxJbnRlcnZhbCA9IHNfbWF4UG9sbGluZ0ludGVydmFsSW5TZWNvbmRzOwog
ICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgc2xlZXAocG9sbEludGVydmFsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3Bw
CmluZGV4IDIxZWE3YjAxMmIxODk4ZDIxMDEyYjIyODcyNWJlZTEwNmZjYTZkYjQuLmMzZjAxNWVm
N2Q2MmFhNGQzYTYzZWVkNWI0NWI5YjM5MmJiNzg1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcApAQCAtNDcsNyArNDcsNyBAQCBT
ZWNJdGVtU2hpbVByb3h5JiBTZWNJdGVtU2hpbVByb3h5OjpzaW5nbGV0b24oKQogfQogCiBTZWNJ
dGVtU2hpbVByb3h5OjpTZWNJdGVtU2hpbVByb3h5KCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVl
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW1Qcm94eSIpKQorICAgIDogbV9x
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltUHJv
eHkiLCAiU2VjSXRlbVNoaW1QIiB9KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmNwcAppbmRleCBjYmM0ZjBlM2U4NDI5YmFhZDVlODhjYWFlMzZkNWZiMzUxOWQ4
ODZiLi42NDgyNzliODU2YTlhODkwM2I1OWViODcyMGZjZTQ1YjViNjRiNmQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyPiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXI6OmNyZWF0ZSgpCiB9CiAKIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIikpCisg
ICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIiwgIlBsdWdpbkNvbm5NZ3IiIH0pKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRj
aGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwCmluZGV4IDFmMjIyNjU4YzkwNmI3M2Y3NTU0MWFjYTM3MmU4ZWY1MDk5OGQxN2EuLjE3
ODU4Nzc1NTMzM2M1MjZhNmZhZDQ4YWU2N2RmNzlkZjA5NWVjODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC01
Myw3ICs1Myw3IEBAIFJlZjxFdmVudERpc3BhdGNoZXI+IEV2ZW50RGlzcGF0Y2hlcjo6Y3JlYXRl
KCkKIH0KIAogRXZlbnREaXNwYXRjaGVyOjpFdmVudERpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1
ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5FdmVudERpc3BhdGNoZXIiLCBX
b3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkp
CisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuRXZl
bnREaXNwYXRjaGVyIiwgIkV2ZW50RGlzcGF0Y2giIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFs
LCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkKICAgICAsIG1fcmVjZW50V2hlZWxF
dmVudERlbHRhRmlsdGVyKFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURp
c3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRh
dGVEaXNwYXRjaGVyLmNwcAppbmRleCBjOGUzNjM4NjFmMjA1N2EwODZhM2Y3OGQ1ZGI0NWIyM2Ew
YzViODZhLi43YTVmMTRlZDdmYzEwMDQzYzBlMDRmZGMzYTMxOTIzY2UwYWM2MjYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRl
RGlzcGF0Y2hlci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFZpZXdVcGRhdGVEaXNwYXRjaGVy
PiBWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Y3JlYXRlKCkKIH0KIAogVmlld1VwZGF0ZURpc3BhdGNo
ZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoImNvbS5hcHBsZS5XZWJLaXQuVmlld1VwZGF0ZURpc3BhdGNoZXIiKSkKKyAgICA6IG1fcXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5WaWV3VXBkYXRlRGlzcGF0
Y2hlciIsICJWVXBkYXRlRGlzcGF0Y2giIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E1MGJjN2JmYzU1ZWQ2YzU1ZjgxZTgx
YTcyYzg5MWI2MzY3MTFmNy4uNDFhZWFlMDU0YWIzNGFlYzdhOGU3ZDQ0YmJjODk5ODZmYjY5ZjMw
MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hv
cnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHA6CisgICAgICAgIChydW5K
YXZhU2NyaXB0VGhyZWFkKToKKyAgICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHRl
c3RUaHJlYWRJZGVudGlmaWVyTWFwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Db25kaXRpb24uY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2su
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cnVuTG9ja1Rlc3QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6cHJvZHVjZVF1ZXVlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRvVXBwZXJDb252ZXJ0ZXI6OmNvbnN1bWVRdWV1ZSk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29y
a1F1ZXVlR0xpYi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0VGVzdFNlcnZlcjo6V2ViS2l0VGVzdFNlcnZlcik6CisKIDIwMTctMDEtMDkg
IE1pbGFuIENyaGEgIDxtY3JoYUByZWRoYXQuY29tPgogCiAgICAgICAgIHByZXBhcmUtQ2hhbmdl
TG9nOiBDb3JyZWN0IGhlbHAgc3RyaW5nIGZvciAtLXN0eWxlIG9wdGlvbgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCBlMmY5YmFkZTZjYTdjMjY5
NDg1YTRjZGNiZTYwOTljMzZiYTAyMTk4Li45YjU2MThhNTljMTYzOTY2MTgwYzMyZjc5OGQyZGQz
ZjNjNDI3NGU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhy
ZWFkaW5nLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5n
LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikK
ICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAg
ICAgIGRldGFjaFRocmVhZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJl
bW92ZSh0aHJlYWQpOwotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJl
YWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVh
ZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIiLCAiIiB9
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgc3Rh
cnRKYXZhU2NyaXB0VGhyZWFkcygpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRo
cmVhZHNNdXRleCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgamF2YVNjcmlwdFRo
cmVhZHNDb3VudDsgKytpKQotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVU
aHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRo
cmVhZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIiLCAi
IiB9KSk7CiB9CiAKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA3MTgxMzc3MGI4NzczNDM5Y2M2MGYz
ODcyZjg1NWI0MmZmMmMzNmYwLi43YTBiNWIwNmY2ZjFlNjNlZjVmNDVlMjYxZjg0MjJmYzc2NGIz
OWE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0x
MTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VGhyZWFkSWRlbnRpZmllck1hcCgpCiAK
ICAgICAvLyBOb3cgY3JlYXRlIGFub3RoZXIgdGhyZWFkIHVzaW5nIFdURi4gT24gT1NYLCBpdCB3
aWxsIGhhdmUgdGhlIHNhbWUgcHRocmVhZCBoYW5kbGUKICAgICAvLyBidXQgc2hvdWxkIGdldCBh
IGRpZmZlcmVudCBUaHJlYWRJZGVudGlmaWVyLgotICAgIGNyZWF0ZVRocmVhZChydW5UaHJlYWQs
IDAsICJEdW1wUmVuZGVyVHJlZTogdGVzdCIpOworICAgIGNyZWF0ZVRocmVhZChydW5UaHJlYWQs
IDAsIHsgIkR1bXBSZW5kZXJUcmVlOiB0ZXN0IiwgIkRSVFRlc3QiIH0pOwogfQogCiBzdGF0aWMg
dm9pZCBhbGxvY2F0ZUdsb2JhbENvbnRyb2xsZXJzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDg0ODUyNzM1MWY2MDYzZmMyNjM2ODc4MDU2ZDlj
MjRkYmFiZTgzZGMuLmI4NTE0ZDdjYWUxNTE1YTdlNmI0NmYyNTYwNGJkOWNmNWI5Y2FhMWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAtOTcsNyAr
OTcsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29u
c3VtZXJzOyBpLS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmll
ciA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAg
ICAgICAgeyAiQ29uc3VtZXIgdGhyZWFkIiwgIkNvbnN1bWVyIiB9LAogICAgICAgICAgICAgWyZd
ICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIHJlc3VsdDsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIHJ1blRlc3QoCiAKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRl
bnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIlBy
b2R1Y2VyIFRocmVhZCIsCisgICAgICAgICAgICB7ICJQcm9kdWNlciBUaHJlYWQiLCAiUHJvZHVj
ZXIiIH0sCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvTG9jay5jcHAKaW5kZXggNTU3NjMwMmQ2OTBkZmNhMzU5OTI5MjhiMWM4NTNjNzYyMmU0
NWZiOS4uNTc2M2EwNGEzNjRhNTFhMTgyN2U5MGYyZWE4OTRmZjkzNGY1NTAyOSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBydW5M
b2NrVGVzdCh1bnNpZ25lZCBudW1UaHJlYWRHcm91cHMsIHVuc2lnbmVkIG51bVRocmVhZHNQZXJH
cm91cCwgdW5zaWduZWQKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVt
VGhyZWFkc1Blckdyb3VwOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgdGhyZWFkc1t0
aHJlYWRHcm91cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhdID0gY3Jl
YXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICJMb2NrIHRlc3QgdGhyZWFkIiwKKyAgICAgICAg
ICAgICAgICB7ICJMb2NrIHRlc3QgdGhyZWFkIiwgIkxvY2tUZXN0ZXIiIH0sCiAgICAgICAgICAg
ICAgICAgW3RocmVhZEdyb3VwSW5kZXgsICZsb2NrcywgJndvcmRzLCBudW1JdGVyYXRpb25zLCB3
b3JrUGVyQ3JpdGljYWxTZWN0aW9uXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IG51bUl0ZXJhdGlvbnM7IGktLTspIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGxvY2tzW3RocmVhZEdyb3VwSW5kZXhdLmxvY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKaW5kZXggYzY3ZTFlMDgxNWE4M2FmYTkzMzNlMmFjOWEy
YmQ3OGI2N2IxNjQ1Yi4uZDAxNjU0MWUwNzBmODEyODIwNTRjOTNmZDYxZmM5MmM3ZDZhZTMwMiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKQEAgLTQ5
LDcgKzQ5LDcgQEAgc3RydWN0IFNpbmdsZUxhdGNoVGVzdCB7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bVRocmVhZHM7IGktLTspIHsKICAgICAgICAgICAgIHRocmVhZHMuYXBwZW5kKAog
ICAgICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAgICAgIlBhcmtp
bmcgVGVzdCBUaHJlYWQiLAorICAgICAgICAgICAgICAgICAgICB7ICJQYXJraW5nIFRlc3QgdGhy
ZWFkIiwgIlBhcmtpbmdUZXN0ZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGN1cnJlbnRUaHJlYWQoKSk7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZp
eGVkUXVldWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVk
Rml4ZWRRdWV1ZS5jcHAKaW5kZXggMzE0MzZiYzIyMzA3ZjlkZDczZjY5MThiMjRhZGI0MGU3ODlm
YjVlYy4uMWI4Y2E0ZmIwOWQzMTY0YjVhMTlhY2M2ZjhmMzhiNTRkMjI5ODMzYiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRR
dWV1ZS5jcHAKQEAgLTYyLDE0ICs2MiwxNCBAQCBjbGFzcyBUb1VwcGVyQ29udmVydGVyIHsKICAg
ICBXb3JrUXVldWUqIHByb2R1Y2VRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcHJvZHVj
ZVF1ZXVlKQotICAgICAgICAgICAgbV9wcm9kdWNlUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgi
b3JnLndlYmtpdC5Qcm9kdWNlIik7CisgICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtR
dWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJraXQuUHJvZHVjZSIsICJQcm9kdWNlciIgfSk7CiAgICAg
ICAgIHJldHVybiBtX3Byb2R1Y2VRdWV1ZS5nZXQoKTsKICAgICB9CiAKICAgICBXb3JrUXVldWUq
IGNvbnN1bWVRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fY29uc3VtZVF1ZXVlKQotICAg
ICAgICAgICAgbV9jb25zdW1lUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5D
b25zdW1lIik7CisgICAgICAgICAgICBtX2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRl
KHsgIm9yZy53ZWJraXQuQ29uc3VtZSIsICJDb25zdW1lciIgfSk7CiAgICAgICAgIHJldHVybiBt
X2NvbnN1bWVRdWV1ZS5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9Xb3JrUXVldWUuY3BwCmluZGV4IDdlMjc3ZTk0YzQ3Y2UzY2UyZmI4MjUyZjZjZGMzYTU1
YWYzN2JlNzkuLmE4ZWJhMTkwZWNhZmQ1MTQ0YzE3NTgxZWYzMTIxMWNlMGViMDQ0YWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtNTQsNyArNTQs
NyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBzdGF0aWMgY29uc3QgY2hhciog
bG9uZ1Rlc3RMYWJlbCA9ICJsb25nVGVzdCI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRoaXJk
VGVzdExhYmVsID0gInRoaXJkVGVzdCI7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpj
cmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5zaW1wbGUiKTsKKyAgICBhdXRvIHF1ZXVlID0g
V29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIsICJTaW1w
bGVUZXN0IiB9KTsKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7
CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKQEAgLTEwNiw4ICsxMDYsOCBA
QCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBib29sIGNhbGxlZExvbmdUZXN0
ID0gZmFsc2U7CiAgICAgYm9vbCBjYWxsZWRUaGlyZFRlc3QgPSBmYWxzZTsKICAgICAKLSAgICBh
dXRvIHF1ZXVlMSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdv
UXVldWVzMSIpOwotICAgIGF1dG8gcXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBs
ZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMyIik7CisgICAgYXV0byBxdWV1ZTEgPSBXb3JrUXVldWU6
OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIsICJUd29RdWV1ZXMx
VGVzdCIgfSk7CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBw
bGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMiIsICJUd29RdWV1ZXMyVGVzdCIgfSk7CiAKICAgICBF
WFBFQ1RfRVEoMSwgcXVldWUxLT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUy
LT5yZWZDb3VudCgpKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERp
c3BhdGNoQWZ0ZXIpCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CiAgICAgYm9v
bCBjYWxsZWREaXNwYXRjaEFmdGVyVGVzdCA9IGZhbHNlOwogCi0gICAgYXV0byBxdWV1ZSA9IFdv
cmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOwor
ICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRl
c3QuZGlzcGF0Y2hBZnRlciIsICJEaXNwYXRjaEFmdGVyIiB9KTsKIAogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9jayk7CiAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUs
IERlc3Ryb3lPblNlbGYpCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihsb2NrKTsK
ICAgICAgICAgewotICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgICAgICAgICAgYXV0byBx
dWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kZXN0cm95
T25TZWxmIiwgIkRlc3Ryb3lPblNlbGYiIH0pOwogICAgICAgICAgICAgcXVldWUtPmRpc3BhdGNo
QWZ0ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewogICAgICAg
ICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgIGRpc3Bh
dGNoQWZ0ZXJUZXN0U3RhcnRlZC53YWl0KGxvY2ssIFsmXSB7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAppbmRleCA5OTIzZDY1
ODAwZWQ3MTRiYTY4MDZiMTNmN2U1MWZlZTU4MDM1YWQwLi40Y2E0ZThkYmZkM2U3OGVjNmZmOGNi
OWY1OTY0MjI4N2I1ZDRlZDhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVTVChXVEZf
V29ya1F1ZXVlLCBBc3luY0lPKQogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7
CiAgICAgfSBjb250ZXh0OwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVl
dWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIsICJBc3luY0lPVGVz
dCIgfSk7CiAgICAgY29udGV4dC5tX21haW5Db250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVs
dCgpOwogICAgIEVYUEVDVF9GQUxTRShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQo
KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2Vi
S2l0VGVzdFNlcnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dl
YktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IGRlOTQ2NmMzOWQ3MWNmYzJhYmY0NDlmY2ZkZTM4OWI1
NDQ5ZGYzMjcuLmRiYzUzNWIxMjE0YmRhOThkZmMwODMzM2IyZjE3YmIwOTJkMTY1OTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZl
ci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0
U2VydmVyLmNwcApAQCAtMjgsNyArMjgsNyBAQCBXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0
U2VydmVyKFNlcnZlck9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBpZiAob3B0aW9ucyAmIFNlcnZl
clJ1bkluVGhyZWFkKSB7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAg
ICAgICBtX3F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIldlYktpdFRlc3RTZXJ2ZXIiKTsKKyAg
ICAgICAgbV9xdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIldlYktpdFRlc3RTZXJ2ZXIiLCAi
VGVzdFNlcnZlciIgfSk7CiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzc2xDZXJ0aWZp
Y2F0ZUZpbGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298377</attachid>
            <date>2017-01-09 12:25:14 -0800</date>
            <delta_ts>2017-01-09 12:32:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170110052338.patch</filename>
            <type>text/plain</type>
            <size>103629</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZjExNDUxMzhkYTdlNWE0ZjE4ZjQxZDhmOWY3YmY1OWFjOWVhMzVjLi43OWVlYjM5ZTY1OTM4YzNh
NzgwYTVkN2Y3YTRjOTFmNWViMzRmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCiAyMDE3LTAxLTA4
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmplY3QgTWFy
a2VkU3BhY2Ugc2l6ZSBjbGFzc2VzIGZvciBhIGZldyBtb3JlIGhpZ2gtdm9sdW1lIG9iamVjdHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDAyNjU2Y2RlOGNjNDZmMTBjMDM4MmQzMTEyNWFiNTU2Nzc5MDFkY2YuLjkwZTRiMDc1
NDQ2OTJjNTY1ZDY2YjA5ODdlMWQ2ZTg3YWNiMGQzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRy
b2R1Y2VzIFRocmVhZE5hbWUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWluZworICAgICAgICBw
b2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIFRocmVhZE5hbWUgdGFrZXMg
MiBuYW1lcywgc2hvcnQgYW5kIGxvbmcgbmFtZXMuIFRoZSBsb25nIG5hbWUKKyAgICAgICAgaXMg
dXNlZCBmb3IgbWFjT1MgYW5kIGlPUyBzaW5jZSB0aGV5IGRvIG5vdCBoYXZlIHRoZSBsaW1pdGF0
aW9uLiBPbiB0aGUKKyAgICAgICAgb3RoZXIgaGFuZCwgTGludXggb25seSBhbGxvd3MgMTUgY2hh
cmFjdGVycyBmb3IgdGhyZWFkIG5hbWVzLiBTbyBmb3IKKyAgICAgICAgTGludXgsIHdlIHVzZSB0
aGUgc2hvcnQgbmFtZS4gV2luZG93cyBhbHNvIGhhcyAzMSBjaGFyYWN0ZXJzIGxpbWl0YXRpb24u
CisgICAgICAgIFdpbmRvd3MgYWxzbyB1c2VzIHRoZSBzaG9ydCBuYW1lLgorCisgICAgICAgIFdo
ZW4geW91IHNwZWNpZnkgdGhlIG5hbWUgbGlrZSwKKworICAgICAgICAgICAgeyAiQXN5bmNocm9u
b3VzIERpc2Fzc2VtYmxlciIsICJBc3luY0Rpc2FzbSIgfSwKKworICAgICAgICBUaGUgdGhyZWFk
IG5hbWUgYmVjb21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAg
ICAgICAgIFdpbmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1Mg
YW5kIGlPUzogIldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBU
aHJlYWROYW1lIGNoZWNrcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydCBuYW1lIGlzIDw9IDE1IGF0
IGNvbXBpbGUKKyAgICAgICAgdGltZS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCwgY29t
cGlsZSBlcnJvciBvY2N1cnMuCisKKyAgICAgICAgVGhlICJXZWJLaXQ6ICIgcHJlZml4IGlzIGF1
dG9tYXRpY2FsbHkgYWRkZWQgYnkgVGhyZWFkTmFtZS4KKyAgICAgICAgVGhpcyBwcmVmaXggaXMg
aW1wb3J0YW50IHNpbmNlIGl0IGNhbiBzYXkgdGhhdCB0aGlzIHRocmVhZCBpcyByZWxhdGVkIHRv
IFdlYktpdC4KKyAgICAgICAgV2hlbiB1c2luZyBXZWJLaXQgYXMgZnJhbWV3b3JrLCBXZWJLaXQg
cmVsYXRlZCB0aHJlYWRzIHdpbGwgYmUgbGF1bmNoZWQgYWxvbmcKKyAgICAgICAgd2l0aCB1c2Vy
IGFwcGxpY2F0aW9uJ3MgdGhyZWFkcy4gV2l0aG91dCAiV2ViS2l0OiAiIHByZWZpeCwgaXQgaXMg
YSBiaXQgZGlmZmljdWx0CisgICAgICAgIHRvIGRpc3Rpbmd1aXNoIHVzZXIncyB0aHJlYWRzIGZy
b20gV2ViS2l0IHJlbGF0ZWQgb25lcy4KKworICAgICAgICBXZSBhcHBseSB0aGlzIHBvbGljeSB0
byBhbGwgdGhlIFdlYktpdCB0aHJlYWQgbmFtZXMgZXhjZXB0IGZvciBibWFsbG9jJ3Mgb25lLgor
ICAgICAgICBUaGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBbMV0uCisKKyAgICAgICAgWzFdOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njg0CisKKyAgICAgICAgKiBX
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0NvbmRp
dGlvblNwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0
LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAq
IHd0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQp
OgorICAgICAgICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvUGFyYWxs
ZWxIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpQYXJh
bGxlbEhlbHBlclBvb2wpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVh
ZDo6VGhyZWFkKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAg
IChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6bmFtZSk6CisgICAgICAgICogd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpUaHJl
YWRQcml2YXRlOjp0cnlMb2NrRm9yKToKKyAgICAgICAgKiB3dGYvVGhyZWFkTmFtZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdURjo6VGhyZWFkTmFtZTo6VGhyZWFkTmFtZSk6CisgICAgICAgIChXVEY6
OlRocmVhZE5hbWU6Om5hbWUpOgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpzdHJpbmdMZW5n
dGgpOgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpwcmVmaXhlZE5hbWUpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAg
ICAoV1RGOjpub3JtYWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhy
ZWFkaW5nLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6Y3JlYXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3Vy
cmVudFRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAg
ICAgICAgKFdURjo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChX
VEY6OmNyZWF0ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoK
KyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVl
dWU6OldvcmtRdWV1ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5
KToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtR
dWV1ZUNvY29hLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxp
emUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChE
aXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1
ZXVlOjpjcmVhdGUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAg
ICAgICAqIHd0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVl
OjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdl
bmVyaWMuY3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0
ZXJhbDo6QVNDSUlMaXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRv
ciBjb25zdCBjaGFyKik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAg
IChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAg
ICogd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgor
ICAgICAgICAoV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEt
MDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28u
dWs+CiAKICAgICAgICAgW0dUS10gU2hvdWxkIHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRp
ZXMgb24ga2V5Ym9hcmQgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkyNDhiMzg0ODA1Y2U3MDgyOGM3
ZmRiMGQ5NzJmMWM5Mjc0MTFiNC4uMWMwNTZkNmVhYjAzOGIzNTUwYzYwOTU3MjIzMWM0MWU1OWRj
NGQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRv
IHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6SURCU2VydmVy
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2Rlcik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRy
b2xsZXI6OmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcpOgorICAg
ICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxl
Q3J5cHRvOjpTdWJ0bGVDcnlwdG8pOgorICAgICAgICAqIGZpbGVhcGkvQXN5bmNGaWxlU3RyZWFt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxPbkZpbGVUaHJlYWQpOgorICAgICAgICAqIGxv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6Om9wZW4pOgorICAgICAgICAqIHBhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
dmVyYkNvbnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVz
RnJvbUluTWVtb3J5QXVkaW9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUZyYW1lQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpkZWNv
ZGluZ1F1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6CisgICAgICAgICogcGxhdGZv
cm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YmxvYlV0aWxpdHlRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9EYXRhVVJMRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6
ZGVjb2RlUXVldWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9v
cENGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRlclJ1bkxvb3ApOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhyZWFkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgRXZhbHVhdGluZyB3aW5kb3cgbmFtZWQgZWxlbWVudCBtYXkgcmV0
dXJuIHdyb25nIHJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWZkODVjYWFmZTRlZDhlZTQ4YTUxYmQxNzVj
NmI0NmQ1YzZlZjFmLi5lNzAyZmEzMDM4YjZhZTYyMzU0YTg3NWE4MDRkODgxZDEyODA1OGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkg
bG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wNSAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQ29tcGlsZSBlcnJvci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBhODFjYzEwYTU3NGJkZjQ0ZGY2YTIwNWM2MzM0ODY4ODZkZDE2MmVjLi42MjA2
YzlhYzI4YWVjMjljMjkxMDdiNjk5ODdmYTExOTQ0ZjdkYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTIgQEAKKzIwMTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBu
YW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2
Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0
YWJhc2VQcm9jZXNzOjpEYXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6OmRlbGV0ZUR1bXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpJT0NoYW5uZWw6OnJlYWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OlN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OlN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Om1fYmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Om1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJh
Y2spOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldvcmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9y
Q29udGV4dCk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OndvcmtRdWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSk6CisgICAgICAgIChBUEk6Om1fcmVh
ZFF1ZXVlKToKKyAgICAgICAgKEFQSTo6bV9yZW1vdmVRdWV1ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlcjo6U3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TWVtb3J5UHJlc3N1cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNlY0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNw
YXRjaGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0
ZURpc3BhdGNoZXIpOgorCiAyMDE3LTAxLTA2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIFNob3VsZCBzdXBw
b3J0IGtleSBhbmQgY29kZSBwcm9wZXJ0aWVzIG9uIGtleWJvYXJkIGV2ZW50cwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
CmluZGV4IGU3ODA4NmMzYTk2MTJhMmYwYjRkN2FhZjFhZGM3YmExYTEwMWM1NDcuLjE0YzNlNGRk
ZDU2MDk4MzU0YjJkNmM5MmM3NjU0ZDJkZjVjYTAyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCB2b2lkIHRlc3RDb21wYXJlQW5kU3dhcCgpCiAgICAgICAgIGRhdGFbaV0uaWQg
PSBpOwogICAgICAgICBkYXRhW2ldLm51bVRocmVhZHMgPSBudW1UaHJlYWRzOwogICAgICAgICBz
dGQ6OmZ1bmN0aW9uPHZvaWQoKT4gdGhyZWFkRnVuYyA9IHN0ZDo6YmluZChzZXRCaXRUaHJlYWRG
dW5jLCAmZGF0YVtpXSk7Ci0gICAgICAgIHRocmVhZElEc1tpXSA9IGNyZWF0ZVRocmVhZCgic2V0
Qml0VGhyZWFkRnVuYyIsIHRocmVhZEZ1bmMpOworICAgICAgICB0aHJlYWRJRHNbaV0gPSBjcmVh
dGVUaHJlYWQoeyAic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRUaHJlYWRGdW5jIiB9LCB0aHJl
YWRGdW5jKTsKICAgICB9CiAKICAgICBwcmludGYoIldhaXRpbmcgZm9yICVkIHRocmVhZHMgdG8g
am9pblxuIiwgbnVtVGhyZWFkcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL3Rlc3RhaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWly
LmNwcAppbmRleCA5ZjhhOGQ4M2U1ZmQzMzFlNDQ5ZWY5MWYzZGE3ODRkNDU3NmNmNDRmLi40M2Q3
OThkNWNjN2MyMjI4NTkxZmYyMDJhYTY1ODgxNGQyZDhhMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHZvaWQgcnVuKGNv
bnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RG
OjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBl
bmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0
aHJlYWQiLAorICAgICAgICAgICAgICAgIHsgInRlc3RiMyB0aHJlYWQiLCAiVGVzdEIzVGhyZWFk
IiB9LAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAo
OzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+
IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGZjMzNjNmZjZmFkZjg5
MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1ZTEuLmE4MGJjN2UyYWRjZTBlMGZkMTA3NDc2N2NmZTFj
MTcxZjQ2ZTQxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0xNTY2MSw3
ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTsp
IHsKICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0g
ICAgICAgICAgICAgICAgInRlc3RiMyB0aHJlYWQiLAorICAgICAgICAgICAgICAgIHsgInRlc3Ri
MyB0aHJlYWQiLCAiVGVzdEIzVGhyZWFkIiB9LAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJl
ZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCmluZGV4IGE0ZTIxZjlmYTNjZDQ3MjFlYTI2NzVl
MDZlNGQ1MzBjNWJhOTViMzUuLmNiMmQ2OGMyYWVkZjBlNWIyYjM1NGMxOTY1NzE3YjViMmUzNWY5
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBs
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIu
Y3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgaW5pdGlhbGl6ZVN1cGVyU2FtcGxlcigpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIkpTQyBTdXBlciBTYW1w
bGVyIiwKKyAgICAgICAgeyAiSlNDIFN1cGVyIFNhbXBsZXIiLCAiU3VwZXJTYW1wbGVyIiB9LAog
ICAgICAgICBbXSAoKSB7CiAgICAgICAgICAgICBjb25zdCBpbnQgc2xlZXBRdWFudHVtID0gMTA7
CiAgICAgICAgICAgICBjb25zdCBpbnQgcHJpbnRpbmdQZXJpb2QgPSAxMDAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCA1ZTMzOGYwMTJiODk5NGQ5ODY1
NDQ2ZTg3ODE0Nzg0ZDhlODU1MDdiLi40OGUzYzQxNzRkZWJmMWEwZTI1YzJmYTI4YzgwYzZjOWQ4
YmI4ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAt
NDAsOCArNDAsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFdv
cmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6Ci0g
ICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0aXZlUHJpb3JpdHkpCi0gICAgICAgIDog
QXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgY29uZGl0aW9uKQorICAgIFRocmVhZEJvZHko
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3QsIFRocmVhZERhdGEm
IGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBj
b25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5LCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCisg
ICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgY29uZGl0aW9uLCB0aHJlYWRO
YW1lKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRh
dGEpCiAgICAgICAgICwgbV9yZWxhdGl2ZVByaW9yaXR5KHJlbGF0aXZlUHJpb3JpdHkpCkBAIC0x
NzMsOCArMTczLDggQEAgY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21h
dGljVGhyZWFkIHsKICAgICBSZWZQdHI8UGxhbj4gbV9wbGFuOwogfTsKIAotV29ya2xpc3Q6Oldv
cmtsaXN0KENTdHJpbmcgd29ya2xpc3ROYW1lKQotICAgIDogbV90aHJlYWROYW1lKHRvQ1N0cmlu
Zyh3b3JrbGlzdE5hbWUsICIgV29ya2VyIFRocmVhZCIpKQorV29ya2xpc3Q6OldvcmtsaXN0KFRo
cmVhZE5hbWUgdGhyZWFkTmFtZSkKKyAgICA6IG1fdGhyZWFkTmFtZSh0aHJlYWROYW1lKQogICAg
ICwgbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAgICwgbV9udW1iZXJPZkFjdGl2ZVRo
cmVhZHMoMCkKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0
aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiAgICAg
TG9ja0hvbGRlciBsb2NrZXIoKm1fbG9jayk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVy
T2ZUaHJlYWRzOyBpLS07KSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBk
YXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKLSAgICAgICAgZGF0YS0+
bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwg
bV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOworICAgICAgICBkYXRh
LT5tX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tlciwgKnRoaXMsICpkYXRh
LCBtX2xvY2ssIG1fcGxhbkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5LCBtX3RocmVhZE5hbWUp
KTsKICAgICAgICAgbV90aHJlYWRzLmFwcGVuZChXVEZNb3ZlKGRhdGEpKTsKICAgICB9CiB9CiAK
LVJlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5z
aWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlz
dD4gV29ya2xpc3Q6OmNyZWF0ZShUaHJlYWROYW1lIHRocmVhZE5hbWUsIHVuc2lnbmVkIG51bWJl
ck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiB7Ci0gICAgUmVmPFdvcmtsaXN0PiBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0KHdvcmtsaXN0TmFtZSkpOworICAgIFJlZjxX
b3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh0aHJlYWROYW1lKSk7CiAg
ICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMsIHJlbGF0aXZlUHJpb3Jp
dHkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC01MTYsNyArNTE2LDcgQEAgV29ya2xpc3Qm
IGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
aW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5p
dGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZH
V29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSgiREZHIFdvcmtsaXN0IiwgT3B0aW9uczo6bnVt
YmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9mREZHQ29t
cGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3Qg
PSAmV29ya2xpc3Q6OmNyZWF0ZSh7ICJERkcgV29ya2xpc3QiLCAiREZHV29ya2xpc3QiIH0sIE9w
dGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVs
dGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJu
ICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTUzMiw3ICs1MzIsNyBAQCBXb3JrbGlzdCYg
ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBp
bml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0
aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxGVExX
b3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBPcHRpb25zOjpudW1i
ZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21w
aWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9
ICZXb3JrbGlzdDo6Y3JlYXRlKHsgIkZUTFdvcmtsaXN0IiwgIkZUTFdvcmtsaXN0IiB9LCBPcHRp
b25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRh
T2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiAq
dGhlR2xvYmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKaW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2ZmMzMjIxOWIwZmE0NGY2ZjExYzdmOC4uYzEw
NDcyN2Y5YmIwZjExOGMwOWI5ZWZiNzNiZDdkMzQ4NzVlMDBiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3JrbGlzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAK
LSAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVu
c2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsKKyAgICBz
dGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoVGhyZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZU
aHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1
ZShQYXNzUmVmUHRyPFBsYW4+KTsKICAgICAKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgV29ya2xp
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogICAgIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBXb3JrbGlzdChDU3RyaW5nIHdvcmts
aXN0TmFtZSk7CisgICAgV29ya2xpc3QoVGhyZWFkTmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCk7CiAgICAgCiAgICAgY2xhc3MgVGhy
ZWFkQm9keTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxXb3JrbGlzdD4gewogCiAgICAgdm9pZCBkdW1wKGNvbnN0IExvY2tIb2xkZXImLCBQcmlu
dFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIENTdHJpbmcgbV90aHJlYWROYW1lOworICAgIFRo
cmVhZE5hbWUgbV90aHJlYWROYW1lOwogICAgIAogICAgIC8vIFVzZWQgdG8gaW5mb3JtIHRoZSB0
aHJlYWQgYWJvdXQgd2hhdCB3b3JrIHRoZXJlIGlzIGxlZnQgdG8gZG8uCiAgICAgRGVxdWU8UmVm
UHRyPFBsYW4+PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rp
c2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fz
c2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4IDc4OGE2YzM2MjM2OWM1OGRhZDI5YTYwYTM4
NzEwNDRlNDY0ZWQzMDUuLjFkNWM1ZmU2YzVkNDk1ODAyYTgwZDMwYjRlNjA1ZGJkMGYxZGIyZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1i
bGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2Vt
Ymxlci5jcHAKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVy
IHsKIHB1YmxpYzoKICAgICBBc3luY2hyb25vdXNEaXNhc3NlbWJsZXIoKQogICAgIHsKLSAgICAg
ICAgY3JlYXRlVGhyZWFkKCJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgWyZdICgpIHsgcnVu
KCk7IH0pOworICAgICAgICBjcmVhdGVUaHJlYWQoeyAiQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxl
ciIsICJBc3luY0Rpc2FzbSIgfSwgWyZdICgpIHsgcnVuKCk7IH0pOwogICAgIH0KICAgICAKICAg
ICB2b2lkIGVucXVldWUoc3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4gdGFzaykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggMjY1ODNjNGU5NDYwODBhZDZiN2FmY2Mx
OWQ2N2JiNTNlMGFkYWJkOC4uYjgyYThjYWE3YTRjYWNmMDlmZWIzODBmMTYwMTZlNzIwZWU3MmE1
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBj
bGFzcyBUaW1pbmdTY29wZSB7CiBjbGFzcyBIZWFwOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGlj
VGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBI
ZWFwJiBoZWFwKQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJl
YWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVh
ZChsb2NrZXIsIGhlYXAubV90aHJlYWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uLCB7ICJI
ZWFwIENvbGxlY3RvciIsICJIZWFwQ29sbGVjdG9yIiB9KQogICAgICAgICAsIG1faGVhcChoZWFw
KQogICAgIHsKICAgICB9CkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCB2b2lkIEhlYXA6Om5vdGlmeUlz
U2FmZVRvQ29sbGVjdCgpCiAgICAgCiAgICAgaWYgKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3Vz
bHkoKSkgewogICAgICAgICBtX2NvbGxlY3RDb250aW51b3VzbHlUaHJlYWQgPSBjcmVhdGVUaHJl
YWQoCi0gICAgICAgICAgICAiSlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLAorICAgICAgICAgICAg
eyAiSlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLCAiQ29udGludW91c0dDIiB9LAogICAgICAgICAg
ICAgW3RoaXNdICgpIHsKICAgICAgICAgICAgICAgICBNb25vdG9uaWNUaW1lIGluaXRpYWxUaW1l
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAgICAgICAgICAgU2Vjb25kcyBwZXJpb2Qg
PSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3VzbHlQ
ZXJpb2RNUygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBI
ZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29s
LmNwcAppbmRleCA3OTFhYTc1NmY5NWUxY2I1NjQwZmMzM2I0NTY3NzQ1MWVlMWEyNTM2Li45ZWVk
ZDAwM2NlMGNkNjc3YTc5YzExM2Y4ZjUwZmZmZWFhOGViNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFBhcmFs
bGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKQogICAgIHN0ZDo6Y2FsbF9vbmNlKAogICAg
ICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnLAogICAgICAgICBbXSB7Ci0gICAgICAg
ICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgICAgICAgICAg
aGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBlclBvb2woeyAiSGVhcCBIZWxwZXIiLCAiSGVh
cEhlbHBlciIgfSk7CiAgICAgICAgICAgICBoZWxwZXJQb29sLT5lbnN1cmVUaHJlYWRzKE9wdGlv
bnM6Om51bWJlck9mR0NNYXJrZXJzKCkgLSAxKTsKICAgICAgICAgfSk7CiAgICAgcmV0dXJuICpo
ZWxwZXJQb29sOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAKaW5kZXggMjA4MGNk
OTM0NTgzM2QyZDIzMmI4YTljZDZmM2RiZmViZTA1Y2IyMy4uZWM0NTk3NDk4YjFjYzA5MmU4NTc0
ODg2ZGQ0MWQ3YTg0ZjMxYmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9JQ1N0YXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIEF0b21pYzxJQ1N0YXRzKj4gSUNTdGF0czo6c19pbnN0YW5jZTsK
IElDU3RhdHM6OklDU3RhdHMoKQogewogICAgIG1fdGhyZWFkID0gY3JlYXRlVGhyZWFkKAotICAg
ICAgICAiSlNDIElDU3RhdHMiLAorICAgICAgICB7ICJKU0MgSUNTdGF0cyIsICJJQ1N0YXRzIiB9
LAogICAgICAgICBbdGhpc10gKCkgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9s
b2NrKTsKICAgICAgICAgICAgIGZvciAoOzspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRXb3JrbGlzdC5jcHAKaW5kZXggMmMyMmRhMzg5OGJjMjg3OWJhZjc3ZDk2MTZhY2VkMDRjYTdm
NTFhNi4uMjgxOTM5MjIxNTRhNTMwMDNiOWYwNzI3NDgzNDJmZmZmOWViMmM2NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBj
bGFzcyBKSVRXb3JrbGlzdDo6UGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKSVRX
b3JrbGlzdDo6UGxhbj4gewogY2xhc3MgSklUV29ya2xpc3Q6OlRocmVhZCA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25zdCBMb2NrSG9sZGVyJiBsb2Nr
ZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9j
a2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0aW9uKQorICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRp
b24sIHsgIkJhc2VsaW5lIEpJVCBDb21waWxlciBXb3JrZXIiLCAiSklUQ29tcGlsZXIiIH0pCiAg
ICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAgICB7CiAgICAgICAgIG1fd29ya2xpc3Qu
bV9udW1BdmFpbGFibGVUaHJlYWRzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNhN2EzZjQ3
MjdkMDIwMmU3MmU1YThlZWZlMDMyODc2MjA4MjViMzMuLjNjMzBmMDBjMzY0ZThjY2UyY2YzNmNh
OTRlNzU2Y2M2MjUzZWUxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yNzE5LDcgKzI3MTks
NyBAQCBzdGF0aWMgdm9pZCBzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgICAg
ICBkYXRhTG9nKCJXQVJOSU5HOiB0aW1lb3V0IHN0cmluZyBpcyBtYWxmb3JtZWQsIGdvdCAiLCB0
aW1lb3V0U3RyaW5nLAogICAgICAgICAgICAgICAgICIgYnV0IGV4cGVjdGVkIGEgbnVtYmVyLiBO
b3QgdXNpbmcgYSB0aW1lb3V0LlxuIik7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY3Jl
YXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRNYWluLCAwLCAianNjIFRpbWVvdXQgVGhyZWFkIik7Cisg
ICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4sIDAsIHsgImpzYyBUaW1l
b3V0IFRocmVhZCIsICJUaW1lb3V0VGhyZWFkIiB9KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggNzAz
NGRjNjk2YjllMTE0OTI4OGM3YmI5ZWRkZWZlMmFiMTZiMTdjYS4uODc5YTg4ZTcyODFjNTY4ZTQw
YmIzMTE0NzkxNDkzM2EyY2JlMDgwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIFNh
bXBsaW5nUHJvZmlsZXI6OmNyZWF0ZVRocmVhZElmTmVjZXNzYXJ5KGNvbnN0IExvY2tIb2xkZXIm
KQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8U2FtcGxpbmdQcm9maWxlcj4gcHJvZmls
ZXIgPSB0aGlzOwotICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgianNjLnNh
bXBsaW5nLXByb2ZpbGVyLnRocmVhZCIsIFtwcm9maWxlcl0geworICAgIG1fdGhyZWFkSWRlbnRp
ZmllciA9IGNyZWF0ZVRocmVhZCh7ICJqc2Muc2FtcGxpbmctcHJvZmlsZXIudGhyZWFkIiwgIlNh
bXBsaW5nIiB9LCBbcHJvZmlsZXJdIHsKICAgICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwog
ICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmlu
ZGV4IGY2MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0OGY2MGM5NTcyNTZjYjVjMjMuLjRkMzk4YTVhMDk4
ZDQ3OTY3YTFmOGQ0Zjg0NDkzMDU2NTliNGM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9n
KCkKICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwg
bV9jYWxsYmFja0RhdGEyKDApCi0gICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
ImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6VXRpbGl0eSkpCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAi
anNjLndhdGNoZG9nLnF1ZXVlIiwgIldhdGNoZG9nIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGxhbi5jcHAKaW5kZXggNTk4MGI1MWU4NzQyMjIzNzU1Y2UwYzNkZjJjMTZiMWRl
OWVjOGYxMi4uOTc3Nzk2N2QxYTUzMzIyZDQzMjE0ZmNkNTZiY2FkYzJmYjEzMzZlMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIHZv
aWQgUGxhbjo6cnVuKCkKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gdGhyZWFkczsKICAg
ICB0aHJlYWRzLnJlc2VydmVDYXBhY2l0eShudW1Xb3JrZXJUaHJlYWRzKTsKICAgICBmb3IgKHVp
bnQzMl90IGkgPSAwOyBpIDwgbnVtV29ya2VyVGhyZWFkczsgaSsrKQotICAgICAgICB0aHJlYWRz
LnVuY2hlY2tlZEFwcGVuZChjcmVhdGVUaHJlYWQoImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRo
cmVhZCIsIGRvV29yaykpOworICAgICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVU
aHJlYWQoeyAianNjLndhc20tYjMtY29tcGlsYXRpb24udGhyZWFkIiwgIldhc21CM0NvbXBpbGVy
IiB9LCBkb1dvcmspKTsKIAogICAgIGRvV29yaygpOyAvLyBMZXQgdGhlIG1haW4gdGhyZWFkIGRv
IHNvbWUgd29yayB0b28uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDJhNzgwNDQ5M2M5NWY4OWNkYTZiZjMxYTM4MTU5MGYxY2ZjMGUwNGMuLmQxZDFjZTVj
Mjg3YjMwZTIxZmRhOTZmN2ExNWVlYTQyMTQxYWVjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY4LDYgKzM2OCw4IEBACiAJCUZFODkyNUIwMUQwMERB
RUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkU4OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggKi87
IH07CiAJCUZFREFDRDNEMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREFDRDNCMTYzMEY4M0Yw
MEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLzsgfTsKIAkJRkVEQUNEM0UxNjMwRjgzRjAwQzY5
NjM0IC8qIFN0YWNrU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFREFDRDNDMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggKi87IH07
CisJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAvKiBBU0NJSUxpdGVyYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTlCRDQ1RTA2MzRCMjRCMkFG
MzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLzsgfTsKKwkJODk2NkU0MTg2QjlGNEVDMUFDQzIyNUNB
IC8qIFRocmVhZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYxRTJFNURFNkVENjQ0Q0E5MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi87IH07CiAv
KiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRl
bVByb3h5IHNlY3Rpb24gKi8KQEAgLTc0OCw2ICs3NTAsOCBAQAogCQlGRTg5MjVBRjFEMDBEQUVD
MDA0NjkwN0UgLyogSW5kZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5kZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0IxNjMwRjgz
RjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RhY2tTdGF0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
REFDRDNDMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0YWNrU3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzFBOUJENDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBBU0NJSUxpdGVyYWwuaDsgcGF0aCA9IEFTQ0lJTGl0ZXJh
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMUUyRTVERTZFRDY0NENBOTE4OEVC
NTUgLyogVGhyZWFkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaHJl
YWROYW1lLmg7IHBhdGggPSBUaHJlYWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1l
d29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTExMzIsNiArMTEzNiw3IEBACiAJCQkJRTRB
MEFEMzgxQTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5oICovLAogCQkJCUE4QTQ3MzdBMTUx
QTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmNwcCAqLywKIAkJCQlBOEE0NzM3QjE1MUE4
MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovLAorCQkJCUYxRTJFNURFNkVENjQ0Q0E5
MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHd0ZjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjIwLDYgKzEyMjUsNyBAQAogCQkJCTcwRUNBNjBD
MUIwMjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovLAogCQkJCUE4QTQ3MzJE
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuY3BwICovLAogCQkJCUE4QTQ3MzJFMTUxQTgy
NUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuaCAqLywKKwkJCQk3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5
Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRleHQ7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTU2OCw2ICsxNTc0LDggQEAKIAkJCQlBOEE0NzQ4NzE1
MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3
M0UwMjUxOURDQjdBQjAwNTgwRDVDIC8qIFhQQ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQz
QTQ2OTkxRTIyOEI5MTAwMjc2QjA1IC8qIENvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4QUQ4
OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRlcmFsLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4OTY2RTQxODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNw
cCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCmluZGV4IGNi
MWQxMDFlODU2NTI5ZThhYWVhNmFiZjYwZWMzOGVhMGI4ZGRlNzIuLmZkNWM5ZTg4MmNlOGUyZGYw
NmU0MDYwM2NhMjkxOWQ4YmRjOGZmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25k
aXRpb25TcGVlZFRlc3QuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgcnVuVGVzdCgKICAgICAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Db25zdW1lcnM7IGktLTspIHsKICAgICAgICAgVGhy
ZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAg
ICAgIkNvbnN1bWVyIHRocmVhZCIsCisgICAgICAgICAgICB7ICJDb25zdW1lciB0aHJlYWQiLCAi
Q29uc3VtZXIiIH0sCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAo
OzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVzdWx0OwpAQCAtMTE5LDcgKzEx
OSw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZvciAodW5zaWduZWQgaSA9IG51bVByb2R1Y2Vy
czsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBj
cmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJvZHVjZXIgVGhyZWFkIiwKKyAgICAgICAgICAg
IHsgIlByb2R1Y2VyIFRocmVhZCIsICJQcm9kdWNlciIgfSwKICAgICAgICAgICAgIFsmXSAoKSB7
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVy
UHJvZHVjZXI7ICsraSkgewogICAgICAgICAgICAgICAgICAgICBib29sIG11c3ROb3RpZnkgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0
LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAppbmRleCBm
MDgzMjFjMGY2ODgzNjUzNWQ4M2NiNmJjNzUxMTg0OGJiNTJkOTRmLi40OTAzYzg3NTkwYTI4YjJi
NjVlYzFjMTk5OTc5N2QyYWMxZDQ5NzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFy
a3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKKysrIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tG
YWlybmVzc1Rlc3QuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBCZW5jaG1hcmsgewogICAg
ICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkczsgdGhyZWFkSW5kZXgt
LTspIHsKICAgICAgICAgICAgIGNvdW50c1t0aHJlYWRJbmRleF0gPSAwOwogICAgICAgICAgICAg
dGhyZWFkc1t0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgIkJl
bmNobWFyayBUaHJlYWQiLAorICAgICAgICAgICAgICAgIHsgIkJlbmNobWFyayB0aHJlYWQiLCAi
QmVuY2htYXJrUnVubmVyIiB9LAogICAgICAgICAgICAgICAgIFsmLCB0aHJlYWRJbmRleF0gKCkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1pY3Jvc2Vjb25kc0luQ3JpdGljYWxTZWN0aW9u
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoa2VlcEdvaW5nKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKaW5kZXggNTQ1ZDJlMGIwNDg4ZjMzODk0YTU5
Njg4ZmQ5MWIwZDNhMzg3Y2NhMi4uMjlmMDM4YjVjYThkYjY0MTgzODZmMDU5YjZjZjY5YTVjZDgw
YWFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcApAQCAtOTEsNyAr
OTEsNyBAQCBzdHJ1Y3QgQmVuY2htYXJrIHsKIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0
aHJlYWRJbmRleCA9IG51bVRocmVhZHNQZXJHcm91cDsgdGhyZWFkSW5kZXgtLTspIHsKICAgICAg
ICAgICAgICAgICB0aHJlYWRzW3RocmVhZEdyb3VwSW5kZXggKiBudW1UaHJlYWRzUGVyR3JvdXAg
KyB0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgICAgICJCZW5j
aG1hcmsgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgeyAiQmVuY2htYXJrIHRocmVhZCIs
ICJCZW5jaG1hcmtSdW5uZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFt0aHJlYWRHcm91cElu
ZGV4LCAmbG9ja3MsICZ3b3JkcywgJmtlZXBHb2luZywgJm51bUl0ZXJhdGlvbnNMb2NrLCAmbnVt
SXRlcmF0aW9uc10gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxvY2FsV29y
ZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUgPSAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggNGQ4ZmI4NDg5Zjk5Y2I4ZjY3ZTdjYzJkMTNiZjQx
NTVlZTg3ZTVjNS4uYzY0YzYwODZkNTllOTlhZTUxN2E3ZDQxZmNkNjlmYWEwZDUyOTg5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC05OCw5ICs5OCwxMCBAQCBib29sIEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgTG9ja0hvbGRlciYsIEF1dG9tYXRp
Y1RocmVhZCogdGhyZQogICAgIHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0K
IAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29u
ZGl0aW9uKQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRl
ciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gY29uZGl0aW9uLCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2sobG9jaykK
ICAgICAsIG1fY29uZGl0aW9uKGNvbmRpdGlvbikKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1lKQog
ewogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6
IEFsbG9jYXRlZCBBdXRvbWF0aWNUaHJlYWQuXG4iKTsKQEAgLTE1Niw3ICsxNTcsNyBAQCB2b2lk
IEF1dG9tYXRpY1RocmVhZDo6c3RhcnQoY29uc3QgTG9ja0hvbGRlciYpCiAgICAgbV9oYXNVbmRl
cmx5aW5nVGhyZWFkID0gdHJ1ZTsKICAgICAKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9
IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIldURjo6QXV0b21hdGljVGhyZWFkIiwKKyAgICAgICAg
bV9uYW1lLAogICAgICAgICBbPV0gKCkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgICAgICAgICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBSdW5uaW5nIGF1dG9tYXRp
YyB0aHJlYWQhXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVh
ZC5oIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKaW5kZXggNjkyNmY2MjM2NTNk
NGM1OTIxMzcwY2M0ZDljZWM4ZDA2YzMzZWRhOC4uNzE5ZmNiZGRkNzBjYmNjZDRkZTlmYWI5NDVk
N2IzYTgwMTllOWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFk
LmgKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKQEAgLTEzMCw3ICsxMzAs
NyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhyZWFkIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9n
aWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwgYnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24n
dCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUKICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPik7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9j
az4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+LCBUaHJlYWROYW1lKTsKICAgICAK
ICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdpbmUg
dGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBzbzoK
QEAgLTE4Miw2ICsxODIsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhy
ZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogICAgIGJvb2wgbV9o
YXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKICAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0
aW9uOwogICAgIENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlvbjsKKyAgICBUaHJlYWROYW1l
IG1fbmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5jcHAKaW5kZXggOTQ5MmZkZGRmMTk2NDlkNjViNTEwYjFlNDNjMDJhYTk1MTRjMDcz
MS4uMmMzYmYwNzQwODhlMjlhOTkxOGYyOWZhZmY5NGNkMGM1YjYyZDEzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjMsOSArMTIzLDEwIEBAIHZvaWQgUGFyYWxs
ZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IHRhc2sp
CiAgICAgfQogfQogCi1QYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCgpCitQ
YXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lIHRocmVhZE5h
bWUpCiAgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fd29ya0F2YWls
YWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQorICAgICwg
bV9uYW1lKHRocmVhZE5hbWUpCiB7CiB9CiAKQEAgLTE3MSw3ICsxNzIsNyBAQCB2b2lkIFBhcmFs
bGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6
OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChj
b25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYgcG9vbCkKLSAgICAg
ICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtBdmFp
bGFibGVDb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgcG9vbC5t
X2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLCBwb29sLm5hbWUoKSkKICAgICAg
ICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBv
b2wuaAppbmRleCA4MTYzNWJiNzgxOTAwM2FjOWQ3ZjRhNjgxY2M1NTQ0ZTkwZGE3ZDkxLi5lZGMx
YWVlMWEyNGFkN2I4MDQ2NTIyMTU1YWY2NGJhMDRkYmNiYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxl
bEhlbHBlclBvb2wuaApAQCAtMTc5LDcgKzE3OSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyQ2xp
ZW50IHsKIAogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogcHVibGljOgotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBQYXJhbGxlbEhlbHBlclBvb2woKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxs
ZWxIZWxwZXJQb29sKFRocmVhZE5hbWUpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxs
ZWxIZWxwZXJQb29sKCk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJl
YWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOwpAQCAtMTg4LDYgKzE4OCw4IEBAIGNsYXNzIFBhcmFs
bGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBl
clBvb2w+IHsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5n
KCk7CiAKKyAgICBUaHJlYWROYW1lIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKwog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CiAgICAgY2xh
c3MgVGhyZWFkOwpAQCAtMjA3LDYgKzIwOSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICAK
ICAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVudHM7CiAgICAgVmVjdG9y
PFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+PiBtX3RocmVhZHM7CisgICAgVGhyZWFkTmFtZSBtX25h
bWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlzIGNhbiBiZSBsYXJn
ZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhyZWFkcyBvbmx5IG9u
Y2UgdGhlcmUgaXMgd29yay4KICAgICBib29sIG1faXNEeWluZyB7IGZhbHNlIH07CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCA0MDIzZjQzZTZmMjBhMzhlMTAz
ZTdjOWEyZTRmMGY3ZTA2MTA1NzE0Li5lZDRiM2Y2NWQyMWQyY2NhZTBmM2U0OGJjMzU5ZDkzNTVh
ZTE2ZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtOTQsNyAr
OTQsNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tG
b3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogICAgIH0KIAogICAgIGlmICghbV90aHJl
YWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgmUGFyYWxsZWxFbnZpcm9u
bWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCAiUGFyYWxsZWwgd29ya2Vy
Iik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoJlBhcmFsbGVsRW52aXJvbm1l
bnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCwgdGhpcywgeyAiUGFyYWxsZWwgd29ya2Vy
IiwgIlBhcmFsbGVsV29ya2VyIiB9KTsKIAogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICBt
X3BhcmVudCA9IHBhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUu
aCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzliMzYxZmYxYzQ4
NzAwZmUxZjc5YTFkNjdjMmIyOWE4ODk3OTRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkTmFtZS5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFRocmVhZE5h
bWUgeworcHVibGljOgorICAgIHRlbXBsYXRlPHVuc2lnbmVkIGxvbmdOYW1lQ291bnQsIHVuc2ln
bmVkIHNob3J0TmFtZUNvdW50PgorICAgIGNvbnN0ZXhwciBUaHJlYWROYW1lKGNvbnN0IGNoYXIg
KCZsb25nTmFtZSlbbG9uZ05hbWVDb3VudF0sIGNvbnN0IGNoYXIgKCZzaG9ydE5hbWUpW3Nob3J0
TmFtZUNvdW50XSkKKyAgICAgICAgOiBtX2xvbmdOYW1lKGxvbmdOYW1lKQorICAgICAgICAsIG1f
c2hvcnROYW1lKHNob3J0TmFtZSkKKyAgICB7CisjaWYgT1MoTElOVVgpCisgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RyaW5nTGVuZ3RoKHNob3J0TmFtZSkgPD0gKDE2IC0gMSksICIiKTsKKyNlbGlm
IE9TKFdJTkRPV1MpCisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RyaW5nTGVuZ3RoKCJXZWJLaXQ6
ICIpICsgc3RyaW5nTGVuZ3RoKHNob3J0TmFtZSkgPD0gKDMyIC0gMSksICIiKTsKKyNlbmRpZgor
ICAgIH0KKworICAgIENTdHJpbmcgbmFtZSgpIGNvbnN0CisgICAgeworI2lmIE9TKExJTlVYKQor
ICAgICAgICByZXR1cm4gbV9zaG9ydE5hbWU7CisjZWxpZiBPUyhXSU5ET1dTKQorICAgICAgICBy
ZXR1cm4gcHJlZml4ZWROYW1lKG1fc2hvcnROYW1lKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBw
cmVmaXhlZE5hbWUobV9sb25nTmFtZSk7CisjZW5kaWYKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
dGVtcGxhdGU8dW5zaWduZWQgc3RyaW5nQ291bnQ+CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBzdHJpbmdMZW5ndGgoY29uc3QgY2hhciAoJilbc3RyaW5nQ291bnRdKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHN0cmluZ0NvdW50IC0gMTsKKyAgICB9CisKKyAgICBzdGF0aWMgQ1N0cmlu
ZyBwcmVmaXhlZE5hbWUoY29uc3QgY2hhciogY29udGVudCkKKyAgICB7CisgICAgICAgIGNvbnN0
ZXhwciB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSBzdHJpbmdMZW5ndGgoIldlYktpdDogIik7Cisg
ICAgICAgIHVuc2lnbmVkIGNvbnRlbnRMZW5ndGggPSBzdHJsZW4oY29udGVudCk7CisgICAgICAg
IGNoYXIqIGJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIENTdHJpbmcgc3RyaW5nID0gQ1N0cmlu
Zzo6bmV3VW5pbml0aWFsaXplZChwcmVmaXhMZW5ndGggKyBjb250ZW50TGVuZ3RoLCBidWZmZXIp
OworICAgICAgICBtZW1jcHkoYnVmZmVyLCAiV2ViS2l0OiAiLCBwcmVmaXhMZW5ndGgpOworICAg
ICAgICBidWZmZXIgKz0gcHJlZml4TGVuZ3RoOworICAgICAgICBtZW1jcHkoYnVmZmVyLCBjb250
ZW50LCBjb250ZW50TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICB9CisKKyAg
ICBjb25zdCBjaGFyKiBtX2xvbmdOYW1lOworICAgIGNvbnN0IGNoYXIqIG1fc2hvcnROYW1lOwor
fTsKKworfQorCit1c2luZyBXVEY6OlRocmVhZE5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmcuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcAppbmRleCA0
MGNlMzlhNDVkMzU0MGEyM2ZkNTg3OGNmOTA2N2VhZmQ3NjgxMzNjLi4xM2RmNTMyYzM5NGEzMTMz
MzU0YTU0MzBiODA0OGMwMjJhYTgzMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmcuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKQEAgLTM2LDM4ICsz
NiwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKIHN0cnVjdCBOZXdUaHJlYWRDb250ZXh0IHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdCBjaGFyKiBuYW1lOwor
ICAgIFRocmVhZE5hbWUgbmFtZTsKICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50cnlQb2lu
dDsKICAgICBNdXRleCBjcmVhdGlvbk11dGV4OwogfTsKIAotY29uc3QgY2hhciogbm9ybWFsaXpl
VGhyZWFkTmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKQotewotI2lmIEhBVkUoUFRIUkVBRF9T
RVROQU1FX05QKQotICAgIHJldHVybiB0aHJlYWROYW1lOwotI2Vsc2UKLSAgICAvLyBUaGlzIG5h
bWUgY2FuIGJlIGNvbS5hcHBsZS5XZWJLaXQuUHJvY2Vzc0xhdW5jaGVyIG9yIGNvbS5hcHBsZS5D
b3JlSVBDLlJlY2VpdmVRdWV1ZS4KLSAgICAvLyBXZSBhcmUgdXNpbmcgdGhvc2UgbmFtZXMgZm9y
IHRoZSB0aHJlYWQgbmFtZSwgYnV0IGJvdGggYXJlIGxvbmdlciB0aGFuIHRoZSBsaW1pdCBvZgot
ICAgIC8vIHRoZSBwbGF0Zm9ybSB0aHJlYWQgbmFtZSBsZW5ndGgsIDMyIGZvciBXaW5kb3dzIGFu
ZCAxNiBmb3IgTGludXguCi0gICAgU3RyaW5nVmlldyByZXN1bHQodGhyZWFkTmFtZSk7Ci0gICAg
c2l6ZV90IHNpemUgPSByZXN1bHQucmV2ZXJzZUZpbmQoJy4nKTsKLSAgICBpZiAoc2l6ZSAhPSBu
b3RGb3VuZCkKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZyhzaXplICsgMSk7Ci0K
LSNpZiBPUyhXSU5ET1dTKQotICAgIGNvbnN0ZXhwciBjb25zdCBzaXplX3Qga1Zpc3VhbFN0dWRp
b1RocmVhZE5hbWVMaW1pdCA9IDMyIC0gMTsKLSAgICBpZiAocmVzdWx0Lmxlbmd0aCgpID4ga1Zp
c3VhbFN0dWRpb1RocmVhZE5hbWVMaW1pdCkKLSAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJpZ2h0
KGtWaXN1YWxTdHVkaW9UaHJlYWROYW1lTGltaXQpOwotI2VsaWYgT1MoTElOVVgpCi0gICAgY29u
c3RleHByIGNvbnN0IHNpemVfdCBrTGludXhUaHJlYWROYW1lTGltaXQgPSAxNiAtIDE7Ci0gICAg
aWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtMaW51eFRocmVhZE5hbWVMaW1pdCkKLSAgICAgICAgcmVz
dWx0ID0gcmVzdWx0LnJpZ2h0KGtMaW51eFRocmVhZE5hbWVMaW1pdCk7Ci0jZW5kaWYKLSAgICBB
U1NFUlQocmVzdWx0LmNoYXJhY3RlcnM4KClbcmVzdWx0Lmxlbmd0aCgpXSA9PSAnXDAnKTsKLSAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4ocmVzdWx0LmNoYXJhY3RlcnM4
KCkpOwotI2VuZGlmCi19Ci0KIHN0YXRpYyB2b2lkIHRocmVhZEVudHJ5UG9pbnQodm9pZCogY29u
dGV4dERhdGEpCiB7CiAgICAgTmV3VGhyZWFkQ29udGV4dCogY29udGV4dCA9IHN0YXRpY19jYXN0
PE5ld1RocmVhZENvbnRleHQqPihjb250ZXh0RGF0YSk7CkBAIC04OCw3ICs2MSw3IEBAIHN0YXRp
YyB2b2lkIHRocmVhZEVudHJ5UG9pbnQodm9pZCogY29udGV4dERhdGEpCiAgICAgZW50cnlQb2lu
dCgpOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChjb25zdCBjaGFyKiBuYW1l
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50cnlQb2ludCkKK1RocmVhZElkZW50aWZpZXIgY3Jl
YXRlVGhyZWFkKFRocmVhZE5hbWUgbmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9p
bnQpCiB7CiAgICAgTmV3VGhyZWFkQ29udGV4dCogY29udGV4dCA9IG5ldyBOZXdUaHJlYWRDb250
ZXh0IHsgbmFtZSwgV1RGTW92ZShlbnRyeVBvaW50KSwgeyB9IH07CiAKQEAgLTk4LDcgKzcxLDcg
QEAgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFtZSwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQKICAgICByZXR1cm4gY3JlYXRlVGhyZWFkSW50ZXJu
YWwodGhyZWFkRW50cnlQb2ludCwgY29udGV4dCwgbmFtZSk7CiB9CiAKLVRocmVhZElkZW50aWZp
ZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNv
bnN0IGNoYXIqIG5hbWUpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5j
dGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBUaHJlYWROYW1lIG5hbWUpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZVRocmVhZChuYW1lLCBbZW50cnlQb2ludCwgZGF0YV0gewogICAgICAgICBlbnRy
eVBvaW50KGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmggYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAppbmRleCAzMDUwZGQ4ZGY4NDhiNmU1YTA5YzhlNzNh
YWFjZjU0MDdmOGE0YjY1Li5kYzNhZWFiNzkyNzBhYmEzNTJmNjU5OGM2ODAwZjg1NzFhOGNjZjkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmcuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPHd0Zi9BdG9taWNz
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWROYW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVS
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIApAQCAt
NTUsNyArNTYsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAKIC8vIFJldHVybnMgMCBpZiB0aHJlYWQgY3JlYXRpb24gZmFpbGVkLgogLy8gVGhlIHRo
cmVhZCBuYW1lIG11c3QgYmUgYSBsaXRlcmFsIHNpbmNlIG9uIHNvbWUgcGxhdGZvcm1zIGl0J3Mg
cGFzc2VkIGluIHRvIHRoZSB0aHJlYWQuCi1XVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRp
ZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogdGhyZWFkTmFtZSwgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+KTsKK1dURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVh
ZChUaHJlYWROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogCiAvLyBNYXJrIHRoZSBjdXJy
ZW50IHRocmVhZCBhcyByZXF1aXJpbmcgVUkgcmVzcG9uc2l2ZW5lc3MuCiAvLyByZWxhdGl2ZVBy
aW9yaXR5IGlzIGEgdmFsdWUgaW4gdGhlIHJhbmdlIFstMTUsIDBdIHdoZXJlIGEgbG93ZXIgdmFs
dWUgaW5kaWNhdGVzIGEgbG93ZXIgcHJpb3JpdHkuCkBAIC02OCwxNiArNjksMTQgQEAgV1RGX0VY
UE9SVF9QUklWQVRFIGludCB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbihUaHJlYWRJZGVudGlmaWVy
KTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRldGFjaFRocmVhZChUaHJlYWRJZGVudGlmaWVy
KTsKIAogLy8gRGVwcmVjYXRlZCBmdW5jdGlvbi1wb2ludGVyLWJhc2VkIHRocmVhZCBjcmVhdGlv
bi4KLVdURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJl
YWRGdW5jdGlvbiwgdm9pZCosIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOworV1RGX0VYUE9SVF9Q
UklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uLCB2b2lk
KiwgVGhyZWFkTmFtZSk7CiAKIC8vIEludGVybmFsIHBsYXRmb3JtLXNwZWNpZmljIGNyZWF0ZVRo
cmVhZCBpbXBsZW1lbnRhdGlvbi4KLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJu
YWwoVGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1RocmVh
ZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBU
aHJlYWROYW1lKTsKIAogLy8gQ2FsbGVkIGluIHRoZSB0aHJlYWQgZHVyaW5nIGluaXRpYWxpemF0
aW9uLgogLy8gSGVscGZ1bCBmb3IgcGxhdGZvcm1zIHdoZXJlIHRoZSB0aHJlYWQgbmFtZSBtdXN0
IGJlIHNldCBmcm9tIHdpdGhpbiB0aGUgdGhyZWFkLgotdm9pZCBpbml0aWFsaXplQ3VycmVudFRo
cmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwotCi1jb25zdCBjaGFyKiBub3Jt
YWxpemVUaHJlYWROYW1lKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwordm9pZCBpbml0aWFsaXpl
Q3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDBmOWYyZmM3MmM5ZDNlODkw
YzczYWFkYTczOTE1MDRhOTFhNzQyODAuLjUzY2EzOGVhNDdjNzUwNGM3ZTM5ZDlkYTBkNGJmYmFl
NmE0MDVlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTE2OSw3ICsx
NjksNyBAQCBzdGF0aWMgdm9pZCogd3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKiBwYXJhbSkKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRl
cm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBjaGFyKikK
K1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50
cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSkKIHsKICAgICBhdXRvIGludm9jYXRpb24g
PSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbj4oZW50cnlQb2ludCwg
ZGF0YSk7CiAgICAgcHRocmVhZF90IHRocmVhZEhhbmRsZTsKQEAgLTE5MiwxMiArMTkyLDE0IEBA
IFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50
cnlQb2ludCwgdm9pZCogZGF0YSwgY29uCiAgICAgcmV0dXJuIGVzdGFibGlzaElkZW50aWZpZXJG
b3JQdGhyZWFkSGFuZGxlKHRocmVhZEhhbmRsZSk7CiB9CiAKLXZvaWQgaW5pdGlhbGl6ZUN1cnJl
bnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKQordm9pZCBpbml0aWFsaXpl
Q3VycmVudFRocmVhZEludGVybmFsKFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICNpZiBIQVZF
KFBUSFJFQURfU0VUTkFNRV9OUCkKLSAgICBwdGhyZWFkX3NldG5hbWVfbnAobm9ybWFsaXplVGhy
ZWFkTmFtZSh0aHJlYWROYW1lKSk7CisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7
CisgICAgcHRocmVhZF9zZXRuYW1lX25wKG5hbWUuZGF0YSgpKTsKICNlbGlmIE9TKExJTlVYKQot
ICAgIHByY3RsKFBSX1NFVF9OQU1FLCBub3JtYWxpemVUaHJlYWROYW1lKHRocmVhZE5hbWUpKTsK
KyAgICBhdXRvIG5hbWUgPSB0aHJlYWROYW1lLm5hbWUoKTsKKyAgICBwcmN0bChQUl9TRVRfTkFN
RSwgbmFtZS5kYXRhKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odGhyZWFkTmFtZSk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IDU0YjQzZWZlZjM1Y2Q2NjMyYTcwMDgx
NTA3YTViMzc5OWRlZmI2ZmIuLjRjOWJjNTc3YTI2YTkwZGE1NTA5ZDJjNjIzODMxYmZiZWY4N2Q0
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtMTIxLDE1ICsxMjEsMTYgQEAgdHlwZWRl
ZiBzdHJ1Y3QgdGFnVEhSRUFETkFNRV9JTkZPIHsKIH0gVEhSRUFETkFNRV9JTkZPOwogI3ByYWdt
YSBwYWNrKHBvcCkKIAotdm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKGNvbnN0
IGNoYXIqIHN6VGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5h
bChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgQ09NUElMRVIoTUlOR1cpCiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aHJlYWQgbmFtZSBzZXR0aW5nIHdpdGggTWluZ1cuCi0gICAgVU5V
U0VEX1BBUkFNKHN6VGhyZWFkTmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5hbWUpOwog
I2Vsc2UKKyAgICBhdXRvIG5hbWUgPSB0aHJlYWROYW1lLm5hbWUoKTsKICAgICBUSFJFQUROQU1F
X0lORk8gaW5mbzsKICAgICBpbmZvLmR3VHlwZSA9IDB4MTAwMDsKLSAgICBpbmZvLnN6TmFtZSA9
IG5vcm1hbGl6ZVRocmVhZE5hbWUoc3pUaHJlYWROYW1lKTsKKyAgICBpbmZvLnN6TmFtZSA9IG5h
bWUuZGF0YSgpOwogICAgIGluZm8uZHdUaHJlYWRJRCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOwog
ICAgIGluZm8uZHdGbGFncyA9IDA7CiAKQEAgLTE5OSw3ICsyMDAsNyBAQCBzdGF0aWMgdW5zaWdu
ZWQgX19zdGRjYWxsIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAgICAgcmV0dXJu
IDA7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVu
Y3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK1Ro
cmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQ
b2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogICAgIHVuc2lnbmVk
IHRocmVhZElkZW50aWZpZXIgPSAwOwogICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1dvcmtRdWV1ZS5jcHAKaW5kZXggYjJhMGE3OWY0YWI1YWFjMjg5YjE2OWY5MmJiYzFhODA1
ODUyY2EzMi4uYzI4OTE2NjlkNjBmMTk1OGNiZGVkNmU3OTE1MmEyNzVkNjYyNzYzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9X
b3JrUXVldWUuY3BwCkBAIC0zOSwxMiArMzksMTIgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLVJl
ZjxXb3JrUXVldWU+IFdvcmtRdWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlw
ZSwgUU9TIHFvcykKK1JlZjxXb3JrUXVldWU+IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUg
bmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdv
cmtRdWV1ZShuYW1lLCB0eXBlLCBxb3MpKTsKIH0KIAotV29ya1F1ZXVlOjpXb3JrUXVldWUoY29u
c3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQorV29ya1F1ZXVlOjpXb3JrUXVldWUo
VGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgcGxhdGZvcm1Jbml0
aWFsaXplKG5hbWUsIHR5cGUsIHFvcyk7CiB9CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgV29ya1F1
ZXVlOjpjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIGNvbnN0IHN0ZDo6ZnVuY3Rp
b248dm9pZCAoc2l6CiAKICAgICAgICAgICAgIG1fd29ya2Vycy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHRocmVhZENvdW50KTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0
aHJlYWRDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVh
dGVUaHJlYWQoU3RyaW5nOjpmb3JtYXQoIlRocmVhZFBvb2wgV29ya2VyICV1IiwgaSkudXRmOCgp
LmRhdGEoKSwgW3RoaXNdIHsKKyAgICAgICAgICAgICAgICBtX3dvcmtlcnMuYXBwZW5kKGNyZWF0
ZVRocmVhZCh7ICJUaHJlYWRQb29sIFdvcmtlciIsICJDb25jdXJyZW50QXBwbHkiIH0sIFt0aGlz
XSB7CiAgICAgICAgICAgICAgICAgICAgIHRocmVhZEJvZHkoKTsKICAgICAgICAgICAgICAgICB9
KSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUu
aCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmluZGV4IGQ5MTg0YjQ4MjdiZjEwYmEzOGE0
ODE0ODA1YjJmMzM2NDZkNzZlMDMuLjQyNzI0YWY2ODNkZGExNzZhNmQ2ZTA2YzQ5YjQ4ZjY4OTNk
YjQ5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb25EaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KIAogI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQpAQCAtNjcsNyAr
NjgsNyBAQCBjbGFzcyBXb3JrUXVldWUgZmluYWwgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVy
IHsKICAgICAgICAgQmFja2dyb3VuZAogICAgIH07CiAKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlID0gVHlw
ZTo6U2VyaWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgUmVmPFdvcmtRdWV1ZT4gY3JlYXRlKFRocmVhZE5hbWUsIFR5cGUgPSBUeXBlOjpTZXJp
YWwsIFFPUyA9IFFPUzo6RGVmYXVsdCk7CiAgICAgdmlydHVhbCB+V29ya1F1ZXVlKCk7CiAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmKSBv
dmVycmlkZTsKQEAgLTg1LDkgKzg2LDkgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDogcHVibGlj
IEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBX
b3JrUXVldWUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKTsKKyAgICBleHBsaWNpdCBXb3Jr
UXVldWUoVGhyZWFkTmFtZSwgVHlwZSwgUU9TKTsKIAotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemUoVGhyZWFkTmFtZSwgVHlwZSwgUU9TKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0
ZSgpOwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dv
cmtRdWV1ZUNvY29hLmNwcAppbmRleCA4ZWRiZjIzYzU1ODg4ODI5NmMxNGM4YzlkMGVlMGM0ZjYz
MzBiMzIzLi5lMTU3MTVkMTcyMTU0NGQ2OGRhYzVhZWNjNTE2YmViMTM1MGQ3YWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRp
YyBkaXNwYXRjaF9xdWV1ZV90IHRhcmdldFF1ZXVlRm9yUU9TQ2xhc3MoV29ya1F1ZXVlOjpRT1Mg
cW9zKQogfQogI2VuZGlmCiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29u
c3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQordm9pZCBXb3JrUXVldWU6OnBsYXRm
b3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKIHsKICAg
ICBkaXNwYXRjaF9xdWV1ZV9hdHRyX3QgYXR0ciA9IHR5cGUgPT0gVHlwZTo6Q29uY3VycmVudCA/
IERJU1BBVENIX1FVRVVFX0NPTkNVUlJFTlQgOiBESVNQQVRDSF9RVUVVRV9TRVJJQUw7CiAjaWYg
SEFWRShRT1NfQ0xBU1NFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRj
aFF1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcApp
bmRleCBiNGFkMmJkYzQzOGY5ZDk0NTdlM2Y3ZmI0OTIyNGM2ODE1OTc2ZGFmLi4yZjEwYjAyYTBl
MTkzYzJmMjkyZWM5MGMyYmMyYjI4ZTRlZDNjODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3Bh
dGNoUXVldWVFZmwuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIHdha2VV
cFRocmVhZE1lc3NhZ2UgPSAnVyc7CiAKIGNsYXNzIERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRl
eHQgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHN0YXJ0KGNvbnN0IGNoYXIqIG5hbWUsIFBh
c3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSkKKyAgICBzdGF0aWMgdm9pZCBz
dGFydChUaHJlYWROYW1lIG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hR
dWV1ZSkKICAgICB7CiAgICAgICAgIC8vIFRoZSBEaXNwYXRjaFF1ZXVlVGhyZWFkQ29udGV4dCBp
bnN0YW5jZSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdGhyZWFkIGZ1bmN0aW9uIGFuZCBkZWxldGVk
IGluIGl0LgogICAgICAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHJlaW50ZXJwcmV0X2Nh
c3Q8V1RGOjpUaHJlYWRGdW5jdGlvbj4oJlRocmVhZENvbnRleHQ6OmZ1bmN0aW9uKSwgbmV3IFRo
cmVhZENvbnRleHQoZGlzcGF0Y2hRdWV1ZSksIG5hbWUpKTsKQEAgLTYxLDcgKzYxLDcgQEAgY2xh
c3MgRGlzcGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dCB7CiAgICAgUmVmUHRyPERpc3BhdGNoUXVl
dWU+IG1fZGlzcGF0Y2hRdWV1ZTsKIH07CiAKLVBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gRGlz
cGF0Y2hRdWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpCitQYXNzUmVmUHRyPERpc3BhdGNo
UXVldWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUpCiB7CiAgICAgUmVm
UHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUgPSBhZG9wdFJlZjxEaXNwYXRjaFF1ZXVl
PihuZXcgRGlzcGF0Y2hRdWV1ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZs
L0Rpc3BhdGNoUXVldWVFZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZs
LmgKaW5kZXggZmM1NTUxOWIwMWNlZThmZTA0OWMxM2MxZTVmY2ZjN2Q5OTc5NGYyNi4uNTcwOTQy
NmRiYWViYWE3MTE1ZjYyODI2YmMyNGRkNGZiMmU0MWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlz
cGF0Y2hRdWV1ZUVmbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlIDxmdW5jdGlvbmFs
PgogI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQ
cmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNyArMzgsNyBAQCBj
bGFzcyBXb3JrSXRlbTsKIAogY2xhc3MgRGlzcGF0Y2hRdWV1ZSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxEaXNwYXRjaFF1ZXVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGlzcGF0Y2hRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpOworICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lKTsKICAgICB+RGlzcGF0
Y2hRdWV1ZSgpOwogCiAgICAgdm9pZCBkaXNwYXRjaChzdGQ6OnVuaXF1ZV9wdHI8V29ya0l0ZW0+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwIGIvU291
cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKaW5kZXggZGE5MTNiZjA0Y2U3MjczMTA3
NjdlZjQ3OTRmZGQyYjg3OGE1ZjRlZC4uODMyNWY1ZDZjMzE0ZDRmYmI4MzMzZjIxOTBkM2ZiY2Yx
OTQ3ZTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKQEAgLTI1LDcgKzI1LDcg
QEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxp
emUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVldWU6OnBsYXRmb3Jt
SW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAgICBtX2Rpc3BhdGNo
UXVldWUgPSBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUobmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYv
Z2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAppbmRleCBmNTk0ZTI0MDExNmQ0ZTA0M2Q0ZGMz
YTNmNmNmN2MwN2Q0YjIzNDQyLi5kZjZlMDcyMmQxZTQwM2M3YWI5NzAwNzBkNTdmNjNiNjI2MTI0
MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAg
LTMyLDcgKzMyLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi12b2lk
IFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFP
UykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBU
eXBlLCBRT1MpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENv
bmRpdGlvbk11dGV4KTsKICAgICBtX3dvcmtRdWV1ZVRocmVhZCA9IGNyZWF0ZVRocmVhZChuYW1l
LCBbdGhpc10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwu
aCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk0NmE5
Mjk4NGY5NDRiMTM1ZDcwMjlmNTMxZGQ3MWI4Y2E2OTk2NAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQVNDSUlMaXRlcmFsIHsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBjb25zdGV4cHIgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMp
CisgICAgICAgIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCisgICAgeworICAgIH0KKworICAg
IGNvbnN0ZXhwciBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gbV9jaGFyYWN0ZXJzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBjaGFyKiBt
X2NoYXJhY3RlcnM7Cit9OworCit9CisKK3VzaW5nIFdURjo6QVNDSUlMaXRlcmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmgKaW5kZXggMDFjNzY4MTBiZDZjZDFlZGJiZWY4YWZlZDg0MmY4MDgwZGY3
ZGFkMy4uODBlNjQ0NzFmZWQwODg3NDA1MzM2NTNmNmY0ZTY5NmVhZTA0YjBjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5oCkBAIC0yNiw2ICsyNiw3IEBACiAvLyBvbiBzeXN0ZW1zIHdpdGhvdXQg
Y2FzZS1zZW5zaXRpdmUgZmlsZSBzeXN0ZW1zLgogCiAjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlG
YXN0UGF0aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC0zNCw4ICszNSw2
IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBBU0NJSUxpdGVyYWw7Ci0KIC8vIERlY2xh
cmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwogCiBXVEZfRVhQT1JUX1NUUklOR19BUEkgaW50
IGNoYXJhY3RlcnNUb0ludFN0cmljdChjb25zdCBMQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSBu
dWxscHRyLCBpbnQgYmFzZSA9IDEwKTsKQEAgLTY4MSwxNSArNjgwLDYgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgRGVmYXVsdEhhc2g8U3RyaW5nPiB7CiAKIHRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JU
cmFpdHM8U3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKIAotY2xhc3MgQVND
SUlMaXRlcmFsIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBU0NJSUxpdGVyYWwoY29uc3QgY2hh
ciogY2hhcmFjdGVycykgOiBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykgeyB9Ci0gICAgb3BlcmF0
b3IgY29uc3QgY2hhciooKSB7IHJldHVybiBtX2NoYXJhY3RlcnM7IH0KLQotcHJpdmF0ZToKLSAg
ICBjb25zdCBjaGFyKiBtX2NoYXJhY3RlcnM7Ci19OwotCiAvLyBTaGFyZWQgZ2xvYmFsIGVtcHR5
IHN0cmluZy4KIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBjb25zdCBTdHJpbmcmIGVtcHR5U3RyaW5n
KCk7CiAKQEAgLTczOCw3ICs3MjgsNiBAQCB1c2luZyBXVEY6OmZpbmQ7CiB1c2luZyBXVEY6Omlz
QWxsU3BlY2lhbENoYXJhY3RlcnM7CiB1c2luZyBXVEY6OmlzU3BhY2VPck5ld2xpbmU7CiB1c2lu
ZyBXVEY6OnJldmVyc2VGaW5kOwotdXNpbmcgV1RGOjpBU0NJSUxpdGVyYWw7CiAKICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
d2luL01haW5UaHJlYWRXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4u
Y3BwCmluZGV4IGYzMjRlOGI2MWRkNDFmYTA1NjA4NjNiNmM1ODE5MTBmODY3ZDM2ZWIuLjUyNjlk
OWYyMmUwYThkNThmYjE2ZmIyNzkzYjVjOWQyODIxZTIzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFp
blRocmVhZFdpbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVh
ZFBsYXRmb3JtKCkKICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwgMCwg
SFdORF9NRVNTQUdFLCAwLCAwLCAwKTsKICAgICB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UgPSBSZWdp
c3RlcldpbmRvd01lc3NhZ2VXKEwiY29tLmFwcGxlLldlYktpdC5NYWluVGhyZWFkRmlyZWQiKTsK
IAotICAgIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoIk1haW4gVGhyZWFkIik7Cisg
ICAgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCh7ICJNYWluIFRocmVhZCIsICJNYWlu
VGhyZWFkIiB9KTsKIH0KIAogdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhy
ZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwIGIv
U291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKaW5kZXggZjRjNGI4Yzc3ZGNlOTk1
ZjU3ZjI1NjcwMmMxZjljZWY4YzY1YTVhYS4uNzEyNGFjZmM5N2RjYWU5YTIyMTQ4NDI2ODI5Yjg0
ZDM2ZDgyYzI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgp
CiAgICAgbV9mdW5jdGlvblF1ZXVlTG9jay51bmxvY2soKTsKIH0KIAotdm9pZCBXb3JrUXVldWU6
OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdv
cmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQog
ewogICAgIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCA9IDA7CiAgICAgbV90aW1lclF1ZXVlID0g
OjpDcmVhdGVUaW1lclF1ZXVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDg3NDc2NDM4Y2FlNjVhNjM4N2Q5
MDFhNzUyODgxNWVjOTU0N2YyMzIuLmFiMWVmNjQ4MGE2MjVjOWJkZTRkZGIxODUxZGRlOTAyMzJl
YmZmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIElEQlNlcnZlcjo6SURCU2VydmVy
KElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKICAgICA6
IG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7CiAgICAg
TG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwg
dGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgeyAiSW5kZXhlZERh
dGFiYXNlIFNlcnZlciIsICJJREJTZXJ2ZXIiIH0pOwogfQogCiBJREJTZXJ2ZXI6OklEQlNlcnZl
cihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVt
cG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQpAQCAtNjYsNyArNjYsNyBAQCBJREJTZXJ2
ZXI6OklEQlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFj
a2luZ1N0b3JlVGVtcG9yYQogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIgY3JlYXRlZCBh
dCBwYXRoICVzIiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAg
TG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwg
dGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRl
VGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgeyAiSW5kZXhlZERh
dGFiYXNlIFNlcnZlciIsICJJREJTZXJ2ZXIiIH0pOwogfQogCiB2b2lkIElEQlNlcnZlcjo6cmVn
aXN0ZXJDb25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5j
cHAKaW5kZXggMjkyZjA1YjhjZDUwNmUyMjlhZTZiOGJkODYyOWMwOTU0ZDE4NDU5Yi4uMDNkODg0
ZWM0ZmRkMDJjZjVkZDRjYTM5MTliN2VkZGQxZjAwMTVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgQXN5bmNBdWRpb0RlY29kZXI6OkFzeW5jQXVkaW9EZWNvZGVyKCkKIHsKICAgICAv
LyBTdGFydCB3b3JrZXIgdGhyZWFkLgogICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0
aW9uTXV0ZXgpOwotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29k
ZXI6OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOworICAgIG1fdGhyZWFkSUQg
PSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlzLCB7ICJB
dWRpbyBEZWNvZGVyIiwgIkF1ZGlvRGVjb2RlciIgfSk7CiB9CiAKIEFzeW5jQXVkaW9EZWNvZGVy
Ojp+QXN5bmNBdWRpb0RlY29kZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4
IDUwNTIzMDQxOTdjZGVkZGU0N2ZkY2JiOTEyZWM0NzQwNTU3OTc0MjguLmJhNzNiODAwNDI1ODMw
MTM5NGU5Y2Q2NDE4YjM5MjczNjVkZDUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0
YXJ0UmVuZGVyaW5nKCkKICAgICBpZiAoIW1fc3RhcnRlZFJlbmRlcmluZykgewogICAgICAgICBt
X3N0YXJ0ZWRSZW5kZXJpbmcgPSB0cnVlOwogICAgICAgICByZWYoKTsgLy8gU2VlIGNvcnJlc3Bv
bmRpbmcgZGVyZWYoKSBjYWxsIGluIG5vdGlmeUNvbXBsZXRlRGlzcGF0Y2goKS4KLSAgICAgICAg
bV9yZW5kZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpvZmZsaW5lUmVuZGVyRW50cnksIHRoaXMsICJvZmZsaW5lIHJlbmRlcmVyIik7CisgICAgICAg
IG1fcmVuZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZTo6b2ZmbGluZVJlbmRlckVudHJ5LCB0aGlzLCB7ICJvZmZsaW5lIHJlbmRlcmVyIiwgIk9mZmxp
bmVSZW5kZXJlciIgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IDBkZGU1ZjcyNjhlZTY0
MmMwMDQzMDVjZWZlMzZiMWM5ZTQ0Yjg3ZDMuLjhkZmQ2ZGJiNDBkNWQ5Y2FhNTRjM2FjNGE1MGZl
YmJkZGIyMWY5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgRGF0YWJhc2VU
aHJlYWQ6OnN0YXJ0KCkKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFz
ZVRocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogRGF0YWJhc2UiKTsKKyAgICBtX3RocmVhZElE
ID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0YXJ0LCB0aGlz
LCB7ICJXZWJDb3JlOiBEYXRhYmFzZSIsICJXZWJEQiIgfSk7CiAKICAgICByZXR1cm4gbV90aHJl
YWRJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IDZmOWZjYTY3ZjNjNDdhZGRjODNkZWM4Y2IwZDVlYjhjY2I0MGQ3NDMuLjNlMjRmMGIwODA5
YzFmMWM1ZDc0NjY4OGFjYTkyNjFjMjBjMTdmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgR0NDb250cm9s
bGVyOjpnYXJiYWdlQ29sbGVjdE5vd0lmTm90RG9uZVJlY2VudGx5KCkKIAogdm9pZCBHQ0NvbnRy
b2xsZXI6OmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcoYm9vbCB3
YWl0VW50aWxEb25lKQogewotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBjcmVhdGVU
aHJlYWQoY29sbGVjdCwgMCwgIldlYkNvcmU6IEdDQ29udHJvbGxlciIpOworICAgIFRocmVhZElk
ZW50aWZpZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29sbGVjdCwgMCwgeyAiV2ViQ29yZTog
R0MgQ29udHJvbGxlciIsICJHQ0NvbnRyb2xsZXIiIH0pOwogCiAgICAgaWYgKHdhaXRVbnRpbERv
bmUpIHsKICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSUQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCBmNjkxZjZiMDlmMjZhNWQ2OTU0Y2Ux
NjM3YjMyNzI2NjBiMTY5YzAwLi5mMDhlMGMwMWQ5Y2U0YWYyOGM2MzliNTFhNjQyZGE4NmZlOTg0
YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcApAQCAtMzIsNyArMzIs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcigmY29udGV4dCkKLSAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIikpCisgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIiwgIkNyeXB0b1F1ZXVl
IiB9KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0Zp
bGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3Bw
CmluZGV4IDViODEzNjExMmFkZGVhMTQ1Yzk1NTkwYThhM2MxNzYxZjFiMWI5ODMuLmFmYjJlMGRm
MjIyZGI0ZDMzYWNmZmE4ZjVhYjg5NjlmMzk1OTk2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgY2Fs
bE9uRmlsZVRocmVhZChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogCiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIGNyZWF0ZUZpbGVUaHJlYWRPbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNl
KGNyZWF0ZUZpbGVUaHJlYWRPbmNlLCBbXSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZCgiV2ViQ29y
ZTogQXN5bmNGaWxlU3RyZWFtIiwgW10geworICAgICAgICBjcmVhdGVUaHJlYWQoeyAiV2ViQ29y
ZTogQXN5bmNGaWxlU3RyZWFtIiwgIkFzeW5jRmlsZVN0cmVhbSIgfSwgW10gewogICAgICAgICAg
ICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCBlZTQzN2U4
NjI4ZWJmNGU4NjMyN2NjNzcwMzBmNWY2OTRlMzBiYjJkLi45OGYxODkwMzkzYWNhMmQwMzA5OWUz
ZmNmZTc4NjcwZWExYTk5NDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25E
YXRhYmFzZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBib29sIEljb25EYXRhYmFzZTo6b3Blbihj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKICAgICAvLyBM
b2NrIGhlcmUgYXMgd2VsbCBhcyBmaXJzdCB0aGluZyBpbiB0aGUgdGhyZWFkIHNvIHRoZSB0aHJl
YWQgZG9lc24ndCBhY3R1YWxseSBjb21tZW5jZSB1bnRpbCB0aGUgY3JlYXRlVGhyZWFkKCkgY2Fs
bCAKICAgICAvLyBjb21wbGV0ZXMgYW5kIG1fc3luY1RocmVhZFJ1bm5pbmcgaXMgcHJvcGVybHkg
c2V0CiAgICAgbV9zeW5jTG9jay5sb2NrKCk7Ci0gICAgbV9zeW5jVGhyZWFkID0gY3JlYXRlVGhy
ZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZFN0YXJ0LCB0aGlzLCAiV2Vi
Q29yZTogSWNvbkRhdGFiYXNlIik7CisgICAgbV9zeW5jVGhyZWFkID0gY3JlYXRlVGhyZWFkKElj
b25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZFN0YXJ0LCB0aGlzLCB7ICJXZWJDb3Jl
OiBJY29uRGF0YWJhc2UiLCAiSWNvbkRCIiB9KTsKICAgICBtX3N5bmNUaHJlYWRSdW5uaW5nID0g
bV9zeW5jVGhyZWFkOwogICAgIG1fc3luY0xvY2sudW5sb2NrKCk7CiAgICAgaWYgKCFtX3N5bmNU
aHJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAppbmRl
eCA5MTIwMGMzNDVmNDU1Zjk2ZDQ5NGJmZDJhZDcwM2YyOGM1YzYyOWQxLi44ODA0MGJhMzg4NTRj
Zjk5MzM0M2U1YWE2ZjM0ZTVkMTRhNWU5Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
b3VyY2VVc2FnZVRocmVhZC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFJlc291cmNlVXNh
Z2VUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV92bSA9ICZjb21tb25WTSgpOwotICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVh
ZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IFJlc291cmNlVXNhZ2UiKTsKKyAgICBt
X3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIHsg
IldlYkNvcmU6IFJlc291cmNlVXNhZ2UiLCAiUmVzb3VyY2VVc2FnZSIgfSk7CiB9CiAKIHZvaWQg
UmVzb3VyY2VVc2FnZVRocmVhZDo6dGhyZWFkQ2FsbGJhY2sodm9pZCogcmVzb3VyY2VVc2FnZVRo
cmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJl
YWQuY3BwCmluZGV4IDczMGMwYTZiZDkzZjQ1NzhkMWVkYmY5YWNlMWNkODY1NjZlNmM5ODguLmY4
YmViY2M1YjIwZmY1Mzc1OTc2YTEzNGJlZjYwN2UxY2ZlNDQ4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcApAQCAtODEsNyArODEs
NyBAQCB2b2lkIFNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogICAgIHsK
ICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6ZVJ1bkxvb3BN
dXRleCk7CiAKLSAgICAgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVh
ZENhbGxiYWNrLCB0aGlzLCAiV2ViQ29yZTogU2Nyb2xsaW5nIik7CisgICAgICAgIG1fdGhyZWFk
SWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgeyAiV2ViQ29y
ZTogU2Nyb2xsaW5nIiwgIlNjcm9sbGluZyIgfSk7CiAgICAgICAgIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChs
b2NrLCBbdGhpc117IHJldHVybiBtX3RocmVhZFJ1bkxvb3A7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXggZjcx
MzMzYzVhMzdhOTk4OTY0ZjNhNzQxYzczMTUyZTk1MTQ2NmNmNi4uYjhjZDYyYjk4Mzg2OWFmN2Jk
YzgyNjI3M2UyMDM4YWU2ZWIzNzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9p
ZCBIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSgpCiAgICAgCiAgICAgaWYg
KCFtX2hydGZEYXRhYmFzZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVhZCkgewogICAg
ICAgICAvLyBTdGFydCB0aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcgcHJvY2Vzcy4K
LSAgICAgICAgbV9kYXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxv
YWRlckVudHJ5LCB0aGlzLCAiSFJURiBkYXRhYmFzZSBsb2FkZXIiKTsKKyAgICAgICAgbV9kYXRh
YmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxvYWRlckVudHJ5LCB0aGlz
LCB7ICJIUlRGIGRhdGFiYXNlIGxvYWRlciIsICJIUlRGREJMb2FkZXIiIH0pOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5j
cHAKaW5kZXggOTZmMzMwODI4MDc5YTc5YWQ2NDgyMGQwNzIxYzU5YzVlYTE2ZmRiMS4uMTI5NTlj
M2VmNzExZWI3NmE4N2QyMWY5OTExYzY4MGFhNjc5MWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0xMzAsNyArMTMwLDcg
QEAgUmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIoQXVkaW9DaGFubmVsKiBpbXB1bHNl
UmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGkKICAgICAvLyBTdGFydCB1cCBiYWNrZ3JvdW5kIHRo
cmVhZAogICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBiZXR0ZXIgdG8gdXAgdGhlIHRocmVhZCBwcmlv
cml0eSBoZXJlLiAgSXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwtdGltZSwgYnV0IGhpZ2hlciB0
aGFuIHRoZSBkZWZhdWx0Li4uCiAgICAgaWYgKHRoaXMtPnVzZUJhY2tncm91bmRUaHJlYWRzKCkg
JiYgbV9iYWNrZ3JvdW5kU3RhZ2VzLnNpemUoKSA+IDApCi0gICAgICAgIG1fYmFja2dyb3VuZFRo
cmVhZCA9IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpiYWNrZ3JvdW5kVGhyZWFkRW50cnksIHRoaXMs
ICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIpOworICAgICAgICBtX2JhY2tncm91bmRU
aHJlYWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5LCB0aGlz
LCB7ICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIsICJDb252b2x1dGlvbiIgfSk7CiB9
CiAKIFJldmVyYkNvbnZvbHZlcjo6flJldmVyYkNvbnZvbHZlcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVh
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxMjk0OTgxNjBmMWJlM2U2Y2ZlN2YwNDc2NGI0
ZDc5ZDQ4ZjhmM2YuLmNkOGY2Y2FlMDllY2M1ZmVmOGM3NDBhNjIxNzlmZDY2ZjUyMDE3ZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Zp
bGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zNzAsNyArMzcwLDcg
QEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQg
c2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1
c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25vLCBmbG9h
dCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gcmV0dXJuVmFsdWU7Ci0gICAg
YXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVkaW9GaWxlUmVhZGVyIiwgWyZyZXR1cm5W
YWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0geworICAgIGF1dG8gdGhyZWFk
SUQgPSBjcmVhdGVUaHJlYWQoeyAiQXVkaW9GaWxlUmVhZGVyIiwgIkF1ZGlvRmlsZVJlYWRlciIg
fSwgWyZyZXR1cm5WYWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0gewogICAg
ICAgICByZXR1cm5WYWx1ZSA9IEF1ZGlvRmlsZVJlYWRlcihmaWxlUGF0aCkuY3JlYXRlQnVzKHNh
bXBsZVJhdGUsIG1peFRvTW9ubyk7CiAgICAgfSk7CiAgICAgd2FpdEZvclRocmVhZENvbXBsZXRp
b24odGhyZWFkSUQpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNy
ZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25v
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29u
c3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2Ft
cGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwotICAgIGF1dG8g
dGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0dXJuVmFsdWUs
IGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRvIHRocmVh
ZElEID0gY3JlYXRlVGhyZWFkKHsgIkF1ZGlvRmlsZVJlYWRlciIsICJBdWRpb0ZpbGVSZWFkZXIi
IH0sIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVd
IHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZGF0YSwgZGF0YVNpemUp
LmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAgIHdhaXRGb3JU
aHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCmluZGV4IDgxZmIxZjk4NjhmMzEwZTUz
NTlkMTYxZGMyZGFjYTVjYzdkM2FlZDcuLjkzZmE1OWQwYWIyNWE1OTA0MDM3MjRhMjUzNjFmZTA4
NjZkNDQwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VGcmFtZUNhY2hlLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSW1hZ2VGcmFtZUNh
Y2hlOjpjYWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KE5hdGl2ZUltYWdlUHRyJiYgbmF0aXZl
SW1hZ2UsCiBSZWY8V29ya1F1ZXVlPiBJbWFnZUZyYW1lQ2FjaGU6OmRlY29kaW5nUXVldWUoKQog
ewogICAgIGlmICghbV9kZWNvZGluZ1F1ZXVlKQotICAgICAgICBtX2RlY29kaW5nUXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5JbWFnZURlY29kZXIiLCBXb3JrUXVldWU6OlR5
cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSk7CisgICAgICAgIG1f
ZGVjb2RpbmdRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIkltYWdlRGVjb2RlciIsICJJbWFn
ZURlY29kZXIiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNl
ckludGVyYWN0aXZlKTsKICAgICAKICAgICByZXR1cm4gKm1fZGVjb2RpbmdRdWV1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMGRhNGE4ODU3
M2JhMWI1NWI0ZmVhNTIzODllNGMyNTJmZGU5ODQzNC4uMDc5N2NhMWU0NTIyNDU3OTVjMDhlNDU5
M2IyNGI2ZGUyNmE4OWQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xp
ZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywKICAg
ICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0
aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVh
ZCgiUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCBbdGhpcywgcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCldIHsKKyAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCh7ICJSZXNvdXJjZUhh
bmRsZVN0cmVhbWluZ0NsaWVudCIsICJSU3RyZWFtaW5nIiB9LCBbdGhpcywgcmVxdWVzdCA9IFdU
Rk1vdmUocmVxdWVzdCldIHsKICAgICAgICAgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICAgICAgICAgIG1fcnVu
TG9vcCA9ICZSdW5Mb29wOjpjdXJyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXgg
NGNkMWJkZGYzYWI3NjZhMDAwNDhmOGFjNTc2ZmEyODQ3ZWM2MjcwZC4uYWNkMmZlMGEyOTQxMzcz
NjNjODk0MDFiNGU2OTA5Nzc0MjA4NDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAt
MTE3LDcgKzExNyw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6RXZl
bnRGRFBvbGxlcihpbnQgZmQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoCiAgICAgfSwgdGhpcywgbnVs
bHB0cik7CiAgICAgZ19zb3VyY2VfYXR0YWNoKG1fc291cmNlLmdldCgpLCBudWxscHRyKTsKICNl
bHNlCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogTWVtb3J5UHJlc3N1
cmVIYW5kbGVyIiwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CisgICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZCh7ICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIiLCAiTWVtUHJlc3NIYW5kbGVy
IiB9LCBbdGhpc10geyByZWFkQW5kTm90aWZ5KCk7IH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAppbmRl
eCBlMTQzNDUxZmRhYTMzOGMzNzEwMTBiN2ZlZGZkZTA1MmE1ZTM5OWY3Li5iM2EyNTI5MjY1NjEy
ODZiM2ZkMGFhZTJjZmNhYjdhNzAyNzczYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTI0Myw3ICsyNDMsNyBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5SW1wbDo6YmxvYlNpemUoY29uc3QgVVJM
JiB1cmwpCiAKIHN0YXRpYyBXb3JrUXVldWUmIGJsb2JVdGlsaXR5UXVldWUoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1ZXVlPj4gcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoIm9yZy53ZWJraXQuQmxvYlV0aWxpdHkiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29y
a1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVm
PFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJraXQuQmxvYlV0
aWxpdHkiLCAiQmxvYlV0aWxpdHkiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVl
dWU6OlFPUzo6QmFja2dyb3VuZCkpOwogICAgIHJldHVybiBxdWV1ZS5nZXQoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApp
bmRleCBhYmZiNDZjZWNmODIxNDNiOWZmYWNkMDFiZTU3ODZhNTNhMDA4ZWMwLi4xNjYzNmM5NjA2
ZDYzOGZjNmJlZDMwYWI5OTA5NDI2M2Q2OTMxOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgRGF0YVVSTERlY29kZXIgewogCiBzdGF0aWMgV29ya1F1ZXVlJiBkZWNvZGVRdWV1
ZSgpCiB7Ci0gICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53
ZWJraXQuRGF0YVVSTERlY29kZXIiKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1dG8mIHF1ZXVl
ID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAib3JnLndlYmtpdC5EYXRhVVJMRGVjb2RlciIsICJEYXRh
VVJMRGVjb2RlciIgfSkubGVha1JlZigpOwogICAgIHJldHVybiBxdWV1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0Yu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0Yu
Y3BwCmluZGV4IDQ2Yjg5OTRhODQxZWY3MWVhMjc5Y2U3N2NiYzhmYjQzYzI5ZjBhNjIuLmM0YmFh
OGRkOTE4MTg2YjI4ZDA5NDY5MzdmYjQyN2I5NDliODVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKQEAgLTc3
LDcgKzc3LDcgQEAgQ0ZSdW5Mb29wUmVmIGxvYWRlclJ1bkxvb3AoKQogICAgIHN0ZDo6dW5pcXVl
X2xvY2s8U3RhdGljTG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAgaWYgKCFs
b2FkZXJSdW5Mb29wT2JqZWN0KSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZChydW5Mb2FkZXJUaHJl
YWQsIDAsICJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIik7CisgICAgICAgIGNyZWF0ZVRocmVh
ZChydW5Mb2FkZXJUaHJlYWQsIDAsIHsgIldlYkNvcmU6IENGTmV0d29yayBMb2FkZXIiLCAiQ0ZO
ZXR3b3JrTG9hZGVyIiB9KTsKIAogICAgICAgICBsb2FkZXJSdW5Mb29wQ29uZGl0aW9uVmFyaWFi
bGUud2FpdChsb2NrLCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9KTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERv
d25sb2FkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCmluZGV4IDQ0MDhjZDE5ODcwNWJhODZjYzhjMTk4NmZiM2UyY2FkZTc5NmRjYzYu
LjM2MWFmZWM5MmIyMzZmM2FlYzFlMmZlOGRjODVkYWE5MWFiMWQwODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCkBA
IC05Nyw3ICs5Nyw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5l
ZWRlZCgpCiAgICAgICAgIGlmIChtX3RocmVhZElkKQogICAgICAgICAgICAgd2FpdEZvclRocmVh
ZENvbXBsZXRpb24obV90aHJlYWRJZCk7CiAgICAgICAgIHNldFJ1blRocmVhZCh0cnVlKTsKLSAg
ICAgICAgbV90aHJlYWRJZCA9IGNyZWF0ZVRocmVhZChkb3dubG9hZFRocmVhZCwgdGhpcywgImRv
d25sb2FkVGhyZWFkIik7CisgICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxv
YWRUaHJlYWQsIHRoaXMsIHsgImRvd25sb2FkVGhyZWFkIiwgIkRvd25sb2FkZXIiIH0pOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKaW5kZXggZTk0Zjg0
YTY4MjMzOTUyZDRjMmM2NTJjNmIyYWZmMjVkMjY2ZGM2Yi4uNWIwMzE2YmMwMDExYzlhYjlkMjJi
ZTY0ODA0Yzc3NjlhMjE1NWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwu
Y3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFy
dFRocmVhZCgpCiAKICAgICByZWYoKTsgLy8gc3RvcFRocmVhZCgpIHdpbGwgY2FsbCBkZXJlZigp
LgogCi0gICAgbV93b3JrZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoIldlYlNvY2tldCB0aHJlYWQi
LCBbdGhpc10geworICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFkKHsgIldlYlNvY2tl
dCB0aHJlYWQiLCAiV2ViU29ja2V0IiB9LCBbdGhpc10gewogCiAgICAgICAgIEFTU0VSVCghaXNN
YWluVGhyZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5k
ZXggNTFmNDJmNWZmZmYyZmE2ZGE2ODQ1N2U0ZDIyNmViNmYzNzZjNDBkYS4uZmU1OTFhM2E5MmQz
MjU2NjI2OGUyM2RhN2NkYzlkZjBjODFlY2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzdGFy
dCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgbV90
aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0
aGlzLCAiV2ViQ29yZTogV29ya2VyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChX
b3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0aGlzLCB7ICJXZWJDb3JlOiBXZWJXb3Jr
ZXIiLCAiV2ViV29ya2VyIiB9KTsKIAogICAgIHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCmluZGV4IGJiNjZmY2VhN2U1MjhiYzI3ZjYz
M2EzZTUyODc4YjUwMWVmMGUxODcuLjk1YzRiZTc2MzY4ZDJjZmI1NDBmNTQxZTRlZDRiMDY3MDMz
MDllODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKQEAgLTU1LDcg
KzU1LDcgQEAgYm9vbCBTdG9yYWdlVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhyZWFkSUQgPSBj
cmVhdGVUaHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0aGlz
LCAiV2ViQ29yZTogTG9jYWxTdG9yYWdlIik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVU
aHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0aGlzLCB7ICJX
ZWJDb3JlOiBMb2NhbFN0b3JhZ2UiLCAiTG9jYWxTdG9yYWdlIiB9KTsKICAgICBhY3RpdmVTdG9y
YWdlVGhyZWFkcygpLmFkZCh0aGlzKTsKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5k
ZXggZDVlYWRiMGIzYjQxYWE0Mzk2MGYwMTg1YWMyYTNiYjVmMmFlZmE2NC4uZWU2NzBhNzUxMjMx
YjQzZjliMWYwYWVjMDU1MmJiZGRhYjQzZGE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgRGF0
YWJhc2VQcm9jZXNzJiBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpCiB9CiAKIERhdGFiYXNl
UHJvY2Vzczo6RGF0YWJhc2VQcm9jZXNzKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIikpCisgICAgOiBtX3F1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIiwgIkRC
UHJvY2VzcyIgfSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBVVEY4RW5jb2RpbmcgZW5jb2Rp
bmcgYW5kIHRoZSB0ZXh0IGVuY29kaW5nIG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9uIHRoZSBtYWlu
IHRocmVhZCBiZWZvcmUgYSBiYWNrZ3JvdW5kIHRocmVhZCBuZWVkcyBpdC4KICAgICAvLyBGSVhN
RTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM2NSAtIE5lZWQg
YSBtb3JlIGV4cGxpY2l0IHdheSBvZiBkb2luZyB0aGlzIGJlc2lkZXMgYWNjZXNzaW5nIHRoZSBV
VEY4RW5jb2RpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCBhODAyOTFmYzFkMWQ1OWM3YzFkYjYwMjFiOTRjY2U4
MjRjNTFjNTk3Li4wNWI4M2JkNmFhYTQ1ZTIzN2Y5NzY3ZGVhODBhYjEwZDQzN2VjNmUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5jcHAKQEAgLTU4Myw3ICs1ODMsNyBAQCB2b2lkIENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUo
KQogCiB2b2lkIENhY2hlOjpkZWxldGVEdW1wRmlsZSgpCiB7Ci0gICAgV29ya1F1ZXVlOjpjcmVh
dGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuZGVsZXRlIiktPmRpc3BhdGNoKFtwYXRoID0gZHVt
cEZpbGVQYXRoKCkuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZSh7ICJj
b20uYXBwbGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIsICJDYWNoZURlbGV0ZXIiIH0pLT5kaXNwYXRj
aChbcGF0aCA9IGR1bXBGaWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAgIFdlYkNv
cmU6OmRlbGV0ZUZpbGUocGF0aCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5l
bFNvdXAuY3BwCmluZGV4IGVmN2JhODk5ODIwMjMyNTg5ZTczOTFmMjdmY2QzZDZlMTY5ZjY4OTQu
LmMyNGMwZmIzMDY3YTQ4NDkzNTM2YWNlMDVhZmJiODVjZmMxNzAwMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZUlPQ2hhbm5lbFNvdXAuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJT0NoYW5uZWw6
OnJlYWRTeW5jSW5UaHJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSog
cXVldWUsIHMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIFJlZlB0cjxJT0No
YW5uZWw+IGNoYW5uZWwodGhpcyk7Ci0gICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZCgiSU9D
aGFubmVsOjpyZWFkU3luYyIsIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRs
ZXJdIHsKKyAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHsgIklPQ2hhbm5lbDo6cmVhZFN5
bmMiLCAiSU9DUmVhZFN5bmMiIH0sIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhh
bmRsZXJdIHsKICAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1pbihzaXplLCBnRGVm
YXVsdFJlYWRCdWZmZXJTaXplKTsKICAgICAgICAgdWludDhfdCogYnVmZmVyRGF0YSA9IHN0YXRp
Y19jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsKICAgICAgICAgR1JlZlB0
cjxTb3VwQnVmZmVyPiByZWFkQnVmZmVyID0gYWRvcHRHUmVmKHNvdXBfYnVmZmVyX25ld193aXRo
X293bmVyKGJ1ZmZlckRhdGEsIGJ1ZmZlclNpemUsIGJ1ZmZlckRhdGEsIGZhc3RGcmVlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCmluZGV4IDEwYTUyMDNlZmQ4MTgwZTBhY2EzNGJlNTRk
ZjUyNTgyZjU5Yzk1ZjcuLjIwODI0YjJlYjFjMzVkNzkwMjYwM2Y0ZjY1MTljNTcyMjIxMTJhMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxTdGF0aXN0aWNzPiBTdGF0aXN0aWNzOjpvcGVuKGNvbnN0IFN0cmluZyYgY2FjaGVQ
YXRoKQogfQogCiBTdGF0aXN0aWNzOjpTdGF0aXN0aWNzKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQ
YXRoKQotICAgIDogbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCBXb3JrUXVldWU6
OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgIDogbV9zZXJp
YWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0
LkNhY2hlLlN0YXRpc3RpY3MuQmFja2dyb3VuZCIsICJDYWNoZVN0YXRzQkciIH0sIFdvcmtRdWV1
ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCiAgICAgLCBtX3dy
aXRlVGltZXIoKnRoaXMsICZTdGF0aXN0aWNzOjp3cml0ZVRpbWVyRmlyZWQpCiB7CiAgICAgaW5p
dGlhbGl6ZShkYXRhYmFzZVBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAppbmRleCA4ZjdiNmUz
ZjJkZmZkMDkzYjAyZmM3NjFhYWU2MmRlNTJhMjVlOGRlLi5jZTRhNzFlYTEwNzNjNTRlZjNmZWRi
OTJiYWM4YmJiYmI1MGRkYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcApAQCAtMjEzLDkgKzIx
Myw5IEBAIFN0b3JhZ2U6OlN0b3JhZ2UoY29uc3QgU3RyaW5nJiBiYXNlRGlyZWN0b3J5UGF0aCwg
U2FsdCBzYWx0KQogICAgICwgbV9zYWx0KHNhbHQpCiAgICAgLCBtX3JlYWRPcGVyYXRpb25UaW1l
b3V0VGltZXIoKnRoaXMsICZTdG9yYWdlOjpjYW5jZWxBbGxSZWFkT3BlcmF0aW9ucykKICAgICAs
IG1fd3JpdGVPcGVyYXRpb25EaXNwYXRjaFRpbWVyKCp0aGlzLCAmU3RvcmFnZTo6ZGlzcGF0Y2hQ
ZW5kaW5nV3JpdGVPcGVyYXRpb25zKQotICAgICwgbV9pb1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1
cnJlbnQpKQotICAgICwgbV9iYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlLmJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6
OkNvbmN1cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKLSAgICAsIG1fc2VyaWFs
QmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2Fj
aGUuU3RvcmFnZS5zZXJpYWxCYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdv
cmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1faW9RdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCAiQ2FjaGVTdG9yYWdlRkci
IH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBtX2JhY2tncm91bmRJT1F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5i
YWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZUJHIiB9LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJl
bnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1fc2VyaWFsQmFja2dyb3Vu
ZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9y
YWdlLnNlcmlhbEJhY2tncm91bmQiLCAiQ2FjaGVTdG9yYWdlU0JHIiB9LCBXb3JrUXVldWU6OlR5
cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwgbV9ibG9iU3Rv
cmFnZShtYWtlQmxvYkRpcmVjdG9yeVBhdGgoYmFzZURpcmVjdG9yeVBhdGgpLCBtX3NhbHQpCiB7
CiAgICAgZGVsZXRlT2xkVmVyc2lvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcAppbmRleCBkYThlYTNmYmIwNWUzZGZmZTQ5YmUzMzJhNjYwMWUyN2FiZmNh
ZjQxLi42ZmY1YTBhZDFiNjlhZjU1OTg5MmNhOTU4Y2JhMWUwYzBmN2VmMzc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAg
Q29ubmVjdGlvbjo6Q29ubmVjdGlvbihJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaXNTZXJ2
ZXIsIENsaWVudCYgY2xpZW50KQogICAgICwgbV9zaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRG
YWlsdXJlKGZhbHNlKQogICAgICwgbV9kaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxi
YWNrKDApCiAgICAgLCBtX2lzQ29ubmVjdGVkKGZhbHNlKQotICAgICwgbV9jb25uZWN0aW9uUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5JUEMuUmVjZWl2ZVF1ZXVlIikpCisgICAg
LCBtX2Nvbm5lY3Rpb25RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuSVBDLlJl
Y2VpdmVRdWV1ZSIsICJJUENSZWNlaXZlUXVldWUiIH0pKQogICAgICwgbV9pblNlbmRTeW5jQ291
bnQoMCkKICAgICAsIG1faW5EaXNwYXRjaE1lc3NhZ2VDb3VudCgwKQogICAgICwgbV9pbkRpc3Bh
dGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgwKQpA
QCAtNzIwLDcgKzcyMCw3IEBAIHVpbnQ2NF90IENvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5
bmNNZXNzYWdlQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjCiAgICAgbV9uZXh0SW5j
b21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQrKzsKIAogICAgIGlmICghbV9pbmNvbWluZ1N5bmNN
ZXNzYWdlQ2FsbGJhY2tRdWV1ZSkKLSAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJh
Y2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LklQQy5JbmNvbWlu
Z1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSIpOworICAgICAgICBtX2luY29taW5nU3luY01lc3Nh
Z2VDYWxsYmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5J
UEMuSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiLCAiSVN5bmNNc2dDQlF1ZXVlIiB9
KTsKIAogICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrcy5hZGQobV9uZXh0SW5jb21p
bmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcAppbmRleCAxNzU3ODlmYjlhZTcxM2YxNmVlZWRiZmFiZTAwZDZmMzNl
NjNjZjIzLi5jNzU1ZWE4MTI0YzllMDY0NWY3NzMzN2U5M2E1NDFkOTJjZTE1YTcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMg
dm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rpb24qKQogICAg
IC8vIHRoZSBwcm9jZXNzIHdpbGwgZXhpdCBmb3JjaWJseS4KICAgICBhdXRvIHdhdGNoZG9nRGVs
YXkgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcygxMCk7CiAKLSAgICBXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dRdWV1ZSIpLT5kaXNwYXRjaEFm
dGVyKHdhdGNoZG9nRGVsYXksIFtdIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBw
bGUuV2ViS2l0LkNoaWxkUHJvY2Vzcy5XYXRjaERvZ1F1ZXVlIiwgIkNoaWxkV2RvZ1F1ZXVlIiB9
KS0+ZGlzcGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CiAgICAgICAgIC8vIFdlIHVzZSBf
ZXhpdCBoZXJlIHNpbmNlIHRoZSB3YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxsZWQgZnJvbSBhbm90
aGVyIHRocmVhZCBhbmQgd2UgZG9uJ3Qgd2FudAogICAgICAgICAvLyBnbG9iYWwgZGVzdHJ1Y3Rv
cnMgb3IgYXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxlZCBmcm9tIHRoaXMgdGhyZWFkIHdoaWxl
IHRoZSBtYWluIHRocmVhZCBpcyBidXN5CiAgICAgICAgIC8vIGRvaW5nIGl0cyB0aGluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKaW5kZXggNDBkYzRmNDQ1NmMyOGZjOTM3ZDlhMTY2YWEyMjE5Y2Y3ZThlYzUzMC4u
M2FkMjM4YjhlMDEyOTNjNWVkZDFhNTkyNzg4Y2I1MGM1OGViYjRjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAK
QEAgLTkyLDcgKzkyLDcgQEAgY2xhc3MgV29ya1F1ZXVlUG9vbCB7CiAgICAgICAgICAgICAgICAg
QVNTRVJUKG1fc2hhcmVkV29ya1F1ZXVlKTsKICAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gbV9zaGFyZWRXb3JrUXVldWU7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgib3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUiKTsKKyAgICAgICAg
ICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAi
b3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUiLCAiVGhyZWFkZWRDb21wIiB9
KTsKICAgICAgICAgICAgICAgICBpZiAoIW1fdGhyZWFkQ291bnQpCiAgICAgICAgICAgICAgICAg
ICAgIG1fc2hhcmVkV29ya1F1ZXVlID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAg
ICAgICAgICAgICBtX3RocmVhZENvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
SXRlbVNoaW0uY3BwCmluZGV4IDg1NDMzYmQ1OTg2YzEzNmE4YmVjYzk4MWJmZDcwZDg0ZWU0N2Q0
NmEuLmQzZWI4NDZkZGMzMmEyOTRjMzEyNDliNGM0MGVjOThiOTE3YTYyOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRp
YyBXb3JrUXVldWUmIHdvcmtRdWV1ZSgpCiAgICAgc3RhdGljIFdvcmtRdWV1ZSogd29ya1F1ZXVl
OwogICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwogICAgIGRpc3BhdGNoX29u
Y2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgd29ya1F1ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltIikubGVha1JlZigpOworICAgICAgICB3b3Jr
UXVldWUgPSAmV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hp
bSIsICJTZWNJdGVtU2hpbSIgfSkubGVha1JlZigpOwogCiAgICAgfSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUuY3BwCmluZGV4IDNhNzQwZmQ1MGE1ZjMzODQ1ODlkMDc2MjdkY2ZjMzBhMmM2OTlh
YWIuLjIzYmJkNGE4ODQ4NDczMjcxODFjMGQzZTE4ODgzMjllZWNhNDBhMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlLmNwcApAQCAtNjQsOSArNjQsOSBAQCBVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKCkKIAogVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQ
YXRoKQogICAgIDogbV9zdG9yZVBhdGgoc3RvcmVQYXRoKQotICAgICwgbV9jb21waWxlUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1
ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCi0gICAgLCBtX3JlYWRRdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZWFkIFF1ZXVlIikpCi0g
ICAgLCBtX3JlbW92ZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIFJlbW92ZSBRdWV1ZSIpKQorICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoeyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVlIiwgIlVDRXhT
dENvbXBRdWV1ZSIgfSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKKyAgICAsIG1fcmVh
ZFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVh
ZCBRdWV1ZSIsICJVQ0V4U3RSZFF1ZXVlIiB9KSkKKyAgICAsIG1fcmVtb3ZlUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoeyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZW1vdmUgUXVldWUiLCAi
VUNFeFN0Um1RdWV1ZSIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxZmUxMDI1NGQ3YzU2MGFjZmE2
OTA1MTZhNTMzOGRlNDRiMGZkM2NhLi4zZjUzMTMxMjlkZTY4NDUwYjEwMTdlMGMyMzljMWRjZTM5
Y2QyMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3Rv
cmFnZU1hbmFnZXIuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgUmVmPFN0b3JhZ2VNYW5hZ2VyPiBT
dG9yYWdlTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5
KQogfQogCiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1hbmFnZXIoY29uc3QgU3RyaW5nJiBsb2Nh
bFN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LlN0b3JhZ2VNYW5hZ2VyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZU1hbmFnZXIiLCAiU3RvcmFnZU1nciIg
fSkpCiAgICAgLCBtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcihMb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXI6OmNyZWF0ZShtX3F1ZXVlLmNvcHlSZWYoKSwgbG9jYWxTdG9yYWdlRGlyZWN0
b3J5KSkKIHsKICAgICAvLyBNYWtlIHN1cmUgdGhlIGVuY29kaW5nIGlzIGluaXRpYWxpemVkIGJl
Zm9yZSB3ZSBzdGFydCBkaXNwYXRjaGluZyB0aGluZ3MgdG8gdGhlIHF1ZXVlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAppbmRleCBjMmY4ZTZhNGJhNzM1MGE0NjNhNDU5ZGU0OGU1NmFhZGZiZDJhMjUw
Li43ZTkwNzY5NTUwOGNlYzI1MTU4YTQ2YmZkYWY5MmNmZjU5N2YyNDcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlPiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShjb25zdAogCiBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZShjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCiAgICAg
OiBtX3Jlc291cmNlU3RhdGlzdGljc1N0b3JlKFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
Y3JlYXRlKCkpCi0gICAgLCBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIpKQorICAgICwg
bV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIsICJXZWJSc1N0YXRRdWV1ZSIgfSkpCiAg
ICAgLCBtX3N0b3JhZ2VQYXRoKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggN2E4NDNiMWYwNDNiZjdkMGVjN2VjM2Y2YjNkMTc5MTAz
M2RmZWUxYy4uMTA0NjI2M2RmYTE0MDc4YjQxNTc2ZTk0ODZmYjU1OGM5OGZjNTMwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcApAQCAtODAsNyArODAsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRl
RGF0YVN0b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICAsIG1fY29uZmlndXJh
dGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQogICAgICwgbV9zdG9yYWdlTWFuYWdlcihTdG9y
YWdlTWFuYWdlcjo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VEaXJlY3Rvcnkp
KQogICAgICwgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5KSkKLSAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJL
aXQuV2Vic2l0ZURhdGFTdG9yZSIpKQorICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7
ICJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIiB9KSkK
IHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KQEAgLTg5LDcgKzg5LDcgQEAgV2Vic2l0
ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKCkKLSAgICAsIG1fcXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFTdG9yZSIpKQor
ICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LldlYnNp
dGVEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIiB9KSkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1v
cnlQcmVzc3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01l
bW9yeVByZXNzdXJlTW9uaXRvci5jcHAKaW5kZXggMDYwOGFiNzJmOTkyNDhlZjI0Y2QyZDUyNDVl
ZTUzMzNhMDBkOWQwZC4uZTIwOWRmZDFiYWI2ZWMyZWVjOTMyNDhmZTM0NjU2NzFkMDNkYTExYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJl
TW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVBy
ZXNzdXJlTW9uaXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBNZW1vcnlQcmVzc3VyZU1vbml0
b3I6Ok1lbW9yeVByZXNzdXJlTW9uaXRvcigpCiAgICAgaWYgKG1fZXZlbnRGRCA9PSAtMSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0g
Y3JlYXRlVGhyZWFkKCJNZW1vcnlQcmVzc3VyZU1vbml0b3IiLCBbdGhpc10geworICAgIFRocmVh
ZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh7ICJNZW1vcnlQcmVz
c3VyZU1vbml0b3IiLCAiTWVtUHJlc3NNb25pdG9yIiB9LCBbdGhpc10gewogICAgICAgICBkb3Vi
bGUgcG9sbEludGVydmFsID0gc19tYXhQb2xsaW5nSW50ZXJ2YWxJblNlY29uZHM7CiAgICAgICAg
IHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBzbGVlcChwb2xsSW50ZXJ2YWwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKaW5kZXgg
MjFlYTdiMDEyYjE4OThkMjEwMTJiMjI4NzI1YmVlMTA2ZmNhNmRiNC4uYzNmMDE1ZWY3ZDYyYWE0
ZDNhNjNlZWQ1YjQ1YjliMzkyYmI3ODU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFNlY0l0ZW1T
aGltUHJveHkmIFNlY0l0ZW1TaGltUHJveHk6OnNpbmdsZXRvbigpCiB9CiAKIFNlY0l0ZW1TaGlt
UHJveHk6OlNlY0l0ZW1TaGltUHJveHkoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0
ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbVByb3h5IikpCisgICAgOiBtX3F1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW1Qcm94eSIsICJT
ZWNJdGVtU2hpbVAiIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCmluZGV4IGNiYzRmMGUzZTg0MjliYWFkNWU4OGNhYWUzNmQ1ZmIzNTE5ZDg4NmIuLjY0
ODI3OWI4NTZhOWE4OTAzYjU5ZWI4NzIwZmNlNDViNWI2NGI2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFJlZjxQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXI+IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3Jl
YXRlKCkKIH0KIAogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIiKSkKKyAgICA6IG1f
cXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXIiLCAiUGx1Z2luQ29ubk1nciIgfSkpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAK
aW5kZXggMWYyMjI2NThjOTA2YjczZjc1NTQxYWNhMzcyZThlZjUwOTk4ZDE3YS4uMTc4NTg3NzU1
MzMzYzUyNmE2ZmFkNDhhZTY3ZGY3OWRmMDk1ZWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTUzLDcgKzUz
LDcgQEAgUmVmPEV2ZW50RGlzcGF0Y2hlcj4gRXZlbnREaXNwYXRjaGVyOjpjcmVhdGUoKQogfQog
CiBFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hlcigpCi0gICAgOiBtX3F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkV2ZW50RGlzcGF0Y2hlciIsIFdvcmtRdWV1
ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkKKyAgICA6
IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5FdmVudERpc3Bh
dGNoZXIiLCAiRXZlbnREaXNwYXRjaCIgfSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtR
dWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogICAgICwgbV9yZWNlbnRXaGVlbEV2ZW50RGVs
dGFGaWx0ZXIoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpjcmVhdGUoKSkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3Bh
dGNoZXIuY3BwCmluZGV4IGM4ZTM2Mzg2MWYyMDU3YTA4NmEzZjc4ZDVkYjQ1YjIzYTBjNWI4NmEu
LjdhNWYxNGVkN2ZjMTAwNDNjMGUwNGZkYzNhMzE5MjNjZTBhYzYyNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRj
aGVyLmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdV
cGRhdGVEaXNwYXRjaGVyOjpjcmVhdGUoKQogfQogCiBWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmll
d1VwZGF0ZURpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlZpZXdVcGRhdGVEaXNwYXRjaGVyIiwg
IlZVcGRhdGVEaXNwYXRjaCIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3YTUwYmM3YmZjNTVlZDZjNTVmODFlODFhNzJjODkx
YjYzNjcxMWY3Li40MWFlYWUwNTRhYjM0YWVjN2E4ZTdkNDRiYmM4OTk4NmZiNjlmMzAxIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjkgQEAKKzIwMTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKHJ1bkphdmFTY3Jp
cHRUaHJlYWQpOgorICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhyZWFkcyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAodGVzdFRocmVh
ZElkZW50aWZpZXJNYXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRp
dGlvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5Mb2NrVGVzdCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpUb1VwcGVyQ29udmVydGVyOjpwcm9kdWNlUXVldWUpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6Y29uc3VtZVF1ZXVlKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVH
TGliLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHA6CisgICAgICAgIChX
ZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKToKKwogMjAxNy0wMS0wOSAgTWlsYW4g
Q3JoYSAgPG1jcmhhQHJlZGhhdC5jb20+CiAKICAgICAgICAgcHJlcGFyZS1DaGFuZ2VMb2c6IENv
cnJlY3QgaGVscCBzdHJpbmcgZm9yIC0tc3R5bGUgb3B0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCmluZGV4IGUyZjliYWRlNmNhN2MyNjk0ODVhNGNk
Y2JlNjA5OWMzNmJhMDIxOTguLjliNTYxOGE1OWMxNjM5NjYxODBjMzJmNzk4ZDJkZDNmM2M0Mjc0
ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwCkBA
IC0xMTEsNyArMTExLDcgQEAgdm9pZCBydW5KYXZhU2NyaXB0VGhyZWFkKHZvaWQqKQogICAgICAg
ICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsKICAgICAgICAgZGV0
YWNoVGhyZWFkKHRocmVhZCk7CiAgICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkucmVtb3ZlKHRo
cmVhZCk7Ci0gICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRkKGNyZWF0ZVRocmVhZCgmcnVu
SmF2YVNjcmlwdFRocmVhZCwgMCwgMCkpOworICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFk
ZChjcmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIHsgIiIsICIiIH0pKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBzdGFydEphdmFT
Y3JpcHRUaHJlYWRzKCkKICAgICBMb2NrSG9sZGVyIGxvY2tlcihqYXZhU2NyaXB0VGhyZWFkc011
dGV4KCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBqYXZhU2NyaXB0VGhyZWFkc0Nv
dW50OyArK2kpCi0gICAgICAgIGphdmFTY3JpcHRUaHJlYWRzKCkuYWRkKGNyZWF0ZVRocmVhZCgm
cnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgMCkpOworICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygp
LmFkZChjcmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIHsgIiIsICIiIH0pKTsK
IH0KIAogdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDcxODEzNzcwYjg3NzM0MzljYzYwZjM4NzJmODU1
YjQyZmYyYzM2ZjAuLjdhMGI1YjA2ZjZmMWU2M2VmNWY0NWUyNjFmODQyMmZjNzY0YjM5YTYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTExMDcsNyAr
MTEwNyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RUaHJlYWRJZGVudGlmaWVyTWFwKCkKIAogICAgIC8v
IE5vdyBjcmVhdGUgYW5vdGhlciB0aHJlYWQgdXNpbmcgV1RGLiBPbiBPU1gsIGl0IHdpbGwgaGF2
ZSB0aGUgc2FtZSBwdGhyZWFkIGhhbmRsZQogICAgIC8vIGJ1dCBzaG91bGQgZ2V0IGEgZGlmZmVy
ZW50IFRocmVhZElkZW50aWZpZXIuCi0gICAgY3JlYXRlVGhyZWFkKHJ1blRocmVhZCwgMCwgIkR1
bXBSZW5kZXJUcmVlOiB0ZXN0Iik7CisgICAgY3JlYXRlVGhyZWFkKHJ1blRocmVhZCwgMCwgeyAi
RHVtcFJlbmRlclRyZWU6IHRlc3QiLCAiRFJUVGVzdCIgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGFs
bG9jYXRlR2xvYmFsQ29udHJvbGxlcnMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NvbmRpdGlvbi5jcHAKaW5kZXggODQ4NTI3MzUxZjYwNjNmYzI2MzY4NzgwNTZkOWMyNGRiYWJl
ODNkYy4uYjg1MTRkN2NhZTE1MTVhN2U2YjQ2ZjI1NjA0YmQ5Y2Y1YjljYWExYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCkBAIC05Nyw3ICs5Nyw3IEBA
IHZvaWQgcnVuVGVzdCgKICAgICAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Db25zdW1lcnM7
IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3Jl
YXRlVGhyZWFkKAotICAgICAgICAgICAgIkNvbnN1bWVyIHRocmVhZCIsCisgICAgICAgICAgICB7
ICJDb25zdW1lciB0aHJlYWQiLCAiQ29uc3VtZXIiIH0sCiAgICAgICAgICAgICBbJl0gKCkgewog
ICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
cmVzdWx0OwpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZvciAodW5z
aWduZWQgaSA9IG51bVByb2R1Y2VyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVy
IHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJvZHVjZXIg
VGhyZWFkIiwKKyAgICAgICAgICAgIHsgIlByb2R1Y2VyIFRocmVhZCIsICJQcm9kdWNlciIgfSwK
ICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsraSkgewogICAgICAgICAgICAgICAgICAg
ICBib29sIHNob3VsZE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvTG9jay5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9M
b2NrLmNwcAppbmRleCA1NTc2MzAyZDY5MGRmY2EzNTk5MjkyOGIxYzg1M2M3NjIyZTQ1ZmI5Li41
NzYzYTA0YTM2NGE1MWExODI3ZTkwZjJlYTg5NGZmOTM0ZjU1MDI5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIHJ1bkxvY2tUZXN0
KHVuc2lnbmVkIG51bVRocmVhZEdyb3VwcywgdW5zaWduZWQgbnVtVGhyZWFkc1Blckdyb3VwLCB1
bnNpZ25lZAogCiAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJlYWRz
UGVyR3JvdXA7IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEdy
b3VwSW5kZXggKiBudW1UaHJlYWRzUGVyR3JvdXAgKyB0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJl
YWQoCi0gICAgICAgICAgICAgICAgIkxvY2sgdGVzdCB0aHJlYWQiLAorICAgICAgICAgICAgICAg
IHsgIkxvY2sgdGVzdCB0aHJlYWQiLCAiTG9ja1Rlc3RlciIgfSwKICAgICAgICAgICAgICAgICBb
dGhyZWFkR3JvdXBJbmRleCwgJmxvY2tzLCAmd29yZHMsIG51bUl0ZXJhdGlvbnMsIHdvcmtQZXJD
cml0aWNhbFNlY3Rpb25dICgpIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gbnVtSXRlcmF0aW9uczsgaS0tOykgewogICAgICAgICAgICAgICAgICAgICAgICAgbG9ja3Nb
dGhyZWFkR3JvdXBJbmRleF0ubG9jaygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9QYXJraW5nTG90LmNwcAppbmRleCBjNjdlMWUwODE1YTgzYWZhOTMzM2UyYWM5YTJiZDc4YjY3
YjE2NDViLi5kMDE2NTQxZTA3MGY4MTI4MjA1NGM5M2ZkNjFmYzkyYzdkNmFlMzAyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcApAQCAtNDksNyArNDks
NyBAQCBzdHJ1Y3QgU2luZ2xlTGF0Y2hUZXN0IHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
bnVtVGhyZWFkczsgaS0tOykgewogICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAg
ICAgICAgICAgY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICAgICAiUGFya2luZyBUZXN0
IFRocmVhZCIsCisgICAgICAgICAgICAgICAgICAgIHsgIlBhcmtpbmcgVGVzdCB0aHJlYWQiLCAi
UGFya2luZ1Rlc3RlciIgfSwKICAgICAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwgY3VycmVudFRocmVhZCgpKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1
ZXVlLmNwcAppbmRleCAzMTQzNmJjMjIzMDdmOWRkNzNmNjkxOGIyNGFkYjQwZTc4OWZiNWVjLi4x
YjhjYTRmYjA5ZDMxNjRiNWExOWFjYzZmOGYzOGI1NGQyMjk4MzNiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNw
cApAQCAtNjIsMTQgKzYyLDE0IEBAIGNsYXNzIFRvVXBwZXJDb252ZXJ0ZXIgewogICAgIFdvcmtR
dWV1ZSogcHJvZHVjZVF1ZXVlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9wcm9kdWNlUXVldWUp
Ci0gICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Vi
a2l0LlByb2R1Y2UiKTsKKyAgICAgICAgICAgIG1fcHJvZHVjZVF1ZXVlID0gV29ya1F1ZXVlOjpj
cmVhdGUoeyAib3JnLndlYmtpdC5Qcm9kdWNlIiwgIlByb2R1Y2VyIiB9KTsKICAgICAgICAgcmV0
dXJuIG1fcHJvZHVjZVF1ZXVlLmdldCgpOwogICAgIH0KIAogICAgIFdvcmtRdWV1ZSogY29uc3Vt
ZVF1ZXVlKCkKICAgICB7CiAgICAgICAgIGlmICghbV9jb25zdW1lUXVldWUpCi0gICAgICAgICAg
ICBtX2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkNvbnN1bWUi
KTsKKyAgICAgICAgICAgIG1fY29uc3VtZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAib3Jn
LndlYmtpdC5Db25zdW1lIiwgIkNvbnN1bWVyIiB9KTsKICAgICAgICAgcmV0dXJuIG1fY29uc3Vt
ZVF1ZXVlLmdldCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV29ya1F1ZXVlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dv
cmtRdWV1ZS5jcHAKaW5kZXggN2UyNzdlOTRjNDdjZTNjZTJmYjgyNTJmNmNkYzNhNTVhZjM3YmU3
OS4uYThlYmExOTBlY2FmZDUxNDRjMTc1ODFlZjMxMjExY2UwZWIwNDRhZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFRF
U1QoV1RGX1dvcmtRdWV1ZSwgU2ltcGxlKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsb25nVGVz
dExhYmVsID0gImxvbmdUZXN0IjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogdGhpcmRUZXN0TGFi
ZWwgPSAidGhpcmRUZXN0IjsKIAotICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVl
dWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3Quc2ltcGxlIiwgIlNpbXBsZVRlc3Qi
IH0pOwogICAgIGludCBpbml0aWFsUmVmQ291bnQgPSBxdWV1ZS0+cmVmQ291bnQoKTsKICAgICBF
WFBFQ1RfRVEoMSwgaW5pdGlhbFJlZkNvdW50KTsKIApAQCAtMTA2LDggKzEwNiw4IEBAIFRFU1Qo
V1RGX1dvcmtRdWV1ZSwgVHdvUXVldWVzKQogICAgIGJvb2wgY2FsbGVkTG9uZ1Rlc3QgPSBmYWxz
ZTsKICAgICBib29sIGNhbGxlZFRoaXJkVGVzdCA9IGZhbHNlOwogICAgIAotICAgIGF1dG8gcXVl
dWUxID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMx
Iik7Ci0gICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktp
dC5UZXN0LnR3b1F1ZXVlczIiKTsKKyAgICBhdXRvIHF1ZXVlMSA9IFdvcmtRdWV1ZTo6Y3JlYXRl
KHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMxIiwgIlR3b1F1ZXVlczFUZXN0IiB9
KTsKKyAgICBhdXRvIHF1ZXVlMiA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJL
aXQuVGVzdC50d29RdWV1ZXMyIiwgIlR3b1F1ZXVlczJUZXN0IiB9KTsKIAogICAgIEVYUEVDVF9F
USgxLCBxdWV1ZTEtPnJlZkNvdW50KCkpOwogICAgIEVYUEVDVF9FUSgxLCBxdWV1ZTItPnJlZkNv
dW50KCkpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGlzcGF0Y2hB
ZnRlcikKICAgICBib29sIGNhbGxlZFNpbXBsZVRlc3QgPSBmYWxzZTsKICAgICBib29sIGNhbGxl
ZERpc3BhdGNoQWZ0ZXJUZXN0ID0gZmFsc2U7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVyIik7CisgICAgYXV0
byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kaXNw
YXRjaEFmdGVyIiwgIkRpc3BhdGNoQWZ0ZXIiIH0pOwogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9sb2NrKTsKIApAQCAtMjExLDcgKzIxMSw3IEBAIFRFU1QoV1RGX1dvcmtRdWV1ZSwgRGVzdHJv
eU9uU2VsZikKICAgICB7CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAg
ICB7Ci0gICAgICAgICAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBs
ZS5XZWJLaXQuVGVzdC5kaXNwYXRjaEFmdGVyIik7CisgICAgICAgICAgICBhdXRvIHF1ZXVlID0g
V29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LmRlc3Ryb3lPblNlbGYi
LCAiRGVzdHJveU9uU2VsZiIgfSk7CiAgICAgICAgICAgICBxdWV1ZS0+ZGlzcGF0Y2hBZnRlcihz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCksIFsmXSh2b2lkKSB7CiAgICAgICAgICAgICAg
ICAgTG9ja0hvbGRlciBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hBZnRl
clRlc3RTdGFydGVkLndhaXQobG9jaywgWyZdIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCmluZGV4IDk5MjNkNjU4MDBlZDcx
NGJhNjgwNmIxM2Y3ZTUxZmVlNTgwMzVhZDAuLjRjYTRlOGRiZmQzZTc4ZWM2ZmY4Y2I5ZjU5NjQy
Mjg3YjVkNGVkOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2ds
aWIvV29ya1F1ZXVlR0xpYi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Z2xpYi9Xb3JrUXVldWVHTGliLmNwcApAQCAtNDQsNyArNDQsNyBAQCBURVNUKFdURl9Xb3JrUXVl
dWUsIEFzeW5jSU8pCiAgICAgICAgIEdNYWluQ29udGV4dCogbV9tYWluQ29udGV4dDsKICAgICB9
IGNvbnRleHQ7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBs
ZS5XZWJLaXQuVGVzdC5Bc3luY0lPIik7CisgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5Bc3luY0lPIiwgIkFzeW5jSU9UZXN0IiB9KTsK
ICAgICBjb250ZXh0Lm1fbWFpbkNvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CiAg
ICAgRVhQRUNUX0ZBTFNFKGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0
U2VydmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVz
dFNlcnZlci5jcHAKaW5kZXggZGU5NDY2YzM5ZDcxY2ZjMmFiZjQ0OWZjZmRlMzg5YjU0NDlkZjMy
Ny4uZGJjNTM1YjEyMTRiZGE5OGRmYzA4MzMzYjJmMTdiYjA5MmQxNjU5NyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIu
Y3BwCkBAIC0yOCw3ICsyOCw3IEBAIFdlYktpdFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2ZXIo
U2VydmVyT3B0aW9ucyBvcHRpb25zKQogewogICAgIGlmIChvcHRpb25zICYgU2VydmVyUnVuSW5U
aHJlYWQpIHsKICAgICAgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7Ci0gICAgICAgIG1f
cXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiV2ViS2l0VGVzdFNlcnZlciIpOworICAgICAgICBt
X3F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAiV2ViS2l0VGVzdFNlcnZlciIsICJUZXN0U2Vy
dmVyIiB9KTsKICAgICB9CiAKICAgICBHVW5pcXVlUHRyPGNoYXI+IHNzbENlcnRpZmljYXRlRmls
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298378</attachid>
            <date>2017-01-09 12:32:21 -0800</date>
            <delta_ts>2017-01-11 07:33:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170110053045.patch</filename>
            <type>text/plain</type>
            <size>103627</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZjExNDUxMzhkYTdlNWE0ZjE4ZjQxZDhmOWY3YmY1OWFjOWVhMzVjLi43OWVlYjM5ZTY1OTM4YzNh
NzgwYTVkN2Y3YTRjOTFmNWViMzRmMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNy0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCiAyMDE3LTAxLTA4
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmplY3QgTWFy
a2VkU3BhY2Ugc2l6ZSBjbGFzc2VzIGZvciBhIGZldyBtb3JlIGhpZ2gtdm9sdW1lIG9iamVjdHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDAyNjU2Y2RlOGNjNDZmMTBjMDM4MmQzMTEyNWFiNTU2Nzc5MDFkY2YuLjkwZTRiMDc1
NDQ2OTJjNTY1ZDY2YjA5ODdlMWQ2ZTg3YWNiMGQzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRy
b2R1Y2VzIFRocmVhZE5hbWUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWluZworICAgICAgICBw
b2xpY3kgZm9yIHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIFRocmVhZE5hbWUgdGFrZXMg
MiBuYW1lcywgc2hvcnQgYW5kIGxvbmcgbmFtZXMuIFRoZSBsb25nIG5hbWUKKyAgICAgICAgaXMg
dXNlZCBmb3IgbWFjT1MgYW5kIGlPUyBzaW5jZSB0aGV5IGRvIG5vdCBoYXZlIHRoZSBsaW1pdGF0
aW9uLiBPbiB0aGUKKyAgICAgICAgb3RoZXIgaGFuZCwgTGludXggb25seSBhbGxvd3MgMTUgY2hh
cmFjdGVycyBmb3IgdGhyZWFkIG5hbWVzLiBTbyBmb3IKKyAgICAgICAgTGludXgsIHdlIHVzZSB0
aGUgc2hvcnQgbmFtZS4gV2luZG93cyBhbHNvIGhhcyAzMSBjaGFyYWN0ZXJzIGxpbWl0YXRpb24u
CisgICAgICAgIFdpbmRvd3MgYWxzbyB1c2VzIHRoZSBzaG9ydCBuYW1lLgorCisgICAgICAgIFdo
ZW4geW91IHNwZWNpZnkgdGhlIG5hbWUgbGlrZSwKKworICAgICAgICAgICAgeyAiQXN5bmNocm9u
b3VzIERpc2Fzc2VtYmxlciIsICJBc3luY0Rpc2FzbSIgfSwKKworICAgICAgICBUaGUgdGhyZWFk
IG5hbWUgYmVjb21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAg
ICAgICAgIFdpbmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1Mg
YW5kIGlPUzogIldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBU
aHJlYWROYW1lIGNoZWNrcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydCBuYW1lIGlzIDw9IDE1IGF0
IGNvbXBpbGUKKyAgICAgICAgdGltZS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCwgY29t
cGlsZSBlcnJvciBvY2N1cnMuCisKKyAgICAgICAgVGhlICJXZWJLaXQ6ICIgcHJlZml4IGlzIGF1
dG9tYXRpY2FsbHkgYWRkZWQgYnkgVGhyZWFkTmFtZS4KKyAgICAgICAgVGhpcyBwcmVmaXggaXMg
aW1wb3J0YW50IHNpbmNlIGl0IGNhbiBzYXkgdGhhdCB0aGlzIHRocmVhZCBpcyByZWxhdGVkIHRv
IFdlYktpdC4KKyAgICAgICAgV2hlbiB1c2luZyBXZWJLaXQgYXMgZnJhbWV3b3JrLCBXZWJLaXQg
cmVsYXRlZCB0aHJlYWRzIHdpbGwgYmUgbGF1bmNoZWQgYWxvbmcKKyAgICAgICAgd2l0aCB1c2Vy
IGFwcGxpY2F0aW9uJ3MgdGhyZWFkcy4gV2l0aG91dCAiV2ViS2l0OiAiIHByZWZpeCwgaXQgaXMg
YSBiaXQgZGlmZmljdWx0CisgICAgICAgIHRvIGRpc3Rpbmd1aXNoIHVzZXIncyB0aHJlYWRzIGZy
b20gV2ViS2l0IHJlbGF0ZWQgb25lcy4KKworICAgICAgICBXZSBhcHBseSB0aGlzIHBvbGljeSB0
byBhbGwgdGhlIFdlYktpdCB0aHJlYWQgbmFtZXMgZXhjZXB0IGZvciBibWFsbG9jJ3Mgb25lLgor
ICAgICAgICBUaGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBbMV0uCisKKyAgICAgICAgWzFdOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njg0CisKKyAgICAgICAgKiBX
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0NvbmRp
dGlvblNwZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0
LmNwcDoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAq
IHd0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6
OkF1dG9tYXRpY1RocmVhZCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQp
OgorICAgICAgICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvUGFyYWxs
ZWxIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpQYXJh
bGxlbEhlbHBlclBvb2wpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVh
ZDo6VGhyZWFkKToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAg
IChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6bmFtZSk6CisgICAgICAgICogd3RmL1BhcmFsbGVs
Sm9ic0dlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpUaHJl
YWRQcml2YXRlOjp0cnlMb2NrRm9yKToKKyAgICAgICAgKiB3dGYvVGhyZWFkTmFtZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdURjo6VGhyZWFkTmFtZTo6VGhyZWFkTmFtZSk6CisgICAgICAgIChXVEY6
OlRocmVhZE5hbWU6Om5hbWUpOgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpzdHJpbmdMZW5n
dGgpOgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpwcmVmaXhlZE5hbWUpOgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAg
ICAoV1RGOjpub3JtYWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhy
ZWFkaW5nLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAg
KFdURjo6Y3JlYXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3Vy
cmVudFRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAg
ICAgICAgKFdURjo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChX
VEY6OmNyZWF0ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoK
KyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVl
dWU6OldvcmtRdWV1ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5
KToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtR
dWV1ZUNvY29hLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxp
emUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChE
aXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1
ZXVlOjpjcmVhdGUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAg
ICAgICAqIHd0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVl
OjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdl
bmVyaWMuY3BwOgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0
ZXJhbDo6QVNDSUlMaXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRv
ciBjb25zdCBjaGFyKik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAg
IChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAg
ICogd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1h
aW5UaHJlYWRQbGF0Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgor
ICAgICAgICAoV1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEt
MDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28u
dWs+CiAKICAgICAgICAgW0dUS10gU2hvdWxkIHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRp
ZXMgb24ga2V5Ym9hcmQgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkyNDhiMzg0ODA1Y2U3MDgyOGM3
ZmRiMGQ5NzJmMWM5Mjc0MTFiNC4uMWMwNTZkNmVhYjAzOGIzNTUwYzYwOTU3MjIzMWM0MWU1OWRj
NGQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRv
IHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6SURCU2VydmVy
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2Rlcik6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJl
bmRlcmluZyk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRy
b2xsZXI6OmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcpOgorICAg
ICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxl
Q3J5cHRvOjpTdWJ0bGVDcnlwdG8pOgorICAgICAgICAqIGZpbGVhcGkvQXN5bmNGaWxlU3RyZWFt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbGxPbkZpbGVUaHJlYWQpOgorICAgICAgICAqIGxv
YWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJh
c2U6Om9wZW4pOgorICAgICAgICAqIHBhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
dmVyYkNvbnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVz
RnJvbUluTWVtb3J5QXVkaW9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUZyYW1lQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpkZWNv
ZGluZ1F1ZXVlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5n
Q2xpZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6CisgICAgICAgICogcGxhdGZv
cm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YmxvYlV0aWxpdHlRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9EYXRhVVJMRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6
ZGVjb2RlUXVldWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9v
cENGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRlclJ1bkxvb3ApOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhyZWFkKToKKyAgICAg
ICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgRXZhbHVhdGluZyB3aW5kb3cgbmFtZWQgZWxlbWVudCBtYXkgcmV0
dXJuIHdyb25nIHJlc3VsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWZkODVjYWFmZTRlZDhlZTQ4YTUxYmQxNzVj
NmI0NmQ1YzZlZjFmLi5lNzAyZmEzMDM4YjZhZTYyMzU0YTg3NWE4MDRkODgxZDEyODA1OGY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkg
bG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wNSAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQ29tcGlsZSBlcnJvci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBhODFjYzEwYTU3NGJkZjQ0ZGY2YTIwNWM2MzM0ODY4ODZkZDE2MmVjLi42MjA2
YzlhYzI4YWVjMjljMjkxMDdiNjk5ODdmYTExOTQ0ZjdkYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTIgQEAKKzIwMTctMDEtMDkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CisKKyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBu
YW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2
Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
YXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0
YWJhc2VQcm9jZXNzOjpEYXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6
Q2FjaGU6OmRlbGV0ZUR1bXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpJT0NoYW5uZWw6OnJlYWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN0YXRpc3RpY3M6OlN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OlN0b3JhZ2U6OlN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6Om1fYmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6Om1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6Cisg
ICAgICAgIChJUEM6OkNvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJh
Y2spOgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldvcmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9y
Q29udGV4dCk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OndvcmtRdWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSk6CisgICAgICAgIChBUEk6Om1fcmVh
ZFF1ZXVlKToKKyAgICAgICAgKEFQSTo6bV9yZW1vdmVRdWV1ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
TWFuYWdlcjo6U3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TWVtb3J5UHJlc3N1cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNlY0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNw
YXRjaGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0
ZURpc3BhdGNoZXIpOgorCiAyMDE3LTAxLTA2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIFNob3VsZCBzdXBw
b3J0IGtleSBhbmQgY29kZSBwcm9wZXJ0aWVzIG9uIGtleWJvYXJkIGV2ZW50cwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3Bw
CmluZGV4IGU3ODA4NmMzYTk2MTJhMmYwYjRkN2FhZjFhZGM3YmExYTEwMWM1NDcuLjE0YzNlNGRk
ZDU2MDk4MzU0YjJkNmM5MmM3NjU0ZDJkZjVjYTAyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCB2b2lkIHRlc3RDb21wYXJlQW5kU3dhcCgpCiAgICAgICAgIGRhdGFbaV0uaWQg
PSBpOwogICAgICAgICBkYXRhW2ldLm51bVRocmVhZHMgPSBudW1UaHJlYWRzOwogICAgICAgICBz
dGQ6OmZ1bmN0aW9uPHZvaWQoKT4gdGhyZWFkRnVuYyA9IHN0ZDo6YmluZChzZXRCaXRUaHJlYWRG
dW5jLCAmZGF0YVtpXSk7Ci0gICAgICAgIHRocmVhZElEc1tpXSA9IGNyZWF0ZVRocmVhZCgic2V0
Qml0VGhyZWFkRnVuYyIsIHRocmVhZEZ1bmMpOworICAgICAgICB0aHJlYWRJRHNbaV0gPSBjcmVh
dGVUaHJlYWQoeyAic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRUaHJlYWRGdW5jIiB9LCB0aHJl
YWRGdW5jKTsKICAgICB9CiAKICAgICBwcmludGYoIldhaXRpbmcgZm9yICVkIHRocmVhZHMgdG8g
am9pblxuIiwgbnVtVGhyZWFkcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL3Rlc3RhaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWly
LmNwcAppbmRleCA5ZjhhOGQ4M2U1ZmQzMzFlNDQ5ZWY5MWYzZGE3ODRkNDU3NmNmNDRmLi40M2Q3
OThkNWNjN2MyMjI4NTkxZmYyMDJhYTY1ODgxNGQyZDhhMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKQEAgLTE5MTMsNyArMTkxMyw3IEBAIHZvaWQgcnVuKGNv
bnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RG
OjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBl
bmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0
aHJlYWQiLAorICAgICAgICAgICAgICAgIHsgInRlc3RiMyB0aHJlYWQiLCAiVGVzdEIzVGhyZWFk
IiB9LAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAo
OzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+
IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGZjMzNjNmZjZmFkZjg5
MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1ZTEuLmE4MGJjN2UyYWRjZTBlMGZkMTA3NDc2N2NmZTFj
MTcxZjQ2ZTQxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0xNTY2MSw3
ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGktLTsp
IHsKICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0g
ICAgICAgICAgICAgICAgInRlc3RiMyB0aHJlYWQiLAorICAgICAgICAgICAgICAgIHsgInRlc3Ri
MyB0aHJlYWQiLCAiVGVzdEIzVGhyZWFkIiB9LAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJl
ZlB0cjxTaGFyZWRUYXNrPHZvaWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwCmluZGV4IGE0ZTIxZjlmYTNjZDQ3MjFlYTI2NzVl
MDZlNGQ1MzBjNWJhOTViMzUuLmNiMmQ2OGMyYWVkZjBlNWIyYjM1NGMxOTY1NzE3YjViMmUzNWY5
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBs
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIu
Y3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgaW5pdGlhbGl6ZVN1cGVyU2FtcGxlcigpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIkpTQyBTdXBlciBTYW1w
bGVyIiwKKyAgICAgICAgeyAiSlNDIFN1cGVyIFNhbXBsZXIiLCAiU3VwZXJTYW1wbGVyIiB9LAog
ICAgICAgICBbXSAoKSB7CiAgICAgICAgICAgICBjb25zdCBpbnQgc2xlZXBRdWFudHVtID0gMTA7
CiAgICAgICAgICAgICBjb25zdCBpbnQgcHJpbnRpbmdQZXJpb2QgPSAxMDAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCA1ZTMzOGYwMTJiODk5NGQ5ODY1
NDQ2ZTg3ODE0Nzg0ZDhlODU1MDdiLi40OGUzYzQxNzRkZWJmMWEwZTI1YzJmYTI4YzgwYzZjOWQ4
YmI4ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcApAQCAt
NDAsOCArNDAsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIGNsYXNzIFdv
cmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6Ci0g
ICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlz
dCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0aXZlUHJpb3JpdHkpCi0gICAgICAgIDog
QXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgY29uZGl0aW9uKQorICAgIFRocmVhZEJvZHko
Y29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3QsIFRocmVhZERhdGEm
IGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBj
b25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5LCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCisg
ICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgY29uZGl0aW9uLCB0aHJlYWRO
YW1lKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRh
dGEpCiAgICAgICAgICwgbV9yZWxhdGl2ZVByaW9yaXR5KHJlbGF0aXZlUHJpb3JpdHkpCkBAIC0x
NzMsOCArMTczLDggQEAgY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21h
dGljVGhyZWFkIHsKICAgICBSZWZQdHI8UGxhbj4gbV9wbGFuOwogfTsKIAotV29ya2xpc3Q6Oldv
cmtsaXN0KENTdHJpbmcgd29ya2xpc3ROYW1lKQotICAgIDogbV90aHJlYWROYW1lKHRvQ1N0cmlu
Zyh3b3JrbGlzdE5hbWUsICIgV29ya2VyIFRocmVhZCIpKQorV29ya2xpc3Q6OldvcmtsaXN0KFRo
cmVhZE5hbWUgdGhyZWFkTmFtZSkKKyAgICA6IG1fdGhyZWFkTmFtZSh0aHJlYWROYW1lKQogICAg
ICwgbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAgICwgbV9udW1iZXJPZkFjdGl2ZVRo
cmVhZHMoMCkKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgV29ya2xpc3Q6OmZpbmlzaENyZWF0
aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiAgICAg
TG9ja0hvbGRlciBsb2NrZXIoKm1fbG9jayk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtYmVy
T2ZUaHJlYWRzOyBpLS07KSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWREYXRhPiBk
YXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKLSAgICAgICAgZGF0YS0+
bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0aGlzLCAqZGF0YSwg
bV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOworICAgICAgICBkYXRh
LT5tX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tlciwgKnRoaXMsICpkYXRh
LCBtX2xvY2ssIG1fcGxhbkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5LCBtX3RocmVhZE5hbWUp
KTsKICAgICAgICAgbV90aHJlYWRzLmFwcGVuZChXVEZNb3ZlKGRhdGEpKTsKICAgICB9CiB9CiAK
LVJlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFtZSwgdW5z
aWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKK1JlZjxXb3JrbGlz
dD4gV29ya2xpc3Q6OmNyZWF0ZShUaHJlYWROYW1lIHRocmVhZE5hbWUsIHVuc2lnbmVkIG51bWJl
ck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiB7Ci0gICAgUmVmPFdvcmtsaXN0PiBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0KHdvcmtsaXN0TmFtZSkpOworICAgIFJlZjxX
b3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh0aHJlYWROYW1lKSk7CiAg
ICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMsIHJlbGF0aXZlUHJpb3Jp
dHkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC01MTYsNyArNTE2LDcgQEAgV29ya2xpc3Qm
IGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
aW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2UoaW5p
dGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAgdGhlR2xvYmFsREZH
V29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSgiREZHIFdvcmtsaXN0IiwgT3B0aW9uczo6bnVt
YmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlEZWx0YU9mREZHQ29t
cGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICAgICAgdGhlR2xvYmFsREZHV29ya2xpc3Qg
PSAmV29ya2xpc3Q6OmNyZWF0ZSh7ICJERkcgV29ya2xpc3QiLCAiREZHV29ya2xpc3QiIH0sIE9w
dGlvbnM6Om51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVs
dGFPZkRGR0NvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0dXJu
ICp0aGVHbG9iYWxERkdXb3JrbGlzdDsKIH0KQEAgLTUzMiw3ICs1MzIsNyBAQCBXb3JrbGlzdCYg
ZW5zdXJlR2xvYmFsRlRMV29ya2xpc3QoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBp
bml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShpbml0
aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAgICAgICB0aGVHbG9iYWxGVExX
b3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJGVEwgV29ya2xpc3QiLCBPcHRpb25zOjpudW1i
ZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRhT2ZGVExDb21w
aWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVHbG9iYWxGVExXb3JrbGlzdCA9
ICZXb3JrbGlzdDo6Y3JlYXRlKHsgIkZUTFdvcmtsaXN0IiwgIkZUTFdvcmtsaXN0IiB9LCBPcHRp
b25zOjpudW1iZXJPZkZUTENvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlvcml0eURlbHRh
T2ZGVExDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOwogICAgIH0pOwogICAgIHJldHVybiAq
dGhlR2xvYmFsRlRMV29ya2xpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKaW5kZXggZDkwMWU3MmRhMGQ4N2YxZTI2ZmMzMjIxOWIwZmE0NGY2ZjExYzdmOC4uYzEw
NDcyN2Y5YmIwZjExOGMwOWI5ZWZiNzNiZDdkMzQ4NzVlMDBiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXb3JrbGlzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB+V29ya2xpc3QoKTsKICAgICAK
LSAgICBzdGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoQ1N0cmluZyB3b3JrbGlzdE5hbWUsIHVu
c2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkgPSAwKTsKKyAgICBz
dGF0aWMgUmVmPFdvcmtsaXN0PiBjcmVhdGUoVGhyZWFkTmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZU
aHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOwogICAgIAogICAgIHZvaWQgZW5xdWV1
ZShQYXNzUmVmUHRyPFBsYW4+KTsKICAgICAKQEAgLTgyLDcgKzgyLDcgQEAgY2xhc3MgV29ya2xp
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogICAgIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBXb3JrbGlzdChDU3RyaW5nIHdvcmts
aXN0TmFtZSk7CisgICAgV29ya2xpc3QoVGhyZWFkTmFtZSk7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbih1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCk7CiAgICAgCiAgICAgY2xhc3MgVGhy
ZWFkQm9keTsKQEAgLTk1LDcgKzk1LDcgQEAgY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxXb3JrbGlzdD4gewogCiAgICAgdm9pZCBkdW1wKGNvbnN0IExvY2tIb2xkZXImLCBQcmlu
dFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIENTdHJpbmcgbV90aHJlYWROYW1lOworICAgIFRo
cmVhZE5hbWUgbV90aHJlYWROYW1lOwogICAgIAogICAgIC8vIFVzZWQgdG8gaW5mb3JtIHRoZSB0
aHJlYWQgYWJvdXQgd2hhdCB3b3JrIHRoZXJlIGlzIGxlZnQgdG8gZG8uCiAgICAgRGVxdWU8UmVm
UHRyPFBsYW4+PiBtX3F1ZXVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rp
c2Fzc2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fz
c2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCmluZGV4IDc4OGE2YzM2MjM2OWM1OGRhZDI5YTYwYTM4
NzEwNDRlNDY0ZWQzMDUuLjFkNWM1ZmU2YzVkNDk1ODAyYTgwZDMwYjRlNjA1ZGJkMGYxZGIyZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1i
bGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2Vt
Ymxlci5jcHAKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgQXN5bmNocm9ub3VzRGlzYXNzZW1ibGVy
IHsKIHB1YmxpYzoKICAgICBBc3luY2hyb25vdXNEaXNhc3NlbWJsZXIoKQogICAgIHsKLSAgICAg
ICAgY3JlYXRlVGhyZWFkKCJBc3luY2hyb25vdXMgRGlzYXNzZW1ibGVyIiwgWyZdICgpIHsgcnVu
KCk7IH0pOworICAgICAgICBjcmVhdGVUaHJlYWQoeyAiQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxl
ciIsICJBc3luY0Rpc2FzbSIgfSwgWyZdICgpIHsgcnVuKCk7IH0pOwogICAgIH0KICAgICAKICAg
ICB2b2lkIGVucXVldWUoc3RkOjp1bmlxdWVfcHRyPERpc2Fzc2VtYmx5VGFzaz4gdGFzaykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggMjY1ODNjNGU5NDYwODBhZDZiN2FmY2Mx
OWQ2N2JiNTNlMGFkYWJkOC4uYjgyYThjYWE3YTRjYWNmMDlmZWIzODBmMTYwMTZlNzIwZWU3MmE1
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBj
bGFzcyBUaW1pbmdTY29wZSB7CiBjbGFzcyBIZWFwOjpUaHJlYWQgOiBwdWJsaWMgQXV0b21hdGlj
VGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBI
ZWFwJiBoZWFwKQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGhlYXAubV90aHJl
YWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVh
ZChsb2NrZXIsIGhlYXAubV90aHJlYWRMb2NrLCBoZWFwLm1fdGhyZWFkQ29uZGl0aW9uLCB7ICJI
ZWFwIENvbGxlY3RvciIsICJIZWFwQ29sbGVjdG9yIiB9KQogICAgICAgICAsIG1faGVhcChoZWFw
KQogICAgIHsKICAgICB9CkBAIC0yMTQ3LDcgKzIxNDcsNyBAQCB2b2lkIEhlYXA6Om5vdGlmeUlz
U2FmZVRvQ29sbGVjdCgpCiAgICAgCiAgICAgaWYgKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3Vz
bHkoKSkgewogICAgICAgICBtX2NvbGxlY3RDb250aW51b3VzbHlUaHJlYWQgPSBjcmVhdGVUaHJl
YWQoCi0gICAgICAgICAgICAiSlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLAorICAgICAgICAgICAg
eyAiSlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLCAiQ29udGludW91c0dDIiB9LAogICAgICAgICAg
ICAgW3RoaXNdICgpIHsKICAgICAgICAgICAgICAgICBNb25vdG9uaWNUaW1lIGluaXRpYWxUaW1l
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAgICAgICAgICAgU2Vjb25kcyBwZXJpb2Qg
PSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKE9wdGlvbnM6OmNvbGxlY3RDb250aW51b3VzbHlQ
ZXJpb2RNUygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBI
ZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29s
LmNwcAppbmRleCA3OTFhYTc1NmY5NWUxY2I1NjQwZmMzM2I0NTY3NzQ1MWVlMWEyNTM2Li45ZWVk
ZDAwM2NlMGNkNjc3YTc5YzExM2Y4ZjUwZmZmZWFhOGViNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFBhcmFs
bGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKQogICAgIHN0ZDo6Y2FsbF9vbmNlKAogICAg
ICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnLAogICAgICAgICBbXSB7Ci0gICAgICAg
ICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgICAgICAgICAg
aGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBlclBvb2woeyAiSGVhcCBIZWxwZXIiLCAiSGVh
cEhlbHBlciIgfSk7CiAgICAgICAgICAgICBoZWxwZXJQb29sLT5lbnN1cmVUaHJlYWRzKE9wdGlv
bnM6Om51bWJlck9mR0NNYXJrZXJzKCkgLSAxKTsKICAgICAgICAgfSk7CiAgICAgcmV0dXJuICpo
ZWxwZXJQb29sOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0cy5jcHAKaW5kZXggMjA4MGNk
OTM0NTgzM2QyZDIzMmI4YTljZDZmM2RiZmViZTA1Y2IyMy4uZWM0NTk3NDk4YjFjYzA5MmU4NTc0
ODg2ZGQ0MWQ3YTg0ZjMxYmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9JQ1N0YXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIEF0b21pYzxJQ1N0YXRzKj4gSUNTdGF0czo6c19pbnN0YW5jZTsK
IElDU3RhdHM6OklDU3RhdHMoKQogewogICAgIG1fdGhyZWFkID0gY3JlYXRlVGhyZWFkKAotICAg
ICAgICAiSlNDIElDU3RhdHMiLAorICAgICAgICB7ICJKU0MgSUNTdGF0cyIsICJJQ1N0YXRzIiB9
LAogICAgICAgICBbdGhpc10gKCkgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9s
b2NrKTsKICAgICAgICAgICAgIGZvciAoOzspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRXb3JrbGlzdC5jcHAKaW5kZXggMmMyMmRhMzg5OGJjMjg3OWJhZjc3ZDk2MTZhY2VkMDRjYTdm
NTFhNi4uMjgxOTM5MjIxNTRhNTMwMDNiOWYwNzI3NDgzNDJmZmZmOWViMmM2NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBj
bGFzcyBKSVRXb3JrbGlzdDo6UGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKSVRX
b3JrbGlzdDo6UGxhbj4gewogY2xhc3MgSklUV29ya2xpc3Q6OlRocmVhZCA6IHB1YmxpYyBBdXRv
bWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25zdCBMb2NrSG9sZGVyJiBsb2Nr
ZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9j
a2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0aW9uKQorICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRp
b24sIHsgIkJhc2VsaW5lIEpJVCBDb21waWxlciBXb3JrZXIiLCAiSklUQ29tcGlsZXIiIH0pCiAg
ICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAgICB7CiAgICAgICAgIG1fd29ya2xpc3Qu
bV9udW1BdmFpbGFibGVUaHJlYWRzKys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNhN2EzZjQ3
MjdkMDIwMmU3MmU1YThlZWZlMDMyODc2MjA4MjViMzMuLjNjMzBmMDBjMzY0ZThjY2UyY2YzNmNh
OTRlNzU2Y2M2MjUzZWUxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yNzE5LDcgKzI3MTks
NyBAQCBzdGF0aWMgdm9pZCBzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgICAg
ICBkYXRhTG9nKCJXQVJOSU5HOiB0aW1lb3V0IHN0cmluZyBpcyBtYWxmb3JtZWQsIGdvdCAiLCB0
aW1lb3V0U3RyaW5nLAogICAgICAgICAgICAgICAgICIgYnV0IGV4cGVjdGVkIGEgbnVtYmVyLiBO
b3QgdXNpbmcgYSB0aW1lb3V0LlxuIik7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY3Jl
YXRlVGhyZWFkKHRpbWVvdXRUaHJlYWRNYWluLCAwLCAianNjIFRpbWVvdXQgVGhyZWFkIik7Cisg
ICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4sIDAsIHsgImpzYyBUaW1l
b3V0IFRocmVhZCIsICJUaW1lb3V0VGhyZWFkIiB9KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggNzAz
NGRjNjk2YjllMTE0OTI4OGM3YmI5ZWRkZWZlMmFiMTZiMTdjYS4uODc5YTg4ZTcyODFjNTY4ZTQw
YmIzMTE0NzkxNDkzM2EyY2JlMDgwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIFNh
bXBsaW5nUHJvZmlsZXI6OmNyZWF0ZVRocmVhZElmTmVjZXNzYXJ5KGNvbnN0IExvY2tIb2xkZXIm
KQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8U2FtcGxpbmdQcm9maWxlcj4gcHJvZmls
ZXIgPSB0aGlzOwotICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgianNjLnNh
bXBsaW5nLXByb2ZpbGVyLnRocmVhZCIsIFtwcm9maWxlcl0geworICAgIG1fdGhyZWFkSWRlbnRp
ZmllciA9IGNyZWF0ZVRocmVhZCh7ICJqc2Muc2FtcGxpbmctcHJvZmlsZXIudGhyZWFkIiwgIlNh
bXBsaW5nIiB9LCBbcHJvZmlsZXJdIHsKICAgICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwog
ICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0
Y2hkb2cuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmlu
ZGV4IGY2MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0OGY2MGM5NTcyNTZjYjVjMjMuLjRkMzk4YTVhMDk4
ZDQ3OTY3YTFmOGQ0Zjg0NDkzMDU2NTliNGM2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9n
KCkKICAgICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwg
bV9jYWxsYmFja0RhdGEyKDApCi0gICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
ImpzYy53YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6VXRpbGl0eSkpCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAi
anNjLndhdGNoZG9nLnF1ZXVlIiwgIldhdGNoZG9nIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OlV0aWxpdHkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGxhbi5jcHAKaW5kZXggNTk4MGI1MWU4NzQyMjIzNzU1Y2UwYzNkZjJjMTZiMWRl
OWVjOGYxMi4uOTc3Nzk2N2QxYTUzMzIyZDQzMjE0ZmNkNTZiY2FkYzJmYjEzMzZlMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIHZv
aWQgUGxhbjo6cnVuKCkKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gdGhyZWFkczsKICAg
ICB0aHJlYWRzLnJlc2VydmVDYXBhY2l0eShudW1Xb3JrZXJUaHJlYWRzKTsKICAgICBmb3IgKHVp
bnQzMl90IGkgPSAwOyBpIDwgbnVtV29ya2VyVGhyZWFkczsgaSsrKQotICAgICAgICB0aHJlYWRz
LnVuY2hlY2tlZEFwcGVuZChjcmVhdGVUaHJlYWQoImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRo
cmVhZCIsIGRvV29yaykpOworICAgICAgICB0aHJlYWRzLnVuY2hlY2tlZEFwcGVuZChjcmVhdGVU
aHJlYWQoeyAianNjLndhc20tYjMtY29tcGlsYXRpb24udGhyZWFkIiwgIldhc21CM0NvbXBpbGVy
IiB9LCBkb1dvcmspKTsKIAogICAgIGRvV29yaygpOyAvLyBMZXQgdGhlIG1haW4gdGhyZWFkIGRv
IHNvbWUgd29yayB0b28uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDJhNzgwNDQ5M2M5NWY4OWNkYTZiZjMxYTM4MTU5MGYxY2ZjMGUwNGMuLmQxZDFjZTVj
Mjg3YjMwZTIxZmRhOTZmN2ExNWVlYTQyMTQxYWVjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY4LDYgKzM2OCw4IEBACiAJCUZFODkyNUIwMUQwMERB
RUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkU4OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggKi87
IH07CiAJCUZFREFDRDNEMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREFDRDNCMTYzMEY4M0Yw
MEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLzsgfTsKIAkJRkVEQUNEM0UxNjMwRjgzRjAwQzY5
NjM0IC8qIFN0YWNrU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFREFDRDNDMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggKi87IH07
CisJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAvKiBBU0NJSUxpdGVyYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTlCRDQ1RTA2MzRCMjRCMkFG
MzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLzsgfTsKKwkJODk2NkU0MTg2QjlGNEVDMUFDQzIyNUNB
IC8qIFRocmVhZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEYxRTJFNURFNkVENjQ0Q0E5MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi87IH07CiAv
KiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRl
bVByb3h5IHNlY3Rpb24gKi8KQEAgLTc0OCw2ICs3NTAsOCBAQAogCQlGRTg5MjVBRjFEMDBEQUVD
MDA0NjkwN0UgLyogSW5kZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5kZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0IxNjMwRjgz
RjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RhY2tTdGF0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
REFDRDNDMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0YWNrU3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNzFBOUJENDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBBU0NJSUxpdGVyYWwuaDsgcGF0aCA9IEFTQ0lJTGl0ZXJh
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMUUyRTVERTZFRDY0NENBOTE4OEVC
NTUgLyogVGhyZWFkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUaHJl
YWROYW1lLmg7IHBhdGggPSBUaHJlYWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZyYW1l
d29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTExMzIsNiArMTEzNiw3IEBACiAJCQkJRTRB
MEFEMzgxQTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5oICovLAogCQkJCUE4QTQ3MzdBMTUx
QTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmNwcCAqLywKIAkJCQlBOEE0NzM3QjE1MUE4
MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovLAorCQkJCUYxRTJFNURFNkVENjQ0Q0E5
MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHd0ZjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjIwLDYgKzEyMjUsNyBAQAogCQkJCTcwRUNBNjBD
MUIwMjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5oICovLAogCQkJCUE4QTQ3MzJE
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuY3BwICovLAogCQkJCUE4QTQ3MzJFMTUxQTgy
NUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuaCAqLywKKwkJCQk3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5
Q0MgLyogQVNDSUlMaXRlcmFsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRleHQ7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTU2OCw2ICsxNTc0LDggQEAKIAkJCQlBOEE0NzQ4NzE1
MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3
M0UwMjUxOURDQjdBQjAwNTgwRDVDIC8qIFhQQ1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQz
QTQ2OTkxRTIyOEI5MTAwMjc2QjA1IC8qIENvZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4QUQ4
OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRlcmFsLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4OTY2RTQxODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNw
cCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCmluZGV4IGNi
MWQxMDFlODU2NTI5ZThhYWVhNmFiZjYwZWMzOGVhMGI4ZGRlNzIuLmZkNWM5ZTg4MmNlOGUyZGYw
NmU0MDYwM2NhMjkxOWQ4YmRjOGZmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVuY2htYXJr
cy9Db25kaXRpb25TcGVlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25k
aXRpb25TcGVlZFRlc3QuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgcnVuVGVzdCgKICAgICAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Db25zdW1lcnM7IGktLTspIHsKICAgICAgICAgVGhy
ZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAg
ICAgIkNvbnN1bWVyIHRocmVhZCIsCisgICAgICAgICAgICB7ICJDb25zdW1lciB0aHJlYWQiLCAi
Q29uc3VtZXIiIH0sCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAo
OzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVzdWx0OwpAQCAtMTE5LDcgKzEx
OSw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZvciAodW5zaWduZWQgaSA9IG51bVByb2R1Y2Vy
czsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBj
cmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJvZHVjZXIgVGhyZWFkIiwKKyAgICAgICAgICAg
IHsgIlByb2R1Y2VyIFRocmVhZCIsICJQcm9kdWNlciIgfSwKICAgICAgICAgICAgIFsmXSAoKSB7
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVy
UHJvZHVjZXI7ICsraSkgewogICAgICAgICAgICAgICAgICAgICBib29sIG11c3ROb3RpZnkgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0
LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAppbmRleCBm
MDgzMjFjMGY2ODgzNjUzNWQ4M2NiNmJjNzUxMTg0OGJiNTJkOTRmLi40OTAzYzg3NTkwYTI4YjJi
NjVlYzFjMTk5OTc5N2QyYWMxZDQ5NzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFy
a3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKKysrIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tG
YWlybmVzc1Rlc3QuY3BwCkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBCZW5jaG1hcmsgewogICAg
ICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkczsgdGhyZWFkSW5kZXgt
LTspIHsKICAgICAgICAgICAgIGNvdW50c1t0aHJlYWRJbmRleF0gPSAwOwogICAgICAgICAgICAg
dGhyZWFkc1t0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgIkJl
bmNobWFyayBUaHJlYWQiLAorICAgICAgICAgICAgICAgIHsgIkJlbmNobWFyayB0aHJlYWQiLCAi
QmVuY2htYXJrUnVubmVyIiB9LAogICAgICAgICAgICAgICAgIFsmLCB0aHJlYWRJbmRleF0gKCkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoIW1pY3Jvc2Vjb25kc0luQ3JpdGljYWxTZWN0aW9u
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoa2VlcEdvaW5nKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja1NwZWVkVGVzdC5jcHAKaW5kZXggNTQ1ZDJlMGIwNDg4ZjMzODk0YTU5
Njg4ZmQ5MWIwZDNhMzg3Y2NhMi4uMjlmMDM4YjVjYThkYjY0MTgzODZmMDU5YjZjZjY5YTVjZDgw
YWFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcApAQCAtOTEsNyAr
OTEsNyBAQCBzdHJ1Y3QgQmVuY2htYXJrIHsKIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0
aHJlYWRJbmRleCA9IG51bVRocmVhZHNQZXJHcm91cDsgdGhyZWFkSW5kZXgtLTspIHsKICAgICAg
ICAgICAgICAgICB0aHJlYWRzW3RocmVhZEdyb3VwSW5kZXggKiBudW1UaHJlYWRzUGVyR3JvdXAg
KyB0aHJlYWRJbmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgICAgICJCZW5j
aG1hcmsgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgeyAiQmVuY2htYXJrIHRocmVhZCIs
ICJCZW5jaG1hcmtSdW5uZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFt0aHJlYWRHcm91cElu
ZGV4LCAmbG9ja3MsICZ3b3JkcywgJmtlZXBHb2luZywgJm51bUl0ZXJhdGlvbnNMb2NrLCAmbnVt
SXRlcmF0aW9uc10gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxvY2FsV29y
ZCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUgPSAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggNGQ4ZmI4NDg5Zjk5Y2I4ZjY3ZTdjYzJkMTNiZjQx
NTVlZTg3ZTVjNS4uYzY0YzYwODZkNTllOTlhZTUxN2E3ZDQxZmNkNjlmYWEwZDUyOTg5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC05OCw5ICs5OCwxMCBAQCBib29sIEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgTG9ja0hvbGRlciYsIEF1dG9tYXRp
Y1RocmVhZCogdGhyZQogICAgIHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0K
IAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9j
a2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29u
ZGl0aW9uKQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRl
ciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gY29uZGl0aW9uLCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2sobG9jaykK
ICAgICAsIG1fY29uZGl0aW9uKGNvbmRpdGlvbikKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1lKQog
ewogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6
IEFsbG9jYXRlZCBBdXRvbWF0aWNUaHJlYWQuXG4iKTsKQEAgLTE1Niw3ICsxNTcsNyBAQCB2b2lk
IEF1dG9tYXRpY1RocmVhZDo6c3RhcnQoY29uc3QgTG9ja0hvbGRlciYpCiAgICAgbV9oYXNVbmRl
cmx5aW5nVGhyZWFkID0gdHJ1ZTsKICAgICAKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9
IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgIldURjo6QXV0b21hdGljVGhyZWFkIiwKKyAgICAgICAg
bV9uYW1lLAogICAgICAgICBbPV0gKCkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgICAgICAgICAgZGF0YUxvZyhSYXdQb2ludGVyKHRoaXMpLCAiOiBSdW5uaW5nIGF1dG9tYXRp
YyB0aHJlYWQhXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVh
ZC5oIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKaW5kZXggNjkyNmY2MjM2NTNk
NGM1OTIxMzcwY2M0ZDljZWM4ZDA2YzMzZWRhOC4uNzE5ZmNiZGRkNzBjYmNjZDRkZTlmYWI5NDVk
N2IzYTgwMTllOWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFk
LmgKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKQEAgLTEzMCw3ICsxMzAs
NyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhyZWFkIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9n
aWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwgYnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24n
dCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUKICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRD
b25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5vdGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiwgQm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPik7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9j
az4sIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+LCBUaHJlYWROYW1lKTsKICAgICAK
ICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdpbmUg
dGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBzbzoK
QEAgLTE4Miw2ICsxODIsNyBAQCBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhy
ZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogICAgIGJvb2wgbV9o
YXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKICAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0
aW9uOwogICAgIENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlvbjsKKyAgICBUaHJlYWROYW1l
IG1fbmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5jcHAKaW5kZXggOTQ5MmZkZGRmMTk2NDlkNjViNTEwYjFlNDNjMDJhYTk1MTRjMDcz
MS4uMmMzYmYwNzQwODhlMjlhOTkxOGYyOWZhZmY5NGNkMGM1YjYyZDEzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjMsOSArMTIzLDEwIEBAIHZvaWQgUGFyYWxs
ZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IHRhc2sp
CiAgICAgfQogfQogCi1QYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbCgpCitQ
YXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVyUG9vbChUaHJlYWROYW1lIHRocmVhZE5h
bWUpCiAgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fd29ya0F2YWls
YWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQorICAgICwg
bV9uYW1lKHRocmVhZE5hbWUpCiB7CiB9CiAKQEAgLTE3MSw3ICsxNzIsNyBAQCB2b2lkIFBhcmFs
bGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6
OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChj
b25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFBhcmFsbGVsSGVscGVyUG9vbCYgcG9vbCkKLSAgICAg
ICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtBdmFp
bGFibGVDb25kaXRpb24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgcG9vbC5t
X2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uLCBwb29sLm5hbWUoKSkKICAgICAg
ICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBv
b2wuaAppbmRleCA4MTYzNWJiNzgxOTAwM2FjOWQ3ZjRhNjgxY2M1NTQ0ZTkwZGE3ZDkxLi5lZGMx
YWVlMWEyNGFkN2I4MDQ2NTIyMTU1YWY2NGJhMDRkYmNiYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxl
bEhlbHBlclBvb2wuaApAQCAtMTc5LDcgKzE3OSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyQ2xp
ZW50IHsKIAogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogcHVibGljOgotICAgIFdURl9FWFBPUlRfUFJJ
VkFURSBQYXJhbGxlbEhlbHBlclBvb2woKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxs
ZWxIZWxwZXJQb29sKFRocmVhZE5hbWUpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxs
ZWxIZWxwZXJQb29sKCk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJl
YWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOwpAQCAtMTg4LDYgKzE4OCw4IEBAIGNsYXNzIFBhcmFs
bGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBl
clBvb2w+IHsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5n
KCk7CiAKKyAgICBUaHJlYWROYW1lIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKwog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CiAgICAgY2xh
c3MgVGhyZWFkOwpAQCAtMjA3LDYgKzIwOSw3IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICAK
ICAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVudHM7CiAgICAgVmVjdG9y
PFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+PiBtX3RocmVhZHM7CisgICAgVGhyZWFkTmFtZSBtX25h
bWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlzIGNhbiBiZSBsYXJn
ZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhyZWFkcyBvbmx5IG9u
Y2UgdGhlcmUgaXMgd29yay4KICAgICBib29sIG1faXNEeWluZyB7IGZhbHNlIH07CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCA0MDIzZjQzZTZmMjBhMzhlMTAz
ZTdjOWEyZTRmMGY3ZTA2MTA1NzE0Li5lZDRiM2Y2NWQyMWQyY2NhZTBmM2U0OGJjMzU5ZDkzNTVh
ZTE2ZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtOTQsNyAr
OTQsNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tG
b3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogICAgIH0KIAogICAgIGlmICghbV90aHJl
YWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgmUGFyYWxsZWxFbnZpcm9u
bWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCAiUGFyYWxsZWwgd29ya2Vy
Iik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoJlBhcmFsbGVsRW52aXJvbm1l
bnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCwgdGhpcywgeyAiUGFyYWxsZWwgd29ya2Vy
IiwgIlBhcmFsbGVsV29ya2VyIiB9KTsKIAogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICBt
X3BhcmVudCA9IHBhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUu
aCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZE5hbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTNhYmYxZmM5NzU4
MDE5ZTc4N2QwYTIxZWM5ZWFiYTUwYzAwNDdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkTmFtZS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFRocmVhZE5h
bWUgeworcHVibGljOgorICAgIHRlbXBsYXRlPHVuc2lnbmVkIGxvbmdOYW1lQ291bnQsIHVuc2ln
bmVkIHNob3J0TmFtZUNvdW50PgorICAgIGNvbnN0ZXhwciBUaHJlYWROYW1lKGNvbnN0IGNoYXIg
KCZsb25nTmFtZSlbbG9uZ05hbWVDb3VudF0sIGNvbnN0IGNoYXIgKCZzaG9ydE5hbWUpW3Nob3J0
TmFtZUNvdW50XSkKKyNpZiBPUyhMSU5VWCkgfHwgT1MoV0lORE9XUykKKyAgICAgICAgOiBtX25h
bWUoc2hvcnROYW1lKQorI2Vsc2UKKyAgICAgICAgOiBtX25hbWUobG9uZ05hbWUpCisjZW5kaWYK
KyAgICB7CisgICAgICAgIFVOVVNFRF9QQVJBTShsb25nTmFtZSk7CisgICAgICAgIFVOVVNFRF9Q
QVJBTShzaG9ydE5hbWUpOworI2lmIE9TKExJTlVYKQorICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
cmluZ0xlbmd0aChzaG9ydE5hbWUpIDw9ICgxNiAtIDEpLCAiIik7CisjZWxpZiBPUyhXSU5ET1dT
KQorICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0cmluZ0xlbmd0aCgiV2ViS2l0OiAiKSArIHN0cmlu
Z0xlbmd0aChzaG9ydE5hbWUpIDw9ICgzMiAtIDEpLCAiIik7CisjZW5kaWYKKyAgICB9CisKKyAg
ICBDU3RyaW5nIG5hbWUoKSBjb25zdAorICAgIHsKKyNpZiBPUyhMSU5VWCkKKyAgICAgICAgcmV0
dXJuIG1fbmFtZTsKKyNlbHNlCisgICAgICAgIHJldHVybiBwcmVmaXhlZE5hbWUobV9uYW1lKTsK
KyNlbmRpZgorICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzdHJpbmdD
b3VudD4KKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHN0cmluZ0xlbmd0aChjb25zdCBj
aGFyICgmKVtzdHJpbmdDb3VudF0pCisgICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQ291bnQg
LSAxOworICAgIH0KKworICAgIHN0YXRpYyBDU3RyaW5nIHByZWZpeGVkTmFtZShjb25zdCBjaGFy
KiBjb250ZW50KQorICAgIHsKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHByZWZpeExlbmd0
aCA9IHN0cmluZ0xlbmd0aCgiV2ViS2l0OiAiKTsKKyAgICAgICAgdW5zaWduZWQgY29udGVudExl
bmd0aCA9IHN0cmxlbihjb250ZW50KTsKKyAgICAgICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsK
KyAgICAgICAgQ1N0cmluZyBzdHJpbmcgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKHByZWZp
eExlbmd0aCArIGNvbnRlbnRMZW5ndGgsIGJ1ZmZlcik7CisgICAgICAgIG1lbWNweShidWZmZXIs
ICJXZWJLaXQ6ICIsIHByZWZpeExlbmd0aCk7CisgICAgICAgIGJ1ZmZlciArPSBwcmVmaXhMZW5n
dGg7CisgICAgICAgIG1lbWNweShidWZmZXIsIGNvbnRlbnQsIGNvbnRlbnRMZW5ndGgpOworICAg
ICAgICByZXR1cm4gc3RyaW5nOworICAgIH0KKworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKK307
CisKK30KKwordXNpbmcgV1RGOjpUaHJlYWROYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5kZXggNDBj
ZTM5YTQ1ZDM1NDBhMjNmZDU4NzhjZjkwNjdlYWZkNzY4MTMzYy4uMTNkZjUzMmMzOTRhMzEzMzM1
NGE1NDMwYjgwNDhjMDIyYWE4MzBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0zNiwzOCArMzYs
MTEgQEAgbmFtZXNwYWNlIFdURiB7CiBzdHJ1Y3QgTmV3VGhyZWFkQ29udGV4dCB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3QgY2hhciogbmFtZTsKKyAg
ICBUaHJlYWROYW1lIG5hbWU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQ7
CiAgICAgTXV0ZXggY3JlYXRpb25NdXRleDsKIH07CiAKLWNvbnN0IGNoYXIqIG5vcm1hbGl6ZVRo
cmVhZE5hbWUoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKLXsKLSNpZiBIQVZFKFBUSFJFQURfU0VU
TkFNRV9OUCkKLSAgICByZXR1cm4gdGhyZWFkTmFtZTsKLSNlbHNlCi0gICAgLy8gVGhpcyBuYW1l
IGNhbiBiZSBjb20uYXBwbGUuV2ViS2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20uYXBwbGUuQ29y
ZUlQQy5SZWNlaXZlUXVldWUuCi0gICAgLy8gV2UgYXJlIHVzaW5nIHRob3NlIG5hbWVzIGZvciB0
aGUgdGhyZWFkIG5hbWUsIGJ1dCBib3RoIGFyZSBsb25nZXIgdGhhbiB0aGUgbGltaXQgb2YKLSAg
ICAvLyB0aGUgcGxhdGZvcm0gdGhyZWFkIG5hbWUgbGVuZ3RoLCAzMiBmb3IgV2luZG93cyBhbmQg
MTYgZm9yIExpbnV4LgotICAgIFN0cmluZ1ZpZXcgcmVzdWx0KHRocmVhZE5hbWUpOwotICAgIHNp
emVfdCBzaXplID0gcmVzdWx0LnJldmVyc2VGaW5kKCcuJyk7Ci0gICAgaWYgKHNpemUgIT0gbm90
Rm91bmQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc2l6ZSArIDEpOwotCi0j
aWYgT1MoV0lORE9XUykKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtWaXN1YWxTdHVkaW9U
aHJlYWROYW1lTGltaXQgPSAzMiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtWaXN1
YWxTdHVkaW9UaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yaWdodChr
VmlzdWFsU3R1ZGlvVGhyZWFkTmFtZUxpbWl0KTsKLSNlbGlmIE9TKExJTlVYKQotICAgIGNvbnN0
ZXhwciBjb25zdCBzaXplX3Qga0xpbnV4VGhyZWFkTmFtZUxpbWl0ID0gMTYgLSAxOwotICAgIGlm
IChyZXN1bHQubGVuZ3RoKCkgPiBrTGludXhUaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3Vs
dCA9IHJlc3VsdC5yaWdodChrTGludXhUaHJlYWROYW1lTGltaXQpOwotI2VuZGlmCi0gICAgQVNT
RVJUKHJlc3VsdC5jaGFyYWN0ZXJzOCgpW3Jlc3VsdC5sZW5ndGgoKV0gPT0gJ1wwJyk7Ci0gICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC5jaGFyYWN0ZXJzOCgp
KTsKLSNlbmRpZgotfQotCiBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRl
eHREYXRhKQogewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxO
ZXdUaHJlYWRDb250ZXh0Kj4oY29udGV4dERhdGEpOwpAQCAtODgsNyArNjEsNyBAQCBzdGF0aWMg
dm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogICAgIGVudHJ5UG9pbnQo
KTsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFtZSwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0
ZVRocmVhZChUaHJlYWROYW1lIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50
KQogewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBuZXcgTmV3VGhyZWFkQ29udGV4
dCB7IG5hbWUsIFdURk1vdmUoZW50cnlQb2ludCksIHsgfSB9OwogCkBAIC05OCw3ICs3MSw3IEBA
IFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiBlbnRyeVBvaW50CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZEludGVybmFs
KHRocmVhZEVudHJ5UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi1UaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25z
dCBjaGFyKiBuYW1lKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rp
b24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSBuYW1lKQogewogICAgIHJldHVy
biBjcmVhdGVUaHJlYWQobmFtZSwgW2VudHJ5UG9pbnQsIGRhdGFdIHsKICAgICAgICAgZW50cnlQ
b2ludChkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKaW5kZXggMzA1MGRkOGRmODQ4YjZlNWEwOWM4ZTczYWFh
Y2Y1NDA3ZjhhNGI2NS4uZGMzYWVhYjc5MjcwYWJhMzUyZjY1OThjNjgwMGY4NTcxYThjY2Y5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKQEAgLTU1
LDcgKzU2LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygp
OwogCiAvLyBSZXR1cm5zIDAgaWYgdGhyZWFkIGNyZWF0aW9uIGZhaWxlZC4KIC8vIFRoZSB0aHJl
YWQgbmFtZSBtdXN0IGJlIGEgbGl0ZXJhbCBzaW5jZSBvbiBzb21lIHBsYXRmb3JtcyBpdCdzIHBh
c3NlZCBpbiB0byB0aGUgdGhyZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZp
ZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPik7CitXVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQo
VGhyZWFkTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogLy8gTWFyayB0aGUgY3VycmVu
dCB0aHJlYWQgYXMgcmVxdWlyaW5nIFVJIHJlc3BvbnNpdmVuZXNzLgogLy8gcmVsYXRpdmVQcmlv
cml0eSBpcyBhIHZhbHVlIGluIHRoZSByYW5nZSBbLTE1LCAwXSB3aGVyZSBhIGxvd2VyIHZhbHVl
IGluZGljYXRlcyBhIGxvd2VyIHByaW9yaXR5LgpAQCAtNjgsMTYgKzY5LDE0IEBAIFdURl9FWFBP
UlRfUFJJVkFURSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRlbnRpZmllcik7
CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRlbnRpZmllcik7
CiAKIC8vIERlcHJlY2F0ZWQgZnVuY3Rpb24tcG9pbnRlci1iYXNlZCB0aHJlYWQgY3JlYXRpb24u
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFk
RnVuY3Rpb24sIHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1dURl9FWFBPUlRfUFJJ
VkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9pZCos
IFRocmVhZE5hbWUpOwogCiAvLyBJbnRlcm5hbCBwbGF0Zm9ybS1zcGVjaWZpYyBjcmVhdGVUaHJl
YWQgaW1wbGVtZW50YXRpb24uCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFs
KFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7CitUaHJlYWRJ
ZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgVGhy
ZWFkTmFtZSk7CiAKIC8vIENhbGxlZCBpbiB0aGUgdGhyZWFkIGR1cmluZyBpbml0aWFsaXphdGlv
bi4KIC8vIEhlbHBmdWwgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgdGhyZWFkIG5hbWUgbXVzdCBi
ZSBzZXQgZnJvbSB3aXRoaW4gdGhlIHRocmVhZC4KLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJl
YWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKLQotY29uc3QgY2hhciogbm9ybWFs
aXplVGhyZWFkTmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK3ZvaWQgaW5pdGlhbGl6ZUN1
cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1lKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCAwZjlmMmZjNzJjOWQzZTg5MGM3
M2FhZGE3MzkxNTA0YTkxYTc0MjgwLi41M2NhMzhlYTQ3Yzc1MDRjN2UzOWQ5ZGEwZDRiZmJhZTZh
NDA1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xNjksNyArMTY5
LDcgQEAgc3RhdGljIHZvaWQqIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJu
YWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciopCitU
aHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5
UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUpCiB7CiAgICAgYXV0byBpbnZvY2F0aW9uID0g
c3RkOjptYWtlX3VuaXF1ZTxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+KGVudHJ5UG9pbnQsIGRh
dGEpOwogICAgIHB0aHJlYWRfdCB0aHJlYWRIYW5kbGU7CkBAIC0xOTIsMTIgKzE5MiwxNCBAQCBU
aHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5
UG9pbnQsIHZvaWQqIGRhdGEsIGNvbgogICAgIHJldHVybiBlc3RhYmxpc2hJZGVudGlmaWVyRm9y
UHRocmVhZEhhbmRsZSh0aHJlYWRIYW5kbGUpOwogfQogCi12b2lkIGluaXRpYWxpemVDdXJyZW50
VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1
cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgSEFWRShQ
VEhSRUFEX1NFVE5BTUVfTlApCi0gICAgcHRocmVhZF9zZXRuYW1lX25wKG5vcm1hbGl6ZVRocmVh
ZE5hbWUodGhyZWFkTmFtZSkpOworICAgIGF1dG8gbmFtZSA9IHRocmVhZE5hbWUubmFtZSgpOwor
ICAgIHB0aHJlYWRfc2V0bmFtZV9ucChuYW1lLmRhdGEoKSk7CiAjZWxpZiBPUyhMSU5VWCkKLSAg
ICBwcmN0bChQUl9TRVRfTkFNRSwgbm9ybWFsaXplVGhyZWFkTmFtZSh0aHJlYWROYW1lKSk7Cisg
ICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CisgICAgcHJjdGwoUFJfU0VUX05BTUUs
IG5hbWUuZGF0YSgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5hbWUpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAppbmRleCA1NGI0M2VmZWYzNWNkNjYzMmE3MDA4MTUw
N2E1YjM3OTlkZWZiNmZiLi40YzliYzU3N2EyNmE5MGRhNTUwOWQyYzYyMzgzMWJmYmVmODdkNDAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKQEAgLTEyMSwxNSArMTIxLDE2IEBAIHR5cGVkZWYg
c3RydWN0IHRhZ1RIUkVBRE5BTUVfSU5GTyB7CiB9IFRIUkVBRE5BTUVfSU5GTzsKICNwcmFnbWEg
cGFjayhwb3ApCiAKLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBj
aGFyKiBzelRocmVhZE5hbWUpCit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwo
VGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogI2lmIENPTVBJTEVSKE1JTkdXKQogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhyZWFkIG5hbWUgc2V0dGluZyB3aXRoIE1pbmdXLgotICAgIFVOVVNF
RF9QQVJBTShzelRocmVhZE5hbWUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNl
bHNlCisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CiAgICAgVEhSRUFETkFNRV9J
TkZPIGluZm87CiAgICAgaW5mby5kd1R5cGUgPSAweDEwMDA7Ci0gICAgaW5mby5zek5hbWUgPSBu
b3JtYWxpemVUaHJlYWROYW1lKHN6VGhyZWFkTmFtZSk7CisgICAgaW5mby5zek5hbWUgPSBuYW1l
LmRhdGEoKTsKICAgICBpbmZvLmR3VGhyZWFkSUQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAg
ICBpbmZvLmR3RmxhZ3MgPSAwOwogCkBAIC0xOTksNyArMjAwLDcgQEAgc3RhdGljIHVuc2lnbmVk
IF9fc3RkY2FsbCB3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAgIHJldHVybiAw
OwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0
aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCitUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9p
bnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICAgICB1bnNpZ25lZCB0
aHJlYWRJZGVudGlmaWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Xb3JrUXVldWUuY3BwCmluZGV4IGIyYTBhNzlmNGFiNWFhYzI4OWIxNjlmOTJiYmMxYTgwNTg1
MmNhMzIuLmMyODkxNjY5ZDYwZjE5NThjYmRlZDZlNzkxNTJhMjc1ZDY2Mjc2M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29y
a1F1ZXVlLmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1SZWY8
V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5cGUs
IFFPUyBxb3MpCitSZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5h
bWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3Jr
UXVldWUobmFtZSwgdHlwZSwgcW9zKSk7CiB9CiAKLVdvcmtRdWV1ZTo6V29ya1F1ZXVlKGNvbnN0
IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK1dvcmtRdWV1ZTo6V29ya1F1ZXVlKFRo
cmVhZE5hbWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHBsYXRmb3JtSW5pdGlh
bGl6ZShuYW1lLCB0eXBlLCBxb3MpOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdvcmtRdWV1
ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6OmZ1bmN0aW9u
PHZvaWQgKHNpegogCiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eSh0aHJlYWRDb3VudCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhy
ZWFkQ291bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoY3JlYXRl
VGhyZWFkKFN0cmluZzo6Zm9ybWF0KCJUaHJlYWRQb29sIFdvcmtlciAldSIsIGkpLnV0ZjgoKS5k
YXRhKCksIFt0aGlzXSB7CisgICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVhdGVU
aHJlYWQoeyAiVGhyZWFkUG9vbCBXb3JrZXIiLCAiQ29uY3VycmVudEFwcGx5IiB9LCBbdGhpc10g
ewogICAgICAgICAgICAgICAgICAgICB0aHJlYWRCb2R5KCk7CiAgICAgICAgICAgICAgICAgfSkp
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAppbmRleCBkOTE4NGI0ODI3YmYxMGJhMzhhNDgx
NDgwNWIyZjMzNjQ2ZDc2ZTAzLi40MjcyNGFmNjgzZGRhMTc2YTZkNmUwNmM0OWI0OGY2ODkzZGI0
OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKQEAgLTY3LDcgKzY4
LDcgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7
CiAgICAgICAgIEJhY2tncm91bmQKICAgICB9OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0
YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6
OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3Rh
dGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lLCBUeXBlID0gVHlwZTo6U2VyaWFs
LCBRT1MgPSBRT1M6OkRlZmF1bHQpOwogICAgIHZpcnR1YWwgfldvcmtRdWV1ZSgpOwogCiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJikgb3Zl
cnJpZGU7CkBAIC04NSw5ICs4Niw5IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6IHB1YmxpYyBG
dW5jdGlvbkRpc3BhdGNoZXIgewogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV29y
a1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgZXhwbGljaXQgV29ya1F1
ZXVlKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAKLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOworICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUo
KTsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3Jr
UXVldWVDb2NvYS5jcHAKaW5kZXggOGVkYmYyM2M1NTg4ODgyOTZjMTRjOGM5ZDBlZTBjNGY2MzMw
YjMyMy4uZTE1NzE1ZDE3MjE1NDRkNjhkYWM1YWVjYzUxNmJlYjEzNTBkN2FlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMg
ZGlzcGF0Y2hfcXVldWVfdCB0YXJnZXRRdWV1ZUZvclFPU0NsYXNzKFdvcmtRdWV1ZTo6UU9TIHFv
cykKIH0KICNlbmRpZgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0
IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAg
ZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0dHIgPSB0eXBlID09IFR5cGU6OkNvbmN1cnJlbnQgPyBE
SVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UIDogRElTUEFUQ0hfUVVFVUVfU0VSSUFMOwogI2lmIEhB
VkUoUU9TX0NMQVNTRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hR
dWV1ZUVmbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKaW5k
ZXggYjRhZDJiZGM0MzhmOWQ5NDU3ZTNmN2ZiNDkyMjRjNjgxNTk3NmRhZi4uMmYxMGIwMmEwZTE5
M2MyZjI5MmVjOTBjMmJjMmIyOGU0ZWQzYzg4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
ZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRj
aFF1ZXVlRWZsLmNwcApAQCAtNDAsNyArNDAsNyBAQCBzdGF0aWMgY29uc3QgY2hhciB3YWtlVXBU
aHJlYWRNZXNzYWdlID0gJ1cnOwogCiBjbGFzcyBEaXNwYXRjaFF1ZXVlOjpUaHJlYWRDb250ZXh0
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBzdGFydChjb25zdCBjaGFyKiBuYW1lLCBQYXNz
UmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUpCisgICAgc3RhdGljIHZvaWQgc3Rh
cnQoVGhyZWFkTmFtZSBuYW1lLCBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVl
dWUpCiAgICAgewogICAgICAgICAvLyBUaGUgRGlzcGF0Y2hRdWV1ZVRocmVhZENvbnRleHQgaW5z
dGFuY2Ugd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHRocmVhZCBmdW5jdGlvbiBhbmQgZGVsZXRlZCBp
biBpdC4KICAgICAgICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZChyZWludGVycHJldF9jYXN0
PFdURjo6VGhyZWFkRnVuY3Rpb24+KCZUaHJlYWRDb250ZXh0OjpmdW5jdGlvbiksIG5ldyBUaHJl
YWRDb250ZXh0KGRpc3BhdGNoUXVldWUpLCBuYW1lKSk7CkBAIC02MSw3ICs2MSw3IEBAIGNsYXNz
IERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRleHQgewogICAgIFJlZlB0cjxEaXNwYXRjaFF1ZXVl
PiBtX2Rpc3BhdGNoUXVldWU7CiB9OwogCi1QYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IERpc3Bh
dGNoUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lKQorUGFzc1JlZlB0cjxEaXNwYXRjaFF1
ZXVlPiBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSBuYW1lKQogewogICAgIFJlZlB0
cjxEaXNwYXRjaFF1ZXVlPiBkaXNwYXRjaFF1ZXVlID0gYWRvcHRSZWY8RGlzcGF0Y2hRdWV1ZT4o
bmV3IERpc3BhdGNoUXVldWUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9E
aXNwYXRjaFF1ZXVlRWZsLmggYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5o
CmluZGV4IGZjNTU1MTliMDFjZWU4ZmUwNDljMTNjMWU1ZmNmYzdkOTk3OTRmMjYuLjU3MDk0MjZk
YmFlYmFhNzExNWY2MjgyNmJjMjRkZDRmYjJlNDFlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmgKKysrIGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3Bh
dGNoUXVldWVFZmwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4K
ICNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM3LDcgKzM4LDcgQEAgY2xh
c3MgV29ya0l0ZW07CiAKIGNsYXNzIERpc3BhdGNoUXVldWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8RGlzcGF0Y2hRdWV1ZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERpc3BhdGNoUXVldWU+IGNyZWF0ZShjb25zdCBjaGFyKiBuYW1lKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVhdGUoVGhyZWFkTmFtZSk7CiAgICAgfkRpc3BhdGNo
UXVldWUoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2goc3RkOjp1bmlxdWVfcHRyPFdvcmtJdGVtPik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCmluZGV4IGRhOTEzYmYwNGNlNzI3MzEwNzY3
ZWY0Nzk0ZmRkMmI4NzhhNWY0ZWQuLjgzMjVmNWQ2YzMxNGQ0ZmJiODMzM2YyMTkwZDNmYmNmMTk0
N2UxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0yNSw3ICsyNSw3IEBA
CiAKIG5hbWVzcGFjZSBXVEYgewogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUlu
aXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlLCBRT1MpCiB7CiAgICAgbV9kaXNwYXRjaFF1
ZXVlID0gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKG5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2dl
bmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKaW5kZXggZjU5NGUyNDAxMTZkNGUwNDNkNGRjM2Ez
ZjZjZjdjMDdkNGIyMzQ0Mi4uZGY2ZTA3MjJkMWU0MDNjN2FiOTcwMDcwZDU3ZjYzYjYyNjEyNDIz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCkBAIC0z
Miw3ICszMiw3IEBACiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotdm9pZCBX
b3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1Mp
Cit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlw
ZSwgUU9TKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25k
aXRpb25NdXRleCk7CiAgICAgbV93b3JrUXVldWVUaHJlYWQgPSBjcmVhdGVUaHJlYWQobmFtZSwg
W3RoaXNdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NDZhOTI5
ODRmOTQ0YjEzNWQ3MDI5ZjUzMWRkNzFiOGNhNjk5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEFTQ0lJTGl0ZXJhbCB7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgY29uc3RleHByIEFTQ0lJTGl0ZXJhbChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzKQor
ICAgICAgICA6IG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQorICAgIHsKKyAgICB9CisKKyAgICBj
b25zdGV4cHIgb3BlcmF0b3IgY29uc3QgY2hhciooKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fY2hhcmFjdGVyczsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgY2hhciogbV9j
aGFyYWN0ZXJzOworfTsKKworfQorCit1c2luZyBXVEY6OkFTQ0lJTGl0ZXJhbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5oCmluZGV4IDAxYzc2ODEwYmQ2Y2QxZWRiYmVmOGFmZWQ4NDJmODA4MGRmN2Rh
ZDMuLjgwZTY0NDcxZmVkMDg4NzQwNTMzNjUzZjZmNGU2OTZlYWUwNGIwYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9XVEZTdHJpbmcuaApAQCAtMjYsNiArMjYsNyBAQAogLy8gb24gc3lzdGVtcyB3aXRob3V0IGNh
c2Utc2Vuc2l0aXZlIGZpbGUgc3lzdGVtcy4KIAogI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJRmFz
dFBhdGguaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BU0NJSUxpdGVyYWwuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMzQsOCArMzUsNiBA
QAogCiBuYW1lc3BhY2UgV1RGIHsKIAotY2xhc3MgQVNDSUlMaXRlcmFsOwotCiAvLyBEZWNsYXJh
dGlvbnMgb2Ygc3RyaW5nIG9wZXJhdGlvbnMKIAogV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGludCBj
aGFyYWN0ZXJzVG9JbnRTdHJpY3QoY29uc3QgTENoYXIqLCBzaXplX3QsIGJvb2wqIG9rID0gbnVs
bHB0ciwgaW50IGJhc2UgPSAxMCk7CkBAIC02ODEsMTUgKzY4MCw2IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IERlZmF1bHRIYXNoPFN0cmluZz4gewogCiB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVmVjdG9yVHJh
aXRzPFN0cmluZz4gOiBTaW1wbGVDbGFzc1ZlY3RvclRyYWl0cyB7IH07CiAKLWNsYXNzIEFTQ0lJ
TGl0ZXJhbCB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIq
IGNoYXJhY3RlcnMpIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpIHsgfQotICAgIG9wZXJhdG9y
IGNvbnN0IGNoYXIqKCkgeyByZXR1cm4gbV9jaGFyYWN0ZXJzOyB9Ci0KLXByaXZhdGU6Ci0gICAg
Y29uc3QgY2hhciogbV9jaGFyYWN0ZXJzOwotfTsKLQogLy8gU2hhcmVkIGdsb2JhbCBlbXB0eSBz
dHJpbmcuCiBXVEZfRVhQT1JUX1NUUklOR19BUEkgY29uc3QgU3RyaW5nJiBlbXB0eVN0cmluZygp
OwogCkBAIC03MzgsNyArNzI4LDYgQEAgdXNpbmcgV1RGOjpmaW5kOwogdXNpbmcgV1RGOjppc0Fs
bFNwZWNpYWxDaGFyYWN0ZXJzOwogdXNpbmcgV1RGOjppc1NwYWNlT3JOZXdsaW5lOwogdXNpbmcg
V1RGOjpyZXZlcnNlRmluZDsKLXVzaW5nIFdURjo6QVNDSUlMaXRlcmFsOwogCiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dp
bi9NYWluVGhyZWFkV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNw
cAppbmRleCBmMzI0ZThiNjFkZDQxZmEwNTYwODYzYjZjNTgxOTEwZjg2N2QzNmViLi41MjY5ZDlm
MjJlMGE4ZDU4ZmIxNmZiMjc5M2I1YzlkMjgyMWUyMzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL01haW5U
aHJlYWRXaW4uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQ
bGF0Zm9ybSgpCiAgICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsIEhX
TkRfTUVTU0FHRSwgMCwgMCwgMCk7CiAgICAgdGhyZWFkaW5nRmlyZWRNZXNzYWdlID0gUmVnaXN0
ZXJXaW5kb3dNZXNzYWdlVyhMImNvbS5hcHBsZS5XZWJLaXQuTWFpblRocmVhZEZpcmVkIik7CiAK
LSAgICBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKCJNYWluIFRocmVhZCIpOworICAg
IGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoeyAiTWFpbiBUaHJlYWQiLCAiTWFpblRo
cmVhZCIgfSk7CiB9CiAKIHZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFpblRocmVh
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IGY0YzRiOGM3N2RjZTk5NWY1
N2YyNTY3MDJjMWY5Y2VmOGM2NWE1YWEuLjcxMjRhY2ZjOTdkY2FlOWEyMjE0ODQyNjgyOWI4NGQz
NmQ4MmMyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwCkBAIC03MSw3ICs3MSw3
IEBAIHZvaWQgV29ya1F1ZXVlOjpwZXJmb3JtV29ya09uUmVnaXN0ZXJlZFdvcmtUaHJlYWQoKQog
ICAgIG1fZnVuY3Rpb25RdWV1ZUxvY2sudW5sb2NrKCk7CiB9CiAKLXZvaWQgV29ya1F1ZXVlOjpw
bGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3Jr
UXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsK
ICAgICBtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQgPSAwOwogICAgIG1fdGltZXJRdWV1ZSA9IDo6
Q3JlYXRlVGltZXJRdWV1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCA4NzQ3NjQzOGNhZTY1YTYzODdkOTAx
YTc1Mjg4MTVlYzk1NDdmMjMyLi5hYjFlZjY0ODBhNjI1YzliZGU0ZGRiMTg1MWRkZTkwMjMyZWJm
ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBJREJTZXJ2ZXI6OklEQlNlcnZlcihJ
REJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCiAgICAgOiBt
X2JhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyKGZpbGVIYW5kbGVyKQogewogICAgIExv
Y2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7Ci0gICAgbV90
aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRo
aXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRo
cmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMsIHsgIkluZGV4ZWREYXRh
YmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVyIiB9KTsKIH0KIAogSURCU2VydmVyOjpJREJTZXJ2ZXIo
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tpbmdTdG9yZVRlbXBv
cmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKQEAgLTY2LDcgKzY2LDcgQEAgSURCU2VydmVy
OjpJREJTZXJ2ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeVBhdGgsIElEQkJhY2tp
bmdTdG9yZVRlbXBvcmEKICAgICBMT0coSW5kZXhlZERCLCAiSURCU2VydmVyIGNyZWF0ZWQgYXQg
cGF0aCAlcyIsIGRhdGFiYXNlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKIAogICAgIExv
Y2tlcjxMb2NrPiBsb2NrZXIobV9kYXRhYmFzZVRocmVhZENyZWF0aW9uTG9jayk7Ci0gICAgbV90
aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRo
aXMsICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRo
cmVhZChJREJTZXJ2ZXI6OmRhdGFiYXNlVGhyZWFkRW50cnksIHRoaXMsIHsgIkluZGV4ZWREYXRh
YmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVyIiB9KTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OnJlZ2lz
dGVyQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3Bw
CmluZGV4IDI5MmYwNWI4Y2Q1MDZlMjI5YWU2YjhiZDg2MjljMDk1NGQxODQ1OWIuLjAzZDg4NGVj
NGZkZDAyY2Y1ZGQ0Y2EzOTE5YjdlZGRkMWYwMDE1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIEFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2RlcigpCiB7CiAgICAgLy8g
U3RhcnQgd29ya2VyIHRocmVhZC4KICAgICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlv
bk11dGV4KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9EZWNvZGVy
Ojp0aHJlYWRFbnRyeSwgdGhpcywgIkF1ZGlvIERlY29kZXIiKTsKKyAgICBtX3RocmVhZElEID0g
Y3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhpcywgeyAiQXVk
aW8gRGVjb2RlciIsICJBdWRpb0RlY29kZXIiIH0pOwogfQogCiBBc3luY0F1ZGlvRGVjb2Rlcjo6
fkFzeW5jQXVkaW9EZWNvZGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA1
MDUyMzA0MTk3Y2RlZGRlNDdmZGNiYjkxMmVjNDc0MDU1Nzk3NDI4Li5iYTczYjgwMDQyNTgzMDEz
OTRlOWNkNjQxOGIzOTI3MzY1ZGQ1MjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
CkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFy
dFJlbmRlcmluZygpCiAgICAgaWYgKCFtX3N0YXJ0ZWRSZW5kZXJpbmcpIHsKICAgICAgICAgbV9z
dGFydGVkUmVuZGVyaW5nID0gdHJ1ZTsKICAgICAgICAgcmVmKCk7IC8vIFNlZSBjb3JyZXNwb25k
aW5nIGRlcmVmKCkgY2FsbCBpbiBub3RpZnlDb21wbGV0ZURpc3BhdGNoKCkuCi0gICAgICAgIG1f
cmVuZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6
b2ZmbGluZVJlbmRlckVudHJ5LCB0aGlzLCAib2ZmbGluZSByZW5kZXJlciIpOworICAgICAgICBt
X3JlbmRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6
Om9mZmxpbmVSZW5kZXJFbnRyeSwgdGhpcywgeyAib2ZmbGluZSByZW5kZXJlciIsICJPZmZsaW5l
UmVuZGVyZXIiIH0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcAppbmRleCAwZGRlNWY3MjY4ZWU2NDJj
MDA0MzA1Y2VmZTM2YjFjOWU0NGI4N2QzLi44ZGZkNmRiYjQwZDVkOWNhYTU0YzNhYzRhNTBmZWJi
ZGRiMjFmOThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIERhdGFiYXNlVGhy
ZWFkOjpzdGFydCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VU
aHJlYWRTdGFydCwgdGhpcywgIldlYkNvcmU6IERhdGFiYXNlIik7CisgICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWRTdGFydCwgdGhpcywg
eyAiV2ViQ29yZTogRGF0YWJhc2UiLCAiV2ViREIiIH0pOwogCiAgICAgcmV0dXJuIG1fdGhyZWFk
SUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAppbmRl
eCA2ZjlmY2E2N2YzYzQ3YWRkYzgzZGVjOGNiMGQ1ZWI4Y2NiNDBkNzQzLi4zZTI0ZjBiMDgwOWMx
ZjFjNWQ3NDY2ODhhY2E5MjYxYzIwYzE3ZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEdDQ29udHJvbGxl
cjo6Z2FyYmFnZUNvbGxlY3ROb3dJZk5vdERvbmVSZWNlbnRseSgpCiAKIHZvaWQgR0NDb250cm9s
bGVyOjpnYXJiYWdlQ29sbGVjdE9uQWx0ZXJuYXRlVGhyZWFkRm9yRGVidWdnaW5nKGJvb2wgd2Fp
dFVudGlsRG9uZSkKIHsKLSAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gY3JlYXRlVGhy
ZWFkKGNvbGxlY3QsIDAsICJXZWJDb3JlOiBHQ0NvbnRyb2xsZXIiKTsKKyAgICBUaHJlYWRJZGVu
dGlmaWVyIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKGNvbGxlY3QsIDAsIHsgIldlYkNvcmU6IEdD
IENvbnRyb2xsZXIiLCAiR0NDb250cm9sbGVyIiB9KTsKIAogICAgIGlmICh3YWl0VW50aWxEb25l
KSB7CiAgICAgICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZjY5MWY2YjA5ZjI2YTVkNjk1NGNlMTYz
N2IzMjcyNjYwYjE2OWMwMC4uZjA4ZTBjMDFkOWNlNGFmMjhjNjM5YjUxYTY0MmRhODZmZTk4NGEw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKQEAgLTMyLDcgKzMyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdWJ0bGVDcnlwdG86OlN1YnRsZUNyeXB0byhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIoJmNvbnRleHQpCi0gICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5DcnlwdG9RdWV1ZSIpKQorICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVl
OjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5DcnlwdG9RdWV1ZSIsICJDcnlwdG9RdWV1ZSIg
fSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxl
U3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcApp
bmRleCA1YjgxMzYxMTJhZGRlYTE0NWM5NTU5MGE4YTNjMTc2MWYxYjFiOTgzLi5hZmIyZTBkZjIy
MmRiNGQzM2FjZmZhOGY1YWI4OTY5ZjM5NTk5NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9Bc3luY0ZpbGVTdHJlYW0uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyB2b2lkIGNhbGxP
bkZpbGVUaHJlYWQoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKIAogICAgIHN0YXRpYyBz
dGQ6Om9uY2VfZmxhZyBjcmVhdGVGaWxlVGhyZWFkT25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShj
cmVhdGVGaWxlVGhyZWFkT25jZSwgW10gewotICAgICAgICBjcmVhdGVUaHJlYWQoIldlYkNvcmU6
IEFzeW5jRmlsZVN0cmVhbSIsIFtdIHsKKyAgICAgICAgY3JlYXRlVGhyZWFkKHsgIldlYkNvcmU6
IEFzeW5jRmlsZVN0cmVhbSIsICJBc3luY0ZpbGVTdHJlYW0iIH0sIFtdIHsKICAgICAgICAgICAg
IGZvciAoOzspIHsKICAgICAgICAgICAgICAgICBBdXRvZHJhaW5lZFBvb2wgcG9vbDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggZWU0MzdlODYy
OGViZjRlODYzMjdjYzc3MDMwZjVmNjk0ZTMwYmIyZC4uOThmMTg5MDM5M2FjYTJkMDMwOTllM2Zj
ZmU3ODY3MGVhMWE5OTQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2UuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgYm9vbCBJY29uRGF0YWJhc2U6Om9wZW4oY29u
c3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUpCiAgICAgLy8gTG9j
ayBoZXJlIGFzIHdlbGwgYXMgZmlyc3QgdGhpbmcgaW4gdGhlIHRocmVhZCBzbyB0aGUgdGhyZWFk
IGRvZXNuJ3QgYWN0dWFsbHkgY29tbWVuY2UgdW50aWwgdGhlIGNyZWF0ZVRocmVhZCgpIGNhbGwg
CiAgICAgLy8gY29tcGxldGVzIGFuZCBtX3N5bmNUaHJlYWRSdW5uaW5nIGlzIHByb3Blcmx5IHNl
dAogICAgIG1fc3luY0xvY2subG9jaygpOwotICAgIG1fc3luY1RocmVhZCA9IGNyZWF0ZVRocmVh
ZChJY29uRGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYWRTdGFydCwgdGhpcywgIldlYkNv
cmU6IEljb25EYXRhYmFzZSIpOworICAgIG1fc3luY1RocmVhZCA9IGNyZWF0ZVRocmVhZChJY29u
RGF0YWJhc2U6Omljb25EYXRhYmFzZVN5bmNUaHJlYWRTdGFydCwgdGhpcywgeyAiV2ViQ29yZTog
SWNvbkRhdGFiYXNlIiwgIkljb25EQiIgfSk7CiAgICAgbV9zeW5jVGhyZWFkUnVubmluZyA9IG1f
c3luY1RocmVhZDsKICAgICBtX3N5bmNMb2NrLnVubG9jaygpOwogICAgIGlmICghbV9zeW5jVGhy
ZWFkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKaW5kZXgg
OTEyMDBjMzQ1ZjQ1NWY5NmQ0OTRiZmQyYWQ3MDNmMjhjNWM2MjlkMS4uODgwNDBiYTM4ODU0Y2Y5
OTMzNDNlNWFhNmYzNGU1ZDE0YTVlOWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291
cmNlVXNhZ2VUaHJlYWQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdl
VGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1f
dm0gPSAmY29tbW9uVk0oKTsKLSAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQo
dGhyZWFkQ2FsbGJhY2ssIHRoaXMsICJXZWJDb3JlOiBSZXNvdXJjZVVzYWdlIik7CisgICAgbV90
aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCB7ICJX
ZWJDb3JlOiBSZXNvdXJjZVVzYWdlIiwgIlJlc291cmNlVXNhZ2UiIH0pOwogfQogCiB2b2lkIFJl
c291cmNlVXNhZ2VUaHJlYWQ6OnRocmVhZENhbGxiYWNrKHZvaWQqIHJlc291cmNlVXNhZ2VUaHJl
YWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFk
LmNwcAppbmRleCA3MzBjMGE2YmQ5M2Y0NTc4ZDFlZGJmOWFjZTFjZDg2NTY2ZTZjOTg4Li5mOGJl
YmNjNWIyMGZmNTM3NTk3NmExMzRiZWY2MDdlMWNmZTQ0ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKQEAgLTgxLDcgKzgxLDcg
QEAgdm9pZCBTY3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICB7CiAg
ICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVSdW5Mb29wTXV0
ZXgpOwogCi0gICAgICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRD
YWxsYmFjaywgdGhpcywgIldlYkNvcmU6IFNjcm9sbGluZyIpOworICAgICAgICBtX3RocmVhZElk
ZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIHsgIldlYkNvcmU6
IFNjcm9sbGluZyIsICJTY3JvbGxpbmciIH0pOwogICAgICAgICAKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvblZhcmlhYmxlLndhaXQobG9j
aywgW3RoaXNdeyByZXR1cm4gbV90aHJlYWRSdW5Mb29wOyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCmluZGV4IGY3MTMz
M2M1YTM3YTk5ODk2NGYzYTc0MWM3MzE1MmU5NTE0NjZjZjYuLmI4Y2Q2MmI5ODM4NjlhZjdiZGM4
MjYyNzNlMjAzOGFlNmViMzc0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQg
SFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkQXN5bmNocm9ub3VzbHkoKQogICAgIAogICAgIGlmICgh
bV9ocnRmRGF0YWJhc2UuZ2V0KCkgJiYgIW1fZGF0YWJhc2VMb2FkZXJUaHJlYWQpIHsKICAgICAg
ICAgLy8gU3RhcnQgdGhlIGFzeW5jaHJvbm91cyBkYXRhYmFzZSBsb2FkaW5nIHByb2Nlc3MuCi0g
ICAgICAgIG1fZGF0YWJhc2VMb2FkZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoZGF0YWJhc2VMb2Fk
ZXJFbnRyeSwgdGhpcywgIkhSVEYgZGF0YWJhc2UgbG9hZGVyIik7CisgICAgICAgIG1fZGF0YWJh
c2VMb2FkZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoZGF0YWJhc2VMb2FkZXJFbnRyeSwgdGhpcywg
eyAiSFJURiBkYXRhYmFzZSBsb2FkZXIiLCAiSFJURkRCTG9hZGVyIiB9KTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3Bw
CmluZGV4IDk2ZjMzMDgyODA3OWE3OWFkNjQ4MjBkMDcyMWM1OWM1ZWExNmZkYjEuLjEyOTU5YzNl
ZjcxMWViNzZhODdkMjFmOTkxMWM2ODBhYTY3OTFlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBA
IFJldmVyYkNvbnZvbHZlcjo6UmV2ZXJiQ29udm9sdmVyKEF1ZGlvQ2hhbm5lbCogaW1wdWxzZVJl
c3BvbnNlLCBzaXplX3QgcmVuZGVyU2xpCiAgICAgLy8gU3RhcnQgdXAgYmFja2dyb3VuZCB0aHJl
YWQKICAgICAvLyBGSVhNRTogd291bGQgYmUgYmV0dGVyIHRvIHVwIHRoZSB0aHJlYWQgcHJpb3Jp
dHkgaGVyZS4gIEl0IGRvZXNuJ3QgbmVlZCB0byBiZSByZWFsLXRpbWUsIGJ1dCBoaWdoZXIgdGhh
biB0aGUgZGVmYXVsdC4uLgogICAgIGlmICh0aGlzLT51c2VCYWNrZ3JvdW5kVGhyZWFkcygpICYm
IG1fYmFja2dyb3VuZFN0YWdlcy5zaXplKCkgPiAwKQotICAgICAgICBtX2JhY2tncm91bmRUaHJl
YWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5LCB0aGlzLCAi
Y29udm9sdXRpb24gYmFja2dyb3VuZCB0aHJlYWQiKTsKKyAgICAgICAgbV9iYWNrZ3JvdW5kVGhy
ZWFkID0gY3JlYXRlVGhyZWFkKFdlYkNvcmU6OmJhY2tncm91bmRUaHJlYWRFbnRyeSwgdGhpcywg
eyAiY29udm9sdXRpb24gYmFja2dyb3VuZCB0aHJlYWQiLCAiQ29udm9sdXRpb24iIH0pOwogfQog
CiBSZXZlcmJDb252b2x2ZXI6On5SZXZlcmJDb252b2x2ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxl
UmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCA5MTI5NDk4MTYwZjFiZTNlNmNmZTdmMDQ3NjRiNGQ3
OWQ0OGY4ZjNmLi5jZDhmNmNhZTA5ZWNjNWZlZjhjNzQwYTYyMTc5ZmQ2NmY1MjAxN2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxl
UmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
c3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMzcwLDcgKzM3MCw3IEBA
IFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNh
bXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNG
cm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubywgZmxvYXQg
c2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwotICAgIGF1
dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0dXJuVmFs
dWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRvIHRocmVhZElE
ID0gY3JlYXRlVGhyZWFkKHsgIkF1ZGlvRmlsZVJlYWRlciIsICJBdWRpb0ZpbGVSZWFkZXIiIH0s
IFsmcmV0dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKICAgICAg
ICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZmlsZVBhdGgpLmNyZWF0ZUJ1cyhzYW1w
bGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAgIHdhaXRGb3JUaHJlYWRDb21wbGV0aW9u
KHRocmVhZElEKTsKQEAgLTM4MCw3ICszODAsNyBAQCBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVh
dGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRoLCBib29sIG1peFRvTW9ubwog
UGFzc1JlZlB0cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGNvbnN0
IHZvaWQqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSwgYm9vbCBtaXhUb01vbm8sIGZsb2F0IHNhbXBs
ZVJhdGUpCiB7CiAgICAgUmVmUHRyPEF1ZGlvQnVzPiByZXR1cm5WYWx1ZTsKLSAgICBhdXRvIHRo
cmVhZElEID0gY3JlYXRlVGhyZWFkKCJBdWRpb0ZpbGVSZWFkZXIiLCBbJnJldHVyblZhbHVlLCBk
YXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7CisgICAgYXV0byB0aHJlYWRJ
RCA9IGNyZWF0ZVRocmVhZCh7ICJBdWRpb0ZpbGVSZWFkZXIiLCAiQXVkaW9GaWxlUmVhZGVyIiB9
LCBbJnJldHVyblZhbHVlLCBkYXRhLCBkYXRhU2l6ZSwgbWl4VG9Nb25vLCBzYW1wbGVSYXRlXSB7
CiAgICAgICAgIHJldHVyblZhbHVlID0gQXVkaW9GaWxlUmVhZGVyKGRhdGEsIGRhdGFTaXplKS5j
cmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsKICAgICB9KTsKICAgICB3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAppbmRleCA4MWZiMWY5ODY4ZjMxMGU1MzU5
ZDE2MWRjMmRhY2E1Y2M3ZDNhZWQ3Li45M2ZhNTlkMGFiMjVhNTkwNDAzNzI0YTI1MzYxZmUwODY2
ZDQ0MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUZyYW1lQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIEltYWdlRnJhbWVDYWNo
ZTo6Y2FjaGVGcmFtZU5hdGl2ZUltYWdlQXRJbmRleChOYXRpdmVJbWFnZVB0ciYmIG5hdGl2ZUlt
YWdlLAogUmVmPFdvcmtRdWV1ZT4gSW1hZ2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1ZXVlKCkKIHsK
ICAgICBpZiAoIW1fZGVjb2RpbmdRdWV1ZSkKLSAgICAgICAgbV9kZWNvZGluZ1F1ZXVlID0gV29y
a1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuSW1hZ2VEZWNvZGVyIiwgV29ya1F1ZXVlOjpUeXBl
OjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpOworICAgICAgICBtX2Rl
Y29kaW5nUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJJbWFnZURlY29kZXIiLCAiSW1hZ2VE
ZWNvZGVyIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJ
bnRlcmFjdGl2ZSk7CiAgICAgCiAgICAgcmV0dXJuICptX2RlY29kaW5nUXVldWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDBkYTRhODg1NzNi
YTFiNTViNGZlYTUyMzg5ZTRjMjUyZmRlOTg0MzQuLjA3OTdjYTFlNDUyMjQ1Nzk1YzA4ZTQ1OTNi
MjRiNmRlMjZhODlkOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFt
ZXIuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVu
dDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsCiAgICAg
OiBTdHJlYW1pbmdDbGllbnQoc3JjKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5pdGlh
bGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7Ci0gICAgbV90aHJlYWQgPSBjcmVhdGVUaHJlYWQo
IlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IiwgW3RoaXMsIHJlcXVlc3QgPSBXVEZNb3Zl
KHJlcXVlc3QpXSB7CisgICAgbV90aHJlYWQgPSBjcmVhdGVUaHJlYWQoeyAiUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQiLCAiUlN0cmVhbWluZyIgfSwgW3RoaXMsIHJlcXVlc3QgPSBXVEZN
b3ZlKHJlcXVlc3QpXSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiAgICAgICAgICAgICBtX3J1bkxv
b3AgPSAmUnVuTG9vcDo6Y3VycmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCmluZGV4IDRj
ZDFiZGRmM2FiNzY2YTAwMDQ4ZjhhYzU3NmZhMjg0N2VjNjI3MGQuLmFjZDJmZTBhMjk0MTM3MzYz
Yzg5NDAxYjRlNjkwOTc3NDIwODQ4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKQEAgLTEx
Nyw3ICsxMTcsNyBAQCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OkV2ZW50RkRQb2xsZXI6OkV2ZW50
RkRQb2xsZXIoaW50IGZkLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKAogICAgIH0sIHRoaXMsIG51bGxw
dHIpOwogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgbnVsbHB0cik7CiAjZWxz
ZQotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIldlYkNvcmU6IE1lbW9yeVByZXNzdXJl
SGFuZGxlciIsIFt0aGlzXSB7IHJlYWRBbmROb3RpZnkoKTsgfQorICAgIG1fdGhyZWFkSUQgPSBj
cmVhdGVUaHJlYWQoeyAiTWVtb3J5UHJlc3N1cmVIYW5kbGVyIiwgIk1lbVByZXNzSGFuZGxlciIg
fSwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXgg
ZTE0MzQ1MWZkYWEzMzhjMzcxMDEwYjdmZWRmZGUwNTJhNWUzOTlmNy4uYjNhMjUyOTI2NTYxMjg2
YjNmZDBhYWUyY2ZjYWI3YTcwMjc3M2FiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAg
dW5zaWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeUltcGw6OmJsb2JTaXplKGNvbnN0IFVSTCYg
dXJsKQogCiBzdGF0aWMgV29ya1F1ZXVlJiBibG9iVXRpbGl0eVF1ZXVlKCkKIHsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJvcmcud2Via2l0LkJsb2JVdGlsaXR5IiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtR
dWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxX
b3JrUXVldWU+PiBxdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJvcmcud2Via2l0LkJsb2JVdGls
aXR5IiwgIkJsb2JVdGlsaXR5IiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVl
OjpRT1M6OkJhY2tncm91bmQpKTsKICAgICByZXR1cm4gcXVldWUuZ2V0KCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5k
ZXggYWJmYjQ2Y2VjZjgyMTQzYjlmZmFjZDAxYmU1Nzg2YTUzYTAwOGVjMC4uMTY2MzZjOTYwNmQ2
MzhmYzZiZWQzMGFiOTkwOTQyNjNkNjkzMThiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFt
ZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIAogc3RhdGljIFdvcmtRdWV1ZSYgZGVjb2RlUXVldWUo
KQogewotICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Vi
a2l0LkRhdGFVUkxEZWNvZGVyIikubGVha1JlZigpOworICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9
IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJraXQuRGF0YVVSTERlY29kZXIiLCAiRGF0YVVS
TERlY29kZXIiIH0pLmxlYWtSZWYoKTsKICAgICByZXR1cm4gcXVldWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNw
cAppbmRleCA0NmI4OTk0YTg0MWVmNzFlYTI3OWNlNzdjYmM4ZmI0M2MyOWYwYTYyLi5jNGJhYThk
ZDkxODE4NmIyOGQwOTQ2OTM3ZmI0MjdiOTQ5Yjg1YWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwCkBAIC03Nyw3
ICs3Nyw3IEBAIENGUnVuTG9vcFJlZiBsb2FkZXJSdW5Mb29wKCkKICAgICBzdGQ6OnVuaXF1ZV9s
b2NrPFN0YXRpY0xvY2s+IGxvY2sobG9hZGVyUnVuTG9vcE11dGV4KTsKIAogICAgIGlmICghbG9h
ZGVyUnVuTG9vcE9iamVjdCkgewotICAgICAgICBjcmVhdGVUaHJlYWQocnVuTG9hZGVyVGhyZWFk
LCAwLCAiV2ViQ29yZTogQ0ZOZXR3b3JrIExvYWRlciIpOworICAgICAgICBjcmVhdGVUaHJlYWQo
cnVuTG9hZGVyVGhyZWFkLCAwLCB7ICJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIiwgIkNGTmV0
d29ya0xvYWRlciIgfSk7CiAKICAgICAgICAgbG9hZGVyUnVuTG9vcENvbmRpdGlvblZhcmlhYmxl
LndhaXQobG9jaywgW10geyByZXR1cm4gbG9hZGVyUnVuTG9vcE9iamVjdDsgfSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3du
bG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25s
b2FkLmNwcAppbmRleCA0NDA4Y2QxOTg3MDViYTg2Y2M4YzE5ODZmYjNlMmNhZGU3OTZkY2M2Li4z
NjFhZmVjOTJiMjM2ZjNhZWMxZTJmZThkYzg1ZGFhOTFhYjFkMDgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcApAQCAt
OTcsNyArOTcsNyBAQCB2b2lkIEN1cmxEb3dubG9hZE1hbmFnZXI6OnN0YXJ0VGhyZWFkSWZOZWVk
ZWQoKQogICAgICAgICBpZiAobV90aHJlYWRJZCkKICAgICAgICAgICAgIHdhaXRGb3JUaHJlYWRD
b21wbGV0aW9uKG1fdGhyZWFkSWQpOwogICAgICAgICBzZXRSdW5UaHJlYWQodHJ1ZSk7Ci0gICAg
ICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxvYWRUaHJlYWQsIHRoaXMsICJkb3du
bG9hZFRocmVhZCIpOworICAgICAgICBtX3RocmVhZElkID0gY3JlYXRlVGhyZWFkKGRvd25sb2Fk
VGhyZWFkLCB0aGlzLCB7ICJkb3dubG9hZFRocmVhZCIsICJEb3dubG9hZGVyIiB9KTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCmluZGV4IGU5NGY4NGE2
ODIzMzk1MmQ0YzJjNjUyYzZiMmFmZjI1ZDI2NmRjNmIuLjViMDMxNmJjMDAxMWM5YWI5ZDIyYmU2
NDgwNGM3NzY5YTIxNTVmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNw
cApAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c3RhcnRU
aHJlYWQoKQogCiAgICAgcmVmKCk7IC8vIHN0b3BUaHJlYWQoKSB3aWxsIGNhbGwgZGVyZWYoKS4K
IAotICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFkKCJXZWJTb2NrZXQgdGhyZWFkIiwg
W3RoaXNdIHsKKyAgICBtX3dvcmtlclRocmVhZCA9IGNyZWF0ZVRocmVhZCh7ICJXZWJTb2NrZXQg
dGhyZWFkIiwgIldlYlNvY2tldCIgfSwgW3RoaXNdIHsKIAogICAgICAgICBBU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4
IDUxZjQyZjVmZmZmMmZhNmRhNjg0NTdlNGQyMjZlYjZmMzc2YzQwZGEuLmZlNTkxYTNhOTJkMzI1
NjYyNjhlMjNkYTdjZGM5ZGYwYzgxZWNjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBib29sIFdvcmtlclRocmVhZDo6c3RhcnQo
KQogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIG1fdGhy
ZWFkSUQgPSBjcmVhdGVUaHJlYWQoV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRTdGFydCwgdGhp
cywgIldlYkNvcmU6IFdvcmtlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoV29y
a2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRTdGFydCwgdGhpcywgeyAiV2ViQ29yZTogV2ViV29ya2Vy
IiwgIldlYldvcmtlciIgfSk7CiAKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAppbmRleCBiYjY2ZmNlYTdlNTI4YmMyN2Y2MzNh
M2U1Mjg3OGI1MDFlZjBlMTg3Li45NWM0YmU3NjM2OGQyY2ZiNTQwZjU0MWU0ZWQ0YjA2NzAzMzA5
ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCkBAIC01NSw3ICs1
NSw3IEBAIGJvb2wgU3RvcmFnZVRocmVhZDo6c3RhcnQoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgaWYgKCFtX3RocmVhZElEKQotICAgICAgICBtX3RocmVhZElEID0gY3Jl
YXRlVGhyZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhpcywg
IldlYkNvcmU6IExvY2FsU3RvcmFnZSIpOworICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhy
ZWFkKFN0b3JhZ2VUaHJlYWQ6OnRocmVhZEVudHJ5UG9pbnRDYWxsYmFjaywgdGhpcywgeyAiV2Vi
Q29yZTogTG9jYWxTdG9yYWdlIiwgIkxvY2FsU3RvcmFnZSIgfSk7CiAgICAgYWN0aXZlU3RvcmFn
ZVRocmVhZHMoKS5hZGQodGhpcyk7CiAgICAgcmV0dXJuIG1fdGhyZWFkSUQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCmluZGV4
IGQ1ZWFkYjBiM2I0MWFhNDM5NjBmMDE4NWFjMmEzYmI1ZjJhZWZhNjQuLmVlNjcwYTc1MTIzMWI0
M2Y5YjFmMGFlYzA1NTJiYmRkYWI0M2RhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwCkBAIC01Myw3ICs1Myw3IEBAIERhdGFi
YXNlUHJvY2VzcyYgRGF0YWJhc2VQcm9jZXNzOjpzaW5nbGV0b24oKQogfQogCiBEYXRhYmFzZVBy
b2Nlc3M6OkRhdGFiYXNlUHJvY2VzcygpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlUHJvY2VzcyIpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlUHJvY2VzcyIsICJEQlBy
b2Nlc3MiIH0pKQogewogICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRGOEVuY29kaW5nIGVuY29kaW5n
IGFuZCB0aGUgdGV4dCBlbmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0aGUgbWFpbiB0
aHJlYWQgYmVmb3JlIGEgYmFja2dyb3VuZCB0aHJlYWQgbmVlZHMgaXQuCiAgICAgLy8gRklYTUU6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzNjUgLSBOZWVkIGEg
bW9yZSBleHBsaWNpdCB3YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVzIGFjY2Vzc2luZyB0aGUgVVRG
OEVuY29kaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAKaW5kZXggYTgwMjkxZmMxZDFkNTljN2MxZGI2MDIxYjk0Y2NlODI0
YzUxYzU5Ny4uMDViODNiZDZhYWE0NWUyMzdmOTc2N2RlYTgwYWIxMGQ0MzdlYzZlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwCkBAIC01ODMsNyArNTgzLDcgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKCkK
IAogdm9pZCBDYWNoZTo6ZGVsZXRlRHVtcEZpbGUoKQogewotICAgIFdvcmtRdWV1ZTo6Y3JlYXRl
KCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIpLT5kaXNwYXRjaChbcGF0aCA9IGR1bXBG
aWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CisgICAgV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29t
LmFwcGxlLldlYktpdC5DYWNoZS5kZWxldGUiLCAiQ2FjaGVEZWxldGVyIiB9KS0+ZGlzcGF0Y2go
W3BhdGggPSBkdW1wRmlsZVBhdGgoKS5pc29sYXRlZENvcHkoKV0gewogICAgICAgICBXZWJDb3Jl
OjpkZWxldGVGaWxlKHBhdGgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9DaGFubmVsU291cC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxT
b3VwLmNwcAppbmRleCBlZjdiYTg5OTgyMDIzMjU4OWU3MzkxZjI3ZmNkM2Q2ZTE2OWY2ODk0Li5j
MjRjMGZiMzA2N2E0ODQ5MzUzNmFjZTA1YWZiYjg1Y2ZjMTcwMDAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxTb3VwLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgSU9DaGFubmVsOjpy
ZWFkU3luY0luVGhyZWFkKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBXb3JrUXVldWUqIHF1
ZXVlLCBzCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKICAgICBSZWZQdHI8SU9DaGFu
bmVsPiBjaGFubmVsKHRoaXMpOwotICAgIGRldGFjaFRocmVhZChjcmVhdGVUaHJlYWQoIklPQ2hh
bm5lbDo6cmVhZFN5bmMiLCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRpb25IYW5kbGVy
XSB7CisgICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZCh7ICJJT0NoYW5uZWw6OnJlYWRTeW5j
IiwgIklPQ1JlYWRTeW5jIiB9LCBbY2hhbm5lbCwgc2l6ZSwgcXVldWUsIGNvbXBsZXRpb25IYW5k
bGVyXSB7CiAgICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gc3RkOjptaW4oc2l6ZSwgZ0RlZmF1
bHRSZWFkQnVmZmVyU2l6ZSk7CiAgICAgICAgIHVpbnQ4X3QqIGJ1ZmZlckRhdGEgPSBzdGF0aWNf
Y2FzdDx1aW50OF90Kj4oZmFzdE1hbGxvYyhidWZmZXJTaXplKSk7CiAgICAgICAgIEdSZWZQdHI8
U291cEJ1ZmZlcj4gcmVhZEJ1ZmZlciA9IGFkb3B0R1JlZihzb3VwX2J1ZmZlcl9uZXdfd2l0aF9v
d25lcihidWZmZXJEYXRhLCBidWZmZXJTaXplLCBidWZmZXJEYXRhLCBmYXN0RnJlZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcAppbmRleCAxMGE1MjAzZWZkODE4MGUwYWNhMzRiZTU0ZGY1
MjU4MmY1OWM5NWY3Li4yMDgyNGIyZWIxYzM1ZDc5MDI2MDNmNGY2NTE5YzU3MjIyMTEyYTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcApAQCAtODIsNyArODIsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8U3RhdGlzdGljcz4gU3RhdGlzdGljczo6b3Blbihjb25zdCBTdHJpbmcmIGNhY2hlUGF0
aCkKIH0KIAogU3RhdGlzdGljczo6U3RhdGlzdGljcyhjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0
aCkKLSAgICA6IG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RhdGlzdGljcy5CYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpU
eXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICA6IG1fc2VyaWFs
QmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5D
YWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCAiQ2FjaGVTdGF0c0JHIiB9LCBXb3JrUXVldWU6
OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwgbV93cml0
ZVRpbWVyKCp0aGlzLCAmU3RhdGlzdGljczo6d3JpdGVUaW1lckZpcmVkKQogewogICAgIGluaXRp
YWxpemUoZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggOGY3YjZlM2Yy
ZGZmZDA5M2IwMmZjNzYxYWFlNjJkZTUyYTI1ZThkZS4uY2U0YTcxZWExMDczYzU0ZWYzZmVkYjky
YmFjOGJiYmJiNTBkZGFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKQEAgLTIxMyw5ICsyMTMs
OSBAQCBTdG9yYWdlOjpTdG9yYWdlKGNvbnN0IFN0cmluZyYgYmFzZURpcmVjdG9yeVBhdGgsIFNh
bHQgc2FsdCkKICAgICAsIG1fc2FsdChzYWx0KQogICAgICwgbV9yZWFkT3BlcmF0aW9uVGltZW91
dFRpbWVyKCp0aGlzLCAmU3RvcmFnZTo6Y2FuY2VsQWxsUmVhZE9wZXJhdGlvbnMpCiAgICAgLCBt
X3dyaXRlT3BlcmF0aW9uRGlzcGF0Y2hUaW1lcigqdGhpcywgJlN0b3JhZ2U6OmRpc3BhdGNoUGVu
ZGluZ1dyaXRlT3BlcmF0aW9ucykKLSAgICAsIG1faW9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJy
ZW50KSkKLSAgICAsIG1fYmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBlOjpD
b25jdXJyZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCi0gICAgLCBtX3NlcmlhbEJh
Y2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hl
LlN0b3JhZ2Uuc2VyaWFsQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3Jr
UXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX2lvUXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgIkNhY2hlU3RvcmFnZUZHIiB9
LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQorICAgICwgbV9iYWNrZ3JvdW5kSU9RdWV1
ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UuYmFj
a2dyb3VuZCIsICJDYWNoZVN0b3JhZ2VCRyIgfSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50
LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX3NlcmlhbEJhY2tncm91bmRJ
T1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFn
ZS5zZXJpYWxCYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZVNCRyIgfSwgV29ya1F1ZXVlOjpUeXBl
OjpTZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAsIG1fYmxvYlN0b3Jh
Z2UobWFrZUJsb2JEaXJlY3RvcnlQYXRoKGJhc2VEaXJlY3RvcnlQYXRoKSwgbV9zYWx0KQogewog
ICAgIGRlbGV0ZU9sZFZlcnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAKaW5kZXggZGE4ZWEzZmJiMDVlM2RmZmU0OWJlMzMyYTY2MDFlMjdhYmZjYWY0
MS4uNmZmNWEwYWQxYjY5YWY1NTk4OTJjYTk1OGNiYTFlMGMwZjdlZjM3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIENv
bm5lY3Rpb246OkNvbm5lY3Rpb24oSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlzU2VydmVy
LCBDbGllbnQmIGNsaWVudCkKICAgICAsIG1fc2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFp
bHVyZShmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFj
aygwKQogICAgICwgbV9pc0Nvbm5lY3RlZChmYWxzZSkKLSAgICAsIG1fY29ubmVjdGlvblF1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuSVBDLlJlY2VpdmVRdWV1ZSIpKQorICAgICwg
bV9jb25uZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLklQQy5SZWNl
aXZlUXVldWUiLCAiSVBDUmVjZWl2ZVF1ZXVlIiB9KSkKICAgICAsIG1faW5TZW5kU3luY0NvdW50
KDApCiAgICAgLCBtX2luRGlzcGF0Y2hNZXNzYWdlQ291bnQoMCkKICAgICAsIG1faW5EaXNwYXRj
aE1lc3NhZ2VNYXJrZWREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1JlcGx5Q291bnQoMCkKQEAg
LTcyMCw3ICs3MjAsNyBAQCB1aW50NjRfdCBDb25uZWN0aW9uOjppbnN0YWxsSW5jb21pbmdTeW5j
TWVzc2FnZUNhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYwogICAgIG1fbmV4dEluY29t
aW5nU3luY01lc3NhZ2VDYWxsYmFja0lEKys7CiAKICAgICBpZiAoIW1faW5jb21pbmdTeW5jTWVz
c2FnZUNhbGxiYWNrUXVldWUpCi0gICAgICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNr
UXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5JUEMuSW5jb21pbmdT
eW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiKTsKKyAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdl
Q2FsbGJhY2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuSVBD
LkluY29taW5nU3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlIiwgIklTeW5jTXNnQ0JRdWV1ZSIgfSk7
CiAKICAgICBtX2luY29taW5nU3luY01lc3NhZ2VDYWxsYmFja3MuYWRkKG1fbmV4dEluY29taW5n
U3luY01lc3NhZ2VDYWxsYmFja0lELCBjYWxsYmFjayk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHAKaW5kZXggMTc1Nzg5ZmI5YWU3MTNmMTZlZWVkYmZhYmUwMGQ2ZjMzZTYz
Y2YyMy4uYzc1NWVhODEyNGM5ZTA2NDVmNzczMzdlOTNhNTQxZDkyY2UxNWE3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIHZv
aWQgZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUoSVBDOjpDb25uZWN0aW9uKikKICAgICAv
LyB0aGUgcHJvY2VzcyB3aWxsIGV4aXQgZm9yY2libHkuCiAgICAgYXV0byB3YXRjaGRvZ0RlbGF5
ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoMTApOwogCi0gICAgV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuQ2hpbGRQcm9jZXNzLldhdGNoRG9nUXVldWUiKS0+ZGlzcGF0Y2hBZnRl
cih3YXRjaGRvZ0RlbGF5LCBbXSB7CisgICAgV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxl
LldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dRdWV1ZSIsICJDaGlsZFdkb2dRdWV1ZSIgfSkt
PmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwgW10gewogICAgICAgICAvLyBXZSB1c2UgX2V4
aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cgY2FsbGJhY2sgaXMgY2FsbGVkIGZyb20gYW5vdGhl
ciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQKICAgICAgICAgLy8gZ2xvYmFsIGRlc3RydWN0b3Jz
IG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxsZWQgZnJvbSB0aGlzIHRocmVhZCB3aGlsZSB0
aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAgICAgICAvLyBkb2luZyBpdHMgdGhpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuY3BwCmluZGV4IDQwZGM0ZjQ0NTZjMjhmYzkzN2Q5YTE2NmFhMjIxOWNmN2U4ZWM1MzAuLjNh
ZDIzOGI4ZTAxMjkzYzVlZGQxYTU5Mjc4OGNiNTBjNThlYmI0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9D
b21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBA
IC05Miw3ICs5Miw3IEBAIGNsYXNzIFdvcmtRdWV1ZVBvb2wgewogICAgICAgICAgICAgICAgIEFT
U0VSVChtX3NoYXJlZFdvcmtRdWV1ZSk7CiAgICAgICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZSA9IG1fc2hhcmVkV29ya1F1ZXVlOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoIm9yZy53ZWJraXQuVGhyZWFkZWRDb21wb3NpdG9yV29ya1F1ZXVlIik7CisgICAgICAgICAg
ICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9y
Zy53ZWJraXQuVGhyZWFkZWRDb21wb3NpdG9yV29ya1F1ZXVlIiwgIlRocmVhZGVkQ29tcCIgfSk7
CiAgICAgICAgICAgICAgICAgaWYgKCFtX3RocmVhZENvdW50KQogICAgICAgICAgICAgICAgICAg
ICBtX3NoYXJlZFdvcmtRdWV1ZSA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiAgICAgICAg
ICAgICAgICAgbV90aHJlYWRDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtU2hpbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0
ZW1TaGltLmNwcAppbmRleCA4NTQzM2JkNTk4NmMxMzZhOGJlY2M5ODFiZmQ3MGQ4NGVlNDdkNDZh
Li5kM2ViODQ2ZGRjMzJhMjk0YzMxMjQ5YjRjNDBlYzk4YjkxN2E2MjhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMg
V29ya1F1ZXVlJiB3b3JrUXVldWUoKQogICAgIHN0YXRpYyBXb3JrUXVldWUqIHdvcmtRdWV1ZTsK
ICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKICAgICBkaXNwYXRjaF9vbmNl
KCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIHdvcmtRdWV1ZSA9ICZXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIpLmxlYWtSZWYoKTsKKyAgICAgICAgd29ya1F1
ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW0i
LCAiU2VjSXRlbVNoaW0iIH0pLmxlYWtSZWYoKTsKIAogICAgIH0pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLmNwcAppbmRleCAzYTc0MGZkNTBhNWYzMzg0NTg5ZDA3NjI3ZGNmYzMwYTJjNjk5YWFi
Li4yM2JiZDRhODg0ODQ3MzI3MTgxYzBkM2UxODg4MzI5ZWVjYTQwYTEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAKQEAgLTY0LDkgKzY0LDkgQEAgVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSgpCiAKIFVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmU6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUoY29uc3QgV1RGOjpTdHJpbmcmIHN0b3JlUGF0
aCkKICAgICA6IG1fc3RvcmVQYXRoKHN0b3JlUGF0aCkKLSAgICAsIG1fY29tcGlsZVF1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIENvbXBpbGUgUXVldWUi
LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQpKQotICAgICwgbV9yZWFkUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVhZCBRdWV1ZSIpKQotICAg
ICwgbV9yZW1vdmVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZSBSZW1vdmUgUXVldWUiKSkKKyAgICAsIG1fY29tcGlsZVF1ZXVlKFdvcmtRdWV1ZTo6Y3Jl
YXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIsICJVQ0V4U3RD
b21wUXVldWUiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBtX3JlYWRR
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlYWQg
UXVldWUiLCAiVUNFeFN0UmRRdWV1ZSIgfSkpCisgICAgLCBtX3JlbW92ZVF1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVtb3ZlIFF1ZXVlIiwgIlVD
RXhTdFJtUXVldWUiIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMWZlMTAyNTRkN2M1NjBhY2ZhNjkw
NTE2YTUzMzhkZTQ0YjBmZDNjYS4uM2Y1MzEzMTI5ZGU2ODQ1MGIxMDE3ZTBjMjM5YzFkY2UzOWNk
MjM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIFJlZjxTdG9yYWdlTWFuYWdlcj4gU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkK
IH0KIAogU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VNYW5hZ2VyKGNvbnN0IFN0cmluZyYgbG9jYWxT
dG9yYWdlRGlyZWN0b3J5KQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5TdG9yYWdlTWFuYWdlciIpKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VNYW5hZ2VyIiwgIlN0b3JhZ2VNZ3IiIH0p
KQogICAgICwgbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIoTG9jYWxTdG9yYWdlRGF0YWJh
c2VUcmFja2VyOjpjcmVhdGUobV9xdWV1ZS5jb3B5UmVmKCksIGxvY2FsU3RvcmFnZURpcmVjdG9y
eSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBlbmNvZGluZyBpcyBpbml0aWFsaXplZCBiZWZv
cmUgd2Ugc3RhcnQgZGlzcGF0Y2hpbmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAKaW5kZXggYzJmOGU2YTRiYTczNTBhNDYzYTQ1OWRlNDhlNTZhYWRmYmQyYTI1MC4u
N2U5MDc2OTU1MDhjZWMyNTE1OGE0NmJmZGFmOTJjZmY1OTdmMjQ3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoY29uc3QKIAogV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoY29uc3QgU3RyaW5nJiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQogICAgIDog
bV9yZXNvdXJjZVN0YXRpc3RpY3NTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNy
ZWF0ZSgpKQotICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiKSkKKyAgICAsIG1f
c3RhdGlzdGljc1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBQcm9jZXNzIERhdGEgUXVldWUiLCAiV2ViUnNTdGF0UXVldWUiIH0pKQogICAg
ICwgbV9zdG9yYWdlUGF0aChyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCmluZGV4IDdhODQzYjFmMDQzYmY3ZDBlYzdlYzNmNmIzZDE3OTEwMzNk
ZmVlMWMuLjEwNDYyNjNkZmExNDA3OGI0MTU3NmU5NDg2ZmI1NThjOThmYzUzMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURh
dGFTdG9yZShDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2NvbmZpZ3VyYXRp
b24oV1RGTW92ZShjb25maWd1cmF0aW9uKSkKICAgICAsIG1fc3RvcmFnZU1hbmFnZXIoU3RvcmFn
ZU1hbmFnZXI6OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ubG9jYWxTdG9yYWdlRGlyZWN0b3J5KSkK
ICAgICAsIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyhXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmNyZWF0ZShtX2NvbmZpZ3VyYXRpb24ucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeSkpCi0gICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LldlYnNpdGVEYXRhU3RvcmUiKSkKKyAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAi
Y29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3JlIiwgIldlYkRhdGFTdG9yZSIgfSkpCiB7
CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiB9CkBAIC04OSw3ICs4OSw3IEBAIFdlYnNpdGVE
YXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0ZUlkZW50aWZpZXIoKSkKICAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKICAgICAsIG1fY29uZmlndXJhdGlvbigpCi0gICAgLCBtX3F1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiKSkKKyAg
ICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5XZWJzaXRl
RGF0YVN0b3JlIiwgIldlYkRhdGFTdG9yZSIgfSkpCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbGludXgvTWVtb3J5
UHJlc3N1cmVNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1v
cnlQcmVzc3VyZU1vbml0b3IuY3BwCmluZGV4IDA2MDhhYjcyZjk5MjQ4ZWYyNGNkMmQ1MjQ1ZWU1
MzMzYTAwZDlkMGQuLmUyMDlkZmQxYmFiNmVjMmVlYzkzMjQ4ZmUzNDY1NjcxZDAzZGExMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1v
bml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVz
c3VyZU1vbml0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgTWVtb3J5UHJlc3N1cmVNb25pdG9y
OjpNZW1vcnlQcmVzc3VyZU1vbml0b3IoKQogICAgIGlmIChtX2V2ZW50RkQgPT0gLTEpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNy
ZWF0ZVRocmVhZCgiTWVtb3J5UHJlc3N1cmVNb25pdG9yIiwgW3RoaXNdIHsKKyAgICBUaHJlYWRJ
ZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoeyAiTWVtb3J5UHJlc3N1
cmVNb25pdG9yIiwgIk1lbVByZXNzTW9uaXRvciIgfSwgW3RoaXNdIHsKICAgICAgICAgZG91Ymxl
IHBvbGxJbnRlcnZhbCA9IHNfbWF4UG9sbGluZ0ludGVydmFsSW5TZWNvbmRzOwogICAgICAgICB3
aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgc2xlZXAocG9sbEludGVydmFsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCmluZGV4IDIx
ZWE3YjAxMmIxODk4ZDIxMDEyYjIyODcyNWJlZTEwNmZjYTZkYjQuLmMzZjAxNWVmN2Q2MmFhNGQz
YTYzZWVkNWI0NWI5YjM5MmJiNzg1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcApAQCAtNDcsNyArNDcsNyBAQCBTZWNJdGVtU2hp
bVByb3h5JiBTZWNJdGVtU2hpbVByb3h5OjpzaW5nbGV0b24oKQogfQogCiBTZWNJdGVtU2hpbVBy
b3h5OjpTZWNJdGVtU2hpbVByb3h5KCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
ImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW1Qcm94eSIpKQorICAgIDogbV9xdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltUHJveHkiLCAiU2Vj
SXRlbVNoaW1QIiB9KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcAppbmRleCBjYmM0ZjBlM2U4NDI5YmFhZDVlODhjYWFlMzZkNWZiMzUxOWQ4ODZiLi42NDgy
NzliODU2YTlhODkwM2I1OWViODcyMGZjZTQ1YjViNjRiNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8UGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyPiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmNyZWF0
ZSgpCiB9CiAKIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyIikpCisgICAgOiBtX3F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb25NYW5hZ2VyIiwgIlBsdWdpbkNvbm5NZ3IiIH0pKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmlu
ZGV4IDFmMjIyNjU4YzkwNmI3M2Y3NTU0MWFjYTM3MmU4ZWY1MDk5OGQxN2EuLjE3ODU4Nzc1NTMz
M2M1MjZhNmZhZDQ4YWU2N2RmNzlkZjA5NWVjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIFJlZjxFdmVudERpc3BhdGNoZXI+IEV2ZW50RGlzcGF0Y2hlcjo6Y3JlYXRlKCkKIH0KIAog
RXZlbnREaXNwYXRjaGVyOjpFdmVudERpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5FdmVudERpc3BhdGNoZXIiLCBXb3JrUXVldWU6
OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCisgICAgOiBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuRXZlbnREaXNwYXRj
aGVyIiwgIkV2ZW50RGlzcGF0Y2giIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVl
dWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERlbHRh
RmlsdGVyKFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRj
aGVyLmNwcAppbmRleCBjOGUzNjM4NjFmMjA1N2EwODZhM2Y3OGQ1ZGI0NWIyM2EwYzViODZhLi43
YTVmMTRlZDdmYzEwMDQzYzBlMDRmZGMzYTMxOTIzY2UwYWM2MjYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hl
ci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgUmVmPFZpZXdVcGRhdGVEaXNwYXRjaGVyPiBWaWV3VXBk
YXRlRGlzcGF0Y2hlcjo6Y3JlYXRlKCkKIH0KIAogVmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdV
cGRhdGVEaXNwYXRjaGVyKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuVmlld1VwZGF0ZURpc3BhdGNoZXIiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIsICJW
VXBkYXRlRGlzcGF0Y2giIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E1MGJjN2JmYzU1ZWQ2YzU1ZjgxZTgxYTcyYzg5MWI2
MzY3MTFmNy4uNDFhZWFlMDU0YWIzNGFlYzdhOGU3ZDQ0YmJjODk5ODZmYjY5ZjMwMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDE3LTAxLTA5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHA6CisgICAgICAgIChydW5KYXZhU2NyaXB0
VGhyZWFkKToKKyAgICAgICAgKHN0YXJ0SmF2YVNjcmlwdFRocmVhZHMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHRlc3RUaHJlYWRJ
ZGVudGlmaWVyTWFwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRp
b24uY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6cnVuTG9ja1Rlc3QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VG9VcHBlckNvbnZlcnRlcjo6cHJvZHVjZVF1ZXVlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRvVXBwZXJDb252ZXJ0ZXI6OmNvbnN1bWVRdWV1ZSk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xp
Yi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0VGVzdFNlcnZlcjo6V2ViS2l0VGVzdFNlcnZlcik6CisKIDIwMTctMDEtMDkgIE1pbGFuIENy
aGEgIDxtY3JoYUByZWRoYXQuY29tPgogCiAgICAgICAgIHByZXBhcmUtQ2hhbmdlTG9nOiBDb3Jy
ZWN0IGhlbHAgc3RyaW5nIGZvciAtLXN0eWxlIG9wdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCBlMmY5YmFkZTZjYTdjMjY5NDg1YTRjZGNi
ZTYwOTljMzZiYTAyMTk4Li45YjU2MThhNTljMTYzOTY2MTgwYzMyZjc5OGQyZGQzZjNjNDI3NGU5
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcApAQCAt
MTExLDcgKzExMSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAg
VGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAgICAgIGRldGFj
aFRocmVhZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSh0aHJl
YWQpOwotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1bkph
dmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQo
Y3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIiLCAiIiB9KSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgc3RhcnRKYXZhU2Ny
aXB0VGhyZWFkcygpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRl
eCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgamF2YVNjcmlwdFRocmVhZHNDb3Vu
dDsgKytpKQotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1
bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5h
ZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIiLCAiIiB9KSk7CiB9
CiAKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA3MTgxMzc3MGI4NzczNDM5Y2M2MGYzODcyZjg1NWI0
MmZmMmMzNmYwLi43YTBiNWIwNmY2ZjFlNjNlZjVmNDVlMjYxZjg0MjJmYzc2NGIzOWE2IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMTA3LDcgKzEx
MDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VGhyZWFkSWRlbnRpZmllck1hcCgpCiAKICAgICAvLyBO
b3cgY3JlYXRlIGFub3RoZXIgdGhyZWFkIHVzaW5nIFdURi4gT24gT1NYLCBpdCB3aWxsIGhhdmUg
dGhlIHNhbWUgcHRocmVhZCBoYW5kbGUKICAgICAvLyBidXQgc2hvdWxkIGdldCBhIGRpZmZlcmVu
dCBUaHJlYWRJZGVudGlmaWVyLgotICAgIGNyZWF0ZVRocmVhZChydW5UaHJlYWQsIDAsICJEdW1w
UmVuZGVyVHJlZTogdGVzdCIpOworICAgIGNyZWF0ZVRocmVhZChydW5UaHJlYWQsIDAsIHsgIkR1
bXBSZW5kZXJUcmVlOiB0ZXN0IiwgIkRSVFRlc3QiIH0pOwogfQogCiBzdGF0aWMgdm9pZCBhbGxv
Y2F0ZUdsb2JhbENvbnRyb2xsZXJzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
b25kaXRpb24uY3BwCmluZGV4IDg0ODUyNzM1MWY2MDYzZmMyNjM2ODc4MDU2ZDljMjRkYmFiZTgz
ZGMuLmI4NTE0ZDdjYWUxNTE1YTdlNmI0NmYyNTYwNGJkOWNmNWI5Y2FhMWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2
b2lkIHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29uc3VtZXJzOyBp
LS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0
ZVRocmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAgICAgICAgeyAi
Q29uc3VtZXIgdGhyZWFkIiwgIkNvbnN1bWVyIiB9LAogICAgICAgICAgICAgWyZdICgpIHsKICAg
ICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJl
c3VsdDsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIHJ1blRlc3QoCiAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0
aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIlByb2R1Y2VyIFRo
cmVhZCIsCisgICAgICAgICAgICB7ICJQcm9kdWNlciBUaHJlYWQiLCAiUHJvZHVjZXIiIH0sCiAg
ICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0xvY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9j
ay5jcHAKaW5kZXggNTU3NjMwMmQ2OTBkZmNhMzU5OTI5MjhiMWM4NTNjNzYyMmU0NWZiOS4uNTc2
M2EwNGEzNjRhNTFhMTgyN2U5MGYyZWE4OTRmZjkzNGY1NTAyOSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvTG9jay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBydW5Mb2NrVGVzdCh1
bnNpZ25lZCBudW1UaHJlYWRHcm91cHMsIHVuc2lnbmVkIG51bVRocmVhZHNQZXJHcm91cCwgdW5z
aWduZWQKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkc1Bl
ckdyb3VwOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgdGhyZWFkc1t0aHJlYWRHcm91
cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFk
KAotICAgICAgICAgICAgICAgICJMb2NrIHRlc3QgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICB7
ICJMb2NrIHRlc3QgdGhyZWFkIiwgIkxvY2tUZXN0ZXIiIH0sCiAgICAgICAgICAgICAgICAgW3Ro
cmVhZEdyb3VwSW5kZXgsICZsb2NrcywgJndvcmRzLCBudW1JdGVyYXRpb25zLCB3b3JrUGVyQ3Jp
dGljYWxTZWN0aW9uXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IG51bUl0ZXJhdGlvbnM7IGktLTspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tzW3Ro
cmVhZEdyb3VwSW5kZXhdLmxvY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
UGFya2luZ0xvdC5jcHAKaW5kZXggYzY3ZTFlMDgxNWE4M2FmYTkzMzNlMmFjOWEyYmQ3OGI2N2Ix
NjQ1Yi4uZDAxNjU0MWUwNzBmODEyODIwNTRjOTNmZDYxZmM5MmM3ZDZhZTMwMiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgc3RydWN0IFNpbmdsZUxhdGNoVGVzdCB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51
bVRocmVhZHM7IGktLTspIHsKICAgICAgICAgICAgIHRocmVhZHMuYXBwZW5kKAogICAgICAgICAg
ICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAgICAgIlBhcmtpbmcgVGVzdCBU
aHJlYWQiLAorICAgICAgICAgICAgICAgICAgICB7ICJQYXJraW5nIFRlc3QgdGhyZWFkIiwgIlBh
cmtpbmdUZXN0ZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGN1cnJlbnRUaHJlYWQoKSk7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5jcHAKaW5kZXggMzE0MzZiYzIyMzA3ZjlkZDczZjY5MThiMjRhZGI0MGU3ODlmYjVlYy4uMWI4
Y2E0ZmIwOWQzMTY0YjVhMTlhY2M2ZjhmMzhiNTRkMjI5ODMzYiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAK
QEAgLTYyLDE0ICs2MiwxNCBAQCBjbGFzcyBUb1VwcGVyQ29udmVydGVyIHsKICAgICBXb3JrUXVl
dWUqIHByb2R1Y2VRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcHJvZHVjZVF1ZXVlKQot
ICAgICAgICAgICAgbV9wcm9kdWNlUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtp
dC5Qcm9kdWNlIik7CisgICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKHsgIm9yZy53ZWJraXQuUHJvZHVjZSIsICJQcm9kdWNlciIgfSk7CiAgICAgICAgIHJldHVy
biBtX3Byb2R1Y2VRdWV1ZS5nZXQoKTsKICAgICB9CiAKICAgICBXb3JrUXVldWUqIGNvbnN1bWVR
dWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fY29uc3VtZVF1ZXVlKQotICAgICAgICAgICAg
bV9jb25zdW1lUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5Db25zdW1lIik7
CisgICAgICAgICAgICBtX2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53
ZWJraXQuQ29uc3VtZSIsICJDb25zdW1lciIgfSk7CiAgICAgICAgIHJldHVybiBtX2NvbnN1bWVR
dWV1ZS5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dvcmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3Jr
UXVldWUuY3BwCmluZGV4IDdlMjc3ZTk0YzQ3Y2UzY2UyZmI4MjUyZjZjZGMzYTU1YWYzN2JlNzku
LmE4ZWJhMTkwZWNhZmQ1MTQ0YzE3NTgxZWYzMTIxMWNlMGViMDQ0YWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBURVNU
KFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogbG9uZ1Rlc3RM
YWJlbCA9ICJsb25nVGVzdCI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRoaXJkVGVzdExhYmVs
ID0gInRoaXJkVGVzdCI7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuVGVzdC5zaW1wbGUiKTsKKyAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIsICJTaW1wbGVUZXN0IiB9
KTsKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7CiAgICAgRVhQ
RUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKQEAgLTEwNiw4ICsxMDYsOCBAQCBURVNUKFdU
Rl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBib29sIGNhbGxlZExvbmdUZXN0ID0gZmFsc2U7
CiAgICAgYm9vbCBjYWxsZWRUaGlyZFRlc3QgPSBmYWxzZTsKICAgICAKLSAgICBhdXRvIHF1ZXVl
MSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIp
OwotICAgIGF1dG8gcXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQu
VGVzdC50d29RdWV1ZXMyIik7CisgICAgYXV0byBxdWV1ZTEgPSBXb3JrUXVldWU6OmNyZWF0ZSh7
ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIsICJUd29RdWV1ZXMxVGVzdCIgfSk7
CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0
LlRlc3QudHdvUXVldWVzMiIsICJUd29RdWV1ZXMyVGVzdCIgfSk7CiAKICAgICBFWFBFQ1RfRVEo
MSwgcXVldWUxLT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUyLT5yZWZDb3Vu
dCgpKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0
ZXIpCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CiAgICAgYm9vbCBjYWxsZWRE
aXNwYXRjaEFmdGVyVGVzdCA9IGZhbHNlOwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgIGF1dG8g
cXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0
Y2hBZnRlciIsICJEaXNwYXRjaEFmdGVyIiB9KTsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CiAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERlc3Ryb3lP
blNlbGYpCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihsb2NrKTsKICAgICAgICAg
ewotICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdv
cmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kZXN0cm95T25TZWxmIiwg
IkRlc3Ryb3lPblNlbGYiIH0pOwogICAgICAgICAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewogICAgICAgICAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJU
ZXN0U3RhcnRlZC53YWl0KGxvY2ssIFsmXSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAppbmRleCA5OTIzZDY1ODAwZWQ3MTRi
YTY4MDZiMTNmN2U1MWZlZTU4MDM1YWQwLi40Y2E0ZThkYmZkM2U3OGVjNmZmOGNiOWY1OTY0MjI4
N2I1ZDRlZDhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGli
L1dvcmtRdWV1ZUdMaWIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2ds
aWIvV29ya1F1ZXVlR0xpYi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVl
LCBBc3luY0lPKQogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBj
b250ZXh0OwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlRlc3QuQXN5bmNJTyIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0
ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIsICJBc3luY0lPVGVzdCIgfSk7CiAg
ICAgY29udGV4dC5tX21haW5Db250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOwogICAg
IEVYUEVDVF9GQUxTRShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSk7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNl
cnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RT
ZXJ2ZXIuY3BwCmluZGV4IGRlOTQ2NmMzOWQ3MWNmYzJhYmY0NDlmY2ZkZTM4OWI1NDQ5ZGYzMjcu
LmRiYzUzNWIxMjE0YmRhOThkZmMwODMzM2IyZjE3YmIwOTJkMTY1OTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNw
cApAQCAtMjgsNyArMjgsNyBAQCBXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKFNl
cnZlck9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBpZiAob3B0aW9ucyAmIFNlcnZlclJ1bkluVGhy
ZWFkKSB7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgICAgICBtX3F1
ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIldlYktpdFRlc3RTZXJ2ZXIiKTsKKyAgICAgICAgbV9x
dWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIldlYktpdFRlc3RTZXJ2ZXIiLCAiVGVzdFNlcnZl
ciIgfSk7CiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzc2xDZXJ0aWZpY2F0ZUZpbGU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298583</attachid>
            <date>2017-01-11 07:33:29 -0800</date>
            <delta_ts>2017-01-11 07:42:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170112003150.patch</filename>
            <type>text/plain</type>
            <size>104098</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWMyZTliMDVhZjdhMjQ5NTEwMmU3YWVjOWI3NGFlMmNkYTE2MTNhLi43YmNmZGQ3Nzg3M2JmN2I4
YjNhYzgxOWZhYmYwYmEwMTM4MGFjZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wMS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCisyMDE3LTAxLTEx
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIERlY291
cGxlIG1vZHVsZSBsb2FkaW5nIGluaXRpYXRvciBmcm9tIFNjcmlwdEVsZW1lbnQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Njg4OAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAy
NjU2Y2RlOGNjNDZmMTBjMDM4MmQzMTEyNWFiNTU2Nzc5MDFkY2YuLmQxZWQzMGIxMjZhOTJjNTJh
MDBjZWQ2ZmFmYmNmNjE3MTI3NDBhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTctMDEtMTEg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIFRo
cmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFRo
cmVhZE5hbWUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWluZworICAgICAgICBwb2xpY3kgZm9y
IHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIFRocmVhZE5hbWUgdGFrZXMgMiBuYW1lcywg
c2hvcnQgYW5kIGxvbmcgbmFtZXMuIFRoZSBsb25nIG5hbWUKKyAgICAgICAgaXMgdXNlZCBmb3Ig
bWFjT1MgYW5kIGlPUyBzaW5jZSB0aGV5IGRvIG5vdCBoYXZlIHRoZSBsaW1pdGF0aW9uLiBPbiB0
aGUKKyAgICAgICAgb3RoZXIgaGFuZCwgTGludXggb25seSBhbGxvd3MgMTUgY2hhcmFjdGVycyBm
b3IgdGhyZWFkIG5hbWVzLiBTbyBmb3IKKyAgICAgICAgTGludXgsIHdlIHVzZSB0aGUgc2hvcnQg
bmFtZS4gV2luZG93cyBhbHNvIGhhcyAzMSBjaGFyYWN0ZXJzIGxpbWl0YXRpb24uCisgICAgICAg
IFdpbmRvd3MgYWxzbyB1c2VzIHRoZSBzaG9ydCBuYW1lLgorCisgICAgICAgIFdoZW4geW91IHNw
ZWNpZnkgdGhlIG5hbWUgbGlrZSwKKworICAgICAgICAgICAgeyAiQXN5bmNocm9ub3VzIERpc2Fz
c2VtYmxlciIsICJBc3luY0Rpc2FzbSIgfSwKKworICAgICAgICBUaGUgdGhyZWFkIG5hbWUgYmVj
b21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIFdp
bmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1MgYW5kIGlPUzog
IldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBUaHJlYWROYW1l
IGNoZWNrcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydCBuYW1lIGlzIDw9IDE1IGF0IGNvbXBpbGUK
KyAgICAgICAgdGltZS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCwgY29tcGlsZSBlcnJv
ciBvY2N1cnMuCisKKyAgICAgICAgVGhlICJXZWJLaXQ6ICIgcHJlZml4IGlzIGF1dG9tYXRpY2Fs
bHkgYWRkZWQgYnkgVGhyZWFkTmFtZS4KKyAgICAgICAgVGhpcyBwcmVmaXggaXMgaW1wb3J0YW50
IHNpbmNlIGl0IGNhbiBzYXkgdGhhdCB0aGlzIHRocmVhZCBpcyByZWxhdGVkIHRvIFdlYktpdC4K
KyAgICAgICAgV2hlbiB1c2luZyBXZWJLaXQgYXMgZnJhbWV3b3JrLCBXZWJLaXQgcmVsYXRlZCB0
aHJlYWRzIHdpbGwgYmUgbGF1bmNoZWQgYWxvbmcKKyAgICAgICAgd2l0aCB1c2VyIGFwcGxpY2F0
aW9uJ3MgdGhyZWFkcy4gV2l0aG91dCAiV2ViS2l0OiAiIHByZWZpeCwgaXQgaXMgYSBiaXQgZGlm
ZmljdWx0CisgICAgICAgIHRvIGRpc3Rpbmd1aXNoIHVzZXIncyB0aHJlYWRzIGZyb20gV2ViS2l0
IHJlbGF0ZWQgb25lcy4KKworICAgICAgICBXZSBhcHBseSB0aGlzIHBvbGljeSB0byBhbGwgdGhl
IFdlYktpdCB0aHJlYWQgbmFtZXMgZXhjZXB0IGZvciBibWFsbG9jJ3Mgb25lLgorICAgICAgICBU
aGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBbMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njg0CisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVk
VGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcDoKKyAg
ICAgICAgKiBiZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAqIHd0Zi9BdXRv
bWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRp
Y1RocmVhZCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQpOgorICAgICAg
ICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBl
clBvb2wpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZDo6VGhyZWFk
KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsSGVscGVyUG9vbDo6bmFtZSk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRl
Ojp0cnlMb2NrRm9yKToKKyAgICAgICAgKiB3dGYvVGhyZWFkTmFtZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6VGhyZWFkTmFtZTo6VGhyZWFkTmFtZSk6CisgICAgICAgIChXVEY6OlRocmVhZE5h
bWU6Om5hbWUpOgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpzdHJpbmdMZW5ndGgpOgorICAg
ICAgICAoV1RGOjpUaHJlYWROYW1lOjpwcmVmaXhlZE5hbWUpOgorICAgICAgICAqIHd0Zi9UaHJl
YWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpu
b3JtYWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6
CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3Jl
YXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVh
ZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdU
Rjo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0
ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAg
KFdURjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtR
dWV1ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAg
ICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29h
LmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1
ZXVlOjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVh
dGUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0
Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3Bw
OgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0
Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVND
SUlMaXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBj
aGFyKik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFT
Q0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlM
aXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dp
bi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQ
bGF0Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAo
V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEtMDYgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAg
ICAgICAgW0dUS10gU2hvdWxkIHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5
Ym9hcmQgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAxOWE5MmEwZTk5YTg4MWJhZDIwZjEwNzM4MTAy
MzFmMDJhOTdhNS4uMzJhNjQzMGFkZGM3NWU1YmMwOGNmMTlhMzMyOTQwNWUwYWJhMTE1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE3LTAxLTExICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkg
bG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6SURCU2VydmVyKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2Rlcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6Omdh
cmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcpOgorICAgICAgICAqIGNy
eXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpT
dWJ0bGVDcnlwdG8pOgorICAgICAgICAqIGZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGxPbkZpbGVUaHJlYWQpOgorICAgICAgICAqIGxvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Om9wZW4p
OgorICAgICAgICAqIHBhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRG
RGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZv
bHZlcjo6UmV2ZXJiQ29udm9sdmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUJ1c0Zyb21BdWRpb0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUluTWVt
b3J5QXVkaW9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2Fj
aGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1ZXVl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vbGludXgv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YmxvYlV0aWxpdHlRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9EYXRhVVJM
RGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlUXVl
dWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmxvYWRlclJ1bkxvb3ApOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhyZWFkKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0
YXJ0KToKKworMjAxNy0wMS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4KKwogICAgICAgICBEZWNvdXBsZSBtb2R1bGUgbG9hZGluZyBpbml0aWF0b3IgZnJvbSBTY3Jp
cHRFbGVtZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY4ODgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWZkODVjYWFmZTRlZDhlZTQ4YTUxYmQxNzVjNmI0NmQ1
YzZlZjFmLi5jNGE3ZTFkODY5YzY0ZjFiZTg4MmY1MzcyM2VlYzYxMDQzZmI3ZjRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAxLTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkgbG9uZyBh
bmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wNSAgUGVyIEFybmUgVm9sbGFuICA8cHZv
bGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQ29tcGlsZSBlcnJvci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA1MzFlMWIyMWM5OTVkNGExY2I3YmY5MWRkOWEyMzgzOTgwN2Y4ZDA1Li5mMGM5OGNhNjRm
ZjBjYWZkZjA2ZTQxZDNiYWNmMWFjMWY0YmFhM2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTctMDEtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQ
cm9jZXNzOjpEYXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6
OmRlbGV0ZUR1bXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVJT0NoYW5uZWxTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJ
T0NoYW5uZWw6OnJlYWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OlN0YXRpc3RpY3M6OlN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OlN0b3JhZ2U6OlN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Om1fYmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om1f
c2VyaWFsQmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2spOgor
ICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaWRD
bG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldvcmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9yQ29udGV4
dCk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OndvcmtRdWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSk6CisgICAgICAgIChBUEk6Om1fcmVhZFF1ZXVl
KToKKyAgICAgICAgKEFQSTo6bV9yZW1vdmVRdWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdl
cjo6U3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TWVtb3J5UHJlc3N1cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNl
Y0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0ZURpc3Bh
dGNoZXIpOgorCiAyMDE3LTAxLTEwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBObyB3YXkgZm9yIGFwcGxpY2F0aW9ucyB0byBzZXQg
bm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIHdpdGhvdXQgd2FpdGluZyBmb3IgcGVybWlzc2lvbiBy
ZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBh
cmVBbmRTd2FwVGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBh
cmVBbmRTd2FwVGVzdC5jcHAKaW5kZXggZTc4MDg2YzNhOTYxMmEyZjBiNGQ3YWFmMWFkYzdiYTFh
MTAxYzU0Ny4uMTRjM2U0ZGRkNTYwOTgzNTRiMmQ2YzkyYzc2NTRkMmRmNWNhMDI0MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBU
ZXN0LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgdGVzdENvbXBhcmVBbmRTd2FwKCkKICAg
ICAgICAgZGF0YVtpXS5pZCA9IGk7CiAgICAgICAgIGRhdGFbaV0ubnVtVGhyZWFkcyA9IG51bVRo
cmVhZHM7CiAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiB0aHJlYWRGdW5jID0gc3RkOjpi
aW5kKHNldEJpdFRocmVhZEZ1bmMsICZkYXRhW2ldKTsKLSAgICAgICAgdGhyZWFkSURzW2ldID0g
Y3JlYXRlVGhyZWFkKCJzZXRCaXRUaHJlYWRGdW5jIiwgdGhyZWFkRnVuYyk7CisgICAgICAgIHRo
cmVhZElEc1tpXSA9IGNyZWF0ZVRocmVhZCh7ICJzZXRCaXRUaHJlYWRGdW5jIiwgInNldEJpdFRo
cmVhZEZ1bmMiIH0sIHRocmVhZEZ1bmMpOwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBm
b3IgJWQgdGhyZWFkcyB0byBqb2luXG4iLCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4
NGQ0NTc2Y2Y0NGYuLjQzZDc5OGQ1Y2M3YzIyMjg1OTFmZjIwMmFhNjU4ODE0ZDJkOGEyYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEz
LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9
IGZpbHRlciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAg
ICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAg
ICAgICAgICAidGVzdGIzIHRocmVhZCIsCisgICAgICAgICAgICAgICAgeyAidGVzdGIzIHRocmVh
ZCIsICJUZXN0QjNUaHJlYWQiIH0sCiAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAg
ICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFNo
YXJlZFRhc2s8dm9pZCgpPj4gdGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKaW5k
ZXggZmMzM2M2ZmNmYWRmODkyOGQ3YmUyZjRhMmMzMjM3OWMwNWI0NTVlMS4uYTgwYmM3ZTJhZGNl
MGUwZmQxMDc0NzY3Y2ZlMWMxNzFmNDZlNDFjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAKQEAgLTE1NjYxLDcgKzE1NjYxLDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVy
KQogICAgIGZvciAodW5zaWduZWQgaSA9IGZpbHRlciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKTsgaS0tOykgewogICAgICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAg
IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAidGVzdGIzIHRocmVhZCIsCisgICAgICAg
ICAgICAgICAgeyAidGVzdGIzIHRocmVhZCIsICJUZXN0QjNUaHJlYWQiIH0sCiAgICAgICAgICAg
ICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCgpPj4gdGFzazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKaW5kZXggYTRlMjFm
OWZhM2NkNDcyMWVhMjY3NWUwNmU0ZDUzMGM1YmE5NWIzNS4uY2IyZDY4YzJhZWRmMGU1YjJiMzU0
YzE5NjU3MTdiNWIyZTM1ZjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N1cGVyU2FtcGxlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBpbml0aWFsaXplU3Vw
ZXJTYW1wbGVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY3JlYXRlVGhyZWFkKAotICAgICAg
ICAiSlNDIFN1cGVyIFNhbXBsZXIiLAorICAgICAgICB7ICJKU0MgU3VwZXIgU2FtcGxlciIsICJT
dXBlclNhbXBsZXIiIH0sCiAgICAgICAgIFtdICgpIHsKICAgICAgICAgICAgIGNvbnN0IGludCBz
bGVlcFF1YW50dW0gPSAxMDsKICAgICAgICAgICAgIGNvbnN0IGludCBwcmludGluZ1BlcmlvZCA9
IDEwMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDEx
NGNhOTU3MTQ0ZGI1MjgwOGNlODUzZDMxZjc2NWJkMjJmY2FiZWIuLjJmNzFlNjI1OTkzYTk4OWRm
OGI5ZmQ2OWMxYzYxNTBmOTMyZWU3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21hdGljVGhy
ZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwg
V29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVm
UHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlv
cml0eSkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBjb25kaXRpb24p
CisgICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3Jr
bGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0aXZlUHJpb3JpdHksIFRocmVhZE5h
bWUgdGhyZWFkTmFtZSkKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBj
b25kaXRpb24sIHRocmVhZE5hbWUpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAg
ICAgICAgLCBtX2RhdGEoZGF0YSkKICAgICAgICAgLCBtX3JlbGF0aXZlUHJpb3JpdHkocmVsYXRp
dmVQcmlvcml0eSkKQEAgLTE3Myw4ICsxNzMsOCBAQCBjbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9k
eSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogICAgIFJlZlB0cjxQbGFuPiBtX3BsYW47CiB9
OwogCi1Xb3JrbGlzdDo6V29ya2xpc3QoQ1N0cmluZyB3b3JrbGlzdE5hbWUpCi0gICAgOiBtX3Ro
cmVhZE5hbWUodG9DU3RyaW5nKHdvcmtsaXN0TmFtZSwgIiBXb3JrZXIgVGhyZWFkIikpCitXb3Jr
bGlzdDo6V29ya2xpc3QoVGhyZWFkTmFtZSB0aHJlYWROYW1lKQorICAgIDogbV90aHJlYWROYW1l
KHRocmVhZE5hbWUpCiAgICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1f
cGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBt
X251bWJlck9mQWN0aXZlVGhyZWFkcygwKQpAQCAtMjAwLDE0ICsyMDAsMTQgQEAgdm9pZCBXb3Jr
bGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRp
dmVQcmlvcml0eSkKICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBudW1iZXJPZlRocmVhZHM7IGktLTspIHsKICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMp
OwotICAgICAgICBkYXRhLT5tX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tl
ciwgKnRoaXMsICpkYXRhLCBtX2xvY2ssIG1fcGxhbkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5
KSk7CisgICAgICAgIGRhdGEtPm1fdGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJvZHkobG9j
a2VyLCAqdGhpcywgKmRhdGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1ZWQsIHJlbGF0aXZlUHJpb3Jp
dHksIG1fdGhyZWFkTmFtZSkpOwogICAgICAgICBtX3RocmVhZHMuYXBwZW5kKFdURk1vdmUoZGF0
YSkpOwogICAgIH0KIH0KIAotUmVmPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKENTdHJpbmcg
d29ya2xpc3ROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9y
aXR5KQorUmVmPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKFRocmVhZE5hbWUgdGhyZWFkTmFt
ZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKIHsKLSAg
ICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3RO
YW1lKSk7CisgICAgUmVmPFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0
KHRocmVhZE5hbWUpKTsKICAgICByZXN1bHQtPmZpbmlzaENyZWF0aW9uKG51bWJlck9mVGhyZWFk
cywgcmVsYXRpdmVQcmlvcml0eSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTQ5NCw3ICs0
OTQsNyBAQCBXb3JrbGlzdCYgZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBz
dGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAg
ICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJERkcgV29ya2xp
c3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlv
cml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVH
bG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKHsgIkRGRyBXb3JrbGlzdCIsICJE
RkdXb3JrbGlzdCIgfSwgT3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0
aW9uczo6cHJpb3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAg
ICB9KTsKICAgICByZXR1cm4gKnRoZUdsb2JhbERGR1dvcmtsaXN0OwogfQpAQCAtNTEwLDcgKzUx
MCw3IEBAIFdvcmtsaXN0JiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAg
ICAgIHRoZUdsb2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlz
dCIsIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9y
aXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUds
b2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoeyAiRlRMV29ya2xpc3QiLCAiRlRM
V29ya2xpc3QiIH0sIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlv
bnM6OnByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAg
fSk7CiAgICAgcmV0dXJuICp0aGVHbG9iYWxGVExXb3JrbGlzdDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCAzNjYxZTZlZTgzZDM1NDc3ZjdiYWY4NzQ4YTcy
NDQ1ODZhMDM5MGE1Li41MmQyYzhhZmFlM2VhYzBlMTA2NGNlNWFlODcyNDY4ZjhmYmEzNjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC00OCw3ICs0OCw3IEBA
IGNsYXNzIFdvcmtsaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKIAogICAgIH5X
b3JrbGlzdCgpOwogICAgIAotICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3RyaW5n
IHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlv
cml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShUaHJlYWROYW1lLCB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAgICAg
CiAgICAgdm9pZCBlbnF1ZXVlKFBhc3NSZWZQdHI8UGxhbj4pOwogICAgIApAQCAtODIsNyArODIs
NyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFdvcmts
aXN0KENTdHJpbmcgd29ya2xpc3ROYW1lKTsKKyAgICBXb3JrbGlzdChUaHJlYWROYW1lKTsKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50KTsKICAg
ICAKICAgICBjbGFzcyBUaHJlYWRCb2R5OwpAQCAtOTUsNyArOTUsNyBAQCBjbGFzcyBXb3JrbGlz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB2b2lkIGR1bXAoY29uc3Qg
TG9ja0hvbGRlciYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCi0gICAgQ1N0cmluZyBtX3Ro
cmVhZE5hbWU7CisgICAgVGhyZWFkTmFtZSBtX3RocmVhZE5hbWU7CiAgICAgCiAgICAgLy8gVXNl
ZCB0byBpbmZvcm0gdGhlIHRocmVhZCBhYm91dCB3aGF0IHdvcmsgdGhlcmUgaXMgbGVmdCB0byBk
by4KICAgICBEZXF1ZTxSZWZQdHI8UGxhbj4+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKaW5kZXggNzg4YTZjMzYy
MzY5YzU4ZGFkMjlhNjBhMzg3MTA0NGU0NjRlZDMwNS4uMWQ1YzVmZTZjNWQ0OTU4MDJhODBkMzBi
NGU2MDVkYmQwZjFkYjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fz
c2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNh
c3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBBc3luY2hy
b25vdXNEaXNhc3NlbWJsZXIgewogcHVibGljOgogICAgIEFzeW5jaHJvbm91c0Rpc2Fzc2VtYmxl
cigpCiAgICAgewotICAgICAgICBjcmVhdGVUaHJlYWQoIkFzeW5jaHJvbm91cyBEaXNhc3NlbWJs
ZXIiLCBbJl0gKCkgeyBydW4oKTsgfSk7CisgICAgICAgIGNyZWF0ZVRocmVhZCh7ICJBc3luY2hy
b25vdXMgRGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlzYXNtIiB9LCBbJl0gKCkgeyBydW4oKTsgfSk7
CiAgICAgfQogICAgIAogICAgIHZvaWQgZW5xdWV1ZShzdGQ6OnVuaXF1ZV9wdHI8RGlzYXNzZW1i
bHlUYXNrPiB0YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAwNDAzNGRm
MWVjOGJjMmYwODFiNDUzMTIwY2VlNDYyYWNjYjAwNmI1Li5kZGM1MjViMWNkMmY1ZWMzMDgxMmI3
YTRiYWJjMWQwNzYwNTZmMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAt
MjA2LDcgKzIwNiw3IEBAIGNsYXNzIFRpbWluZ1Njb3BlIHsKIGNsYXNzIEhlYXA6OlRocmVhZCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25zdCBMb2Nr
SG9sZGVyJiBsb2NrZXIsIEhlYXAmIGhlYXApCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxv
Y2tlciwgaGVhcC5tX3RocmVhZExvY2ssIGhlYXAubV90aHJlYWRDb25kaXRpb24pCisgICAgICAg
IDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgaGVhcC5tX3RocmVhZExvY2ssIGhlYXAubV90aHJl
YWRDb25kaXRpb24sIHsgIkhlYXAgQ29sbGVjdG9yIiwgIkhlYXBDb2xsZWN0b3IiIH0pCiAgICAg
ICAgICwgbV9oZWFwKGhlYXApCiAgICAgewogICAgIH0KQEAgLTIyNjksNyArMjI2OSw3IEBAIHZv
aWQgSGVhcDo6bm90aWZ5SXNTYWZlVG9Db2xsZWN0KCkKICAgICAKICAgICBpZiAoT3B0aW9uczo6
Y29sbGVjdENvbnRpbnVvdXNseSgpKSB7CiAgICAgICAgIG1fY29sbGVjdENvbnRpbnVvdXNseVRo
cmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJKU0MgREVCVUcgQ29udGludW91cyBH
QyIsCisgICAgICAgICAgICB7ICJKU0MgREVCVUcgQ29udGludW91cyBHQyIsICJDb250aW51b3Vz
R0MiIH0sCiAgICAgICAgICAgICBbdGhpc10gKCkgewogICAgICAgICAgICAgICAgIE1vbm90b25p
Y1RpbWUgaW5pdGlhbFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgICAgICAg
ICBTZWNvbmRzIHBlcmlvZCA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoT3B0aW9uczo6Y29s
bGVjdENvbnRpbnVvdXNseVBlcmlvZE1TKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcEhlbHBlclBvb2wuY3BwCmluZGV4IDc5MWFhNzU2Zjk1ZTFjYjU2NDBmYzMzYjQ1Njc3
NDUxZWUxYTI1MzYuLjllZWRkMDAzY2UwY2Q2NzdhNzljMTEzZjhmNTBmZmZlYWE4ZWI1NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKQEAgLTM4
LDcgKzM4LDcgQEAgUGFyYWxsZWxIZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgpCiAgICAgc3Rk
OjpjYWxsX29uY2UoCiAgICAgICAgIGluaXRpYWxpemVIZWxwZXJQb29sT25jZUZsYWcsCiAgICAg
ICAgIFtdIHsKLSAgICAgICAgICAgIGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29s
KCk7CisgICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCh7ICJI
ZWFwIEhlbHBlciIsICJIZWFwSGVscGVyIiB9KTsKICAgICAgICAgICAgIGhlbHBlclBvb2wtPmVu
c3VyZVRocmVhZHMoT3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMoKSAtIDEpOwogICAgICAgICB9
KTsKICAgICByZXR1cm4gKmhlbHBlclBvb2w7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0lDU3RhdHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRz
LmNwcAppbmRleCAyMDgwY2Q5MzQ1ODMzZDJkMjMyYjhhOWNkNmYzZGJmZWJlMDVjYjIzLi5lYzQ1
OTc0OThiMWNjMDkyZTg1NzQ4ODZkZDQxZDdhODRmMzFiZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSUNTdGF0cy5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgQXRvbWljPElDU3RhdHMqPiBJQ1N0
YXRzOjpzX2luc3RhbmNlOwogSUNTdGF0czo6SUNTdGF0cygpCiB7CiAgICAgbV90aHJlYWQgPSBj
cmVhdGVUaHJlYWQoCi0gICAgICAgICJKU0MgSUNTdGF0cyIsCisgICAgICAgIHsgIkpTQyBJQ1N0
YXRzIiwgIklDU3RhdHMiIH0sCiAgICAgICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFm
NzdkOTYxNmFjZWQwNGNhN2Y1MWE2Li4yODE5MzkyMjE1NGE1MzAwM2I5ZjA3Mjc0ODM0MmZmZmY5
ZWIyYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIGNsYXNzIEpJVFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEpJVFdvcmtsaXN0OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhy
ZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0
IExvY2tIb2xkZXImIGxvY2tlciwgSklUV29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRp
b24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3
b3JrbGlzdC5tX2NvbmRpdGlvbiwgeyAiQmFzZWxpbmUgSklUIENvbXBpbGVyIFdvcmtlciIsICJK
SVRDb21waWxlciIgfSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgIHsKICAg
ICAgICAgbV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVhZHMrKzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKaW5kZXggNjUxZjQ0OGQzOTVjOGFmYjEzNGYzMDQxNTcwZTMzMjhlYjc1MTYwMi4uNjllNmUw
ZWYzNTJjMmIyMjMzYmFiYzQ2OTNiZTNhZDFhNDFmODZjYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
QEAgLTI3NDcsNyArMjc0Nyw3IEBAIHN0YXRpYyB2b2lkIHN0YXJ0VGltZW91dFRocmVhZElmTmVl
ZGVkKCkKICAgICAgICAgICAgIGRhdGFMb2coIldBUk5JTkc6IHRpbWVvdXQgc3RyaW5nIGlzIG1h
bGZvcm1lZCwgZ290ICIsIHRpbWVvdXRTdHJpbmcsCiAgICAgICAgICAgICAgICAgIiBidXQgZXhw
ZWN0ZWQgYSBudW1iZXIuIE5vdCB1c2luZyBhIHRpbWVvdXQuXG4iKTsKICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4sIDAsICJqc2MgVGlt
ZW91dCBUaHJlYWQiKTsKKyAgICAgICAgICAgIGNyZWF0ZVRocmVhZCh0aW1lb3V0VGhyZWFkTWFp
biwgMCwgeyAianNjIFRpbWVvdXQgVGhyZWFkIiwgIlRpbWVvdXRUaHJlYWQiIH0pOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcAppbmRleCA3MDM0ZGM2OTZiOWUxMTQ5Mjg4YzdiYjllZGRlZmUyYWIxNmIxN2NhLi44
NzlhODhlNzI4MWM1NjhlNDBiYjMxMTQ3OTE0OTMzYTJjYmUwODA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtMjEzLDcg
KzIxMyw3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6Y3JlYXRlVGhyZWFkSWZOZWNlc3Nhcnko
Y29uc3QgTG9ja0hvbGRlciYpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxTYW1wbGlu
Z1Byb2ZpbGVyPiBwcm9maWxlciA9IHRoaXM7Ci0gICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3Jl
YXRlVGhyZWFkKCJqc2Muc2FtcGxpbmctcHJvZmlsZXIudGhyZWFkIiwgW3Byb2ZpbGVyXSB7Cisg
ICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHsgImpzYy5zYW1wbGluZy1wcm9m
aWxlci50aHJlYWQiLCAiU2FtcGxpbmciIH0sIFtwcm9maWxlcl0gewogICAgICAgICBwcm9maWxl
ci0+dGltZXJMb29wKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5jcHAKaW5kZXggZjYwMDRlNmVmMWMwYmM0ZDI1MzkyODQ4ZjYwYzk1NzI1NmNi
NWMyMy4uNGQzOThhNWEwOThkNDc5NjdhMWY4ZDRmODQ0OTMwNTY1OWI0YzY0MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcApAQCAtNDgsNyArNDgsNyBAQCBX
YXRjaGRvZzo6V2F0Y2hkb2coKQogICAgICwgbV9jYWxsYmFjaygwKQogICAgICwgbV9jYWxsYmFj
a0RhdGExKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTIoMCkKLSAgICAsIG1fdGltZXJRdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgianNjLndhdGNoZG9nLnF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpT
ZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVdGlsaXR5KSkKKyAgICAsIG1fdGltZXJRdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJqc2Mud2F0Y2hkb2cucXVldWUiLCAiV2F0Y2hkb2ciIH0sIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcAppbmRleCA1OTgwYjUxZTg3NDIyMjM3
NTVjZTBjM2RmMmMxNmIxZGU5ZWM4ZjEyLi45Nzc3OTY3ZDFhNTMzMjJkNDMyMTRmY2Q1NmJjYWRj
MmZiMTMzNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxh
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCkBAIC0x
OTcsNyArMTk3LDcgQEAgdm9pZCBQbGFuOjpydW4oKQogICAgIFZlY3RvcjxUaHJlYWRJZGVudGlm
aWVyPiB0aHJlYWRzOwogICAgIHRocmVhZHMucmVzZXJ2ZUNhcGFjaXR5KG51bVdvcmtlclRocmVh
ZHMpOwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1Xb3JrZXJUaHJlYWRzOyBpKysp
Ci0gICAgICAgIHRocmVhZHMudW5jaGVja2VkQXBwZW5kKGNyZWF0ZVRocmVhZCgianNjLndhc20t
YjMtY29tcGlsYXRpb24udGhyZWFkIiwgZG9Xb3JrKSk7CisgICAgICAgIHRocmVhZHMudW5jaGVj
a2VkQXBwZW5kKGNyZWF0ZVRocmVhZCh7ICJqc2Mud2FzbS1iMy1jb21waWxhdGlvbi50aHJlYWQi
LCAiV2FzbUIzQ29tcGlsZXIiIH0sIGRvV29yaykpOwogCiAgICAgZG9Xb3JrKCk7IC8vIExldCB0
aGUgbWFpbiB0aHJlYWQgZG8gc29tZSB3b3JrIHRvby4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmE3ODA0NDkzYzk1Zjg5Y2RhNmJmMzFhMzgxNTkwZjFj
ZmMwZTA0Yy4uZDFkMWNlNWMyODdiMzBlMjFmZGE5NmY3YTE1ZWVhNDIxNDFhZWMzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjgsNiArMzY4LDggQEAK
IAkJRkU4OTI1QjAxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0Ug
LyogSW5kZW50ZXIuaCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNr
U3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovOyB9OwogCQlGRURB
Q0QzRTE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0
YWNrU3RhdHMuaCAqLzsgfTsKKwkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0
ZXJhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFB
OUJENDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovOyB9OworCQk4OTY2RTQx
ODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVh
ZE5hbWUuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdp
biBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtNzQ4LDYgKzc1MCw4IEBACiAJ
CUZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmRlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGFja1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tTdGF0cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRl
cmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFTQ0lJTGl0ZXJhbC5oOyBw
YXRoID0gQVNDSUlMaXRlcmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYxRTJF
NURFNkVENjQ0Q0E5MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFRocmVhZE5hbWUuaDsgcGF0aCA9IFRocmVhZE5hbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAog
LyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTEzMiw2ICsx
MTM2LDcgQEAKIAkJCQlFNEEwQUQzODFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmggKi8s
CiAJCQkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuY3BwICovLAog
CQkJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8sCisJCQkJ
RjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gd3RmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyMjAsNiArMTIyNSw3
IEBACiAJCQkJNzBFQ0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmgg
Ki8sCiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgKi8sCiAJ
CQkJQThBNDczMkUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oICovLAorCQkJCTcxQTlC
RDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gdGV4dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNTY4LDYgKzE1NzQsOCBA
QAogCQkJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTczRTAyNTE5RENCN0FCMDA1ODBENUMgLyogWFBDU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDNBNDY5OTFFMjI4QjkxMDAyNzZCMDUgLyogQ29kZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAvKiBBU0NJSUxpdGVyYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTg5NjZFNDE4NkI5RjRFQzFBQ0MyMjVDQSAvKiBUaHJlYWROYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25k
aXRpb25TcGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVk
VGVzdC5jcHAKaW5kZXggY2IxZDEwMWU4NTY1MjllOGFhZWE2YWJmNjBlYzM4ZWEwYjhkZGU3Mi4u
ZmQ1YzllODgyY2U4ZTJkZjA2ZTQwNjAzY2EyOTE5ZDhiZGM4ZmY5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAKKysrIGIvU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9p
ZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IG51bUNvbnN1bWVyczsgaS0t
OykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVU
aHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhyZWFkIiwKKyAgICAgICAgICAgIHsgIkNv
bnN1bWVyIHRocmVhZCIsICJDb25zdW1lciIgfSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAg
ICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1
bHQ7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBydW5UZXN0KAogCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhy
ZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJQcm9kdWNlciBUaHJl
YWQiLAorICAgICAgICAgICAgeyAiUHJvZHVjZXIgVGhyZWFkIiwgIlByb2R1Y2VyIiB9LAogICAg
ICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJv
b2wgbXVzdE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtz
L0xvY2tGYWlybmVzc1Rlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVz
c1Rlc3QuY3BwCmluZGV4IGYwODMyMWMwZjY4ODM2NTM1ZDgzY2I2YmM3NTExODQ4YmI1MmQ5NGYu
LjQ5MDNjODc1OTBhMjhiMmI2NWVjMWMxOTk5Nzk3ZDJhYzFkNDk3MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0
IEJlbmNobWFyayB7CiAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJl
YWRzOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgY291bnRzW3RocmVhZEluZGV4XSA9
IDA7CiAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAg
ICAgICAgICAgICAgICAiQmVuY2htYXJrIFRocmVhZCIsCisgICAgICAgICAgICAgICAgeyAiQmVu
Y2htYXJrIHRocmVhZCIsICJCZW5jaG1hcmtSdW5uZXIiIH0sCiAgICAgICAgICAgICAgICAgWyYs
IHRocmVhZEluZGV4XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWljcm9zZWNvbmRz
SW5Dcml0aWNhbFNlY3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChrZWVw
R29pbmcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0
LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAppbmRleCA1NDVk
MmUwYjA0ODhmMzM4OTRhNTk2ODhmZDkxYjBkM2EzODdjY2EyLi4yOWYwMzhiNWNhOGRiNjQxODM4
NmYwNTliNmNmNjlhNWNkODBhYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFya3Mv
TG9ja1NwZWVkVGVzdC5jcHAKKysrIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRl
c3QuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHN0cnVjdCBCZW5jaG1hcmsgewogCiAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkc1Blckdyb3VwOyB0aHJlYWRJ
bmRleC0tOykgewogICAgICAgICAgICAgICAgIHRocmVhZHNbdGhyZWFkR3JvdXBJbmRleCAqIG51
bVRocmVhZHNQZXJHcm91cCArIHRocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAg
ICAgICAgICAgICAgIkJlbmNobWFyayB0aHJlYWQiLAorICAgICAgICAgICAgICAgICAgICB7ICJC
ZW5jaG1hcmsgdGhyZWFkIiwgIkJlbmNobWFya1J1bm5lciIgfSwKICAgICAgICAgICAgICAgICAg
ICAgW3RocmVhZEdyb3VwSW5kZXgsICZsb2NrcywgJndvcmRzLCAma2VlcEdvaW5nLCAmbnVtSXRl
cmF0aW9uc0xvY2ssICZudW1JdGVyYXRpb25zXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBkb3VibGUgbG9jYWxXb3JkID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2
YWx1ZSA9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3Bw
IGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCA0ZDhmYjg0ODlmOTlj
YjhmNjdlN2NjMmQxM2JmNDE1NWVlODdlNWM1Li5jNjRjNjA4NmQ1OWU5OWFlNTE3YTdkNDFmY2Q2
OWZhYTBkNTI5ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTk4LDkgKzk4
LDEwIEBAIGJvb2wgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjb250YWlucyhjb25zdCBMb2Nr
SG9sZGVyJiwgQXV0b21hdGljVGhyZWFkKiB0aHJlCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250
YWlucyh0aHJlYWQpOwogfQogCi1BdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25z
dCBMb2NrSG9sZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uPiBjb25kaXRpb24pCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKICAg
ICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRpb24oY29uZGl0aW9uKQorICAgICwgbV9u
YW1lKHRocmVhZE5hbWUpCiB7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coUmF3
UG9pbnRlcih0aGlzKSwgIjogQWxsb2NhdGVkIEF1dG9tYXRpY1RocmVhZC5cbiIpOwpAQCAtMTU2
LDcgKzE1Nyw3IEBAIHZvaWQgQXV0b21hdGljVGhyZWFkOjpzdGFydChjb25zdCBMb2NrSG9sZGVy
JikKICAgICBtX2hhc1VuZGVybHlpbmdUaHJlYWQgPSB0cnVlOwogICAgIAogICAgIFRocmVhZElk
ZW50aWZpZXIgdGhyZWFkID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAiV1RGOjpBdXRvbWF0aWNU
aHJlYWQiLAorICAgICAgICBtX25hbWUsCiAgICAgICAgIFs9XSAoKSB7CiAgICAgICAgICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6
IFJ1bm5pbmcgYXV0b21hdGljIHRocmVhZCFcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaApp
bmRleCA2OTI2ZjYyMzY1M2Q0YzU5MjEzNzBjYzRkOWNlYzhkMDZjMzNlZGE4Li43MTlmY2JkZGQ3
MGNiY2NkNGRlOWZhYjk0NWQ3YjNhODAxOWU5ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
aApAQCAtMTMwLDcgKzEzMCw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBdXRvbWF0aWNU
aHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21hdGljCiBwcm90ZWN0ZWQ6
CiAgICAgLy8gVGhpcyBsb2dpY2FsbHkgY3JlYXRlcyB0aGUgdGhyZWFkLCBidXQgaW4gcmVhbGl0
eSB0aGUgdGhyZWFkIHdvbid0IGJlIGNyZWF0ZWQgdW50aWwgc29tZW9uZQogICAgIC8vIGNhbGxz
IEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuCi0g
ICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9jaz4sIFJlZlB0cjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+KTsKKyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9j
a0hvbGRlciYsIEJveDxMb2NrPiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4sIFRo
cmVhZE5hbWUpOwogICAgIAogICAgIC8vIFRvIHVuZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29y
a1Jlc3VsdCwgaW1hZ2luZSB0aGF0IHBvbGwoKSBhbmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQg
bGlrZQogICAgIC8vIHNvOgpAQCAtMTgyLDYgKzE4Miw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJ
VkFURSBBdXRvbWF0aWNUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21h
dGljCiAgICAgYm9vbCBtX2hhc1VuZGVybHlpbmdUaHJlYWQgeyBmYWxzZSB9OwogICAgIENvbmRp
dGlvbiBtX3dhaXRDb25kaXRpb247CiAgICAgQ29uZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9u
OworICAgIFRocmVhZE5hbWUgbV9uYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwIGIvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA5NDkyZmRkZGYxOTY0OWQ2NWI1MTBi
MWU0M2MwMmFhOTUxNGMwNzMxLi4yYzNiZjA3NDA4OGUyOWE5OTE4ZjI5ZmFmZjk0Y2QwYzViNjJk
MTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAgLTEyMyw5ICsxMjMs
MTAgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhSZWZQdHI8U2hhcmVkVGFz
azx2b2lkICgpPj4gdGFzaykKICAgICB9CiB9CiAKLVBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxs
ZWxIZWxwZXJQb29sKCkKK1BhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKFRo
cmVhZE5hbWUgdGhyZWFkTmFtZSkKICAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQog
ICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6
Y3JlYXRlKCkpCisgICAgLCBtX25hbWUodGhyZWFkTmFtZSkKIHsKIH0KIApAQCAtMTcxLDcgKzE3
Miw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkb1NvbWVIZWxwaW5nKCkKIGNsYXNzIFBh
cmFsbGVsSGVscGVyUG9vbDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJs
aWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgUGFyYWxsZWxIZWxwZXJQ
b29sJiBwb29sKQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2Nr
LCBwb29sLm1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJl
YWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24sIHBv
b2wubmFtZSgpKQogICAgICAgICAsIG1fcG9vbChwb29sKQogICAgIHsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3Rm
L1BhcmFsbGVsSGVscGVyUG9vbC5oCmluZGV4IDgxNjM1YmI3ODE5MDAzYWM5ZDdmNGE2ODFjYzU1
NDRlOTBkYTdkOTEuLmVkYzFhZWUxYTI0YWQ3YjgwNDY1MjIxNTVhZjY0YmEwNGRiY2JiZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCkBAIC0xNzksNyArMTc5LDcgQEAgY2xhc3Mg
UGFyYWxsZWxIZWxwZXJDbGllbnQgewogCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiBwdWJsaWM6Ci0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woVGhyZWFkTmFtZSk7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIH5QYXJhbGxlbEhlbHBlclBvb2woKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGVuc3VyZVRocmVhZHModW5zaWduZWQgbnVtVGhyZWFkcyk7CkBAIC0xODgsNiArMTg4
LDggQEAgY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGRvU29tZUhlbHBpbmcoKTsKIAorICAgIFRocmVhZE5hbWUgbmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZTsgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBl
ckNsaWVudDsKICAgICBjbGFzcyBUaHJlYWQ7CkBAIC0yMDcsNiArMjA5LDcgQEAgY2xhc3MgUGFy
YWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVs
cGVyUG9vbD4gewogICAgIAogICAgIFZlY3RvcjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1fY2xp
ZW50czsKICAgICBWZWN0b3I8UmVmUHRyPEF1dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAg
ICBUaHJlYWROYW1lIG1fbmFtZTsKICAgICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8v
IFRoaXMgY2FuIGJlIGxhcmdlciB0aGFuIG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFy
dCB0aHJlYWRzIG9ubHkgb25jZSB0aGVyZSBpcyB3b3JrLgogICAgIGJvb2wgbV9pc0R5aW5nIHsg
ZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5l
cmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmluZGV4IDQw
MjNmNDNlNmYyMGEzOGUxMDNlN2M5YTJlNGYwZjdlMDYxMDU3MTQuLmVkNGIzZjY1ZDIxZDJjY2Fl
MGYzZTQ4YmMzNTlkOTM1NWFlMTZmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSm9ic0dlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFk
UHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmlyb25tZW50KiBwYXJlbnQpCiAgICAgfQog
CiAgICAgaWYgKCFtX3RocmVhZElEKQotICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KCZQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQsIHRoaXMs
ICJQYXJhbGxlbCB3b3JrZXIiKTsKKyAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgm
UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCB7
ICJQYXJhbGxlbCB3b3JrZXIiLCAiUGFyYWxsZWxXb3JrZXIiIH0pOwogCiAgICAgaWYgKG1fdGhy
ZWFkSUQpCiAgICAgICAgIG1fcGFyZW50ID0gcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkTmFtZS5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkTmFtZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRkN2NmMjFjY2VkMGJlMjk5OGMwYTUwZjFiNzRmNjVlYTA1Y2FhMWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmgKQEAgLTAsMCArMSw4MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworY2xhc3MgVGhyZWFkTmFtZSB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dW5zaWduZWQgbG9u
Z05hbWVDb3VudCwgdW5zaWduZWQgc2hvcnROYW1lQ291bnQ+CisgICAgY29uc3RleHByIFRocmVh
ZE5hbWUoY29uc3QgY2hhciAoJmxvbmdOYW1lKVtsb25nTmFtZUNvdW50XSwgY29uc3QgY2hhciAo
JnNob3J0TmFtZSlbc2hvcnROYW1lQ291bnRdKQorI2lmIE9TKExJTlVYKSB8fCBPUyhXSU5ET1dT
KQorICAgICAgICA6IG1fbmFtZShzaG9ydE5hbWUpCisjZWxzZQorICAgICAgICA6IG1fbmFtZShs
b25nTmFtZSkKKyNlbmRpZgorICAgIHsKKyNpZiBPUyhMSU5VWCkKKyAgICAgICAgc3RhdGljX2Fz
c2VydCgoc2hvcnROYW1lQ291bnQgLSAxKSA8PSAoMTYgLSAxKSwgIiIpOworI2VsaWYgT1MoV0lO
RE9XUykKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoc3RyaW5nTGVuZ3RoKCJXZWJLaXQ6ICIpICsg
KHNob3J0TmFtZUNvdW50IC0gMSkpIDw9ICgzMiAtIDEpLCAiIik7CisjZW5kaWYKKyAgICB9CisK
KyAgICBDU3RyaW5nIG5hbWUoKSBjb25zdAorICAgIHsKKyNpZiBPUyhMSU5VWCkKKyAgICAgICAg
cmV0dXJuIG1fbmFtZTsKKyNlbHNlCisgICAgICAgIHJldHVybiBwcmVmaXhlZE5hbWUobV9uYW1l
KTsKKyNlbmRpZgorICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzdHJp
bmdDb3VudD4KKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHN0cmluZ0xlbmd0aChjb25z
dCBjaGFyICgmKVtzdHJpbmdDb3VudF0pCisgICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQ291
bnQgLSAxOworICAgIH0KKworICAgIHN0YXRpYyBDU3RyaW5nIHByZWZpeGVkTmFtZShjb25zdCBj
aGFyKiBjb250ZW50KQorICAgIHsKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHByZWZpeExl
bmd0aCA9IHN0cmluZ0xlbmd0aCgiV2ViS2l0OiAiKTsKKyAgICAgICAgdW5zaWduZWQgY29udGVu
dExlbmd0aCA9IHN0cmxlbihjb250ZW50KTsKKyAgICAgICAgY2hhciogYnVmZmVyID0gbnVsbHB0
cjsKKyAgICAgICAgQ1N0cmluZyBzdHJpbmcgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKHBy
ZWZpeExlbmd0aCArIGNvbnRlbnRMZW5ndGgsIGJ1ZmZlcik7CisgICAgICAgIG1lbWNweShidWZm
ZXIsICJXZWJLaXQ6ICIsIHByZWZpeExlbmd0aCk7CisgICAgICAgIGJ1ZmZlciArPSBwcmVmaXhM
ZW5ndGg7CisgICAgICAgIG1lbWNweShidWZmZXIsIGNvbnRlbnQsIGNvbnRlbnRMZW5ndGgpOwor
ICAgICAgICByZXR1cm4gc3RyaW5nOworICAgIH0KKworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsK
K307CisKK30KKwordXNpbmcgV1RGOjpUaHJlYWROYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5kZXgg
NDBjZTM5YTQ1ZDM1NDBhMjNmZDU4NzhjZjkwNjdlYWZkNzY4MTMzYy4uMTNkZjUzMmMzOTRhMzEz
MzM1NGE1NDMwYjgwNDhjMDIyYWE4MzBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0zNiwzOCAr
MzYsMTEgQEAgbmFtZXNwYWNlIFdURiB7CiBzdHJ1Y3QgTmV3VGhyZWFkQ29udGV4dCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3QgY2hhciogbmFtZTsK
KyAgICBUaHJlYWROYW1lIG5hbWU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9p
bnQ7CiAgICAgTXV0ZXggY3JlYXRpb25NdXRleDsKIH07CiAKLWNvbnN0IGNoYXIqIG5vcm1hbGl6
ZVRocmVhZE5hbWUoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKLXsKLSNpZiBIQVZFKFBUSFJFQURf
U0VUTkFNRV9OUCkKLSAgICByZXR1cm4gdGhyZWFkTmFtZTsKLSNlbHNlCi0gICAgLy8gVGhpcyBu
YW1lIGNhbiBiZSBjb20uYXBwbGUuV2ViS2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20uYXBwbGUu
Q29yZUlQQy5SZWNlaXZlUXVldWUuCi0gICAgLy8gV2UgYXJlIHVzaW5nIHRob3NlIG5hbWVzIGZv
ciB0aGUgdGhyZWFkIG5hbWUsIGJ1dCBib3RoIGFyZSBsb25nZXIgdGhhbiB0aGUgbGltaXQgb2YK
LSAgICAvLyB0aGUgcGxhdGZvcm0gdGhyZWFkIG5hbWUgbGVuZ3RoLCAzMiBmb3IgV2luZG93cyBh
bmQgMTYgZm9yIExpbnV4LgotICAgIFN0cmluZ1ZpZXcgcmVzdWx0KHRocmVhZE5hbWUpOwotICAg
IHNpemVfdCBzaXplID0gcmVzdWx0LnJldmVyc2VGaW5kKCcuJyk7Ci0gICAgaWYgKHNpemUgIT0g
bm90Rm91bmQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc2l6ZSArIDEpOwot
Ci0jaWYgT1MoV0lORE9XUykKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtWaXN1YWxTdHVk
aW9UaHJlYWROYW1lTGltaXQgPSAzMiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtW
aXN1YWxTdHVkaW9UaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yaWdo
dChrVmlzdWFsU3R1ZGlvVGhyZWFkTmFtZUxpbWl0KTsKLSNlbGlmIE9TKExJTlVYKQotICAgIGNv
bnN0ZXhwciBjb25zdCBzaXplX3Qga0xpbnV4VGhyZWFkTmFtZUxpbWl0ID0gMTYgLSAxOwotICAg
IGlmIChyZXN1bHQubGVuZ3RoKCkgPiBrTGludXhUaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJl
c3VsdCA9IHJlc3VsdC5yaWdodChrTGludXhUaHJlYWROYW1lTGltaXQpOwotI2VuZGlmCi0gICAg
QVNTRVJUKHJlc3VsdC5jaGFyYWN0ZXJzOCgpW3Jlc3VsdC5sZW5ndGgoKV0gPT0gJ1wwJyk7Ci0g
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC5jaGFyYWN0ZXJz
OCgpKTsKLSNlbmRpZgotfQotCiBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNv
bnRleHREYXRhKQogewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2Fz
dDxOZXdUaHJlYWRDb250ZXh0Kj4oY29udGV4dERhdGEpOwpAQCAtODgsNyArNjEsNyBAQCBzdGF0
aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogICAgIGVudHJ5UG9p
bnQoKTsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQpCitUaHJlYWRJZGVudGlmaWVyIGNy
ZWF0ZVRocmVhZChUaHJlYWROYW1lIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBv
aW50KQogewogICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBuZXcgTmV3VGhyZWFkQ29u
dGV4dCB7IG5hbWUsIFdURk1vdmUoZW50cnlQb2ludCksIHsgfSB9OwogCkBAIC05OCw3ICs3MSw3
IEBAIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZEludGVy
bmFsKHRocmVhZEVudHJ5UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi1UaHJlYWRJZGVudGlm
aWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBj
b25zdCBjaGFyKiBuYW1lKQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVu
Y3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSBuYW1lKQogewogICAgIHJl
dHVybiBjcmVhdGVUaHJlYWQobmFtZSwgW2VudHJ5UG9pbnQsIGRhdGFdIHsKICAgICAgICAgZW50
cnlQb2ludChkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKaW5kZXggMzA1MGRkOGRmODQ4YjZlNWEwOWM4ZTcz
YWFhY2Y1NDA3ZjhhNGI2NS4uZGMzYWVhYjc5MjcwYWJhMzUyZjY1OThjNjgwMGY4NTcxYThjY2Y5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvVGhyZWFkaW5nLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWlj
cy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZl
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKQEAg
LTU1LDcgKzU2LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGlu
ZygpOwogCiAvLyBSZXR1cm5zIDAgaWYgdGhyZWFkIGNyZWF0aW9uIGZhaWxlZC4KIC8vIFRoZSB0
aHJlYWQgbmFtZSBtdXN0IGJlIGEgbGl0ZXJhbCBzaW5jZSBvbiBzb21lIHBsYXRmb3JtcyBpdCdz
IHBhc3NlZCBpbiB0byB0aGUgdGhyZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50
aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUsIHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPik7CitXVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJl
YWQoVGhyZWFkTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogLy8gTWFyayB0aGUgY3Vy
cmVudCB0aHJlYWQgYXMgcmVxdWlyaW5nIFVJIHJlc3BvbnNpdmVuZXNzLgogLy8gcmVsYXRpdmVQ
cmlvcml0eSBpcyBhIHZhbHVlIGluIHRoZSByYW5nZSBbLTE1LCAwXSB3aGVyZSBhIGxvd2VyIHZh
bHVlIGluZGljYXRlcyBhIGxvd2VyIHByaW9yaXR5LgpAQCAtNjgsMTYgKzY5LDE0IEBAIFdURl9F
WFBPUlRfUFJJVkFURSBpbnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRlbnRpZmll
cik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRlbnRpZmll
cik7CiAKIC8vIERlcHJlY2F0ZWQgZnVuY3Rpb24tcG9pbnRlci1iYXNlZCB0aHJlYWQgY3JlYXRp
b24uCi1XVEZfRVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhy
ZWFkRnVuY3Rpb24sIHZvaWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1dURl9FWFBPUlRf
UFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9p
ZCosIFRocmVhZE5hbWUpOwogCiAvLyBJbnRlcm5hbCBwbGF0Zm9ybS1zcGVjaWZpYyBjcmVhdGVU
aHJlYWQgaW1wbGVtZW50YXRpb24uCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVy
bmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7CitUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwg
VGhyZWFkTmFtZSk7CiAKIC8vIENhbGxlZCBpbiB0aGUgdGhyZWFkIGR1cmluZyBpbml0aWFsaXph
dGlvbi4KIC8vIEhlbHBmdWwgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgdGhyZWFkIG5hbWUgbXVz
dCBiZSBzZXQgZnJvbSB3aXRoaW4gdGhlIHRocmVhZC4KLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRU
aHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKLQotY29uc3QgY2hhciogbm9y
bWFsaXplVGhyZWFkTmFtZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK3ZvaWQgaW5pdGlhbGl6
ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1lKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RG
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCAwZjlmMmZjNzJjOWQzZTg5
MGM3M2FhZGE3MzkxNTA0YTkxYTc0MjgwLi41M2NhMzhlYTQ3Yzc1MDRjN2UzOWQ5ZGEwZDRiZmJh
ZTZhNDA1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xNjksNyAr
MTY5LDcgQEAgc3RhdGljIHZvaWQqIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50
ZXJuYWwoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciop
CitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVu
dHJ5UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUpCiB7CiAgICAgYXV0byBpbnZvY2F0aW9u
ID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+KGVudHJ5UG9pbnQs
IGRhdGEpOwogICAgIHB0aHJlYWRfdCB0aHJlYWRIYW5kbGU7CkBAIC0xOTIsMTIgKzE5MiwxNCBA
QCBUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVu
dHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbgogICAgIHJldHVybiBlc3RhYmxpc2hJZGVudGlmaWVy
Rm9yUHRocmVhZEhhbmRsZSh0aHJlYWRIYW5kbGUpOwogfQogCi12b2lkIGluaXRpYWxpemVDdXJy
ZW50VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6
ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgSEFW
RShQVEhSRUFEX1NFVE5BTUVfTlApCi0gICAgcHRocmVhZF9zZXRuYW1lX25wKG5vcm1hbGl6ZVRo
cmVhZE5hbWUodGhyZWFkTmFtZSkpOworICAgIGF1dG8gbmFtZSA9IHRocmVhZE5hbWUubmFtZSgp
OworICAgIHB0aHJlYWRfc2V0bmFtZV9ucChuYW1lLmRhdGEoKSk7CiAjZWxpZiBPUyhMSU5VWCkK
LSAgICBwcmN0bChQUl9TRVRfTkFNRSwgbm9ybWFsaXplVGhyZWFkTmFtZSh0aHJlYWROYW1lKSk7
CisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CisgICAgcHJjdGwoUFJfU0VUX05B
TUUsIG5hbWUuZGF0YSgpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5hbWUpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAppbmRleCA1NGI0M2VmZWYzNWNkNjYzMmE3MDA4
MTUwN2E1YjM3OTlkZWZiNmZiLi40YzliYzU3N2EyNmE5MGRhNTUwOWQyYzYyMzgzMWJmYmVmODdk
NDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKQEAgLTEyMSwxNSArMTIxLDE2IEBAIHR5cGVk
ZWYgc3RydWN0IHRhZ1RIUkVBRE5BTUVfSU5GTyB7CiB9IFRIUkVBRE5BTUVfSU5GTzsKICNwcmFn
bWEgcGFjayhwb3ApCiAKLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25z
dCBjaGFyKiBzelRocmVhZE5hbWUpCit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJu
YWwoVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogI2lmIENPTVBJTEVSKE1JTkdXKQogICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhyZWFkIG5hbWUgc2V0dGluZyB3aXRoIE1pbmdXLgotICAgIFVO
VVNFRF9QQVJBTShzelRocmVhZE5hbWUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsK
ICNlbHNlCisgICAgYXV0byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CiAgICAgVEhSRUFETkFN
RV9JTkZPIGluZm87CiAgICAgaW5mby5kd1R5cGUgPSAweDEwMDA7Ci0gICAgaW5mby5zek5hbWUg
PSBub3JtYWxpemVUaHJlYWROYW1lKHN6VGhyZWFkTmFtZSk7CisgICAgaW5mby5zek5hbWUgPSBu
YW1lLmRhdGEoKTsKICAgICBpbmZvLmR3VGhyZWFkSUQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsK
ICAgICBpbmZvLmR3RmxhZ3MgPSAwOwogCkBAIC0xOTksNyArMjAwLDcgQEAgc3RhdGljIHVuc2ln
bmVkIF9fc3RkY2FsbCB3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAgIHJldHVy
biAwOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1
bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCitU
aHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5
UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICAgICB1bnNpZ25l
ZCB0aHJlYWRJZGVudGlmaWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrUXVldWUuY3BwCmluZGV4IGIyYTBhNzlmNGFiNWFhYzI4OWIxNjlmOTJiYmMxYTgw
NTg1MmNhMzIuLmMyODkxNjY5ZDYwZjE5NThjYmRlZDZlNzkxNTJhMjc1ZDY2Mjc2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
V29ya1F1ZXVlLmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1S
ZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5
cGUsIFFPUyBxb3MpCitSZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1l
IG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
b3JrUXVldWUobmFtZSwgdHlwZSwgcW9zKSk7CiB9CiAKLVdvcmtRdWV1ZTo6V29ya1F1ZXVlKGNv
bnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK1dvcmtRdWV1ZTo6V29ya1F1ZXVl
KFRocmVhZE5hbWUgbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZShuYW1lLCB0eXBlLCBxb3MpOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdvcmtR
dWV1ZTo6Y29uY3VycmVudEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6OmZ1bmN0
aW9uPHZvaWQgKHNpegogCiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eSh0aHJlYWRDb3VudCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
dGhyZWFkQ291bnQ7ICsraSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoY3Jl
YXRlVGhyZWFkKFN0cmluZzo6Zm9ybWF0KCJUaHJlYWRQb29sIFdvcmtlciAldSIsIGkpLnV0Zjgo
KS5kYXRhKCksIFt0aGlzXSB7CisgICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVh
dGVUaHJlYWQoeyAiVGhyZWFkUG9vbCBXb3JrZXIiLCAiQ29uY3VycmVudEFwcGx5IiB9LCBbdGhp
c10gewogICAgICAgICAgICAgICAgICAgICB0aHJlYWRCb2R5KCk7CiAgICAgICAgICAgICAgICAg
fSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAppbmRleCBkOTE4NGI0ODI3YmYxMGJhMzhh
NDgxNDgwNWIyZjMzNjQ2ZDc2ZTAzLi40MjcyNGFmNjgzZGRhMTc2YTZkNmUwNmM0OWI0OGY2ODkz
ZGI0OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKQEAgLTY3LDcg
KzY4LDcgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hl
ciB7CiAgICAgICAgIEJhY2tncm91bmQKICAgICB9OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9IFR5
cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lLCBUeXBlID0gVHlwZTo6U2Vy
aWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOwogICAgIHZpcnR1YWwgfldvcmtRdWV1ZSgpOwogCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJikg
b3ZlcnJpZGU7CkBAIC04NSw5ICs4Niw5IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6IHB1Ymxp
YyBGdW5jdGlvbkRpc3BhdGNoZXIgewogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
V29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgZXhwbGljaXQgV29y
a1F1ZXVlKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAKLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOworICAgIHZvaWQgcGxhdGZvcm1Jbml0
aWFsaXplKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRh
dGUoKTsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9X
b3JrUXVldWVDb2NvYS5jcHAKaW5kZXggOGVkYmYyM2M1NTg4ODgyOTZjMTRjOGM5ZDBlZTBjNGY2
MzMwYjMyMy4uN2Y1NTE2OTdlYTU5YTM5YzkxMTcwMTk5YjNjYjlhYzg1NDM5NDM4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcApAQCAtNzksNyArNzksNyBAQCBzdGF0
aWMgZGlzcGF0Y2hfcXVldWVfdCB0YXJnZXRRdWV1ZUZvclFPU0NsYXNzKFdvcmtRdWV1ZTo6UU9T
IHFvcykKIH0KICNlbmRpZgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNv
bnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0
Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAg
ICAgZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0dHIgPSB0eXBlID09IFR5cGU6OkNvbmN1cnJlbnQg
PyBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UIDogRElTUEFUQ0hfUVVFVUVfU0VSSUFMOwogI2lm
IEhBVkUoUU9TX0NMQVNTRVMpCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgV29ya1F1ZXVlOjpwbGF0
Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0ocW9zKTsKICNlbmRpZgotICAgIG1fZGlzcGF0Y2hRdWV1ZSA9
IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZShuYW1lLCBhdHRyKTsKKyAgICBtX2Rpc3BhdGNoUXVldWUg
PSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUobmFtZS5uYW1lKCkuZGF0YSgpLCBhdHRyKTsKICNpZiAh
SEFWRShRT1NfQ0xBU1NFUykKICAgICBpZiAocW9zICE9IFdvcmtRdWV1ZTo6UU9TOjpEZWZhdWx0
KQogICAgICAgICBkaXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKG1fZGlzcGF0Y2hRdWV1ZSwgdGFy
Z2V0UXVldWVGb3JRT1NDbGFzcyhxb3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Vm
bC9EaXNwYXRjaFF1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVl
RWZsLmNwcAppbmRleCBiNGFkMmJkYzQzOGY5ZDk0NTdlM2Y3ZmI0OTIyNGM2ODE1OTc2ZGFmLi4y
ZjEwYjAyYTBlMTkzYzJmMjkyZWM5MGMyYmMyYjI4ZTRlZDNjODhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
ZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyBjb25zdCBj
aGFyIHdha2VVcFRocmVhZE1lc3NhZ2UgPSAnVyc7CiAKIGNsYXNzIERpc3BhdGNoUXVldWU6OlRo
cmVhZENvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHN0YXJ0KGNvbnN0IGNoYXIq
IG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSkKKyAgICBzdGF0
aWMgdm9pZCBzdGFydChUaHJlYWROYW1lIG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4g
ZGlzcGF0Y2hRdWV1ZSkKICAgICB7CiAgICAgICAgIC8vIFRoZSBEaXNwYXRjaFF1ZXVlVGhyZWFk
Q29udGV4dCBpbnN0YW5jZSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdGhyZWFkIGZ1bmN0aW9uIGFu
ZCBkZWxldGVkIGluIGl0LgogICAgICAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHJlaW50
ZXJwcmV0X2Nhc3Q8V1RGOjpUaHJlYWRGdW5jdGlvbj4oJlRocmVhZENvbnRleHQ6OmZ1bmN0aW9u
KSwgbmV3IFRocmVhZENvbnRleHQoZGlzcGF0Y2hRdWV1ZSksIG5hbWUpKTsKQEAgLTYxLDcgKzYx
LDcgQEAgY2xhc3MgRGlzcGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dCB7CiAgICAgUmVmUHRyPERp
c3BhdGNoUXVldWU+IG1fZGlzcGF0Y2hRdWV1ZTsKIH07CiAKLVBhc3NSZWZQdHI8RGlzcGF0Y2hR
dWV1ZT4gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpCitQYXNzUmVmUHRy
PERpc3BhdGNoUXVldWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUpCiB7
CiAgICAgUmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUgPSBhZG9wdFJlZjxEaXNw
YXRjaFF1ZXVlPihuZXcgRGlzcGF0Y2hRdWV1ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRj
aFF1ZXVlRWZsLmgKaW5kZXggZmM1NTUxOWIwMWNlZThmZTA0OWMxM2MxZTVmY2ZjN2Q5OTc5NGYy
Ni4uNTcwOTQyNmRiYWViYWE3MTE1ZjYyODI2YmMyNGRkNGZiMmU0MWU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlIDxm
dW5jdGlvbmFsPgogI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNyAr
MzgsNyBAQCBjbGFzcyBXb3JrSXRlbTsKIAogY2xhc3MgRGlzcGF0Y2hRdWV1ZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxEaXNwYXRjaFF1ZXVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lKTsKICAg
ICB+RGlzcGF0Y2hRdWV1ZSgpOwogCiAgICAgdm9pZCBkaXNwYXRjaChzdGQ6OnVuaXF1ZV9wdHI8
V29ya0l0ZW0+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwu
Y3BwIGIvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKaW5kZXggZGE5MTNiZjA0
Y2U3MjczMTA3NjdlZjQ3OTRmZGQyYjg3OGE1ZjRlZC4uODMyNWY1ZDZjMzE0ZDRmYmI4MzMzZjIx
OTBkM2ZiY2YxOTQ3ZTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1
ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKQEAgLTI1
LDcgKzI1LDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVldWU6
OnBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAgICBt
X2Rpc3BhdGNoUXVldWUgPSBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUobmFtZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwIGIvU291cmNl
L1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAppbmRleCBmNTk0ZTI0MDExNmQ0
ZTA0M2Q0ZGMzYTNmNmNmN2MwN2Q0YjIzNDQyLi5kZjZlMDcyMmQxZTQwM2M3YWI5NzAwNzBkNTdm
NjNiNjI2MTI0MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJp
Yy5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUs
IFR5cGUsIFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFt
ZSBuYW1lLCBUeXBlLCBRT1MpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXpl
UnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3dvcmtRdWV1ZVRocmVhZCA9IGNyZWF0ZVRo
cmVhZChuYW1lLCBbdGhpc10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BU0NJ
SUxpdGVyYWwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzk0NmE5Mjk4NGY5NDRiMTM1ZDcwMjlmNTMxZGQ3MWI4Y2E2OTk2NAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQVNDSUlMaXRlcmFsIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBjb25zdGV4cHIgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNo
YXJhY3RlcnMpCisgICAgICAgIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCisgICAgeworICAg
IH0KKworICAgIGNvbnN0ZXhwciBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9jaGFyYWN0ZXJzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25z
dCBjaGFyKiBtX2NoYXJhY3RlcnM7Cit9OworCit9CisKK3VzaW5nIFdURjo6QVNDSUlMaXRlcmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDFjNzY4MTBiZDZjZDFlZGJiZWY4YWZlZDg0
MmY4MDgwZGY3ZGFkMy4uODBlNjQ0NzFmZWQwODg3NDA1MzM2NTNmNmY0ZTY5NmVhZTA0YjBjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC0yNiw2ICsyNiw3IEBACiAvLyBvbiBzeXN0ZW1z
IHdpdGhvdXQgY2FzZS1zZW5zaXRpdmUgZmlsZSBzeXN0ZW1zLgogCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQVNDSUlGYXN0UGF0aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC0z
NCw4ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBBU0NJSUxpdGVyYWw7Ci0K
IC8vIERlY2xhcmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwogCiBXVEZfRVhQT1JUX1NUUklO
R19BUEkgaW50IGNoYXJhY3RlcnNUb0ludFN0cmljdChjb25zdCBMQ2hhciosIHNpemVfdCwgYm9v
bCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKTsKQEAgLTY4MSwxNSArNjgwLDYgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8U3RyaW5nPiB7CiAKIHRlbXBsYXRlIDw+IHN0cnVj
dCBWZWN0b3JUcmFpdHM8U3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKIAot
Y2xhc3MgQVNDSUlMaXRlcmFsIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBU0NJSUxpdGVyYWwo
Y29uc3QgY2hhciogY2hhcmFjdGVycykgOiBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykgeyB9Ci0g
ICAgb3BlcmF0b3IgY29uc3QgY2hhciooKSB7IHJldHVybiBtX2NoYXJhY3RlcnM7IH0KLQotcHJp
dmF0ZToKLSAgICBjb25zdCBjaGFyKiBtX2NoYXJhY3RlcnM7Ci19OwotCiAvLyBTaGFyZWQgZ2xv
YmFsIGVtcHR5IHN0cmluZy4KIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBjb25zdCBTdHJpbmcmIGVt
cHR5U3RyaW5nKCk7CiAKQEAgLTczOCw3ICs3MjgsNiBAQCB1c2luZyBXVEY6OmZpbmQ7CiB1c2lu
ZyBXVEY6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnM7CiB1c2luZyBXVEY6OmlzU3BhY2VPck5ld2xp
bmU7CiB1c2luZyBXVEY6OnJldmVyc2VGaW5kOwotdXNpbmcgV1RGOjpBU0NJSUxpdGVyYWw7CiAK
ICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL01haW5U
aHJlYWRXaW4uY3BwCmluZGV4IGYzMjRlOGI2MWRkNDFmYTA1NjA4NjNiNmM1ODE5MTBmODY3ZDM2
ZWIuLjUyNjlkOWYyMmUwYThkNThmYjE2ZmIyNzkzYjVjOWQyODIxZTIzNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBpbml0aWFsaXpl
TWFpblRocmVhZFBsYXRmb3JtKCkKICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVG
QVVMVCwgMCwgSFdORF9NRVNTQUdFLCAwLCAwLCAwKTsKICAgICB0aHJlYWRpbmdGaXJlZE1lc3Nh
Z2UgPSBSZWdpc3RlcldpbmRvd01lc3NhZ2VXKEwiY29tLmFwcGxlLldlYktpdC5NYWluVGhyZWFk
RmlyZWQiKTsKIAotICAgIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoIk1haW4gVGhy
ZWFkIik7CisgICAgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCh7ICJNYWluIFRocmVh
ZCIsICJNYWluVGhyZWFkIiB9KTsKIH0KIAogdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25z
T25NYWluVGhyZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVX
aW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKaW5kZXggZjRjNGI4
Yzc3ZGNlOTk1ZjU3ZjI1NjcwMmMxZjljZWY4YzY1YTVhYS4uNzEyNGFjZmM5N2RjYWU5YTIyMTQ4
NDI2ODI5Yjg0ZDM2ZDgyYzI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1dvcmtR
dWV1ZVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29y
a1RocmVhZCgpCiAgICAgbV9mdW5jdGlvblF1ZXVlTG9jay51bmxvY2soKTsKIH0KIAotdm9pZCBX
b3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1Mp
Cit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlw
ZSwgUU9TKQogewogICAgIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCA9IDA7CiAgICAgbV90aW1l
clF1ZXVlID0gOjpDcmVhdGVUaW1lclF1ZXVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDg3NDc2NDM4Y2Fl
NjVhNjM4N2Q5MDFhNzUyODgxNWVjOTU0N2YyMzIuLmFiMWVmNjQ4MGE2MjVjOWJkZTRkZGIxODUx
ZGRlOTAyMzJlYmZmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIElEQlNlcnZlcjo6
SURCU2VydmVyKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxl
cikKICAgICA6IG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIp
CiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2Nr
KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJl
YWRFbnRyeSwgdGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElE
ID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgeyAi
SW5kZXhlZERhdGFiYXNlIFNlcnZlciIsICJJREJTZXJ2ZXIiIH0pOwogfQogCiBJREJTZXJ2ZXI6
OklEQlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2lu
Z1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQpAQCAtNjYsNyArNjYsNyBA
QCBJREJTZXJ2ZXI6OklEQlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYQogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIg
Y3JlYXRlZCBhdCBwYXRoICVzIiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2Nr
KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJl
YWRFbnRyeSwgdGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElE
ID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgeyAi
SW5kZXhlZERhdGFiYXNlIFNlcnZlciIsICJJREJTZXJ2ZXIiIH0pOwogfQogCiB2b2lkIElEQlNl
cnZlcjo6cmVnaXN0ZXJDb25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRp
b0RlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlv
RGVjb2Rlci5jcHAKaW5kZXggMjkyZjA1YjhjZDUwNmUyMjlhZTZiOGJkODYyOWMwOTU0ZDE4NDU5
Yi4uMDNkODg0ZWM0ZmRkMDJjZjVkZDRjYTM5MTliN2VkZGQxZjAwMTVkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAK
QEAgLTM5LDcgKzM5LDcgQEAgQXN5bmNBdWRpb0RlY29kZXI6OkFzeW5jQXVkaW9EZWNvZGVyKCkK
IHsKICAgICAvLyBTdGFydCB3b3JrZXIgdGhyZWFkLgogICAgIExvY2tIb2xkZXIgbG9jayhtX3Ro
cmVhZENyZWF0aW9uTXV0ZXgpOwotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNB
dWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOworICAgIG1f
dGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0
aGlzLCB7ICJBdWRpbyBEZWNvZGVyIiwgIkF1ZGlvRGVjb2RlciIgfSk7CiB9CiAKIEFzeW5jQXVk
aW9EZWNvZGVyOjp+QXN5bmNBdWRpb0RlY29kZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwCmluZGV4IDUwNTIzMDQxOTdjZGVkZGU0N2ZkY2JiOTEyZWM0NzQwNTU3OTc0MjguLmJhNzNi
ODAwNDI1ODMwMTM5NGU5Y2Q2NDE4YjM5MjczNjVkZDUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGU6OnN0YXJ0UmVuZGVyaW5nKCkKICAgICBpZiAoIW1fc3RhcnRlZFJlbmRlcmluZykgewog
ICAgICAgICBtX3N0YXJ0ZWRSZW5kZXJpbmcgPSB0cnVlOwogICAgICAgICByZWYoKTsgLy8gU2Vl
IGNvcnJlc3BvbmRpbmcgZGVyZWYoKSBjYWxsIGluIG5vdGlmeUNvbXBsZXRlRGlzcGF0Y2goKS4K
LSAgICAgICAgbV9yZW5kZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyRW50cnksIHRoaXMsICJvZmZsaW5lIHJlbmRlcmVyIik7
CisgICAgICAgIG1fcmVuZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6b2ZmbGluZVJlbmRlckVudHJ5LCB0aGlzLCB7ICJvZmZsaW5lIHJlbmRlcmVy
IiwgIk9mZmxpbmVSZW5kZXJlciIgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IDBkZGU1
ZjcyNjhlZTY0MmMwMDQzMDVjZWZlMzZiMWM5ZTQ0Yjg3ZDMuLjhkZmQ2ZGJiNDBkNWQ5Y2FhNTRj
M2FjNGE1MGZlYmJkZGIyMWY5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wg
RGF0YWJhc2VUaHJlYWQ6OnN0YXJ0KCkKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFk
OjpkYXRhYmFzZVRocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogRGF0YWJhc2UiKTsKKyAgICBt
X3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0
YXJ0LCB0aGlzLCB7ICJXZWJDb3JlOiBEYXRhYmFzZSIsICJXZWJEQiIgfSk7CiAKICAgICByZXR1
cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xs
ZXIuY3BwCmluZGV4IDZmOWZjYTY3ZjNjNDdhZGRjODNkZWM4Y2IwZDVlYjhjY2I0MGQ3NDMuLjNl
MjRmMGIwODA5YzFmMWM1ZDc0NjY4OGFjYTkyNjFjMjBjMTdmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQg
R0NDb250cm9sbGVyOjpnYXJiYWdlQ29sbGVjdE5vd0lmTm90RG9uZVJlY2VudGx5KCkKIAogdm9p
ZCBHQ0NvbnRyb2xsZXI6OmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dp
bmcoYm9vbCB3YWl0VW50aWxEb25lKQogewotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQg
PSBjcmVhdGVUaHJlYWQoY29sbGVjdCwgMCwgIldlYkNvcmU6IEdDQ29udHJvbGxlciIpOworICAg
IFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29sbGVjdCwgMCwgeyAi
V2ViQ29yZTogR0MgQ29udHJvbGxlciIsICJHQ0NvbnRyb2xsZXIiIH0pOwogCiAgICAgaWYgKHdh
aXRVbnRpbERvbmUpIHsKICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCBmNjkxZjZiMDlmMjZh
NWQ2OTU0Y2UxNjM3YjMyNzI2NjBiMTY5YzAwLi5mMDhlMGMwMWQ5Y2U0YWYyOGM2MzliNTFhNjQy
ZGE4NmZlOTg0YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcApAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN1YnRsZUNyeXB0bzo6U3VidGxl
Q3J5cHRvKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKLSAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIikpCisgICAgLCBtX3dvcmtRdWV1
ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIiwgIkNy
eXB0b1F1ZXVlIiB9KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9Bc3luY0ZpbGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVT
dHJlYW0uY3BwCmluZGV4IDViODEzNjExMmFkZGVhMTQ1Yzk1NTkwYThhM2MxNzYxZjFiMWI5ODMu
LmFmYjJlMGRmMjIyZGI0ZDMzYWNmZmE4ZjVhYjg5NjlmMzk1OTk2YzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGlj
IHZvaWQgY2FsbE9uRmlsZVRocmVhZChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogCiAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGNyZWF0ZUZpbGVUaHJlYWRPbmNlOwogICAgIHN0ZDo6
Y2FsbF9vbmNlKGNyZWF0ZUZpbGVUaHJlYWRPbmNlLCBbXSB7Ci0gICAgICAgIGNyZWF0ZVRocmVh
ZCgiV2ViQ29yZTogQXN5bmNGaWxlU3RyZWFtIiwgW10geworICAgICAgICBjcmVhdGVUaHJlYWQo
eyAiV2ViQ29yZTogQXN5bmNGaWxlU3RyZWFtIiwgIkFzeW5jRmlsZVN0cmVhbSIgfSwgW10gewog
ICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgIEF1dG9kcmFpbmVkUG9vbCBw
b29sOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRl
eCBlZTQzN2U4NjI4ZWJmNGU4NjMyN2NjNzcwMzBmNWY2OTRlMzBiYjJkLi45OGYxODkwMzkzYWNh
MmQwMzA5OWUzZmNmZTc4NjcwZWExYTk5NDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25EYXRhYmFzZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBib29sIEljb25EYXRhYmFz
ZTo6b3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkK
ICAgICAvLyBMb2NrIGhlcmUgYXMgd2VsbCBhcyBmaXJzdCB0aGluZyBpbiB0aGUgdGhyZWFkIHNv
IHRoZSB0aHJlYWQgZG9lc24ndCBhY3R1YWxseSBjb21tZW5jZSB1bnRpbCB0aGUgY3JlYXRlVGhy
ZWFkKCkgY2FsbCAKICAgICAvLyBjb21wbGV0ZXMgYW5kIG1fc3luY1RocmVhZFJ1bm5pbmcgaXMg
cHJvcGVybHkgc2V0CiAgICAgbV9zeW5jTG9jay5sb2NrKCk7Ci0gICAgbV9zeW5jVGhyZWFkID0g
Y3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZFN0YXJ0LCB0
aGlzLCAiV2ViQ29yZTogSWNvbkRhdGFiYXNlIik7CisgICAgbV9zeW5jVGhyZWFkID0gY3JlYXRl
VGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZFN0YXJ0LCB0aGlzLCB7
ICJXZWJDb3JlOiBJY29uRGF0YWJhc2UiLCAiSWNvbkRCIiB9KTsKICAgICBtX3N5bmNUaHJlYWRS
dW5uaW5nID0gbV9zeW5jVGhyZWFkOwogICAgIG1fc3luY0xvY2sudW5sb2NrKCk7CiAgICAgaWYg
KCFtX3N5bmNUaHJlYWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFk
LmNwcAppbmRleCA5MTIwMGMzNDVmNDU1Zjk2ZDQ5NGJmZDJhZDcwM2YyOGM1YzYyOWQxLi44ODA0
MGJhMzg4NTRjZjk5MzM0M2U1YWE2ZjM0ZTVkMTRhNWU5Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFJl
c291cmNlVXNhZ2VUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgbV92bSA9ICZjb21tb25WTSgpOwotICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNy
ZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IFJlc291cmNlVXNhZ2Ui
KTsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ss
IHRoaXMsIHsgIldlYkNvcmU6IFJlc291cmNlVXNhZ2UiLCAiUmVzb3VyY2VVc2FnZSIgfSk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6dGhyZWFkQ2FsbGJhY2sodm9pZCogcmVzb3Vy
Y2VVc2FnZVRocmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUaHJlYWQuY3BwCmluZGV4IDczMGMwYTZiZDkzZjQ1NzhkMWVkYmY5YWNlMWNkODY1NjZl
NmM5ODguLmY4YmViY2M1YjIwZmY1Mzc1OTc2YTEzNGJlZjYwN2UxY2ZlNDQ4NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcApAQCAt
ODEsNyArODEsNyBAQCB2b2lkIFNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQo
KQogICAgIHsKICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6
ZVJ1bkxvb3BNdXRleCk7CiAKLSAgICAgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhy
ZWFkKHRocmVhZENhbGxiYWNrLCB0aGlzLCAiV2ViQ29yZTogU2Nyb2xsaW5nIik7CisgICAgICAg
IG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywg
eyAiV2ViQ29yZTogU2Nyb2xsaW5nIiwgIlNjcm9sbGluZyIgfSk7CiAgICAgICAgIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFi
bGUud2FpdChsb2NrLCBbdGhpc117IHJldHVybiBtX3RocmVhZFJ1bkxvb3A7IH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAK
aW5kZXggZjcxMzMzYzVhMzdhOTk4OTY0ZjNhNzQxYzczMTUyZTk1MTQ2NmNmNi4uYjhjZDYyYjk4
Mzg2OWFmN2JkYzgyNjI3M2UyMDM4YWU2ZWIzNzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCkBAIC0xMDYsNyArMTA2
LDcgQEAgdm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSgpCiAgICAg
CiAgICAgaWYgKCFtX2hydGZEYXRhYmFzZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVh
ZCkgewogICAgICAgICAvLyBTdGFydCB0aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcg
cHJvY2Vzcy4KLSAgICAgICAgbV9kYXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChk
YXRhYmFzZUxvYWRlckVudHJ5LCB0aGlzLCAiSFJURiBkYXRhYmFzZSBsb2FkZXIiKTsKKyAgICAg
ICAgbV9kYXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxvYWRlckVu
dHJ5LCB0aGlzLCB7ICJIUlRGIGRhdGFiYXNlIGxvYWRlciIsICJIUlRGREJMb2FkZXIiIH0pOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2
ZXJiQ29udm9sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNv
bnZvbHZlci5jcHAKaW5kZXggOTZmMzMwODI4MDc5YTc5YWQ2NDgyMGQwNzIxYzU5YzVlYTE2ZmRi
MS4uMTI5NTljM2VmNzExZWI3NmE4N2QyMWY5OTExYzY4MGFhNjc5MWUxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0xMzAs
NyArMTMwLDcgQEAgUmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIoQXVkaW9DaGFubmVs
KiBpbXB1bHNlUmVzcG9uc2UsIHNpemVfdCByZW5kZXJTbGkKICAgICAvLyBTdGFydCB1cCBiYWNr
Z3JvdW5kIHRocmVhZAogICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBiZXR0ZXIgdG8gdXAgdGhlIHRo
cmVhZCBwcmlvcml0eSBoZXJlLiAgSXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwtdGltZSwgYnV0
IGhpZ2hlciB0aGFuIHRoZSBkZWZhdWx0Li4uCiAgICAgaWYgKHRoaXMtPnVzZUJhY2tncm91bmRU
aHJlYWRzKCkgJiYgbV9iYWNrZ3JvdW5kU3RhZ2VzLnNpemUoKSA+IDApCi0gICAgICAgIG1fYmFj
a2dyb3VuZFRocmVhZCA9IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpiYWNrZ3JvdW5kVGhyZWFkRW50
cnksIHRoaXMsICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIpOworICAgICAgICBtX2Jh
Y2tncm91bmRUaHJlYWQgPSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVu
dHJ5LCB0aGlzLCB7ICJjb252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIsICJDb252b2x1dGlv
biIgfSk7CiB9CiAKIFJldmVyYkNvbnZvbHZlcjo6flJldmVyYkNvbnZvbHZlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVh
ZGVyR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxMjk0OTgxNjBmMWJlM2U2Y2Zl
N2YwNDc2NGI0ZDc5ZDQ4ZjhmM2YuLmNkOGY2Y2FlMDllY2M1ZmVmOGM3NDBhNjIxNzlmZDY2ZjUy
MDE3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zNzAs
NyArMzcwLDcgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVC
dXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+
IGNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9N
b25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gcmV0dXJuVmFs
dWU7Ci0gICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVkaW9GaWxlUmVhZGVyIiwg
WyZyZXR1cm5WYWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0geworICAgIGF1
dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoeyAiQXVkaW9GaWxlUmVhZGVyIiwgIkF1ZGlvRmls
ZVJlYWRlciIgfSwgWyZyZXR1cm5WYWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0
ZV0gewogICAgICAgICByZXR1cm5WYWx1ZSA9IEF1ZGlvRmlsZVJlYWRlcihmaWxlUGF0aCkuY3Jl
YXRlQnVzKHNhbXBsZVJhdGUsIG1peFRvTW9ubyk7CiAgICAgfSk7CiAgICAgd2FpdEZvclRocmVh
ZENvbXBsZXRpb24odGhyZWFkSUQpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIFBhc3NSZWZQdHI8QXVk
aW9CdXM+IGNyZWF0ZUJ1c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wg
bWl4VG9Nb25vCiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRp
b0ZpbGUoY29uc3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywg
ZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwot
ICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0
dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBh
dXRvIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKHsgIkF1ZGlvRmlsZVJlYWRlciIsICJBdWRpb0Zp
bGVSZWFkZXIiIH0sIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNh
bXBsZVJhdGVdIHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZGF0YSwg
ZGF0YVNpemUpLmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAg
IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCmluZGV4IDgxZmIxZjk4
NjhmMzEwZTUzNTlkMTYxZGMyZGFjYTVjYzdkM2FlZDcuLjkzZmE1OWQwYWIyNWE1OTA0MDM3MjRh
MjUzNjFmZTA4NjZkNDQwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSW1h
Z2VGcmFtZUNhY2hlOjpjYWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KE5hdGl2ZUltYWdlUHRy
JiYgbmF0aXZlSW1hZ2UsCiBSZWY8V29ya1F1ZXVlPiBJbWFnZUZyYW1lQ2FjaGU6OmRlY29kaW5n
UXVldWUoKQogewogICAgIGlmICghbV9kZWNvZGluZ1F1ZXVlKQotICAgICAgICBtX2RlY29kaW5n
UXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5JbWFnZURlY29kZXIiLCBXb3Jr
UXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSk7Cisg
ICAgICAgIG1fZGVjb2RpbmdRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIkltYWdlRGVjb2Rl
ciIsICJJbWFnZURlY29kZXIiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6
OlFPUzo6VXNlckludGVyYWN0aXZlKTsKICAgICAKICAgICByZXR1cm4gKm1fZGVjb2RpbmdRdWV1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXgg
MmE3Zjg5ZWIwZGQ1NTFhNzg5NzU4ZGY5YWYyZDUwYTVjZDFlYWQ2MC4uZmZhNjlhOTA2YzMxMWI1
MjY3MTk0YmRjY2ViZDU4M2JjMWFlMzBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNv
dXJjZUdTdHJlYW1lci5jcHAKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlc291cmNlSGFuZGxlU3Ry
ZWFtaW5nQ2xpZW50OjpSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMq
IHNyYywKICAgICA6IFN0cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZCA9IGNy
ZWF0ZVRocmVhZCgiUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCBbdGhpcywgcmVxdWVz
dCA9IFdURk1vdmUocmVxdWVzdCldIHsKKyAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCh7ICJS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsICJSU3RyZWFtaW5nIiB9LCBbdGhpcywgcmVx
dWVzdCA9IFdURk1vdmUocmVxdWVzdCldIHsKICAgICAgICAgewogICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICAgICAg
ICAgIG1fcnVuTG9vcCA9ICZSdW5Mb29wOjpjdXJyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5j
cHAKaW5kZXggNGNkMWJkZGYzYWI3NjZhMDAwNDhmOGFjNTc2ZmEyODQ3ZWM2MjcwZC4uYWNkMmZl
MGEyOTQxMzczNjNjODk0MDFiNGU2OTA5Nzc0MjA4NDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4
LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBv
bGxlcjo6RXZlbnRGRFBvbGxlcihpbnQgZmQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoCiAgICAgfSwg
dGhpcywgbnVsbHB0cik7CiAgICAgZ19zb3VyY2VfYXR0YWNoKG1fc291cmNlLmdldCgpLCBudWxs
cHRyKTsKICNlbHNlCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogTWVt
b3J5UHJlc3N1cmVIYW5kbGVyIiwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CisgICAgbV90
aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCh7ICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIiLCAiTWVtUHJl
c3NIYW5kbGVyIiB9LCBbdGhpc10geyByZWFkQW5kTm90aWZ5KCk7IH0KICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUlt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmNwcAppbmRleCBlMTQzNDUxZmRhYTMzOGMzNzEwMTBiN2ZlZGZkZTA1MmE1ZTM5OWY3Li5iM2Ey
NTI5MjY1NjEyODZiM2ZkMGFhZTJjZmNhYjdhNzAyNzczYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTI0Myw3
ICsyNDMsNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5SW1wbDo6YmxvYlNpemUo
Y29uc3QgVVJMJiB1cmwpCiAKIHN0YXRpYyBXb3JrUXVldWUmIGJsb2JVdGlsaXR5UXVldWUoKQog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1ZXVlPj4gcXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuQmxvYlV0aWxpdHkiLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJr
aXQuQmxvYlV0aWxpdHkiLCAiQmxvYlV0aWxpdHkiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFs
LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpOwogICAgIHJldHVybiBxdWV1ZS5nZXQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJM
RGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNv
ZGVyLmNwcAppbmRleCBhYmZiNDZjZWNmODIxNDNiOWZmYWNkMDFiZTU3ODZhNTNhMDA4ZWMwLi4x
NjYzNmM5NjA2ZDYzOGZjNmJlZDMwYWI5OTA5NDI2M2Q2OTMxOGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgRGF0YVVSTERlY29kZXIgewogCiBzdGF0aWMgV29ya1F1ZXVlJiBk
ZWNvZGVRdWV1ZSgpCiB7Ci0gICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVh
dGUoIm9yZy53ZWJraXQuRGF0YVVSTERlY29kZXIiKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1
dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAib3JnLndlYmtpdC5EYXRhVVJMRGVjb2Rl
ciIsICJEYXRhVVJMRGVjb2RlciIgfSkubGVha1JlZigpOwogICAgIHJldHVybiBxdWV1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJS
dW5Mb29wQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJS
dW5Mb29wQ0YuY3BwCmluZGV4IDQ2Yjg5OTRhODQxZWY3MWVhMjc5Y2U3N2NiYzhmYjQzYzI5ZjBh
NjIuLmM0YmFhOGRkOTE4MTg2YjI4ZDA5NDY5MzdmYjQyN2I5NDliODVhYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5j
cHAKQEAgLTc3LDcgKzc3LDcgQEAgQ0ZSdW5Mb29wUmVmIGxvYWRlclJ1bkxvb3AoKQogICAgIHN0
ZDo6dW5pcXVlX2xvY2s8U3RhdGljTG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAg
ICAgaWYgKCFsb2FkZXJSdW5Mb29wT2JqZWN0KSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZChydW5M
b2FkZXJUaHJlYWQsIDAsICJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIik7CisgICAgICAgIGNy
ZWF0ZVRocmVhZChydW5Mb2FkZXJUaHJlYWQsIDAsIHsgIldlYkNvcmU6IENGTmV0d29yayBMb2Fk
ZXIiLCAiQ0ZOZXR3b3JrTG9hZGVyIiB9KTsKIAogICAgICAgICBsb2FkZXJSdW5Mb29wQ29uZGl0
aW9uVmFyaWFibGUud2FpdChsb2NrLCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybERvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsRG93bmxvYWQuY3BwCmluZGV4IDQ0MDhjZDE5ODcwNWJhODZjYzhjMTk4NmZiM2UyY2Fk
ZTc5NmRjYzYuLjM2MWFmZWM5MmIyMzZmM2FlYzFlMmZlOGRjODVkYWE5MWFiMWQwODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxv
YWQuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRU
aHJlYWRJZk5lZWRlZCgpCiAgICAgICAgIGlmIChtX3RocmVhZElkKQogICAgICAgICAgICAgd2Fp
dEZvclRocmVhZENvbXBsZXRpb24obV90aHJlYWRJZCk7CiAgICAgICAgIHNldFJ1blRocmVhZCh0
cnVlKTsKLSAgICAgICAgbV90aHJlYWRJZCA9IGNyZWF0ZVRocmVhZChkb3dubG9hZFRocmVhZCwg
dGhpcywgImRvd25sb2FkVGhyZWFkIik7CisgICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJl
YWQoZG93bmxvYWRUaHJlYWQsIHRoaXMsIHsgImRvd25sb2FkVGhyZWFkIiwgIkRvd25sb2FkZXIi
IH0pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKaW5k
ZXggZTk0Zjg0YTY4MjMzOTUyZDRjMmM2NTJjNmIyYWZmMjVkMjY2ZGM2Yi4uNWIwMzE2YmMwMDEx
YzlhYjlkMjJiZTY0ODA0Yzc3NjlhMjE1NWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxl
SW1wbEN1cmwuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJ
bXBsOjpzdGFydFRocmVhZCgpCiAKICAgICByZWYoKTsgLy8gc3RvcFRocmVhZCgpIHdpbGwgY2Fs
bCBkZXJlZigpLgogCi0gICAgbV93b3JrZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoIldlYlNvY2tl
dCB0aHJlYWQiLCBbdGhpc10geworICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFkKHsg
IldlYlNvY2tldCB0aHJlYWQiLCAiV2ViU29ja2V0IiB9LCBbdGhpc10gewogCiAgICAgICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAKaW5kZXggNTFmNDJmNWZmZmYyZmE2ZGE2ODQ1N2U0ZDIyNmViNmYzNzZjNDBkYS4uZmU1
OTFhM2E5MmQzMjU2NjI2OGUyM2RhN2NkYzlkZjBjODFlY2M4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIGJvb2wgV29ya2VyVGhy
ZWFkOjpzdGFydCgpCiAgICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVh
ZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogV29ya2VyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0
ZVRocmVhZChXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0aGlzLCB7ICJXZWJDb3Jl
OiBXZWJXb3JrZXIiLCAiV2ViV29ya2VyIiB9KTsKIAogICAgIHJldHVybiBtX3RocmVhZElEOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCmluZGV4IGJiNjZmY2VhN2U1
MjhiYzI3ZjYzM2EzZTUyODc4YjUwMWVmMGUxODcuLjk1YzRiZTc2MzY4ZDJjZmI1NDBmNTQxZTRl
ZDRiMDY3MDMzMDllODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdl
VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBTdG9yYWdlVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhy
ZWFkSUQgPSBjcmVhdGVUaHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxi
YWNrLCB0aGlzLCAiV2ViQ29yZTogTG9jYWxTdG9yYWdlIik7CisgICAgICAgIG1fdGhyZWFkSUQg
PSBjcmVhdGVUaHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0
aGlzLCB7ICJXZWJDb3JlOiBMb2NhbFN0b3JhZ2UiLCAiTG9jYWxTdG9yYWdlIiB9KTsKICAgICBh
Y3RpdmVTdG9yYWdlVGhyZWFkcygpLmFkZCh0aGlzKTsKICAgICByZXR1cm4gbV90aHJlYWRJRDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vz
cy5jcHAKaW5kZXggZDVlYWRiMGIzYjQxYWE0Mzk2MGYwMTg1YWMyYTNiYjVmMmFlZmE2NC4uZWU2
NzBhNzUxMjMxYjQzZjliMWYwYWVjMDU1MmJiZGRhYjQzZGE2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTUzLDcgKzUz
LDcgQEAgRGF0YWJhc2VQcm9jZXNzJiBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpCiB9CiAK
IERhdGFiYXNlUHJvY2Vzczo6RGF0YWJhc2VQcm9jZXNzKCkKLSAgICA6IG1fcXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIikpCisgICAgOiBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9j
ZXNzIiwgIkRCUHJvY2VzcyIgfSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBVVEY4RW5jb2Rp
bmcgZW5jb2RpbmcgYW5kIHRoZSB0ZXh0IGVuY29kaW5nIG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9u
IHRoZSBtYWluIHRocmVhZCBiZWZvcmUgYSBiYWNrZ3JvdW5kIHRocmVhZCBuZWVkcyBpdC4KICAg
ICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM2
NSAtIE5lZWQgYSBtb3JlIGV4cGxpY2l0IHdheSBvZiBkb2luZyB0aGlzIGJlc2lkZXMgYWNjZXNz
aW5nIHRoZSBVVEY4RW5jb2RpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAppbmRleCBhODAyOTFmYzFkMWQ1OWM3YzFkYjYw
MjFiOTRjY2U4MjRjNTFjNTk3Li4wNWI4M2JkNmFhYTQ1ZTIzN2Y5NzY3ZGVhODBhYjEwZDQzN2Vj
NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5jcHAKQEAgLTU4Myw3ICs1ODMsNyBAQCB2b2lkIENhY2hlOjpkdW1wQ29udGVu
dHNUb0ZpbGUoKQogCiB2b2lkIENhY2hlOjpkZWxldGVEdW1wRmlsZSgpCiB7Ci0gICAgV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuZGVsZXRlIiktPmRpc3BhdGNoKFtw
YXRoID0gZHVtcEZpbGVQYXRoKCkuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBXb3JrUXVldWU6OmNy
ZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIsICJDYWNoZURlbGV0ZXIiIH0p
LT5kaXNwYXRjaChbcGF0aCA9IGR1bXBGaWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CiAgICAg
ICAgIFdlYkNvcmU6OmRlbGV0ZUZpbGUocGF0aCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxT
b3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZUlPQ2hhbm5lbFNvdXAuY3BwCmluZGV4IGVmN2JhODk5ODIwMjMyNTg5ZTczOTFmMjdmY2QzZDZl
MTY5ZjY4OTQuLmMyNGMwZmIzMDY3YTQ4NDkzNTM2YWNlMDVhZmJiODVjZmMxNzAwMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlP
Q2hhbm5lbFNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJ
T0NoYW5uZWw6OnJlYWRTeW5jSW5UaHJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdv
cmtRdWV1ZSogcXVldWUsIHMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIFJl
ZlB0cjxJT0NoYW5uZWw+IGNoYW5uZWwodGhpcyk7Ci0gICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRo
cmVhZCgiSU9DaGFubmVsOjpyZWFkU3luYyIsIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxl
dGlvbkhhbmRsZXJdIHsKKyAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHsgIklPQ2hhbm5l
bDo6cmVhZFN5bmMiLCAiSU9DUmVhZFN5bmMiIH0sIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29t
cGxldGlvbkhhbmRsZXJdIHsKICAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1pbihz
aXplLCBnRGVmYXVsdFJlYWRCdWZmZXJTaXplKTsKICAgICAgICAgdWludDhfdCogYnVmZmVyRGF0
YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsKICAgICAg
ICAgR1JlZlB0cjxTb3VwQnVmZmVyPiByZWFkQnVmZmVyID0gYWRvcHRHUmVmKHNvdXBfYnVmZmVy
X25ld193aXRoX293bmVyKGJ1ZmZlckRhdGEsIGJ1ZmZlclNpemUsIGJ1ZmZlckRhdGEsIGZhc3RG
cmVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCmluZGV4IDEwYTUyMDNlZmQ4MTgwZTBh
Y2EzNGJlNTRkZjUyNTgyZjU5Yzk1ZjcuLjIwODI0YjJlYjFjMzVkNzkwMjYwM2Y0ZjY1MTljNTcy
MjIxMTJhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCkBAIC04Miw3ICs4Miw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxTdGF0aXN0aWNzPiBTdGF0aXN0aWNzOjpvcGVuKGNvbnN0IFN0cmlu
ZyYgY2FjaGVQYXRoKQogfQogCiBTdGF0aXN0aWNzOjpTdGF0aXN0aWNzKGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VQYXRoKQotICAgIDogbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCBX
b3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAg
IDogbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBw
bGUuV2ViS2l0LkNhY2hlLlN0YXRpc3RpY3MuQmFja2dyb3VuZCIsICJDYWNoZVN0YXRzQkciIH0s
IFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCiAg
ICAgLCBtX3dyaXRlVGltZXIoKnRoaXMsICZTdGF0aXN0aWNzOjp3cml0ZVRpbWVyRmlyZWQpCiB7
CiAgICAgaW5pdGlhbGl6ZShkYXRhYmFzZVBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAppbmRl
eCA4ZjdiNmUzZjJkZmZkMDkzYjAyZmM3NjFhYWU2MmRlNTJhMjVlOGRlLi5jZTRhNzFlYTEwNzNj
NTRlZjNmZWRiOTJiYWM4YmJiYmI1MGRkYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcApAQCAt
MjEzLDkgKzIxMyw5IEBAIFN0b3JhZ2U6OlN0b3JhZ2UoY29uc3QgU3RyaW5nJiBiYXNlRGlyZWN0
b3J5UGF0aCwgU2FsdCBzYWx0KQogICAgICwgbV9zYWx0KHNhbHQpCiAgICAgLCBtX3JlYWRPcGVy
YXRpb25UaW1lb3V0VGltZXIoKnRoaXMsICZTdG9yYWdlOjpjYW5jZWxBbGxSZWFkT3BlcmF0aW9u
cykKICAgICAsIG1fd3JpdGVPcGVyYXRpb25EaXNwYXRjaFRpbWVyKCp0aGlzLCAmU3RvcmFnZTo6
ZGlzcGF0Y2hQZW5kaW5nV3JpdGVPcGVyYXRpb25zKQotICAgICwgbV9pb1F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCBXb3JrUXVldWU6OlR5
cGU6OkNvbmN1cnJlbnQpKQotICAgICwgbV9iYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlLmJhY2tncm91bmQiLCBXb3JrUXVl
dWU6OlR5cGU6OkNvbmN1cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKLSAgICAs
IG1fc2VyaWFsQmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQuQ2FjaGUuU3RvcmFnZS5zZXJpYWxCYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBlOjpT
ZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1faW9RdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCAiQ2FjaGVT
dG9yYWdlRkciIH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBtX2JhY2tn
cm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUu
U3RvcmFnZS5iYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZUJHIiB9LCBXb3JrUXVldWU6OlR5cGU6
OkNvbmN1cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1fc2VyaWFs
QmFja2dyb3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5D
YWNoZS5TdG9yYWdlLnNlcmlhbEJhY2tncm91bmQiLCAiQ2FjaGVTdG9yYWdlU0JHIiB9LCBXb3Jr
UXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwg
bV9ibG9iU3RvcmFnZShtYWtlQmxvYkRpcmVjdG9yeVBhdGgoYmFzZURpcmVjdG9yeVBhdGgpLCBt
X3NhbHQpCiB7CiAgICAgZGVsZXRlT2xkVmVyc2lvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCBkYThlYTNmYmIwNWUzZGZmZTQ5YmUzMzJhNjYw
MWUyN2FiZmNhZjQxLi42ZmY1YTBhZDFiNjlhZjU1OTg5MmNhOTU4Y2JhMWUwYzBmN2VmMzc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yMzEsNyAr
MjMxLDcgQEAgQ29ubmVjdGlvbjo6Q29ubmVjdGlvbihJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJv
b2wgaXNTZXJ2ZXIsIENsaWVudCYgY2xpZW50KQogICAgICwgbV9zaG91bGRFeGl0T25TeW5jTWVz
c2FnZVNlbmRGYWlsdXJlKGZhbHNlKQogICAgICwgbV9kaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtR
dWV1ZUNhbGxiYWNrKDApCiAgICAgLCBtX2lzQ29ubmVjdGVkKGZhbHNlKQotICAgICwgbV9jb25u
ZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5JUEMuUmVjZWl2ZVF1ZXVl
IikpCisgICAgLCBtX2Nvbm5lY3Rpb25RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBw
bGUuSVBDLlJlY2VpdmVRdWV1ZSIsICJJUENSZWNlaXZlUXVldWUiIH0pKQogICAgICwgbV9pblNl
bmRTeW5jQ291bnQoMCkKICAgICAsIG1faW5EaXNwYXRjaE1lc3NhZ2VDb3VudCgwKQogICAgICwg
bV9pbkRpc3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlD
b3VudCgwKQpAQCAtNzIwLDcgKzcyMCw3IEBAIHVpbnQ2NF90IENvbm5lY3Rpb246Omluc3RhbGxJ
bmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjCiAgICAg
bV9uZXh0SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQrKzsKIAogICAgIGlmICghbV9pbmNv
bWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSkKLSAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNz
YWdlQ2FsbGJhY2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LklQ
Qy5JbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSIpOworICAgICAgICBtX2luY29taW5n
U3luY01lc3NhZ2VDYWxsYmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxl
LldlYktpdC5JUEMuSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiLCAiSVN5bmNNc2dD
QlF1ZXVlIiB9KTsKIAogICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrcy5hZGQobV9u
ZXh0SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCAxNzU3ODlmYjlhZTcxM2YxNmVlZWRiZmFi
ZTAwZDZmMzNlNjNjZjIzLi5jNzU1ZWE4MTI0YzllMDY0NWY3NzMzN2U5M2E1NDFkOTJjZTE1YTcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtNTAsNyArNTAsNyBA
QCBzdGF0aWMgdm9pZCBkaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rp
b24qKQogICAgIC8vIHRoZSBwcm9jZXNzIHdpbGwgZXhpdCBmb3JjaWJseS4KICAgICBhdXRvIHdh
dGNoZG9nRGVsYXkgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcygxMCk7CiAKLSAgICBXb3JrUXVldWU6
OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dRdWV1ZSIpLT5k
aXNwYXRjaEFmdGVyKHdhdGNoZG9nRGVsYXksIFtdIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZSh7
ICJjb20uYXBwbGUuV2ViS2l0LkNoaWxkUHJvY2Vzcy5XYXRjaERvZ1F1ZXVlIiwgIkNoaWxkV2Rv
Z1F1ZXVlIiB9KS0+ZGlzcGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CiAgICAgICAgIC8v
IFdlIHVzZSBfZXhpdCBoZXJlIHNpbmNlIHRoZSB3YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxsZWQg
ZnJvbSBhbm90aGVyIHRocmVhZCBhbmQgd2UgZG9uJ3Qgd2FudAogICAgICAgICAvLyBnbG9iYWwg
ZGVzdHJ1Y3RvcnMgb3IgYXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxlZCBmcm9tIHRoaXMgdGhy
ZWFkIHdoaWxlIHRoZSBtYWluIHRocmVhZCBpcyBidXN5CiAgICAgICAgIC8vIGRvaW5nIGl0cyB0
aGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggNDBkYzRmNDQ1NmMyOGZjOTM3ZDlhMTY2YWEyMjE5Y2Y3
ZThlYzUzMC4uM2FkMjM4YjhlMDEyOTNjNWVkZDFhNTkyNzg4Y2I1MGM1OGViYjRjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgY2xhc3MgV29ya1F1ZXVlUG9vbCB7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKG1fc2hhcmVkV29ya1F1ZXVlKTsKICAgICAgICAgICAgICAgICBhZGRS
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbV9zaGFyZWRXb3JrUXVldWU7CiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXb3Jr
UXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUiKTsK
KyAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1ZXVlOjpj
cmVhdGUoeyAib3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUiLCAiVGhyZWFk
ZWRDb21wIiB9KTsKICAgICAgICAgICAgICAgICBpZiAoIW1fdGhyZWFkQ291bnQpCiAgICAgICAg
ICAgICAgICAgICAgIG1fc2hhcmVkV29ya1F1ZXVlID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZTsKICAgICAgICAgICAgICAgICBtX3RocmVhZENvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IDg1NDMzYmQ1OTg2YzEzNmE4YmVjYzk4MWJmZDcw
ZDg0ZWU0N2Q0NmEuLmQzZWI4NDZkZGMzMmEyOTRjMzEyNDliNGM0MGVjOThiOTE3YTYyOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBAIC02NCw3ICs2NCw3
IEBAIHN0YXRpYyBXb3JrUXVldWUmIHdvcmtRdWV1ZSgpCiAgICAgc3RhdGljIFdvcmtRdWV1ZSog
d29ya1F1ZXVlOwogICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwogICAgIGRp
c3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAgICAgICAgd29ya1F1ZXVlID0gJldvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltIikubGVha1JlZigpOworICAg
ICAgICB3b3JrUXVldWUgPSAmV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5T
ZWNJdGVtU2hpbSIsICJTZWNJdGVtU2hpbSIgfSkubGVha1JlZigpOwogCiAgICAgfSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUuY3BwCmluZGV4IDNhNzQwZmQ1MGE1ZjMzODQ1ODlkMDc2MjdkY2Zj
MzBhMmM2OTlhYWIuLjIzYmJkNGE4ODQ4NDczMjcxODFjMGQzZTE4ODgzMjllZWNhNDBhMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLmNwcApAQCAtNjQsOSArNjQsOSBAQCBVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlOjpVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlKCkKIAogVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZShjb25zdCBXVEY6OlN0cmlu
ZyYgc3RvcmVQYXRoKQogICAgIDogbV9zdG9yZVBhdGgoc3RvcmVQYXRoKQotICAgICwgbV9jb21w
aWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29t
cGlsZSBRdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCi0gICAgLCBtX3JlYWRR
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZWFkIFF1
ZXVlIikpCi0gICAgLCBtX3JlbW92ZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlIFJlbW92ZSBRdWV1ZSIpKQorICAgICwgbV9jb21waWxlUXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoeyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVl
IiwgIlVDRXhTdENvbXBRdWV1ZSIgfSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKKyAg
ICAsIG1fcmVhZFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUgUmVhZCBRdWV1ZSIsICJVQ0V4U3RSZFF1ZXVlIiB9KSkKKyAgICAsIG1fcmVtb3ZlUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZW1vdmUg
UXVldWUiLCAiVUNFeFN0Um1RdWV1ZSIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxZmUxMDI1NGQ3
YzU2MGFjZmE2OTA1MTZhNTMzOGRlNDRiMGZkM2NhLi4zZjUzMTMxMjlkZTY4NDUwYjEwMTdlMGMy
MzljMWRjZTM5Y2QyMzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgUmVmPFN0b3JhZ2VN
YW5hZ2VyPiBTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdl
RGlyZWN0b3J5KQogfQogCiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1hbmFnZXIoY29uc3QgU3Ry
aW5nJiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2VNYW5hZ2VyIikpCisgICAgOiBtX3F1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZU1hbmFnZXIiLCAiU3Rv
cmFnZU1nciIgfSkpCiAgICAgLCBtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcihMb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmNyZWF0ZShtX3F1ZXVlLmNvcHlSZWYoKSwgbG9jYWxTdG9y
YWdlRGlyZWN0b3J5KSkKIHsKICAgICAvLyBNYWtlIHN1cmUgdGhlIGVuY29kaW5nIGlzIGluaXRp
YWxpemVkIGJlZm9yZSB3ZSBzdGFydCBkaXNwYXRjaGluZyB0aGluZ3MgdG8gdGhlIHF1ZXVlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCBjMmY4ZTZhNGJhNzM1MGE0NjNhNDU5ZGU0OGU1NmFh
ZGZiZDJhMjUwLi43ZTkwNzY5NTUwOGNlYzI1MTU4YTQ2YmZkYWY5MmNmZjU5N2YyNDcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZWY8V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlPiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShj
b25zdAogCiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZShjb25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkpCiAgICAgOiBtX3Jlc291cmNlU3RhdGlzdGljc1N0b3JlKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Y3JlYXRlKCkpCi0gICAgLCBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIp
KQorICAgICwgbV9zdGF0aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIsICJXZWJSc1N0YXRRdWV1
ZSIgfSkpCiAgICAgLCBtX3N0b3JhZ2VQYXRoKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggN2E4NDNiMWYwNDNiZjdkMGVjN2VjM2Y2
YjNkMTc5MTAzM2RmZWUxYy4uMTA0NjI2M2RmYTE0MDc4YjQxNTc2ZTk0ODZmYjU1OGM5OGZjNTMw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtODAsNyArODAsNyBAQCBXZWJzaXRlRGF0YVN0b3Jl
OjpXZWJzaXRlRGF0YVN0b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICAsIG1f
Y29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQogICAgICwgbV9zdG9yYWdlTWFu
YWdlcihTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VE
aXJlY3RvcnkpKQogICAgICwgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5KSkKLSAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFTdG9yZSIpKQorICAgICwgbV9xdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiLCAiV2ViRGF0YVN0
b3JlIiB9KSkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KQEAgLTg5LDcgKzg5LDcg
QEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAg
ICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKCkKLSAgICAs
IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFT
dG9yZSIpKQorICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2Vi
S2l0LldlYnNpdGVEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIiB9KSkKIHsKICAgICBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9s
aW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKaW5kZXggMDYwOGFiNzJmOTkyNDhlZjI0
Y2QyZDUyNDVlZTUzMzNhMDBkOWQwZC4uZTIwOWRmZDFiYWI2ZWMyZWVjOTMyNDhmZTM0NjU2NzFk
MDNkYTExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9y
eVByZXNzdXJlTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4
L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBNZW1vcnlQcmVz
c3VyZU1vbml0b3I6Ok1lbW9yeVByZXNzdXJlTW9uaXRvcigpCiAgICAgaWYgKG1fZXZlbnRGRCA9
PSAtMSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVu
dGlmaWVyID0gY3JlYXRlVGhyZWFkKCJNZW1vcnlQcmVzc3VyZU1vbml0b3IiLCBbdGhpc10gewor
ICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh7ICJN
ZW1vcnlQcmVzc3VyZU1vbml0b3IiLCAiTWVtUHJlc3NNb25pdG9yIiB9LCBbdGhpc10gewogICAg
ICAgICBkb3VibGUgcG9sbEludGVydmFsID0gc19tYXhQb2xsaW5nSW50ZXJ2YWxJblNlY29uZHM7
CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBzbGVlcChwb2xsSW50ZXJ2YWwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5j
cHAKaW5kZXggMjFlYTdiMDEyYjE4OThkMjEwMTJiMjI4NzI1YmVlMTA2ZmNhNmRiNC4uYzNmMDE1
ZWY3ZDYyYWE0ZDNhNjNlZWQ1YjQ1YjliMzkyYmI3ODU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCkBAIC00Nyw3ICs0Nyw3IEBA
IFNlY0l0ZW1TaGltUHJveHkmIFNlY0l0ZW1TaGltUHJveHk6OnNpbmdsZXRvbigpCiB9CiAKIFNl
Y0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkoKQotICAgIDogbV9xdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbVByb3h5IikpCisgICAgOiBt
X3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW1Q
cm94eSIsICJTZWNJdGVtU2hpbVAiIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCmluZGV4IGNiYzRmMGUzZTg0MjliYWFkNWU4OGNhYWUzNmQ1ZmIzNTE5
ZDg4NmIuLjY0ODI3OWI4NTZhOWE4OTAzYjU5ZWI4NzIwZmNlNDViNWI2NGI2ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFJlZjxQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI+IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlcjo6Y3JlYXRlKCkKIH0KIAogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIiKSkK
KyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5QbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIiLCAiUGx1Z2luQ29ubk1nciIgfSkpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKaW5kZXggMWYyMjI2NThjOTA2YjczZjc1NTQxYWNhMzcyZThlZjUwOTk4ZDE3YS4u
MTc4NTg3NzU1MzMzYzUyNmE2ZmFkNDhhZTY3ZGY3OWRmMDk1ZWM4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTUzLDcgKzUzLDcgQEAgUmVmPEV2ZW50RGlzcGF0Y2hlcj4gRXZlbnREaXNwYXRjaGVyOjpjcmVh
dGUoKQogfQogCiBFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hlcigpCi0gICAgOiBtX3F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkV2ZW50RGlzcGF0Y2hlciIs
IFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZl
KSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5F
dmVudERpc3BhdGNoZXIiLCAiRXZlbnREaXNwYXRjaCIgfSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogICAgICwgbV9yZWNlbnRXaGVl
bEV2ZW50RGVsdGFGaWx0ZXIoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpjcmVhdGUoKSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRl
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1Vw
ZGF0ZURpc3BhdGNoZXIuY3BwCmluZGV4IGM4ZTM2Mzg2MWYyMDU3YTA4NmEzZjc4ZDVkYjQ1YjIz
YTBjNWI4NmEuLjdhNWYxNGVkN2ZjMTAwNDNjMGUwNGZkYzNhMzE5MjNjZTBhYzYyNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0
Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRh
dGVEaXNwYXRjaGVyLmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8Vmlld1VwZGF0ZURpc3BhdGNo
ZXI+IFZpZXdVcGRhdGVEaXNwYXRjaGVyOjpjcmVhdGUoKQogfQogCiBWaWV3VXBkYXRlRGlzcGF0
Y2hlcjo6Vmlld1VwZGF0ZURpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIpKQorICAgIDogbV9x
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlZpZXdVcGRhdGVEaXNw
YXRjaGVyIiwgIlZVcGRhdGVEaXNwYXRjaCIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MzdlZmZiYzM4ZGYyYjJlNTlhODll
ZjFhNGRlNzliNWVhNWViZGEyLi4yNzBlNmRjNjk4ZGM0OGIwYzQ3ODU1ZmY0NDlkZGU1OGFjNzVj
YjA4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTctMDEtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBz
aG9ydCBuYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKHJ1
bkphdmFTY3JpcHRUaHJlYWQpOgorICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhyZWFkcyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAo
dGVzdFRocmVhZElkZW50aWZpZXJNYXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0NvbmRpdGlvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9j
ay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpydW5Mb2NrVGVzdCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHA6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpUb1VwcGVyQ29udmVydGVyOjpwcm9kdWNlUXVldWUpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VG9VcHBlckNvbnZlcnRlcjo6Y29uc3VtZVF1ZXVlKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9X
b3JrUXVldWVHTGliLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKToKKwogMjAxNy0wMS0x
MCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBpbnN0YWxsLWRlcGVuZGVuY2llcyBzY3JpcHQgbWlzc2VzIGdkYgpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCBlMmY5YmFkZTZj
YTdjMjY5NDg1YTRjZGNiZTYwOTljMzZiYTAyMTk4Li45YjU2MThhNTljMTYzOTY2MTgwYzMyZjc5
OGQyZGQzZjNjNDI3NGU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2Ny
aXB0VGhyZWFkaW5nLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhy
ZWFkaW5nLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2
b2lkKikKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7
CiAgICAgICAgIGRldGFjaFRocmVhZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFk
cygpLnJlbW92ZSh0aHJlYWQpOwotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVh
dGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlw
dFRocmVhZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIi
LCAiIiB9KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIHZv
aWQgc3RhcnRKYXZhU2NyaXB0VGhyZWFkcygpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNj
cmlwdFRocmVhZHNNdXRleCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgamF2YVNj
cmlwdFRocmVhZHNDb3VudDsgKytpKQotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChj
cmVhdGVUaHJlYWQoJnJ1bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNj
cmlwdFRocmVhZHMoKS5hZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7
ICIiLCAiIiB9KSk7CiB9CiAKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAxOGJjNzg0OGM4NGE3ZDMw
NmU2YTU4N2Q4OTk4MjlkOWVlYTYxN2NjLi41MmRjNTZmYTIyOTQyMDYxYjFlNzE4ODhiMzg4Mzg3
MTU0YzlkOWVmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CkBAIC0xMTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VGhyZWFkSWRlbnRpZmllck1h
cCgpCiAKICAgICAvLyBOb3cgY3JlYXRlIGFub3RoZXIgdGhyZWFkIHVzaW5nIFdURi4gT24gT1NY
LCBpdCB3aWxsIGhhdmUgdGhlIHNhbWUgcHRocmVhZCBoYW5kbGUKICAgICAvLyBidXQgc2hvdWxk
IGdldCBhIGRpZmZlcmVudCBUaHJlYWRJZGVudGlmaWVyLgotICAgIGNyZWF0ZVRocmVhZChydW5U
aHJlYWQsIDAsICJEdW1wUmVuZGVyVHJlZTogdGVzdCIpOworICAgIGNyZWF0ZVRocmVhZChydW5U
aHJlYWQsIDAsIHsgIkR1bXBSZW5kZXJUcmVlOiB0ZXN0IiwgIkRSVFRlc3QiIH0pOwogfQogCiBz
dGF0aWMgdm9pZCBhbGxvY2F0ZUdsb2JhbENvbnRyb2xsZXJzKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDg0ODUyNzM1MWY2MDYzZmMyNjM2ODc4
MDU2ZDljMjRkYmFiZTgzZGMuLmI4NTE0ZDdjYWUxNTE1YTdlNmI0NmYyNTYwNGJkOWNmNWI5Y2Fh
MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAt
OTcsNyArOTcsNyBAQCB2b2lkIHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
bnVtQ29uc3VtZXJzOyBpLS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRl
bnRpZmllciA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAor
ICAgICAgICAgICAgeyAiQ29uc3VtZXIgdGhyZWFkIiwgIkNvbnN1bWVyIiB9LAogICAgICAgICAg
ICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIHJlc3VsdDsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIHJ1blRlc3QoCiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAgVGhy
ZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAg
ICAgIlByb2R1Y2VyIFRocmVhZCIsCisgICAgICAgICAgICB7ICJQcm9kdWNlciBUaHJlYWQiLCAi
UHJvZHVjZXIiIH0sCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvTG9jay5jcHAKaW5kZXggNTU3NjMwMmQ2OTBkZmNhMzU5OTI5MjhiMWM4NTNj
NzYyMmU0NWZiOS4uNTc2M2EwNGEzNjRhNTFhMTgyN2U5MGYyZWE4OTRmZjkzNGY1NTAyOSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9p
ZCBydW5Mb2NrVGVzdCh1bnNpZ25lZCBudW1UaHJlYWRHcm91cHMsIHVuc2lnbmVkIG51bVRocmVh
ZHNQZXJHcm91cCwgdW5zaWduZWQKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4
ID0gbnVtVGhyZWFkc1Blckdyb3VwOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgdGhy
ZWFkc1t0aHJlYWRHcm91cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhd
ID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgICAgICJMb2NrIHRlc3QgdGhyZWFkIiwKKyAg
ICAgICAgICAgICAgICB7ICJMb2NrIHRlc3QgdGhyZWFkIiwgIkxvY2tUZXN0ZXIiIH0sCiAgICAg
ICAgICAgICAgICAgW3RocmVhZEdyb3VwSW5kZXgsICZsb2NrcywgJndvcmRzLCBudW1JdGVyYXRp
b25zLCB3b3JrUGVyQ3JpdGljYWxTZWN0aW9uXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IG51bUl0ZXJhdGlvbnM7IGktLTspIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2tzW3RocmVhZEdyb3VwSW5kZXhdLmxvY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKaW5kZXggYzY3ZTFlMDgxNWE4M2FmYTkzMzNl
MmFjOWEyYmQ3OGI2N2IxNjQ1Yi4uZDAxNjU0MWUwNzBmODEyODIwNTRjOTNmZDYxZmM5MmM3ZDZh
ZTMwMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xv
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAK
QEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IFNpbmdsZUxhdGNoVGVzdCB7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IG51bVRocmVhZHM7IGktLTspIHsKICAgICAgICAgICAgIHRocmVhZHMuYXBw
ZW5kKAogICAgICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAgICAg
IlBhcmtpbmcgVGVzdCBUaHJlYWQiLAorICAgICAgICAgICAgICAgICAgICB7ICJQYXJraW5nIFRl
c3QgdGhyZWFkIiwgIlBhcmtpbmdUZXN0ZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFsmXSAo
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGN1cnJlbnRUaHJlYWQo
KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9u
aXplZEZpeGVkUXVldWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hy
b25pemVkRml4ZWRRdWV1ZS5jcHAKaW5kZXggMzE0MzZiYzIyMzA3ZjlkZDczZjY5MThiMjRhZGI0
MGU3ODlmYjVlYy4uMWI4Y2E0ZmIwOWQzMTY0YjVhMTlhY2M2ZjhmMzhiNTRkMjI5ODMzYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRR
dWV1ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVk
Rml4ZWRRdWV1ZS5jcHAKQEAgLTYyLDE0ICs2MiwxNCBAQCBjbGFzcyBUb1VwcGVyQ29udmVydGVy
IHsKICAgICBXb3JrUXVldWUqIHByb2R1Y2VRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1f
cHJvZHVjZVF1ZXVlKQotICAgICAgICAgICAgbV9wcm9kdWNlUXVldWUgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgib3JnLndlYmtpdC5Qcm9kdWNlIik7CisgICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9
IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJraXQuUHJvZHVjZSIsICJQcm9kdWNlciIgfSk7
CiAgICAgICAgIHJldHVybiBtX3Byb2R1Y2VRdWV1ZS5nZXQoKTsKICAgICB9CiAKICAgICBXb3Jr
UXVldWUqIGNvbnN1bWVRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fY29uc3VtZVF1ZXVl
KQotICAgICAgICAgICAgbV9jb25zdW1lUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndl
YmtpdC5Db25zdW1lIik7CisgICAgICAgICAgICBtX2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKHsgIm9yZy53ZWJraXQuQ29uc3VtZSIsICJDb25zdW1lciIgfSk7CiAgICAgICAgIHJl
dHVybiBtX2NvbnN1bWVRdWV1ZS5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCmluZGV4IDdlMjc3ZTk0YzQ3Y2UzY2UyZmI4MjUyZjZj
ZGMzYTU1YWYzN2JlNzkuLmE4ZWJhMTkwZWNhZmQ1MTQ0YzE3NTgxZWYzMTIxMWNlMGViMDQ0YWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtNTQs
NyArNTQsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogbG9uZ1Rlc3RMYWJlbCA9ICJsb25nVGVzdCI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHRoaXJkVGVzdExhYmVsID0gInRoaXJkVGVzdCI7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5zaW1wbGUiKTsKKyAgICBhdXRvIHF1
ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIs
ICJTaW1wbGVUZXN0IiB9KTsKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNv
dW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKQEAgLTEwNiw4ICsx
MDYsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBib29sIGNhbGxlZExv
bmdUZXN0ID0gZmFsc2U7CiAgICAgYm9vbCBjYWxsZWRUaGlyZFRlc3QgPSBmYWxzZTsKICAgICAK
LSAgICBhdXRvIHF1ZXVlMSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRl
c3QudHdvUXVldWVzMSIpOwotICAgIGF1dG8gcXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMyIik7CisgICAgYXV0byBxdWV1ZTEgPSBXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIsICJUd29R
dWV1ZXMxVGVzdCIgfSk7CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJj
b20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMiIsICJUd29RdWV1ZXMyVGVzdCIgfSk7CiAK
ICAgICBFWFBFQ1RfRVEoMSwgcXVldWUxLT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwg
cXVldWUyLT5yZWZDb3VudCgpKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKFdURl9Xb3JrUXVl
dWUsIERpc3BhdGNoQWZ0ZXIpCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CiAg
ICAgYm9vbCBjYWxsZWREaXNwYXRjaEFmdGVyVGVzdCA9IGZhbHNlOwogCi0gICAgYXV0byBxdWV1
ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRl
ciIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2Vi
S2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIsICJEaXNwYXRjaEFmdGVyIiB9KTsKIAogICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fbG9jayk7CiAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdURl9Xb3Jr
UXVldWUsIERlc3Ryb3lPblNlbGYpCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihs
b2NrKTsKICAgICAgICAgewotICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgICAgICAgICAg
YXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5k
ZXN0cm95T25TZWxmIiwgIkRlc3Ryb3lPblNlbGYiIH0pOwogICAgICAgICAgICAgcXVldWUtPmRp
c3BhdGNoQWZ0ZXIoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewog
ICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAg
IGRpc3BhdGNoQWZ0ZXJUZXN0U3RhcnRlZC53YWl0KGxvY2ssIFsmXSB7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAppbmRleCA5
OTIzZDY1ODAwZWQ3MTRiYTY4MDZiMTNmN2U1MWZlZTU4MDM1YWQwLi40Y2E0ZThkYmZkM2U3OGVj
NmZmOGNiOWY1OTY0MjI4N2I1ZDRlZDhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVT
VChXVEZfV29ya1F1ZXVlLCBBc3luY0lPKQogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNv
bnRleHQ7CiAgICAgfSBjb250ZXh0OwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIpOworICAgIGF1dG8gcXVldWUgPSBX
b3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIsICJBc3lu
Y0lPVGVzdCIgfSk7CiAgICAgY29udGV4dC5tX21haW5Db250ZXh0ID0gZ19tYWluX2NvbnRleHRf
ZGVmYXVsdCgpOwogICAgIEVYUEVDVF9GQUxTRShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2Rl
ZmF1bHQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViS2l0VGVzdFNlcnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQy
R3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwCmluZGV4IGRlOTQ2NmMzOWQ3MWNmYzJhYmY0NDlmY2Zk
ZTM4OWI1NDQ5ZGYzMjcuLmRiYzUzNWIxMjE0YmRhOThkZmMwODMzM2IyZjE3YmIwOTJkMTY1OTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVz
dFNlcnZlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJL
aXRUZXN0U2VydmVyLmNwcApAQCAtMjgsNyArMjgsNyBAQCBXZWJLaXRUZXN0U2VydmVyOjpXZWJL
aXRUZXN0U2VydmVyKFNlcnZlck9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBpZiAob3B0aW9ucyAm
IFNlcnZlclJ1bkluVGhyZWFkKSB7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwotICAgICAgICBtX3F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIldlYktpdFRlc3RTZXJ2ZXIi
KTsKKyAgICAgICAgbV9xdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIldlYktpdFRlc3RTZXJ2
ZXIiLCAiVGVzdFNlcnZlciIgfSk7CiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzc2xD
ZXJ0aWZpY2F0ZUZpbGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298585</attachid>
            <date>2017-01-11 07:42:35 -0800</date>
            <delta_ts>2017-01-14 15:44:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170112004057.patch</filename>
            <type>text/plain</type>
            <size>104254</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YWMyZTliMDVhZjdhMjQ5NTEwMmU3YWVjOWI3NGFlMmNkYTE2MTNhLi43YmNmZGQ3Nzg3M2JmN2I4
YjNhYzgxOWZhYmYwYmEwMTM4MGFjZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wMS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCisyMDE3LTAxLTEx
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIERlY291
cGxlIG1vZHVsZSBsb2FkaW5nIGluaXRpYXRvciBmcm9tIFNjcmlwdEVsZW1lbnQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Njg4OAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAy
NjU2Y2RlOGNjNDZmMTBjMDM4MmQzMTEyNWFiNTU2Nzc5MDFkY2YuLmQxZWQzMGIxMjZhOTJjNTJh
MDBjZWQ2ZmFmYmNmNjE3MTI3NDBhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIwMTctMDEtMTEg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIFRo
cmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFRo
cmVhZE5hbWUuIEFuZCBhcHBseSBjb25zaXN0ZW50IG5hbWluZworICAgICAgICBwb2xpY3kgZm9y
IHRocmVhZHMgaW4gV2ViS2l0LgorCisgICAgICAgIFRocmVhZE5hbWUgdGFrZXMgMiBuYW1lcywg
c2hvcnQgYW5kIGxvbmcgbmFtZXMuIFRoZSBsb25nIG5hbWUKKyAgICAgICAgaXMgdXNlZCBmb3Ig
bWFjT1MgYW5kIGlPUyBzaW5jZSB0aGV5IGRvIG5vdCBoYXZlIHRoZSBsaW1pdGF0aW9uLiBPbiB0
aGUKKyAgICAgICAgb3RoZXIgaGFuZCwgTGludXggb25seSBhbGxvd3MgMTUgY2hhcmFjdGVycyBm
b3IgdGhyZWFkIG5hbWVzLiBTbyBmb3IKKyAgICAgICAgTGludXgsIHdlIHVzZSB0aGUgc2hvcnQg
bmFtZS4gV2luZG93cyBhbHNvIGhhcyAzMSBjaGFyYWN0ZXJzIGxpbWl0YXRpb24uCisgICAgICAg
IFdpbmRvd3MgYWxzbyB1c2VzIHRoZSBzaG9ydCBuYW1lLgorCisgICAgICAgIFdoZW4geW91IHNw
ZWNpZnkgdGhlIG5hbWUgbGlrZSwKKworICAgICAgICAgICAgeyAiQXN5bmNocm9ub3VzIERpc2Fz
c2VtYmxlciIsICJBc3luY0Rpc2FzbSIgfSwKKworICAgICAgICBUaGUgdGhyZWFkIG5hbWUgYmVj
b21lcywKKworICAgICAgICAgICAgTGludXg6ICJBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIFdp
bmRvd3M6ICJXZWJLaXQ6IEFzeW5jRGlzYXNtIgorICAgICAgICAgICAgbWFjT1MgYW5kIGlPUzog
IldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBUaHJlYWROYW1l
IGNoZWNrcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydCBuYW1lIGlzIDw9IDE1IGF0IGNvbXBpbGUK
KyAgICAgICAgdGltZS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCwgY29tcGlsZSBlcnJv
ciBvY2N1cnMuCisKKyAgICAgICAgVGhlICJXZWJLaXQ6ICIgcHJlZml4IGlzIGF1dG9tYXRpY2Fs
bHkgYWRkZWQgYnkgVGhyZWFkTmFtZS4KKyAgICAgICAgVGhpcyBwcmVmaXggaXMgaW1wb3J0YW50
IHNpbmNlIGl0IGNhbiBzYXkgdGhhdCB0aGlzIHRocmVhZCBpcyByZWxhdGVkIHRvIFdlYktpdC4K
KyAgICAgICAgV2hlbiB1c2luZyBXZWJLaXQgYXMgZnJhbWV3b3JrLCBXZWJLaXQgcmVsYXRlZCB0
aHJlYWRzIHdpbGwgYmUgbGF1bmNoZWQgYWxvbmcKKyAgICAgICAgd2l0aCB1c2VyIGFwcGxpY2F0
aW9uJ3MgdGhyZWFkcy4gV2l0aG91dCAiV2ViS2l0OiAiIHByZWZpeCwgaXQgaXMgYSBiaXQgZGlm
ZmljdWx0CisgICAgICAgIHRvIGRpc3Rpbmd1aXNoIHVzZXIncyB0aHJlYWRzIGZyb20gV2ViS2l0
IHJlbGF0ZWQgb25lcy4KKworICAgICAgICBXZSBhcHBseSB0aGlzIHBvbGljeSB0byBhbGwgdGhl
IFdlYktpdCB0aHJlYWQgbmFtZXMgZXhjZXB0IGZvciBibWFsbG9jJ3Mgb25lLgorICAgICAgICBU
aGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBbMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njg0CisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVk
VGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcDoKKyAg
ICAgICAgKiBiZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAqIHd0Zi9BdXRv
bWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRp
Y1RocmVhZCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQpOgorICAgICAg
ICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQ
b29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBl
clBvb2wpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZDo6VGhyZWFk
KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsSGVscGVyUG9vbDo6bmFtZSk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRl
Ojp0cnlMb2NrRm9yKToKKyAgICAgICAgKiB3dGYvVGhyZWFkTmFtZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdURjo6VGhyZWFkTmFtZTo6VGhyZWFkTmFtZSk6CisgICAgICAgIChXVEY6OlRocmVhZE5h
bWU6Om5hbWUpOgorICAgICAgICAoV1RGOjpUaHJlYWROYW1lOjpzdHJpbmdMZW5ndGgpOgorICAg
ICAgICAoV1RGOjpUaHJlYWROYW1lOjpwcmVmaXhlZE5hbWUpOgorICAgICAgICAqIHd0Zi9UaHJl
YWRpbmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpu
b3JtYWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6
CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3Jl
YXRlVGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVh
ZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdU
Rjo6aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0
ZVRocmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAg
KFdURjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtR
dWV1ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAg
ICAgKiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29h
LmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1
ZXVlOjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVh
dGUpOgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0
Zi9lZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3Bw
OgorICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0
Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVND
SUlMaXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBj
aGFyKik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFT
Q0lJTGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlM
aXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dp
bi9NYWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQ
bGF0Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAo
V1RGOjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKIDIwMTctMDEtMDYgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAg
ICAgICAgW0dUS10gU2hvdWxkIHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5
Ym9hcmQgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAxOWE5MmEwZTk5YTg4MWJhZDIwZjEwNzM4MTAy
MzFmMDJhOTdhNS4uMzJhNjQzMGFkZGM3NWU1YmMwOGNmMTlhMzMyOTQwNWUwYWJhMTE1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDE3LTAxLTExICBZdXN1a2UgU3V6dWtpICA8dXRh
dGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkg
bG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6SURCU2VydmVyKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFzeW5jQXVkaW9EZWNvZGVyOjpBc3luY0F1ZGlvRGVjb2Rlcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpzdGFydFJlbmRlcmluZyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVRocmVhZDo6c3RhcnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6Omdh
cmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcpOgorICAgICAgICAqIGNy
eXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjpT
dWJ0bGVDcnlwdG8pOgorICAgICAgICAqIGZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGxPbkZpbGVUaHJlYWQpOgorICAgICAgICAqIGxvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6Om9wZW4p
OgorICAgICAgICAqIHBhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVVzYWdlVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRlZCk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRG
RGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZv
bHZlcjo6UmV2ZXJiQ29udm9sdmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUJ1c0Zyb21BdWRpb0ZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUluTWVt
b3J5QXVkaW9GaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2Fj
aGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpkZWNvZGluZ1F1ZXVl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNl
R1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vbGludXgv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
UHJlc3N1cmVIYW5kbGVyOjpFdmVudEZEUG9sbGVyOjpFdmVudEZEUG9sbGVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YmxvYlV0aWxpdHlRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9EYXRhVVJM
RGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVVJMRGVjb2Rlcjo6ZGVjb2RlUXVl
dWUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmxvYWRlclJ1bkxvb3ApOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhyZWFkKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0
YXJ0KToKKworMjAxNy0wMS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4KKwogICAgICAgICBEZWNvdXBsZSBtb2R1bGUgbG9hZGluZyBpbml0aWF0b3IgZnJvbSBTY3Jp
cHRFbGVtZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY4ODgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWZkODVjYWFmZTRlZDhlZTQ4YTUxYmQxNzVjNmI0NmQ1
YzZlZjFmLi5jNGE3ZTFkODY5YzY0ZjFiZTg4MmY1MzcyM2VlYzYxMDQzZmI3ZjRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAxLTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkgbG9uZyBh
bmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
b3JhZ2VUaHJlYWQ6OnN0YXJ0KToKKwogMjAxNy0wMS0wNSAgUGVyIEFybmUgVm9sbGFuICA8cHZv
bGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gQ29tcGlsZSBlcnJvci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA1MzFlMWIyMWM5OTVkNGExY2I3YmY5MWRkOWEyMzgzOTgwN2Y4ZDA1Li5mMGM5OGNhNjRm
ZjBjYWZkZjA2ZTQxZDNiYWNmMWFjMWY0YmFhM2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTctMDEtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisK
KyAgICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEYXRhYmFz
ZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VQ
cm9jZXNzOjpEYXRhYmFzZVByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6Q2FjaGU6
OmRlbGV0ZUR1bXBGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVJT0NoYW5uZWxTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpJ
T0NoYW5uZWw6OnJlYWRTeW5jSW5UaHJlYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL05ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OlN0YXRpc3RpY3M6OlN0YXRpc3RpY3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OlN0b3JhZ2U6OlN0b3JhZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6
Om1fYmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om1f
c2VyaWFsQmFja2dyb3VuZElPUXVldWUpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbik6CisgICAgICAg
IChJUEM6OkNvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2spOgor
ICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpkaWRD
bG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldvcmtRdWV1ZVBvb2w6OmdldE9yQ3JlYXRlV29ya1F1ZXVlRm9yQ29udGV4
dCk6CisgICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtU2hpbS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OndvcmtRdWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4
dGVuc2lvblN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZTo6VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSk6CisgICAgICAgIChBUEk6Om1fcmVhZFF1ZXVl
KToKKyAgICAgICAgKEFQSTo6bV9yZW1vdmVRdWV1ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdl
cjo6U3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TWVtb3J5UHJlc3N1cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNl
Y0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6RXZlbnREaXNwYXRjaGVy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0ZURpc3Bh
dGNoZXIpOgorCiAyMDE3LTAxLTEwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBObyB3YXkgZm9yIGFwcGxpY2F0aW9ucyB0byBzZXQg
bm90aWZpY2F0aW9uIHBlcm1pc3Npb25zIHdpdGhvdXQgd2FpdGluZyBmb3IgcGVybWlzc2lvbiBy
ZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBh
cmVBbmRTd2FwVGVzdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBh
cmVBbmRTd2FwVGVzdC5jcHAKaW5kZXggZTc4MDg2YzNhOTYxMmEyZjBiNGQ3YWFmMWFkYzdiYTFh
MTAxYzU0Ny4uMTRjM2U0ZGRkNTYwOTgzNTRiMmQ2YzkyYzc2NTRkMmRmNWNhMDI0MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBU
ZXN0LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgdGVzdENvbXBhcmVBbmRTd2FwKCkKICAg
ICAgICAgZGF0YVtpXS5pZCA9IGk7CiAgICAgICAgIGRhdGFbaV0ubnVtVGhyZWFkcyA9IG51bVRo
cmVhZHM7CiAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiB0aHJlYWRGdW5jID0gc3RkOjpi
aW5kKHNldEJpdFRocmVhZEZ1bmMsICZkYXRhW2ldKTsKLSAgICAgICAgdGhyZWFkSURzW2ldID0g
Y3JlYXRlVGhyZWFkKCJzZXRCaXRUaHJlYWRGdW5jIiwgdGhyZWFkRnVuYyk7CisgICAgICAgIHRo
cmVhZElEc1tpXSA9IGNyZWF0ZVRocmVhZCh7ICJzZXRCaXRUaHJlYWRGdW5jIiwgInNldEJpdFRo
cmVhZEZ1bmMiIH0sIHRocmVhZEZ1bmMpOwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBm
b3IgJWQgdGhyZWFkcyB0byBqb2luXG4iLCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL3Rlc3RhaXIuY3BwCmluZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4
NGQ0NTc2Y2Y0NGYuLjQzZDc5OGQ1Y2M3YzIyMjg1OTFmZjIwMmFhNjU4ODE0ZDJkOGEyYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEz
LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9
IGZpbHRlciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAg
ICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAg
ICAgICAgICAidGVzdGIzIHRocmVhZCIsCisgICAgICAgICAgICAgICAgeyAidGVzdGIzIHRocmVh
ZCIsICJUZXN0QjNUaHJlYWQiIH0sCiAgICAgICAgICAgICAgICAgWyZdICgpIHsKICAgICAgICAg
ICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFNo
YXJlZFRhc2s8dm9pZCgpPj4gdGFzazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKaW5k
ZXggZmMzM2M2ZmNmYWRmODkyOGQ3YmUyZjRhMmMzMjM3OWMwNWI0NTVlMS4uYTgwYmM3ZTJhZGNl
MGUwZmQxMDc0NzY3Y2ZlMWMxNzFmNDZlNDFjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAKQEAgLTE1NjYxLDcgKzE1NjYxLDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVy
KQogICAgIGZvciAodW5zaWduZWQgaSA9IGZpbHRlciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vz
c29yQ29yZXMoKTsgaS0tOykgewogICAgICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAg
IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAidGVzdGIzIHRocmVhZCIsCisgICAgICAg
ICAgICAgICAgeyAidGVzdGIzIHRocmVhZCIsICJUZXN0QjNUaHJlYWQiIH0sCiAgICAgICAgICAg
ICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCgpPj4gdGFzazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdXBlclNhbXBsZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKaW5kZXggYTRlMjFm
OWZhM2NkNDcyMWVhMjY3NWUwNmU0ZDUzMGM1YmE5NWIzNS4uY2IyZDY4YzJhZWRmMGU1YjJiMzU0
YzE5NjU3MTdiNWIyZTM1ZjkyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N1cGVyU2FtcGxlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBpbml0aWFsaXplU3Vw
ZXJTYW1wbGVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY3JlYXRlVGhyZWFkKAotICAgICAg
ICAiSlNDIFN1cGVyIFNhbXBsZXIiLAorICAgICAgICB7ICJKU0MgU3VwZXIgU2FtcGxlciIsICJT
dXBlclNhbXBsZXIiIH0sCiAgICAgICAgIFtdICgpIHsKICAgICAgICAgICAgIGNvbnN0IGludCBz
bGVlcFF1YW50dW0gPSAxMDsKICAgICAgICAgICAgIGNvbnN0IGludCBwcmludGluZ1BlcmlvZCA9
IDEwMDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDEx
NGNhOTU3MTQ0ZGI1MjgwOGNlODUzZDMxZjc2NWJkMjJmY2FiZWIuLjJmNzFlNjI1OTkzYTk4OWRm
OGI5ZmQ2OWMxYzYxNTBmOTMyZWU3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuY3BwCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21hdGljVGhy
ZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwg
V29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVm
UHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlv
cml0eSkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBjb25kaXRpb24p
CisgICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3Jr
bGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0aXZlUHJpb3JpdHksIFRocmVhZE5h
bWUgdGhyZWFkTmFtZSkKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBj
b25kaXRpb24sIHRocmVhZE5hbWUpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAg
ICAgICAgLCBtX2RhdGEoZGF0YSkKICAgICAgICAgLCBtX3JlbGF0aXZlUHJpb3JpdHkocmVsYXRp
dmVQcmlvcml0eSkKQEAgLTE3Myw4ICsxNzMsOCBAQCBjbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9k
eSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogICAgIFJlZlB0cjxQbGFuPiBtX3BsYW47CiB9
OwogCi1Xb3JrbGlzdDo6V29ya2xpc3QoQ1N0cmluZyB3b3JrbGlzdE5hbWUpCi0gICAgOiBtX3Ro
cmVhZE5hbWUodG9DU3RyaW5nKHdvcmtsaXN0TmFtZSwgIiBXb3JrZXIgVGhyZWFkIikpCitXb3Jr
bGlzdDo6V29ya2xpc3QoVGhyZWFkTmFtZSB0aHJlYWROYW1lKQorICAgIDogbV90aHJlYWROYW1l
KHRocmVhZE5hbWUpCiAgICAgLCBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1f
cGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBt
X251bWJlck9mQWN0aXZlVGhyZWFkcygwKQpAQCAtMjAwLDE0ICsyMDAsMTQgQEAgdm9pZCBXb3Jr
bGlzdDo6ZmluaXNoQ3JlYXRpb24odW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRp
dmVQcmlvcml0eSkKICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBudW1iZXJPZlRocmVhZHM7IGktLTspIHsKICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPFRocmVhZERhdGE+IGRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFRocmVhZERhdGE+KHRoaXMp
OwotICAgICAgICBkYXRhLT5tX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tl
ciwgKnRoaXMsICpkYXRhLCBtX2xvY2ssIG1fcGxhbkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5
KSk7CisgICAgICAgIGRhdGEtPm1fdGhyZWFkID0gYWRvcHRSZWYobmV3IFRocmVhZEJvZHkobG9j
a2VyLCAqdGhpcywgKmRhdGEsIG1fbG9jaywgbV9wbGFuRW5xdWV1ZWQsIHJlbGF0aXZlUHJpb3Jp
dHksIG1fdGhyZWFkTmFtZSkpOwogICAgICAgICBtX3RocmVhZHMuYXBwZW5kKFdURk1vdmUoZGF0
YSkpOwogICAgIH0KIH0KIAotUmVmPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKENTdHJpbmcg
d29ya2xpc3ROYW1lLCB1bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9y
aXR5KQorUmVmPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKFRocmVhZE5hbWUgdGhyZWFkTmFt
ZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKIHsKLSAg
ICBSZWY8V29ya2xpc3Q+IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgV29ya2xpc3Qod29ya2xpc3RO
YW1lKSk7CisgICAgUmVmPFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0
KHRocmVhZE5hbWUpKTsKICAgICByZXN1bHQtPmZpbmlzaENyZWF0aW9uKG51bWJlck9mVGhyZWFk
cywgcmVsYXRpdmVQcmlvcml0eSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTQ5NCw3ICs0
OTQsNyBAQCBXb3JrbGlzdCYgZW5zdXJlR2xvYmFsREZHV29ya2xpc3QoKQogewogICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZzsKICAgICBz
dGQ6OmNhbGxfb25jZShpbml0aWFsaXplR2xvYmFsV29ya2xpc3RPbmNlRmxhZywgW10gewotICAg
ICAgICB0aGVHbG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKCJERkcgV29ya2xp
c3QiLCBPcHRpb25zOjpudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcygpLCBPcHRpb25zOjpwcmlv
cml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMoKSkubGVha1JlZigpOworICAgICAgICB0aGVH
bG9iYWxERkdXb3JrbGlzdCA9ICZXb3JrbGlzdDo6Y3JlYXRlKHsgIkRGRyBXb3JrbGlzdCIsICJE
RkdXb3JrbGlzdCIgfSwgT3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0
aW9uczo6cHJpb3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAg
ICB9KTsKICAgICByZXR1cm4gKnRoZUdsb2JhbERGR1dvcmtsaXN0OwogfQpAQCAtNTEwLDcgKzUx
MCw3IEBAIFdvcmtsaXN0JiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAg
ICAgIHRoZUdsb2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlz
dCIsIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9y
aXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUds
b2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoeyAiRlRMV29ya2xpc3QiLCAiRlRM
V29ya2xpc3QiIH0sIE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlv
bnM6OnByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAg
fSk7CiAgICAgcmV0dXJuICp0aGVHbG9iYWxGVExXb3JrbGlzdDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCAzNjYxZTZlZTgzZDM1NDc3ZjdiYWY4NzQ4YTcy
NDQ1ODZhMDM5MGE1Li41MmQyYzhhZmFlM2VhYzBlMTA2NGNlNWFlODcyNDY4ZjhmYmEzNjI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC00OCw3ICs0OCw3IEBA
IGNsYXNzIFdvcmtsaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKIAogICAgIH5X
b3JrbGlzdCgpOwogICAgIAotICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3RyaW5n
IHdvcmtsaXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlv
cml0eSA9IDApOworICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShUaHJlYWROYW1lLCB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAgICAg
CiAgICAgdm9pZCBlbnF1ZXVlKFBhc3NSZWZQdHI8UGxhbj4pOwogICAgIApAQCAtODIsNyArODIs
NyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFdvcmts
aXN0KENTdHJpbmcgd29ya2xpc3ROYW1lKTsKKyAgICBXb3JrbGlzdChUaHJlYWROYW1lKTsKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50KTsKICAg
ICAKICAgICBjbGFzcyBUaHJlYWRCb2R5OwpAQCAtOTUsNyArOTUsNyBAQCBjbGFzcyBXb3JrbGlz
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB2b2lkIGR1bXAoY29uc3Qg
TG9ja0hvbGRlciYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCi0gICAgQ1N0cmluZyBtX3Ro
cmVhZE5hbWU7CisgICAgVGhyZWFkTmFtZSBtX3RocmVhZE5hbWU7CiAgICAgCiAgICAgLy8gVXNl
ZCB0byBpbmZvcm0gdGhlIHRocmVhZCBhYm91dCB3aGF0IHdvcmsgdGhlcmUgaXMgbGVmdCB0byBk
by4KICAgICBEZXF1ZTxSZWZQdHI8UGxhbj4+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKaW5kZXggNzg4YTZjMzYy
MzY5YzU4ZGFkMjlhNjBhMzg3MTA0NGU0NjRlZDMwNS4uMWQ1YzVmZTZjNWQ0OTU4MDJhODBkMzBi
NGU2MDVkYmQwZjFkYjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fz
c2VtYmxlci9EaXNhc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNh
c3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBBc3luY2hy
b25vdXNEaXNhc3NlbWJsZXIgewogcHVibGljOgogICAgIEFzeW5jaHJvbm91c0Rpc2Fzc2VtYmxl
cigpCiAgICAgewotICAgICAgICBjcmVhdGVUaHJlYWQoIkFzeW5jaHJvbm91cyBEaXNhc3NlbWJs
ZXIiLCBbJl0gKCkgeyBydW4oKTsgfSk7CisgICAgICAgIGNyZWF0ZVRocmVhZCh7ICJBc3luY2hy
b25vdXMgRGlzYXNzZW1ibGVyIiwgIkFzeW5jRGlzYXNtIiB9LCBbJl0gKCkgeyBydW4oKTsgfSk7
CiAgICAgfQogICAgIAogICAgIHZvaWQgZW5xdWV1ZShzdGQ6OnVuaXF1ZV9wdHI8RGlzYXNzZW1i
bHlUYXNrPiB0YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCAwNDAzNGRm
MWVjOGJjMmYwODFiNDUzMTIwY2VlNDYyYWNjYjAwNmI1Li5kZGM1MjViMWNkMmY1ZWMzMDgxMmI3
YTRiYWJjMWQwNzYwNTZmMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAt
MjA2LDcgKzIwNiw3IEBAIGNsYXNzIFRpbWluZ1Njb3BlIHsKIGNsYXNzIEhlYXA6OlRocmVhZCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25zdCBMb2Nr
SG9sZGVyJiBsb2NrZXIsIEhlYXAmIGhlYXApCi0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxv
Y2tlciwgaGVhcC5tX3RocmVhZExvY2ssIGhlYXAubV90aHJlYWRDb25kaXRpb24pCisgICAgICAg
IDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgaGVhcC5tX3RocmVhZExvY2ssIGhlYXAubV90aHJl
YWRDb25kaXRpb24sIHsgIkhlYXAgQ29sbGVjdG9yIiwgIkhlYXBDb2xsZWN0b3IiIH0pCiAgICAg
ICAgICwgbV9oZWFwKGhlYXApCiAgICAgewogICAgIH0KQEAgLTIyNjksNyArMjI2OSw3IEBAIHZv
aWQgSGVhcDo6bm90aWZ5SXNTYWZlVG9Db2xsZWN0KCkKICAgICAKICAgICBpZiAoT3B0aW9uczo6
Y29sbGVjdENvbnRpbnVvdXNseSgpKSB7CiAgICAgICAgIG1fY29sbGVjdENvbnRpbnVvdXNseVRo
cmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJKU0MgREVCVUcgQ29udGludW91cyBH
QyIsCisgICAgICAgICAgICB7ICJKU0MgREVCVUcgQ29udGludW91cyBHQyIsICJDb250aW51b3Vz
R0MiIH0sCiAgICAgICAgICAgICBbdGhpc10gKCkgewogICAgICAgICAgICAgICAgIE1vbm90b25p
Y1RpbWUgaW5pdGlhbFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICAgICAgICAgICAg
ICBTZWNvbmRzIHBlcmlvZCA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoT3B0aW9uczo6Y29s
bGVjdENvbnRpbnVvdXNseVBlcmlvZE1TKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcEhlbHBlclBvb2wuY3BwCmluZGV4IDc5MWFhNzU2Zjk1ZTFjYjU2NDBmYzMzYjQ1Njc3
NDUxZWUxYTI1MzYuLjllZWRkMDAzY2UwY2Q2NzdhNzljMTEzZjhmNTBmZmZlYWE4ZWI1NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5jcHAKQEAgLTM4
LDcgKzM4LDcgQEAgUGFyYWxsZWxIZWxwZXJQb29sJiBoZWFwSGVscGVyUG9vbCgpCiAgICAgc3Rk
OjpjYWxsX29uY2UoCiAgICAgICAgIGluaXRpYWxpemVIZWxwZXJQb29sT25jZUZsYWcsCiAgICAg
ICAgIFtdIHsKLSAgICAgICAgICAgIGhlbHBlclBvb2wgPSBuZXcgUGFyYWxsZWxIZWxwZXJQb29s
KCk7CisgICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVyUG9vbCh7ICJI
ZWFwIEhlbHBlciIsICJIZWFwSGVscGVyIiB9KTsKICAgICAgICAgICAgIGhlbHBlclBvb2wtPmVu
c3VyZVRocmVhZHMoT3B0aW9uczo6bnVtYmVyT2ZHQ01hcmtlcnMoKSAtIDEpOwogICAgICAgICB9
KTsKICAgICByZXR1cm4gKmhlbHBlclBvb2w7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0lDU3RhdHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRz
LmNwcAppbmRleCAyMDgwY2Q5MzQ1ODMzZDJkMjMyYjhhOWNkNmYzZGJmZWJlMDVjYjIzLi5lYzQ1
OTc0OThiMWNjMDkyZTg1NzQ4ODZkZDQxZDdhODRmMzFiZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSUNTdGF0cy5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgQXRvbWljPElDU3RhdHMqPiBJQ1N0
YXRzOjpzX2luc3RhbmNlOwogSUNTdGF0czo6SUNTdGF0cygpCiB7CiAgICAgbV90aHJlYWQgPSBj
cmVhdGVUaHJlYWQoCi0gICAgICAgICJKU0MgSUNTdGF0cyIsCisgICAgICAgIHsgIkpTQyBJQ1N0
YXRzIiwgIklDU3RhdHMiIH0sCiAgICAgICAgIFt0aGlzXSAoKSB7CiAgICAgICAgICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX2xvY2spOwogICAgICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCAyYzIyZGEzODk4YmMyODc5YmFm
NzdkOTYxNmFjZWQwNGNhN2Y1MWE2Li4yODE5MzkyMjE1NGE1MzAwM2I5ZjA3Mjc0ODM0MmZmZmY5
ZWIyYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIGNsYXNzIEpJVFdvcmtsaXN0OjpQbGFuIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEpJVFdvcmtsaXN0OjpQbGFuPiB7CiBjbGFzcyBKSVRXb3JrbGlzdDo6VGhy
ZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0
IExvY2tIb2xkZXImIGxvY2tlciwgSklUV29ya2xpc3QmIHdvcmtsaXN0KQotICAgICAgICA6IEF1
dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywgd29ya2xpc3QubV9jb25kaXRp
b24pCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgd29ya2xpc3QubV9sb2NrLCB3
b3JrbGlzdC5tX2NvbmRpdGlvbiwgeyAiQmFzZWxpbmUgSklUIENvbXBpbGVyIFdvcmtlciIsICJK
SVRDb21waWxlciIgfSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0KQogICAgIHsKICAg
ICAgICAgbV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVhZHMrKzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKaW5kZXggNjUxZjQ0OGQzOTVjOGFmYjEzNGYzMDQxNTcwZTMzMjhlYjc1MTYwMi4uNjllNmUw
ZWYzNTJjMmIyMjMzYmFiYzQ2OTNiZTNhZDFhNDFmODZjYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
QEAgLTI3NDcsNyArMjc0Nyw3IEBAIHN0YXRpYyB2b2lkIHN0YXJ0VGltZW91dFRocmVhZElmTmVl
ZGVkKCkKICAgICAgICAgICAgIGRhdGFMb2coIldBUk5JTkc6IHRpbWVvdXQgc3RyaW5nIGlzIG1h
bGZvcm1lZCwgZ290ICIsIHRpbWVvdXRTdHJpbmcsCiAgICAgICAgICAgICAgICAgIiBidXQgZXhw
ZWN0ZWQgYSBudW1iZXIuIE5vdCB1c2luZyBhIHRpbWVvdXQuXG4iKTsKICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4sIDAsICJqc2MgVGlt
ZW91dCBUaHJlYWQiKTsKKyAgICAgICAgICAgIGNyZWF0ZVRocmVhZCh0aW1lb3V0VGhyZWFkTWFp
biwgMCwgeyAianNjIFRpbWVvdXQgVGhyZWFkIiwgIlRpbWVvdXRUaHJlYWQiIH0pOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcAppbmRleCA3MDM0ZGM2OTZiOWUxMTQ5Mjg4YzdiYjllZGRlZmUyYWIxNmIxN2NhLi44
NzlhODhlNzI4MWM1NjhlNDBiYjMxMTQ3OTE0OTMzYTJjYmUwODA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtMjEzLDcg
KzIxMyw3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6Y3JlYXRlVGhyZWFkSWZOZWNlc3Nhcnko
Y29uc3QgTG9ja0hvbGRlciYpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxTYW1wbGlu
Z1Byb2ZpbGVyPiBwcm9maWxlciA9IHRoaXM7Ci0gICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3Jl
YXRlVGhyZWFkKCJqc2Muc2FtcGxpbmctcHJvZmlsZXIudGhyZWFkIiwgW3Byb2ZpbGVyXSB7Cisg
ICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHsgImpzYy5zYW1wbGluZy1wcm9m
aWxlci50aHJlYWQiLCAiU2FtcGxpbmciIH0sIFtwcm9maWxlcl0gewogICAgICAgICBwcm9maWxl
ci0+dGltZXJMb29wKCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5jcHAKaW5kZXggZjYwMDRlNmVmMWMwYmM0ZDI1MzkyODQ4ZjYwYzk1NzI1NmNi
NWMyMy4uNGQzOThhNWEwOThkNDc5NjdhMWY4ZDRmODQ0OTMwNTY1OWI0YzY0MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dhdGNoZG9nLmNwcApAQCAtNDgsNyArNDgsNyBAQCBX
YXRjaGRvZzo6V2F0Y2hkb2coKQogICAgICwgbV9jYWxsYmFjaygwKQogICAgICwgbV9jYWxsYmFj
a0RhdGExKDApCiAgICAgLCBtX2NhbGxiYWNrRGF0YTIoMCkKLSAgICAsIG1fdGltZXJRdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgianNjLndhdGNoZG9nLnF1ZXVlIiwgV29ya1F1ZXVlOjpUeXBlOjpT
ZXJpYWwsIFdvcmtRdWV1ZTo6UU9TOjpVdGlsaXR5KSkKKyAgICAsIG1fdGltZXJRdWV1ZShXb3Jr
UXVldWU6OmNyZWF0ZSh7ICJqc2Mud2F0Y2hkb2cucXVldWUiLCAiV2F0Y2hkb2ciIH0sIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcAppbmRleCA1OTgwYjUxZTg3NDIyMjM3
NTVjZTBjM2RmMmMxNmIxZGU5ZWM4ZjEyLi45Nzc3OTY3ZDFhNTMzMjJkNDMyMTRmY2Q1NmJjYWRj
MmZiMTMzNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxh
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCkBAIC0x
OTcsNyArMTk3LDcgQEAgdm9pZCBQbGFuOjpydW4oKQogICAgIFZlY3RvcjxUaHJlYWRJZGVudGlm
aWVyPiB0aHJlYWRzOwogICAgIHRocmVhZHMucmVzZXJ2ZUNhcGFjaXR5KG51bVdvcmtlclRocmVh
ZHMpOwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1Xb3JrZXJUaHJlYWRzOyBpKysp
Ci0gICAgICAgIHRocmVhZHMudW5jaGVja2VkQXBwZW5kKGNyZWF0ZVRocmVhZCgianNjLndhc20t
YjMtY29tcGlsYXRpb24udGhyZWFkIiwgZG9Xb3JrKSk7CisgICAgICAgIHRocmVhZHMudW5jaGVj
a2VkQXBwZW5kKGNyZWF0ZVRocmVhZCh7ICJqc2Mud2FzbS1iMy1jb21waWxhdGlvbi50aHJlYWQi
LCAiV2FzbUIzQ29tcGlsZXIiIH0sIGRvV29yaykpOwogCiAgICAgZG9Xb3JrKCk7IC8vIExldCB0
aGUgbWFpbiB0aHJlYWQgZG8gc29tZSB3b3JrIHRvby4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmE3ODA0NDkzYzk1Zjg5Y2RhNmJmMzFhMzgxNTkwZjFj
ZmMwZTA0Yy4uZDFkMWNlNWMyODdiMzBlMjFmZGE5NmY3YTE1ZWVhNDIxNDFhZWMzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjgsNiArMzY4LDggQEAK
IAkJRkU4OTI1QjAxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0Ug
LyogSW5kZW50ZXIuaCAqLzsgfTsKIAkJRkVEQUNEM0QxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNr
U3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVEQUNEM0IxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuY3BwICovOyB9OwogCQlGRURB
Q0QzRTE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0
YWNrU3RhdHMuaCAqLzsgfTsKKwkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0
ZXJhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFB
OUJENDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovOyB9OworCQk4OTY2RTQx
ODZCOUY0RUMxQUNDMjI1Q0EgLyogVGhyZWFkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVh
ZE5hbWUuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdp
biBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtNzQ4LDYgKzc1MCw4IEBACiAJ
CUZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAvKiBJbmRlbnRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmRlbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdGFja1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkVEQUNEM0MxNjMwRjgzRjAwQzY5NjM0IC8qIFN0YWNrU3RhdHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhY2tTdGF0cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3MUE5QkQ0NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRl
cmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFTQ0lJTGl0ZXJhbC5oOyBw
YXRoID0gQVNDSUlMaXRlcmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUYxRTJF
NURFNkVENjQ0Q0E5MTg4RUI1NSAvKiBUaHJlYWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFRocmVhZE5hbWUuaDsgcGF0aCA9IFRocmVhZE5hbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAog
LyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTEzMiw2ICsx
MTM2LDcgQEAKIAkJCQlFNEEwQUQzODFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmggKi8s
CiAJCQkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuY3BwICovLAog
CQkJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8sCisJCQkJ
RjFFMkU1REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gd3RmOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyMjAsNiArMTIyNSw3
IEBACiAJCQkJNzBFQ0E2MEMxQjAyNDI2ODAwNDQ5NzM5IC8qIFVuaXF1ZWRTdHJpbmdJbXBsLmgg
Ki8sCiAJCQkJQThBNDczMkQxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgKi8sCiAJ
CQkJQThBNDczMkUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oICovLAorCQkJCTcxQTlC
RDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVyYWwuaCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gdGV4dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNTY4LDYgKzE1NzQsOCBA
QAogCQkJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTczRTAyNTE5RENCN0FCMDA1ODBENUMgLyogWFBDU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDNBNDY5OTFFMjI4QjkxMDAyNzZCMDUgLyogQ29kZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCThBRDg5MkYwRDU4NTQ2RDE4NkNFRDhDOCAvKiBBU0NJSUxpdGVyYWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTg5NjZFNDE4NkI5RjRFQzFBQ0MyMjVDQSAvKiBUaHJlYWROYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Db25k
aXRpb25TcGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVk
VGVzdC5jcHAKaW5kZXggY2IxZDEwMWU4NTY1MjllOGFhZWE2YWJmNjBlYzM4ZWEwYjhkZGU3Mi4u
ZmQ1YzllODgyY2U4ZTJkZjA2ZTQwNjAzY2EyOTE5ZDhiZGM4ZmY5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAKKysrIGIvU291cmNlL1dU
Ri9iZW5jaG1hcmtzL0NvbmRpdGlvblNwZWVkVGVzdC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9p
ZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWduZWQgaSA9IG51bUNvbnN1bWVyczsgaS0t
OykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVU
aHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhyZWFkIiwKKyAgICAgICAgICAgIHsgIkNv
bnN1bWVyIHRocmVhZCIsICJDb25zdW1lciIgfSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAg
ICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByZXN1
bHQ7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBydW5UZXN0KAogCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbnVtUHJvZHVjZXJzOyBpLS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhy
ZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICJQcm9kdWNlciBUaHJl
YWQiLAorICAgICAgICAgICAgeyAiUHJvZHVjZXIgVGhyZWFkIiwgIlByb2R1Y2VyIiB9LAogICAg
ICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJv
b2wgbXVzdE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtz
L0xvY2tGYWlybmVzc1Rlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVz
c1Rlc3QuY3BwCmluZGV4IGYwODMyMWMwZjY4ODM2NTM1ZDgzY2I2YmM3NTExODQ4YmI1MmQ5NGYu
LjQ5MDNjODc1OTBhMjhiMmI2NWVjMWMxOTk5Nzk3ZDJhYzFkNDk3MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0
IEJlbmNobWFyayB7CiAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJl
YWRzOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgY291bnRzW3RocmVhZEluZGV4XSA9
IDA7CiAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAg
ICAgICAgICAgICAgICAiQmVuY2htYXJrIFRocmVhZCIsCisgICAgICAgICAgICAgICAgeyAiQmVu
Y2htYXJrIHRocmVhZCIsICJCZW5jaG1hcmtSdW5uZXIiIH0sCiAgICAgICAgICAgICAgICAgWyYs
IHRocmVhZEluZGV4XSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghbWljcm9zZWNvbmRz
SW5Dcml0aWNhbFNlY3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChrZWVw
R29pbmcpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0
LmNwcCBiL1NvdXJjZS9XVEYvYmVuY2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAppbmRleCA1NDVk
MmUwYjA0ODhmMzM4OTRhNTk2ODhmZDkxYjBkM2EzODdjY2EyLi4yOWYwMzhiNWNhOGRiNjQxODM4
NmYwNTliNmNmNjlhNWNkODBhYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2JlbmNobWFya3Mv
TG9ja1NwZWVkVGVzdC5jcHAKKysrIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRl
c3QuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHN0cnVjdCBCZW5jaG1hcmsgewogCiAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkc1Blckdyb3VwOyB0aHJlYWRJ
bmRleC0tOykgewogICAgICAgICAgICAgICAgIHRocmVhZHNbdGhyZWFkR3JvdXBJbmRleCAqIG51
bVRocmVhZHNQZXJHcm91cCArIHRocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAgICAg
ICAgICAgICAgICAgIkJlbmNobWFyayB0aHJlYWQiLAorICAgICAgICAgICAgICAgICAgICB7ICJC
ZW5jaG1hcmsgdGhyZWFkIiwgIkJlbmNobWFya1J1bm5lciIgfSwKICAgICAgICAgICAgICAgICAg
ICAgW3RocmVhZEdyb3VwSW5kZXgsICZsb2NrcywgJndvcmRzLCAma2VlcEdvaW5nLCAmbnVtSXRl
cmF0aW9uc0xvY2ssICZudW1JdGVyYXRpb25zXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBkb3VibGUgbG9jYWxXb3JkID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2
YWx1ZSA9IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3Bw
IGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCA0ZDhmYjg0ODlmOTlj
YjhmNjdlN2NjMmQxM2JmNDE1NWVlODdlNWM1Li5jNjRjNjA4NmQ1OWU5OWFlNTE3YTdkNDFmY2Q2
OWZhYTBkNTI5ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTk4LDkgKzk4
LDEwIEBAIGJvb2wgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjb250YWlucyhjb25zdCBMb2Nr
SG9sZGVyJiwgQXV0b21hdGljVGhyZWFkKiB0aHJlCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250
YWlucyh0aHJlYWQpOwogfQogCi1BdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25z
dCBMb2NrSG9sZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uPiBjb25kaXRpb24pCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVh
ZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKICAg
ICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25kaXRpb24oY29uZGl0aW9uKQorICAgICwgbV9u
YW1lKHRocmVhZE5hbWUpCiB7CiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coUmF3
UG9pbnRlcih0aGlzKSwgIjogQWxsb2NhdGVkIEF1dG9tYXRpY1RocmVhZC5cbiIpOwpAQCAtMTU2
LDcgKzE1Nyw3IEBAIHZvaWQgQXV0b21hdGljVGhyZWFkOjpzdGFydChjb25zdCBMb2NrSG9sZGVy
JikKICAgICBtX2hhc1VuZGVybHlpbmdUaHJlYWQgPSB0cnVlOwogICAgIAogICAgIFRocmVhZElk
ZW50aWZpZXIgdGhyZWFkID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAiV1RGOjpBdXRvbWF0aWNU
aHJlYWQiLAorICAgICAgICBtX25hbWUsCiAgICAgICAgIFs9XSAoKSB7CiAgICAgICAgICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6
IFJ1bm5pbmcgYXV0b21hdGljIHRocmVhZCFcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaApp
bmRleCA2OTI2ZjYyMzY1M2Q0YzU5MjEzNzBjYzRkOWNlYzhkMDZjMzNlZGE4Li43MTlmY2JkZGQ3
MGNiY2NkNGRlOWZhYjk0NWQ3YjNhODAxOWU5ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
aApAQCAtMTMwLDcgKzEzMCw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJVkFURSBBdXRvbWF0aWNU
aHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21hdGljCiBwcm90ZWN0ZWQ6
CiAgICAgLy8gVGhpcyBsb2dpY2FsbHkgY3JlYXRlcyB0aGUgdGhyZWFkLCBidXQgaW4gcmVhbGl0
eSB0aGUgdGhyZWFkIHdvbid0IGJlIGNyZWF0ZWQgdW50aWwgc29tZW9uZQogICAgIC8vIGNhbGxz
IEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuCi0g
ICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9jaz4sIFJlZlB0cjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+KTsKKyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9j
a0hvbGRlciYsIEJveDxMb2NrPiwgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4sIFRo
cmVhZE5hbWUpOwogICAgIAogICAgIC8vIFRvIHVuZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29y
a1Jlc3VsdCwgaW1hZ2luZSB0aGF0IHBvbGwoKSBhbmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQg
bGlrZQogICAgIC8vIHNvOgpAQCAtMTgyLDYgKzE4Miw3IEBAIGNsYXNzIFdURl9FWFBPUlRfUFJJ
VkFURSBBdXRvbWF0aWNUaHJlYWQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXV0b21h
dGljCiAgICAgYm9vbCBtX2hhc1VuZGVybHlpbmdUaHJlYWQgeyBmYWxzZSB9OwogICAgIENvbmRp
dGlvbiBtX3dhaXRDb25kaXRpb247CiAgICAgQ29uZGl0aW9uIG1faXNSdW5uaW5nQ29uZGl0aW9u
OworICAgIFRocmVhZE5hbWUgbV9uYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwIGIvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAppbmRleCA5NDkyZmRkZGYxOTY0OWQ2NWI1MTBi
MWU0M2MwMmFhOTUxNGMwNzMxLi4yYzNiZjA3NDA4OGUyOWE5OTE4ZjI5ZmFmZjk0Y2QwYzViNjJk
MTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKQEAgLTEyMyw5ICsxMjMs
MTAgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhSZWZQdHI8U2hhcmVkVGFz
azx2b2lkICgpPj4gdGFzaykKICAgICB9CiB9CiAKLVBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxs
ZWxIZWxwZXJQb29sKCkKK1BhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKFRo
cmVhZE5hbWUgdGhyZWFkTmFtZSkKICAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQog
ICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6
Y3JlYXRlKCkpCisgICAgLCBtX25hbWUodGhyZWFkTmFtZSkKIHsKIH0KIApAQCAtMTcxLDcgKzE3
Miw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkb1NvbWVIZWxwaW5nKCkKIGNsYXNzIFBh
cmFsbGVsSGVscGVyUG9vbDo6VGhyZWFkIDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJs
aWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgUGFyYWxsZWxIZWxwZXJQ
b29sJiBwb29sKQotICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHBvb2wubV9sb2Nr
LCBwb29sLm1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbikKKyAgICAgICAgOiBBdXRvbWF0aWNUaHJl
YWQobG9ja2VyLCBwb29sLm1fbG9jaywgcG9vbC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24sIHBv
b2wubmFtZSgpKQogICAgICAgICAsIG1fcG9vbChwb29sKQogICAgIHsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3Rm
L1BhcmFsbGVsSGVscGVyUG9vbC5oCmluZGV4IDgxNjM1YmI3ODE5MDAzYWM5ZDdmNGE2ODFjYzU1
NDRlOTBkYTdkOTEuLmVkYzFhZWUxYTI0YWQ3YjgwNDY1MjIxNTVhZjY0YmEwNGRiY2JiZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCkBAIC0xNzksNyArMTc5LDcgQEAgY2xhc3Mg
UGFyYWxsZWxIZWxwZXJDbGllbnQgewogCiBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2wgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGFyYWxsZWxIZWxwZXJQb29sPiB7CiBwdWJsaWM6Ci0g
ICAgV1RGX0VYUE9SVF9QUklWQVRFIFBhcmFsbGVsSGVscGVyUG9vbCgpOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woVGhyZWFkTmFtZSk7CiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIH5QYXJhbGxlbEhlbHBlclBvb2woKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIGVuc3VyZVRocmVhZHModW5zaWduZWQgbnVtVGhyZWFkcyk7CkBAIC0xODgsNiArMTg4
LDggQEAgY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGRvU29tZUhlbHBpbmcoKTsKIAorICAgIFRocmVhZE5hbWUgbmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZTsgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBl
ckNsaWVudDsKICAgICBjbGFzcyBUaHJlYWQ7CkBAIC0yMDcsNiArMjA5LDcgQEAgY2xhc3MgUGFy
YWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVs
cGVyUG9vbD4gewogICAgIAogICAgIFZlY3RvcjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1fY2xp
ZW50czsKICAgICBWZWN0b3I8UmVmUHRyPEF1dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAg
ICBUaHJlYWROYW1lIG1fbmFtZTsKICAgICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8v
IFRoaXMgY2FuIGJlIGxhcmdlciB0aGFuIG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFy
dCB0aHJlYWRzIG9ubHkgb25jZSB0aGVyZSBpcyB3b3JrLgogICAgIGJvb2wgbV9pc0R5aW5nIHsg
ZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5l
cmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuY3BwCmluZGV4IDQw
MjNmNDNlNmYyMGEzOGUxMDNlN2M5YTJlNGYwZjdlMDYxMDU3MTQuLmVkNGIzZjY1ZDIxZDJjY2Fl
MGYzZTQ4YmMzNTlkOTM1NWFlMTZmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSm9ic0dlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuY3BwCkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFk
UHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVudmlyb25tZW50KiBwYXJlbnQpCiAgICAgfQog
CiAgICAgaWYgKCFtX3RocmVhZElEKQotICAgICAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KCZQYXJhbGxlbEVudmlyb25tZW50OjpUaHJlYWRQcml2YXRlOjp3b3JrZXJUaHJlYWQsIHRoaXMs
ICJQYXJhbGxlbCB3b3JrZXIiKTsKKyAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgm
UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFkLCB0aGlzLCB7
ICJQYXJhbGxlbCB3b3JrZXIiLCAiUGFyYWxsZWxXb3JrZXIiIH0pOwogCiAgICAgaWYgKG1fdGhy
ZWFkSUQpCiAgICAgICAgIG1fcGFyZW50ID0gcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVGhyZWFkTmFtZS5oIGIvU291cmNlL1dURi93dGYvVGhyZWFkTmFtZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZkOGE3MWJlZmE2MDQwMDQ1MDFjNjFjMGRkOTE1OWY4NDFkNjg5ZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmgKQEAgLTAsMCArMSw4OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4uCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1BsYXRm
b3JtLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworY2xhc3MgVGhyZWFkTmFtZSB7CitwdWJsaWM6CisjaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRP
V1MpCisgICAgdGVtcGxhdGU8dW5zaWduZWQgbG9uZ05hbWVDb3VudCwgdW5zaWduZWQgc2hvcnRO
YW1lQ291bnQ+CisgICAgY29uc3RleHByIFRocmVhZE5hbWUoY29uc3QgY2hhciAoJilbbG9uZ05h
bWVDb3VudF0sIGNvbnN0IGNoYXIgKCZzaG9ydE5hbWUpW3Nob3J0TmFtZUNvdW50XSkKKyAgICAg
ICAgOiBtX25hbWUoc2hvcnROYW1lKQorICAgIHsKKyNpZiBPUyhMSU5VWCkKKyAgICAgICAgc3Rh
dGljX2Fzc2VydCgoc2hvcnROYW1lQ291bnQgLSAxKSA8PSAoMTYgLSAxKSwgIiIpOworI2Vsc2UK
KyAgICAgICAgc3RhdGljX2Fzc2VydCgoc3RyaW5nTGVuZ3RoKCJXZWJLaXQ6ICIpICsgKHNob3J0
TmFtZUNvdW50IC0gMSkpIDw9ICgzMiAtIDEpLCAiIik7CisjZW5kaWYKKyAgICB9CisKKyNlbHNl
CisgICAgdGVtcGxhdGU8dW5zaWduZWQgbG9uZ05hbWVDb3VudCwgdW5zaWduZWQgc2hvcnROYW1l
Q291bnQ+CisgICAgY29uc3RleHByIFRocmVhZE5hbWUoY29uc3QgY2hhciAoJmxvbmdOYW1lKVts
b25nTmFtZUNvdW50XSwgY29uc3QgY2hhciAoJilbc2hvcnROYW1lQ291bnRdKQorICAgICAgICA6
IG1fbmFtZShsb25nTmFtZSkKKyAgICB7CisgICAgfQorI2VuZGlmCisKKyAgICBDU3RyaW5nIG5h
bWUoKSBjb25zdAorICAgIHsKKyNpZiBPUyhMSU5VWCkKKyAgICAgICAgcmV0dXJuIG1fbmFtZTsK
KyNlbHNlCisgICAgICAgIHJldHVybiBwcmVmaXhlZE5hbWUobV9uYW1lKTsKKyNlbmRpZgorICAg
IH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBzdHJpbmdDb3VudD4KKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHN0cmluZ0xlbmd0aChjb25zdCBjaGFyICgmKVtzdHJp
bmdDb3VudF0pCisgICAgeworICAgICAgICByZXR1cm4gc3RyaW5nQ291bnQgLSAxOworICAgIH0K
KworICAgIHN0YXRpYyBDU3RyaW5nIHByZWZpeGVkTmFtZShjb25zdCBjaGFyKiBjb250ZW50KQor
ICAgIHsKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IHN0cmluZ0xl
bmd0aCgiV2ViS2l0OiAiKTsKKyAgICAgICAgdW5zaWduZWQgY29udGVudExlbmd0aCA9IHN0cmxl
bihjb250ZW50KTsKKyAgICAgICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgQ1N0
cmluZyBzdHJpbmcgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKHByZWZpeExlbmd0aCArIGNv
bnRlbnRMZW5ndGgsIGJ1ZmZlcik7CisgICAgICAgIG1lbWNweShidWZmZXIsICJXZWJLaXQ6ICIs
IHByZWZpeExlbmd0aCk7CisgICAgICAgIGJ1ZmZlciArPSBwcmVmaXhMZW5ndGg7CisgICAgICAg
IG1lbWNweShidWZmZXIsIGNvbnRlbnQsIGNvbnRlbnRMZW5ndGgpOworICAgICAgICByZXR1cm4g
c3RyaW5nOworICAgIH0KKworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKK307CisKK30KKwordXNp
bmcgV1RGOjpUaHJlYWROYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5jcHAKaW5kZXggNDBjZTM5YTQ1ZDM1NDBh
MjNmZDU4NzhjZjkwNjdlYWZkNzY4MTMzYy4uMTNkZjUzMmMzOTRhMzEzMzM1NGE1NDMwYjgwNDhj
MDIyYWE4MzBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCkBAIC0zNiwzOCArMzYsMTEgQEAgbmFtZXNw
YWNlIFdURiB7CiBzdHJ1Y3QgTmV3VGhyZWFkQ29udGV4dCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBUaHJlYWROYW1l
IG5hbWU7CiAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGVudHJ5UG9pbnQ7CiAgICAgTXV0ZXgg
Y3JlYXRpb25NdXRleDsKIH07CiAKLWNvbnN0IGNoYXIqIG5vcm1hbGl6ZVRocmVhZE5hbWUoY29u
c3QgY2hhciogdGhyZWFkTmFtZSkKLXsKLSNpZiBIQVZFKFBUSFJFQURfU0VUTkFNRV9OUCkKLSAg
ICByZXR1cm4gdGhyZWFkTmFtZTsKLSNlbHNlCi0gICAgLy8gVGhpcyBuYW1lIGNhbiBiZSBjb20u
YXBwbGUuV2ViS2l0LlByb2Nlc3NMYXVuY2hlciBvciBjb20uYXBwbGUuQ29yZUlQQy5SZWNlaXZl
UXVldWUuCi0gICAgLy8gV2UgYXJlIHVzaW5nIHRob3NlIG5hbWVzIGZvciB0aGUgdGhyZWFkIG5h
bWUsIGJ1dCBib3RoIGFyZSBsb25nZXIgdGhhbiB0aGUgbGltaXQgb2YKLSAgICAvLyB0aGUgcGxh
dGZvcm0gdGhyZWFkIG5hbWUgbGVuZ3RoLCAzMiBmb3IgV2luZG93cyBhbmQgMTYgZm9yIExpbnV4
LgotICAgIFN0cmluZ1ZpZXcgcmVzdWx0KHRocmVhZE5hbWUpOwotICAgIHNpemVfdCBzaXplID0g
cmVzdWx0LnJldmVyc2VGaW5kKCcuJyk7Ci0gICAgaWYgKHNpemUgIT0gbm90Rm91bmQpCi0gICAg
ICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc2l6ZSArIDEpOwotCi0jaWYgT1MoV0lORE9X
UykKLSAgICBjb25zdGV4cHIgY29uc3Qgc2l6ZV90IGtWaXN1YWxTdHVkaW9UaHJlYWROYW1lTGlt
aXQgPSAzMiAtIDE7Ci0gICAgaWYgKHJlc3VsdC5sZW5ndGgoKSA+IGtWaXN1YWxTdHVkaW9UaHJl
YWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yaWdodChrVmlzdWFsU3R1ZGlv
VGhyZWFkTmFtZUxpbWl0KTsKLSNlbGlmIE9TKExJTlVYKQotICAgIGNvbnN0ZXhwciBjb25zdCBz
aXplX3Qga0xpbnV4VGhyZWFkTmFtZUxpbWl0ID0gMTYgLSAxOwotICAgIGlmIChyZXN1bHQubGVu
Z3RoKCkgPiBrTGludXhUaHJlYWROYW1lTGltaXQpCi0gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5y
aWdodChrTGludXhUaHJlYWROYW1lTGltaXQpOwotI2VuZGlmCi0gICAgQVNTRVJUKHJlc3VsdC5j
aGFyYWN0ZXJzOCgpW3Jlc3VsdC5sZW5ndGgoKV0gPT0gJ1wwJyk7Ci0gICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc3VsdC5jaGFyYWN0ZXJzOCgpKTsKLSNlbmRpZgot
fQotCiBzdGF0aWMgdm9pZCB0aHJlYWRFbnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogewog
ICAgIE5ld1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBzdGF0aWNfY2FzdDxOZXdUaHJlYWRDb250
ZXh0Kj4oY29udGV4dERhdGEpOwpAQCAtODgsNyArNjEsNyBAQCBzdGF0aWMgdm9pZCB0aHJlYWRF
bnRyeVBvaW50KHZvaWQqIGNvbnRleHREYXRhKQogICAgIGVudHJ5UG9pbnQoKTsKIH0KIAotVGhy
ZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoY29uc3QgY2hhciogbmFtZSwgc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGVudHJ5UG9pbnQpCitUaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJl
YWROYW1lIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50KQogewogICAgIE5l
d1RocmVhZENvbnRleHQqIGNvbnRleHQgPSBuZXcgTmV3VGhyZWFkQ29udGV4dCB7IG5hbWUsIFdU
Rk1vdmUoZW50cnlQb2ludCksIHsgfSB9OwogCkBAIC05OCw3ICs3MSw3IEBAIFRocmVhZElkZW50
aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBlbnRyeVBvaW50CiAgICAgcmV0dXJuIGNyZWF0ZVRocmVhZEludGVybmFsKHRocmVhZEVudHJ5
UG9pbnQsIGNvbnRleHQsIG5hbWUpOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVh
ZChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBjaGFyKiBuYW1l
KQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2lu
dCwgdm9pZCogZGF0YSwgVGhyZWFkTmFtZSBuYW1lKQogewogICAgIHJldHVybiBjcmVhdGVUaHJl
YWQobmFtZSwgW2VudHJ5UG9pbnQsIGRhdGFdIHsKICAgICAgICAgZW50cnlQb2ludChkYXRhKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oIGIvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nLmgKaW5kZXggMzA1MGRkOGRmODQ4YjZlNWEwOWM4ZTczYWFhY2Y1NDA3ZjhhNGI2
NS4uZGMzYWVhYjc5MjcwYWJhMzUyZjY1OThjNjgwMGY4NTcxYThjY2Y5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKQEAgLTU1LDcgKzU2LDcgQEAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpOwogCiAvLyBSZXR1
cm5zIDAgaWYgdGhyZWFkIGNyZWF0aW9uIGZhaWxlZC4KIC8vIFRoZSB0aHJlYWQgbmFtZSBtdXN0
IGJlIGEgbGl0ZXJhbCBzaW5jZSBvbiBzb21lIHBsYXRmb3JtcyBpdCdzIHBhc3NlZCBpbiB0byB0
aGUgdGhyZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhy
ZWFkKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CitXVEZf
RVhQT1JUX1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSwg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogLy8gTWFyayB0aGUgY3VycmVudCB0aHJlYWQgYXMg
cmVxdWlyaW5nIFVJIHJlc3BvbnNpdmVuZXNzLgogLy8gcmVsYXRpdmVQcmlvcml0eSBpcyBhIHZh
bHVlIGluIHRoZSByYW5nZSBbLTE1LCAwXSB3aGVyZSBhIGxvd2VyIHZhbHVlIGluZGljYXRlcyBh
IGxvd2VyIHByaW9yaXR5LgpAQCAtNjgsMTYgKzY5LDE0IEBAIFdURl9FWFBPUlRfUFJJVkFURSBp
bnQgd2FpdEZvclRocmVhZENvbXBsZXRpb24oVGhyZWFkSWRlbnRpZmllcik7CiBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBkZXRhY2hUaHJlYWQoVGhyZWFkSWRlbnRpZmllcik7CiAKIC8vIERlcHJl
Y2F0ZWQgZnVuY3Rpb24tcG9pbnRlci1iYXNlZCB0aHJlYWQgY3JlYXRpb24uCi1XVEZfRVhQT1JU
X1BSSVZBVEUgVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24sIHZv
aWQqLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK1dURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJ
ZGVudGlmaWVyIGNyZWF0ZVRocmVhZChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIFRocmVhZE5hbWUp
OwogCiAvLyBJbnRlcm5hbCBwbGF0Zm9ybS1zcGVjaWZpYyBjcmVhdGVUaHJlYWQgaW1wbGVtZW50
YXRpb24uCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0
aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7CitUaHJlYWRJZGVudGlmaWVyIGNy
ZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uLCB2b2lkKiwgVGhyZWFkTmFtZSk7CiAK
IC8vIENhbGxlZCBpbiB0aGUgdGhyZWFkIGR1cmluZyBpbml0aWFsaXphdGlvbi4KIC8vIEhlbHBm
dWwgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgdGhyZWFkIG5hbWUgbXVzdCBiZSBzZXQgZnJvbSB3
aXRoaW4gdGhlIHRocmVhZC4KLXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChj
b25zdCBjaGFyKiB0aHJlYWROYW1lKTsKLQotY29uc3QgY2hhciogbm9ybWFsaXplVGhyZWFkTmFt
ZShjb25zdCBjaGFyKiB0aHJlYWROYW1lKTsKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJ
bnRlcm5hbChUaHJlYWROYW1lKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCAwZjlmMmZjNzJjOWQzZTg5MGM3M2FhZGE3MzkxNTA0
YTkxYTc0MjgwLi41M2NhMzhlYTQ3Yzc1MDRjN2UzOWQ5ZGEwZDRiZmJhZTZhNDA1ZTE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgc3RhdGlj
IHZvaWQqIHd0ZlRocmVhZEVudHJ5UG9pbnQodm9pZCogcGFyYW0pCiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkSW50ZXJuYWwoVGhyZWFkRnVu
Y3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hhciopCitUaHJlYWRJZGVudGlm
aWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQq
IGRhdGEsIFRocmVhZE5hbWUpCiB7CiAgICAgYXV0byBpbnZvY2F0aW9uID0gc3RkOjptYWtlX3Vu
aXF1ZTxUaHJlYWRGdW5jdGlvbkludm9jYXRpb24+KGVudHJ5UG9pbnQsIGRhdGEpOwogICAgIHB0
aHJlYWRfdCB0aHJlYWRIYW5kbGU7CkBAIC0xOTIsMTIgKzE5MiwxNCBAQCBUaHJlYWRJZGVudGlm
aWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQq
IGRhdGEsIGNvbgogICAgIHJldHVybiBlc3RhYmxpc2hJZGVudGlmaWVyRm9yUHRocmVhZEhhbmRs
ZSh0aHJlYWRIYW5kbGUpOwogfQogCi12b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJu
YWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSkKK3ZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJ
bnRlcm5hbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAjaWYgSEFWRShQVEhSRUFEX1NFVE5B
TUVfTlApCi0gICAgcHRocmVhZF9zZXRuYW1lX25wKG5vcm1hbGl6ZVRocmVhZE5hbWUodGhyZWFk
TmFtZSkpOworICAgIGF1dG8gbmFtZSA9IHRocmVhZE5hbWUubmFtZSgpOworICAgIHB0aHJlYWRf
c2V0bmFtZV9ucChuYW1lLmRhdGEoKSk7CiAjZWxpZiBPUyhMSU5VWCkKLSAgICBwcmN0bChQUl9T
RVRfTkFNRSwgbm9ybWFsaXplVGhyZWFkTmFtZSh0aHJlYWROYW1lKSk7CisgICAgYXV0byBuYW1l
ID0gdGhyZWFkTmFtZS5uYW1lKCk7CisgICAgcHJjdGwoUFJfU0VUX05BTUUsIG5hbWUuZGF0YSgp
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHRocmVhZE5hbWUpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nV2luLmNwcAppbmRleCA1NGI0M2VmZWYzNWNkNjYzMmE3MDA4MTUwN2E1YjM3OTlkZWZi
NmZiLi40YzliYzU3N2EyNmE5MGRhNTUwOWQyYzYyMzgzMWJmYmVmODdkNDAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1dpbi5jcHAKQEAgLTEyMSwxNSArMTIxLDE2IEBAIHR5cGVkZWYgc3RydWN0IHRhZ1RI
UkVBRE5BTUVfSU5GTyB7CiB9IFRIUkVBRE5BTUVfSU5GTzsKICNwcmFnbWEgcGFjayhwb3ApCiAK
LXZvaWQgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChjb25zdCBjaGFyKiBzelRocmVh
ZE5hbWUpCit2b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoVGhyZWFkTmFtZSB0
aHJlYWROYW1lKQogewogI2lmIENPTVBJTEVSKE1JTkdXKQogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhyZWFkIG5hbWUgc2V0dGluZyB3aXRoIE1pbmdXLgotICAgIFVOVVNFRF9QQVJBTShzelRo
cmVhZE5hbWUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNlbHNlCisgICAgYXV0
byBuYW1lID0gdGhyZWFkTmFtZS5uYW1lKCk7CiAgICAgVEhSRUFETkFNRV9JTkZPIGluZm87CiAg
ICAgaW5mby5kd1R5cGUgPSAweDEwMDA7Ci0gICAgaW5mby5zek5hbWUgPSBub3JtYWxpemVUaHJl
YWROYW1lKHN6VGhyZWFkTmFtZSk7CisgICAgaW5mby5zek5hbWUgPSBuYW1lLmRhdGEoKTsKICAg
ICBpbmZvLmR3VGhyZWFkSUQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICBpbmZvLmR3Rmxh
Z3MgPSAwOwogCkBAIC0xOTksNyArMjAwLDcgQEAgc3RhdGljIHVuc2lnbmVkIF9fc3RkY2FsbCB3
dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAgIHJldHVybiAwOwogfQogCi1UaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9p
bnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCitUaHJlYWRJZGVudGlmaWVy
IGNyZWF0ZVRocmVhZEludGVybmFsKFRocmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRh
dGEsIFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKIHsKICAgICB1bnNpZ25lZCB0aHJlYWRJZGVudGlm
aWVyID0gMDsKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUu
Y3BwCmluZGV4IGIyYTBhNzlmNGFiNWFhYzI4OWIxNjlmOTJiYmMxYTgwNTg1MmNhMzIuLmMyODkx
NjY5ZDYwZjE5NThjYmRlZDZlNzkxNTJhMjc1ZDY2Mjc2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcApA
QCAtMzksMTIgKzM5LDEyIEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1SZWY8V29ya1F1ZXVlPiBX
b3JrUXVldWU6OmNyZWF0ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCitS
ZWY8V29ya1F1ZXVlPiBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUgdHlw
ZSwgUU9TIHFvcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrUXVldWUobmFtZSwg
dHlwZSwgcW9zKSk7CiB9CiAKLVdvcmtRdWV1ZTo6V29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUs
IFR5cGUgdHlwZSwgUU9TIHFvcykKK1dvcmtRdWV1ZTo6V29ya1F1ZXVlKFRocmVhZE5hbWUgbmFt
ZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZShuYW1lLCB0
eXBlLCBxb3MpOwogfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29uY3VycmVu
dEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKHNpegog
CiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aHJlYWRDb3Vu
dCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhyZWFkQ291bnQ7ICsr
aSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoY3JlYXRlVGhyZWFkKFN0cmlu
Zzo6Zm9ybWF0KCJUaHJlYWRQb29sIFdvcmtlciAldSIsIGkpLnV0ZjgoKS5kYXRhKCksIFt0aGlz
XSB7CisgICAgICAgICAgICAgICAgbV93b3JrZXJzLmFwcGVuZChjcmVhdGVUaHJlYWQoeyAiVGhy
ZWFkUG9vbCBXb3JrZXIiLCAiQ29uY3VycmVudEFwcGx5IiB9LCBbdGhpc10gewogICAgICAgICAg
ICAgICAgICAgICB0aHJlYWRCb2R5KCk7CiAgICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrUXVldWUuaAppbmRleCBkOTE4NGI0ODI3YmYxMGJhMzhhNDgxNDgwNWIyZjMzNjQ2
ZDc2ZTAzLi40MjcyNGFmNjgzZGRhMTc2YTZkNmUwNmM0OWI0OGY2ODkzZGI0OTJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3Jr
UXVldWUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CiAKICNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKQEAgLTY3LDcgKzY4LDcgQEAgY2xhc3Mg
V29ya1F1ZXVlIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAgIEJh
Y2tncm91bmQKICAgICB9OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWY8V29y
a1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9IFR5cGU6OlNlcmlhbCwgUU9T
ID0gUU9TOjpEZWZhdWx0KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZjxXb3Jr
UXVldWU+IGNyZWF0ZShUaHJlYWROYW1lLCBUeXBlID0gVHlwZTo6U2VyaWFsLCBRT1MgPSBRT1M6
OkRlZmF1bHQpOwogICAgIHZpcnR1YWwgfldvcmtRdWV1ZSgpOwogCiAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJikgb3ZlcnJpZGU7CkBAIC04
NSw5ICs4Niw5IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6IHB1YmxpYyBGdW5jdGlvbkRpc3Bh
dGNoZXIgewogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV29ya1F1ZXVlKGNvbnN0
IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgZXhwbGljaXQgV29ya1F1ZXVlKFRocmVhZE5h
bWUsIFR5cGUsIFFPUyk7CiAKLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFy
KiBuYW1lLCBUeXBlLCBRT1MpOworICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5h
bWUsIFR5cGUsIFFPUyk7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAogI2lmIFVT
RShXSU5ET1dTX0VWRU5UX0xPT1ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9X
b3JrUXVldWVDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5j
cHAKaW5kZXggOGVkYmYyM2M1NTg4ODgyOTZjMTRjOGM5ZDBlZTBjNGY2MzMwYjMyMy4uN2Y1NTE2
OTdlYTU5YTM5YzkxMTcwMTk5YjNjYjlhYzg1NDM5NDM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29h
L1dvcmtRdWV1ZUNvY29hLmNwcApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVl
dWVfdCB0YXJnZXRRdWV1ZUZvclFPU0NsYXNzKFdvcmtRdWV1ZTo6UU9TIHFvcykKIH0KICNlbmRp
ZgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUs
IFR5cGUgdHlwZSwgUU9TIHFvcykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUo
VGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgZGlzcGF0Y2hfcXVl
dWVfYXR0cl90IGF0dHIgPSB0eXBlID09IFR5cGU6OkNvbmN1cnJlbnQgPyBESVNQQVRDSF9RVUVV
RV9DT05DVVJSRU5UIDogRElTUEFUQ0hfUVVFVUVfU0VSSUFMOwogI2lmIEhBVkUoUU9TX0NMQVNT
RVMpCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUo
Y29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQogI2Vsc2UKICAgICBVTlVTRURf
UEFSQU0ocW9zKTsKICNlbmRpZgotICAgIG1fZGlzcGF0Y2hRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVl
X2NyZWF0ZShuYW1lLCBhdHRyKTsKKyAgICBtX2Rpc3BhdGNoUXVldWUgPSBkaXNwYXRjaF9xdWV1
ZV9jcmVhdGUobmFtZS5uYW1lKCkuZGF0YSgpLCBhdHRyKTsKICNpZiAhSEFWRShRT1NfQ0xBU1NF
UykKICAgICBpZiAocW9zICE9IFdvcmtRdWV1ZTo6UU9TOjpEZWZhdWx0KQogICAgICAgICBkaXNw
YXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKG1fZGlzcGF0Y2hRdWV1ZSwgdGFyZ2V0UXVldWVGb3JRT1ND
bGFzcyhxb3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVl
RWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcAppbmRleCBi
NGFkMmJkYzQzOGY5ZDk0NTdlM2Y3ZmI0OTIyNGM2ODE1OTc2ZGFmLi4yZjEwYjAyYTBlMTkzYzJm
MjkyZWM5MGMyYmMyYjI4ZTRlZDNjODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9lZmwv
RGlzcGF0Y2hRdWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVl
dWVFZmwuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIHdha2VVcFRocmVh
ZE1lc3NhZ2UgPSAnVyc7CiAKIGNsYXNzIERpc3BhdGNoUXVldWU6OlRocmVhZENvbnRleHQgewog
cHVibGljOgotICAgIHN0YXRpYyB2b2lkIHN0YXJ0KGNvbnN0IGNoYXIqIG5hbWUsIFBhc3NSZWZQ
dHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSkKKyAgICBzdGF0aWMgdm9pZCBzdGFydChU
aHJlYWROYW1lIG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSkK
ICAgICB7CiAgICAgICAgIC8vIFRoZSBEaXNwYXRjaFF1ZXVlVGhyZWFkQ29udGV4dCBpbnN0YW5j
ZSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdGhyZWFkIGZ1bmN0aW9uIGFuZCBkZWxldGVkIGluIGl0
LgogICAgICAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8V1RG
OjpUaHJlYWRGdW5jdGlvbj4oJlRocmVhZENvbnRleHQ6OmZ1bmN0aW9uKSwgbmV3IFRocmVhZENv
bnRleHQoZGlzcGF0Y2hRdWV1ZSksIG5hbWUpKTsKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRGlz
cGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dCB7CiAgICAgUmVmUHRyPERpc3BhdGNoUXVldWU+IG1f
ZGlzcGF0Y2hRdWV1ZTsKIH07CiAKLVBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gRGlzcGF0Y2hR
dWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpCitQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+
IERpc3BhdGNoUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUpCiB7CiAgICAgUmVmUHRyPERp
c3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUgPSBhZG9wdFJlZjxEaXNwYXRjaFF1ZXVlPihuZXcg
RGlzcGF0Y2hRdWV1ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZWZsL0Rpc3Bh
dGNoUXVldWVFZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmgKaW5k
ZXggZmM1NTUxOWIwMWNlZThmZTA0OWMxM2MxZTVmY2ZjN2Q5OTc5NGYyNi4uNTcwOTQyNmRiYWVi
YWE3MTE1ZjYyODI2YmMyNGRkNGZiMmU0MWU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
ZWZsL0Rpc3BhdGNoUXVldWVFZmwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hR
dWV1ZUVmbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2lu
Y2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFtZS5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBX
b3JrSXRlbTsKIAogY2xhc3MgRGlzcGF0Y2hRdWV1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxEaXNwYXRjaFF1ZXVlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGlz
cGF0Y2hRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lKTsKICAgICB+RGlzcGF0Y2hRdWV1
ZSgpOwogCiAgICAgdm9pZCBkaXNwYXRjaChzdGQ6OnVuaXF1ZV9wdHI8V29ya0l0ZW0+KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVFZmwuY3BwIGIvU291cmNlL1dU
Ri93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKaW5kZXggZGE5MTNiZjA0Y2U3MjczMTA3NjdlZjQ3
OTRmZGQyYjg3OGE1ZjRlZC4uODMyNWY1ZDZjMzE0ZDRmYmI4MzMzZjIxOTBkM2ZiY2YxOTQ3ZTEz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAog
bmFtZXNwYWNlIFdURiB7CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29u
c3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlh
bGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAgICBtX2Rpc3BhdGNoUXVldWUg
PSBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUobmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcAppbmRleCBmNTk0ZTI0MDExNmQ0ZTA0M2Q0ZGMzYTNmNmNm
N2MwN2Q0YjIzNDQyLi5kZjZlMDcyMmQxZTQwM2M3YWI5NzAwNzBkNTdmNjNiNjI2MTI0MjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2VuZXJpYy5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi12b2lkIFdvcmtR
dWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUykKK3Zv
aWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlLCBR
T1MpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlv
bk11dGV4KTsKICAgICBtX3dvcmtRdWV1ZVRocmVhZCA9IGNyZWF0ZVRocmVhZChuYW1lLCBbdGhp
c10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BU0NJSUxpdGVyYWwuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk0NmE5Mjk4NGY5
NDRiMTM1ZDcwMjlmNTMxZGQ3MWI4Y2E2OTk2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQVNDSUlMaXRlcmFsIHsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBjb25zdGV4cHIgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMpCisgICAg
ICAgIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCisgICAgeworICAgIH0KKworICAgIGNvbnN0
ZXhwciBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV9jaGFyYWN0ZXJzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBjaGFyKiBtX2NoYXJh
Y3RlcnM7Cit9OworCit9CisKK3VzaW5nIFdURjo6QVNDSUlMaXRlcmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmgKaW5kZXggMDFjNzY4MTBiZDZjZDFlZGJiZWY4YWZlZDg0MmY4MDgwZGY3ZGFkMy4u
ODBlNjQ0NzFmZWQwODg3NDA1MzM2NTNmNmY0ZTY5NmVhZTA0YjBjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5oCkBAIC0yNiw2ICsyNiw3IEBACiAvLyBvbiBzeXN0ZW1zIHdpdGhvdXQgY2FzZS1z
ZW5zaXRpdmUgZmlsZSBzeXN0ZW1zLgogCiAjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlGYXN0UGF0
aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBAIC0zNCw4ICszNSw2IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBBU0NJSUxpdGVyYWw7Ci0KIC8vIERlY2xhcmF0aW9u
cyBvZiBzdHJpbmcgb3BlcmF0aW9ucwogCiBXVEZfRVhQT1JUX1NUUklOR19BUEkgaW50IGNoYXJh
Y3RlcnNUb0ludFN0cmljdChjb25zdCBMQ2hhciosIHNpemVfdCwgYm9vbCogb2sgPSBudWxscHRy
LCBpbnQgYmFzZSA9IDEwKTsKQEAgLTY4MSwxNSArNjgwLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RGVmYXVsdEhhc2g8U3RyaW5nPiB7CiAKIHRlbXBsYXRlIDw+IHN0cnVjdCBWZWN0b3JUcmFpdHM8
U3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsKIAotY2xhc3MgQVNDSUlMaXRl
cmFsIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBU0NJSUxpdGVyYWwoY29uc3QgY2hhciogY2hh
cmFjdGVycykgOiBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykgeyB9Ci0gICAgb3BlcmF0b3IgY29u
c3QgY2hhciooKSB7IHJldHVybiBtX2NoYXJhY3RlcnM7IH0KLQotcHJpdmF0ZToKLSAgICBjb25z
dCBjaGFyKiBtX2NoYXJhY3RlcnM7Ci19OwotCiAvLyBTaGFyZWQgZ2xvYmFsIGVtcHR5IHN0cmlu
Zy4KIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBjb25zdCBTdHJpbmcmIGVtcHR5U3RyaW5nKCk7CiAK
QEAgLTczOCw3ICs3MjgsNiBAQCB1c2luZyBXVEY6OmZpbmQ7CiB1c2luZyBXVEY6OmlzQWxsU3Bl
Y2lhbENoYXJhY3RlcnM7CiB1c2luZyBXVEY6OmlzU3BhY2VPck5ld2xpbmU7CiB1c2luZyBXVEY6
OnJldmVyc2VGaW5kOwotdXNpbmcgV1RGOjpBU0NJSUxpdGVyYWw7CiAKICNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL01h
aW5UaHJlYWRXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwCmlu
ZGV4IGYzMjRlOGI2MWRkNDFmYTA1NjA4NjNiNmM1ODE5MTBmODY3ZDM2ZWIuLjUyNjlkOWYyMmUw
YThkNThmYjE2ZmIyNzkzYjVjOWQyODIxZTIzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3dpbi9NYWluVGhyZWFkV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vTWFpblRocmVh
ZFdpbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZFBsYXRm
b3JtKCkKICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwgMCwgSFdORF9N
RVNTQUdFLCAwLCAwLCAwKTsKICAgICB0aHJlYWRpbmdGaXJlZE1lc3NhZ2UgPSBSZWdpc3Rlcldp
bmRvd01lc3NhZ2VXKEwiY29tLmFwcGxlLldlYktpdC5NYWluVGhyZWFkRmlyZWQiKTsKIAotICAg
IGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoIk1haW4gVGhyZWFkIik7CisgICAgaW5p
dGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCh7ICJNYWluIFRocmVhZCIsICJNYWluVGhyZWFk
IiB9KTsKIH0KIAogdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwIGIvU291cmNl
L1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKaW5kZXggZjRjNGI4Yzc3ZGNlOTk1ZjU3ZjI1
NjcwMmMxZjljZWY4YzY1YTVhYS4uNzEyNGFjZmM5N2RjYWU5YTIyMTQ4NDI2ODI5Yjg0ZDM2ZDgy
YzI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKKysr
IGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKQEAgLTcxLDcgKzcxLDcgQEAg
dm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpCiAgICAg
bV9mdW5jdGlvblF1ZXVlTG9jay51bmxvY2soKTsKIH0KIAotdm9pZCBXb3JrUXVldWU6OnBsYXRm
b3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpCit2b2lkIFdvcmtRdWV1
ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlwZSwgUU9TKQogewogICAg
IG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCA9IDA7CiAgICAgbV90aW1lclF1ZXVlID0gOjpDcmVh
dGVUaW1lclF1ZXVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDg3NDc2NDM4Y2FlNjVhNjM4N2Q5MDFhNzUy
ODgxNWVjOTU0N2YyMzIuLmFiMWVmNjQ4MGE2MjVjOWJkZTRkZGIxODUxZGRlOTAyMzJlYmZmNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIElEQlNlcnZlcjo6SURCU2VydmVyKElEQkJh
Y2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxlcikKICAgICA6IG1fYmFj
a2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIpCiB7CiAgICAgTG9ja2Vy
PExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBtX3RocmVh
ZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywg
IkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgeyAiSW5kZXhlZERhdGFiYXNl
IFNlcnZlciIsICJJREJTZXJ2ZXIiIH0pOwogfQogCiBJREJTZXJ2ZXI6OklEQlNlcnZlcihjb25z
dCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0b3JlVGVtcG9yYXJ5
RmlsZUhhbmRsZXImIGZpbGVIYW5kbGVyKQpAQCAtNjYsNyArNjYsNyBAQCBJREJTZXJ2ZXI6OklE
QlNlcnZlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCwgSURCQmFja2luZ1N0
b3JlVGVtcG9yYQogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXIgY3JlYXRlZCBhdCBwYXRo
ICVzIiwgZGF0YWJhc2VEaXJlY3RvcnlQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgTG9ja2Vy
PExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2NrKTsKLSAgICBtX3RocmVh
ZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywg
IkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFk
KElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgeyAiSW5kZXhlZERhdGFiYXNl
IFNlcnZlciIsICJJREJTZXJ2ZXIiIH0pOwogfQogCiB2b2lkIElEQlNlcnZlcjo6cmVnaXN0ZXJD
b25uZWN0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKaW5k
ZXggMjkyZjA1YjhjZDUwNmUyMjlhZTZiOGJkODYyOWMwOTU0ZDE4NDU5Yi4uMDNkODg0ZWM0ZmRk
MDJjZjVkZDRjYTM5MTliN2VkZGQxZjAwMTVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAKQEAgLTM5LDcgKzM5LDcg
QEAgQXN5bmNBdWRpb0RlY29kZXI6OkFzeW5jQXVkaW9EZWNvZGVyKCkKIHsKICAgICAvLyBTdGFy
dCB3b3JrZXIgdGhyZWFkLgogICAgIExvY2tIb2xkZXIgbG9jayhtX3RocmVhZENyZWF0aW9uTXV0
ZXgpOwotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRo
cmVhZEVudHJ5LCB0aGlzLCAiQXVkaW8gRGVjb2RlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVh
dGVUaHJlYWQoQXN5bmNBdWRpb0RlY29kZXI6OnRocmVhZEVudHJ5LCB0aGlzLCB7ICJBdWRpbyBE
ZWNvZGVyIiwgIkF1ZGlvRGVjb2RlciIgfSk7CiB9CiAKIEFzeW5jQXVkaW9EZWNvZGVyOjp+QXN5
bmNBdWRpb0RlY29kZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4IDUwNTIz
MDQxOTdjZGVkZGU0N2ZkY2JiOTEyZWM0NzQwNTU3OTc0MjguLmJhNzNiODAwNDI1ODMwMTM5NGU5
Y2Q2NDE4YjM5MjczNjVkZDUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKQEAg
LTgzLDcgKzgzLDcgQEAgdm9pZCBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OnN0YXJ0UmVu
ZGVyaW5nKCkKICAgICBpZiAoIW1fc3RhcnRlZFJlbmRlcmluZykgewogICAgICAgICBtX3N0YXJ0
ZWRSZW5kZXJpbmcgPSB0cnVlOwogICAgICAgICByZWYoKTsgLy8gU2VlIGNvcnJlc3BvbmRpbmcg
ZGVyZWYoKSBjYWxsIGluIG5vdGlmeUNvbXBsZXRlRGlzcGF0Y2goKS4KLSAgICAgICAgbV9yZW5k
ZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZs
aW5lUmVuZGVyRW50cnksIHRoaXMsICJvZmZsaW5lIHJlbmRlcmVyIik7CisgICAgICAgIG1fcmVu
ZGVyVGhyZWFkID0gY3JlYXRlVGhyZWFkKE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6b2Zm
bGluZVJlbmRlckVudHJ5LCB0aGlzLCB7ICJvZmZsaW5lIHJlbmRlcmVyIiwgIk9mZmxpbmVSZW5k
ZXJlciIgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IDBkZGU1ZjcyNjhlZTY0MmMwMDQz
MDVjZWZlMzZiMWM5ZTQ0Yjg3ZDMuLjhkZmQ2ZGJiNDBkNWQ5Y2FhNTRjM2FjNGE1MGZlYmJkZGIy
MWY5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUaHJlYWQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIGJvb2wgRGF0YWJhc2VUaHJlYWQ6
OnN0YXJ0KCkKICAgICBpZiAobV90aHJlYWRJRCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVh
ZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogRGF0YWJhc2UiKTsKKyAgICBtX3RocmVhZElEID0gY3Jl
YXRlVGhyZWFkKERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZFN0YXJ0LCB0aGlzLCB7ICJX
ZWJDb3JlOiBEYXRhYmFzZSIsICJXZWJEQiIgfSk7CiAKICAgICByZXR1cm4gbV90aHJlYWRJRDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDZm
OWZjYTY3ZjNjNDdhZGRjODNkZWM4Y2IwZDVlYjhjY2I0MGQ3NDMuLjNlMjRmMGIwODA5YzFmMWM1
ZDc0NjY4OGFjYTkyNjFjMjBjMTdmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
R0NDb250cm9sbGVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgR0NDb250cm9sbGVyOjpn
YXJiYWdlQ29sbGVjdE5vd0lmTm90RG9uZVJlY2VudGx5KCkKIAogdm9pZCBHQ0NvbnRyb2xsZXI6
OmdhcmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcoYm9vbCB3YWl0VW50
aWxEb25lKQogewotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQo
Y29sbGVjdCwgMCwgIldlYkNvcmU6IEdDQ29udHJvbGxlciIpOworICAgIFRocmVhZElkZW50aWZp
ZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29sbGVjdCwgMCwgeyAiV2ViQ29yZTogR0MgQ29u
dHJvbGxlciIsICJHQ0NvbnRyb2xsZXIiIH0pOwogCiAgICAgaWYgKHdhaXRVbnRpbERvbmUpIHsK
ICAgICAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhyZWFkSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCBmNjkxZjZiMDlmMjZhNWQ2OTU0Y2UxNjM3YjMy
NzI2NjBiMTY5YzAwLi5mMDhlMGMwMWQ5Y2U0YWYyOGM2MzliNTFhNjQyZGE4NmZlOTg0YTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcApAQCAtMzIsNyArMzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFN1YnRsZUNyeXB0bzo6U3VidGxlQ3J5cHRvKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cigmY29udGV4dCkKLSAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBw
bGUuV2ViS2l0LkNyeXB0b1F1ZXVlIikpCisgICAgLCBtX3dvcmtRdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNyeXB0b1F1ZXVlIiwgIkNyeXB0b1F1ZXVlIiB9KSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJl
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCmluZGV4
IDViODEzNjExMmFkZGVhMTQ1Yzk1NTkwYThhM2MxNzYxZjFiMWI5ODMuLmFmYjJlMGRmMjIyZGI0
ZDMzYWNmZmE4ZjVhYjg5NjlmMzk1OTk2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Fz
eW5jRmlsZVN0cmVhbS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgY2FsbE9uRmls
ZVRocmVhZChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogCiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIGNyZWF0ZUZpbGVUaHJlYWRPbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKGNyZWF0
ZUZpbGVUaHJlYWRPbmNlLCBbXSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogQXN5
bmNGaWxlU3RyZWFtIiwgW10geworICAgICAgICBjcmVhdGVUaHJlYWQoeyAiV2ViQ29yZTogQXN5
bmNGaWxlU3RyZWFtIiwgIkFzeW5jRmlsZVN0cmVhbSIgfSwgW10gewogICAgICAgICAgICAgZm9y
ICg7OykgewogICAgICAgICAgICAgICAgIEF1dG9kcmFpbmVkUG9vbCBwb29sOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAppbmRleCBlZTQzN2U4NjI4ZWJm
NGU4NjMyN2NjNzcwMzBmNWY2OTRlMzBiYjJkLi45OGYxODkwMzkzYWNhMmQwMzA5OWUzZmNmZTc4
NjcwZWExYTk5NDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFz
ZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBib29sIEljb25EYXRhYmFzZTo6b3Blbihjb25zdCBT
dHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKICAgICAvLyBMb2NrIGhl
cmUgYXMgd2VsbCBhcyBmaXJzdCB0aGluZyBpbiB0aGUgdGhyZWFkIHNvIHRoZSB0aHJlYWQgZG9l
c24ndCBhY3R1YWxseSBjb21tZW5jZSB1bnRpbCB0aGUgY3JlYXRlVGhyZWFkKCkgY2FsbCAKICAg
ICAvLyBjb21wbGV0ZXMgYW5kIG1fc3luY1RocmVhZFJ1bm5pbmcgaXMgcHJvcGVybHkgc2V0CiAg
ICAgbV9zeW5jTG9jay5sb2NrKCk7Ci0gICAgbV9zeW5jVGhyZWFkID0gY3JlYXRlVGhyZWFkKElj
b25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTog
SWNvbkRhdGFiYXNlIik7CisgICAgbV9zeW5jVGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRh
YmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVhZFN0YXJ0LCB0aGlzLCB7ICJXZWJDb3JlOiBJY29u
RGF0YWJhc2UiLCAiSWNvbkRCIiB9KTsKICAgICBtX3N5bmNUaHJlYWRSdW5uaW5nID0gbV9zeW5j
VGhyZWFkOwogICAgIG1fc3luY0xvY2sudW5sb2NrKCk7CiAgICAgaWYgKCFtX3N5bmNUaHJlYWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAppbmRleCA5MTIw
MGMzNDVmNDU1Zjk2ZDQ5NGJmZDJhZDcwM2YyOGM1YzYyOWQxLi44ODA0MGJhMzg4NTRjZjk5MzM0
M2U1YWE2ZjM0ZTVkMTRhNWU5Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jl
c291cmNlVXNhZ2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VV
c2FnZVRocmVhZC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFJlc291cmNlVXNhZ2VUaHJl
YWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92bSA9
ICZjb21tb25WTSgpOwotICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJl
YWRDYWxsYmFjaywgdGhpcywgIldlYkNvcmU6IFJlc291cmNlVXNhZ2UiKTsKKyAgICBtX3RocmVh
ZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIHsgIldlYkNv
cmU6IFJlc291cmNlVXNhZ2UiLCAiUmVzb3VyY2VVc2FnZSIgfSk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VVc2FnZVRocmVhZDo6dGhyZWFkQ2FsbGJhY2sodm9pZCogcmVzb3VyY2VVc2FnZVRocmVhZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3Bw
CmluZGV4IDczMGMwYTZiZDkzZjQ1NzhkMWVkYmY5YWNlMWNkODY1NjZlNmM5ODguLmY4YmViY2M1
YjIwZmY1Mzc1OTc2YTEzNGJlZjYwN2UxY2ZlNDQ4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcApAQCAtODEsNyArODEsNyBAQCB2
b2lkIFNjcm9sbGluZ1RocmVhZDo6Y3JlYXRlVGhyZWFkSWZOZWVkZWQoKQogICAgIHsKICAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1faW5pdGlhbGl6ZVJ1bkxvb3BNdXRleCk7
CiAKLSAgICAgICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxi
YWNrLCB0aGlzLCAiV2ViQ29yZTogU2Nyb2xsaW5nIik7CisgICAgICAgIG1fdGhyZWFkSWRlbnRp
ZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgeyAiV2ViQ29yZTogU2Ny
b2xsaW5nIiwgIlNjcm9sbGluZyIgfSk7CiAgICAgICAgIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBb
dGhpc117IHJldHVybiBtX3RocmVhZFJ1bkxvb3A7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXggZjcxMzMzYzVh
MzdhOTk4OTY0ZjNhNzQxYzczMTUyZTk1MTQ2NmNmNi4uYjhjZDYyYjk4Mzg2OWFmN2JkYzgyNjI3
M2UyMDM4YWU2ZWIzNzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBIUlRG
RGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSgpCiAgICAgCiAgICAgaWYgKCFtX2hy
dGZEYXRhYmFzZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVhZCkgewogICAgICAgICAv
LyBTdGFydCB0aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcgcHJvY2Vzcy4KLSAgICAg
ICAgbV9kYXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxvYWRlckVu
dHJ5LCB0aGlzLCAiSFJURiBkYXRhYmFzZSBsb2FkZXIiKTsKKyAgICAgICAgbV9kYXRhYmFzZUxv
YWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxvYWRlckVudHJ5LCB0aGlzLCB7ICJI
UlRGIGRhdGFiYXNlIGxvYWRlciIsICJIUlRGREJMb2FkZXIiIH0pOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKaW5k
ZXggOTZmMzMwODI4MDc5YTc5YWQ2NDgyMGQwNzIxYzU5YzVlYTE2ZmRiMS4uMTI5NTljM2VmNzEx
ZWI3NmE4N2QyMWY5OTExYzY4MGFhNjc5MWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgUmV2
ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIoQXVkaW9DaGFubmVsKiBpbXB1bHNlUmVzcG9u
c2UsIHNpemVfdCByZW5kZXJTbGkKICAgICAvLyBTdGFydCB1cCBiYWNrZ3JvdW5kIHRocmVhZAog
ICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBiZXR0ZXIgdG8gdXAgdGhlIHRocmVhZCBwcmlvcml0eSBo
ZXJlLiAgSXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwtdGltZSwgYnV0IGhpZ2hlciB0aGFuIHRo
ZSBkZWZhdWx0Li4uCiAgICAgaWYgKHRoaXMtPnVzZUJhY2tncm91bmRUaHJlYWRzKCkgJiYgbV9i
YWNrZ3JvdW5kU3RhZ2VzLnNpemUoKSA+IDApCi0gICAgICAgIG1fYmFja2dyb3VuZFRocmVhZCA9
IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpiYWNrZ3JvdW5kVGhyZWFkRW50cnksIHRoaXMsICJjb252
b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIpOworICAgICAgICBtX2JhY2tncm91bmRUaHJlYWQg
PSBjcmVhdGVUaHJlYWQoV2ViQ29yZTo6YmFja2dyb3VuZFRocmVhZEVudHJ5LCB0aGlzLCB7ICJj
b252b2x1dGlvbiBiYWNrZ3JvdW5kIHRocmVhZCIsICJDb252b2x1dGlvbiIgfSk7CiB9CiAKIFJl
dmVyYkNvbnZvbHZlcjo6flJldmVyYkNvbnZvbHZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFk
ZXJHU3RyZWFtZXIuY3BwCmluZGV4IDkxMjk0OTgxNjBmMWJlM2U2Y2ZlN2YwNDc2NGI0ZDc5ZDQ4
ZjhmM2YuLmNkOGY2Y2FlMDllY2M1ZmVmOGM3NDBhNjIxNzlmZDY2ZjUyMDE3ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFk
ZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJl
YW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwCkBAIC0zNzAsNyArMzcwLDcgQEAgUGFz
c1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxl
UmF0ZSwgYm9vbCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21B
dWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25vLCBmbG9hdCBzYW1w
bGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gcmV0dXJuVmFsdWU7Ci0gICAgYXV0byB0
aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVkaW9GaWxlUmVhZGVyIiwgWyZyZXR1cm5WYWx1ZSwg
ZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0geworICAgIGF1dG8gdGhyZWFkSUQgPSBj
cmVhdGVUaHJlYWQoeyAiQXVkaW9GaWxlUmVhZGVyIiwgIkF1ZGlvRmlsZVJlYWRlciIgfSwgWyZy
ZXR1cm5WYWx1ZSwgZmlsZVBhdGgsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0gewogICAgICAgICBy
ZXR1cm5WYWx1ZSA9IEF1ZGlvRmlsZVJlYWRlcihmaWxlUGF0aCkuY3JlYXRlQnVzKHNhbXBsZVJh
dGUsIG1peFRvTW9ubyk7CiAgICAgfSk7CiAgICAgd2FpdEZvclRocmVhZENvbXBsZXRpb24odGhy
ZWFkSUQpOwpAQCAtMzgwLDcgKzM4MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1
c0Zyb21BdWRpb0ZpbGUoY29uc3QgY2hhciogZmlsZVBhdGgsIGJvb2wgbWl4VG9Nb25vCiBQYXNz
UmVmUHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUoY29uc3Qgdm9p
ZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9CdXM+IHJldHVyblZhbHVlOwotICAgIGF1dG8gdGhyZWFk
SUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlvRmlsZVJlYWRlciIsIFsmcmV0dXJuVmFsdWUsIGRhdGEs
IGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKKyAgICBhdXRvIHRocmVhZElEID0g
Y3JlYXRlVGhyZWFkKHsgIkF1ZGlvRmlsZVJlYWRlciIsICJBdWRpb0ZpbGVSZWFkZXIiIH0sIFsm
cmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBsZVJhdGVdIHsKICAg
ICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZGF0YSwgZGF0YVNpemUpLmNyZWF0
ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAgIHdhaXRGb3JUaHJlYWRD
b21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCmluZGV4IDgxZmIxZjk4NjhmMzEwZTUzNTlkMTYx
ZGMyZGFjYTVjYzdkM2FlZDcuLjkzZmE1OWQwYWIyNWE1OTA0MDM3MjRhMjUzNjFmZTA4NjZkNDQw
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VG
cmFtZUNhY2hlLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSW1hZ2VGcmFtZUNhY2hlOjpj
YWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KE5hdGl2ZUltYWdlUHRyJiYgbmF0aXZlSW1hZ2Us
CiBSZWY8V29ya1F1ZXVlPiBJbWFnZUZyYW1lQ2FjaGU6OmRlY29kaW5nUXVldWUoKQogewogICAg
IGlmICghbV9kZWNvZGluZ1F1ZXVlKQotICAgICAgICBtX2RlY29kaW5nUXVldWUgPSBXb3JrUXVl
dWU6OmNyZWF0ZSgib3JnLndlYmtpdC5JbWFnZURlY29kZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSk7CisgICAgICAgIG1fZGVjb2Rp
bmdRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIkltYWdlRGVjb2RlciIsICJJbWFnZURlY29k
ZXIiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVy
YWN0aXZlKTsKICAgICAKICAgICByZXR1cm4gKm1fZGVjb2RpbmdRdWV1ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMmE3Zjg5ZWIwZGQ1NTFh
Nzg5NzU4ZGY5YWYyZDUwYTVjZDFlYWQ2MC4uZmZhNjlhOTA2YzMxMWI1MjY3MTk0YmRjY2ViZDU4
M2JjMWFlMzBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIFJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50OjpS
ZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudChXZWJLaXRXZWJTcmMqIHNyYywKICAgICA6IFN0
cmVhbWluZ0NsaWVudChzcmMpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXpl
UnVuTG9vcENvbmRpdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCgiUmVz
b3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQiLCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUocmVx
dWVzdCldIHsKKyAgICBtX3RocmVhZCA9IGNyZWF0ZVRocmVhZCh7ICJSZXNvdXJjZUhhbmRsZVN0
cmVhbWluZ0NsaWVudCIsICJSU3RyZWFtaW5nIiB9LCBbdGhpcywgcmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCldIHsKICAgICAgICAgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9p
bml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICAgICAgICAgIG1fcnVuTG9vcCA9
ICZSdW5Mb29wOjpjdXJyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAKaW5kZXggNGNkMWJk
ZGYzYWI3NjZhMDAwNDhmOGFjNTc2ZmEyODQ3ZWM2MjcwZC4uYWNkMmZlMGEyOTQxMzczNjNjODk0
MDFiNGU2OTA5Nzc0MjA4NDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcApAQCAtMTE3LDcg
KzExNyw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRGRFBvbGxlcjo6RXZlbnRGRFBv
bGxlcihpbnQgZmQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoCiAgICAgfSwgdGhpcywgbnVsbHB0cik7
CiAgICAgZ19zb3VyY2VfYXR0YWNoKG1fc291cmNlLmdldCgpLCBudWxscHRyKTsKICNlbHNlCi0g
ICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTogTWVtb3J5UHJlc3N1cmVIYW5k
bGVyIiwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CisgICAgbV90aHJlYWRJRCA9IGNyZWF0
ZVRocmVhZCh7ICJNZW1vcnlQcmVzc3VyZUhhbmRsZXIiLCAiTWVtUHJlc3NIYW5kbGVyIiB9LCBb
dGhpc10geyByZWFkQW5kTm90aWZ5KCk7IH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAppbmRleCBlMTQz
NDUxZmRhYTMzOGMzNzEwMTBiN2ZlZGZkZTA1MmE1ZTM5OWY3Li5iM2EyNTI5MjY1NjEyODZiM2Zk
MGFhZTJjZmNhYjdhNzAyNzczYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTI0Myw3ICsyNDMsNyBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5SW1wbDo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwp
CiAKIHN0YXRpYyBXb3JrUXVldWUmIGJsb2JVdGlsaXR5UXVldWUoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1ZXVlPj4gcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIm9y
Zy53ZWJraXQuQmxvYlV0aWxpdHkiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVl
OjpRT1M6OkJhY2tncm91bmQpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtR
dWV1ZT4+IHF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53ZWJraXQuQmxvYlV0aWxpdHki
LCAiQmxvYlV0aWxpdHkiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFP
Uzo6QmFja2dyb3VuZCkpOwogICAgIHJldHVybiBxdWV1ZS5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAppbmRleCBh
YmZiNDZjZWNmODIxNDNiOWZmYWNkMDFiZTU3ODZhNTNhMDA4ZWMwLi4xNjYzNmM5NjA2ZDYzOGZj
NmJlZDMwYWI5OTA5NDI2M2Q2OTMxOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3Bh
Y2UgRGF0YVVSTERlY29kZXIgewogCiBzdGF0aWMgV29ya1F1ZXVlJiBkZWNvZGVRdWV1ZSgpCiB7
Ci0gICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQu
RGF0YVVSTERlY29kZXIiKS5sZWFrUmVmKCk7CisgICAgc3RhdGljIGF1dG8mIHF1ZXVlID0gV29y
a1F1ZXVlOjpjcmVhdGUoeyAib3JnLndlYmtpdC5EYXRhVVJMRGVjb2RlciIsICJEYXRhVVJMRGVj
b2RlciIgfSkubGVha1JlZigpOwogICAgIHJldHVybiBxdWV1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwCmlu
ZGV4IDQ2Yjg5OTRhODQxZWY3MWVhMjc5Y2U3N2NiYzhmYjQzYzI5ZjBhNjIuLmM0YmFhOGRkOTE4
MTg2YjI4ZDA5NDY5MzdmYjQyN2I5NDliODVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKQEAgLTc3LDcgKzc3
LDcgQEAgQ0ZSdW5Mb29wUmVmIGxvYWRlclJ1bkxvb3AoKQogICAgIHN0ZDo6dW5pcXVlX2xvY2s8
U3RhdGljTG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAgaWYgKCFsb2FkZXJS
dW5Mb29wT2JqZWN0KSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZChydW5Mb2FkZXJUaHJlYWQsIDAs
ICJXZWJDb3JlOiBDRk5ldHdvcmsgTG9hZGVyIik7CisgICAgICAgIGNyZWF0ZVRocmVhZChydW5M
b2FkZXJUaHJlYWQsIDAsIHsgIldlYkNvcmU6IENGTmV0d29yayBMb2FkZXIiLCAiQ0ZOZXR3b3Jr
TG9hZGVyIiB9KTsKIAogICAgICAgICBsb2FkZXJSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2Fp
dChsb2NrLCBbXSB7IHJldHVybiBsb2FkZXJSdW5Mb29wT2JqZWN0OyB9KTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2Fk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQu
Y3BwCmluZGV4IDQ0MDhjZDE5ODcwNWJhODZjYzhjMTk4NmZiM2UyY2FkZTc5NmRjYzYuLjM2MWFm
ZWM5MmIyMzZmM2FlYzFlMmZlOGRjODVkYWE5MWFiMWQwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCkBAIC05Nyw3
ICs5Nyw3IEBAIHZvaWQgQ3VybERvd25sb2FkTWFuYWdlcjo6c3RhcnRUaHJlYWRJZk5lZWRlZCgp
CiAgICAgICAgIGlmIChtX3RocmVhZElkKQogICAgICAgICAgICAgd2FpdEZvclRocmVhZENvbXBs
ZXRpb24obV90aHJlYWRJZCk7CiAgICAgICAgIHNldFJ1blRocmVhZCh0cnVlKTsKLSAgICAgICAg
bV90aHJlYWRJZCA9IGNyZWF0ZVRocmVhZChkb3dubG9hZFRocmVhZCwgdGhpcywgImRvd25sb2Fk
VGhyZWFkIik7CisgICAgICAgIG1fdGhyZWFkSWQgPSBjcmVhdGVUaHJlYWQoZG93bmxvYWRUaHJl
YWQsIHRoaXMsIHsgImRvd25sb2FkVGhyZWFkIiwgIkRvd25sb2FkZXIiIH0pOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tl
dFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAKaW5kZXggZTk0Zjg0YTY4MjMz
OTUyZDRjMmM2NTJjNmIyYWZmMjVkMjY2ZGM2Yi4uNWIwMzE2YmMwMDExYzlhYjlkMjJiZTY0ODA0
Yzc3NjlhMjE1NWZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCkBA
IC0xOTksNyArMTk5LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpzdGFydFRocmVh
ZCgpCiAKICAgICByZWYoKTsgLy8gc3RvcFRocmVhZCgpIHdpbGwgY2FsbCBkZXJlZigpLgogCi0g
ICAgbV93b3JrZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoIldlYlNvY2tldCB0aHJlYWQiLCBbdGhp
c10geworICAgIG1fd29ya2VyVGhyZWFkID0gY3JlYXRlVGhyZWFkKHsgIldlYlNvY2tldCB0aHJl
YWQiLCAiV2ViU29ja2V0IiB9LCBbdGhpc10gewogCiAgICAgICAgIEFTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKaW5kZXggNTFm
NDJmNWZmZmYyZmE2ZGE2ODQ1N2U0ZDIyNmViNmYzNzZjNDBkYS4uZmU1OTFhM2E5MmQzMjU2NjI2
OGUyM2RhN2NkYzlkZjBjODFlY2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIGJvb2wgV29ya2VyVGhyZWFkOjpzdGFydCgpCiAg
ICAgaWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgbV90aHJlYWRJ
RCA9IGNyZWF0ZVRocmVhZChXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0aGlzLCAi
V2ViQ29yZTogV29ya2VyIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChXb3JrZXJU
aHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0LCB0aGlzLCB7ICJXZWJDb3JlOiBXZWJXb3JrZXIiLCAi
V2ViV29ya2VyIiB9KTsKIAogICAgIHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCmluZGV4IGJiNjZmY2VhN2U1MjhiYzI3ZjYzM2EzZTUy
ODc4YjUwMWVmMGUxODcuLjk1YzRiZTc2MzY4ZDJjZmI1NDBmNTQxZTRlZDRiMDY3MDMzMDllODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZS9TdG9yYWdlVGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgYm9vbCBTdG9yYWdlVGhyZWFkOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVU
aHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0aGlzLCAiV2Vi
Q29yZTogTG9jYWxTdG9yYWdlIik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQo
U3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENhbGxiYWNrLCB0aGlzLCB7ICJXZWJDb3Jl
OiBMb2NhbFN0b3JhZ2UiLCAiTG9jYWxTdG9yYWdlIiB9KTsKICAgICBhY3RpdmVTdG9yYWdlVGhy
ZWFkcygpLmFkZCh0aGlzKTsKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKaW5kZXggZDVl
YWRiMGIzYjQxYWE0Mzk2MGYwMTg1YWMyYTNiYjVmMmFlZmE2NC4uZWU2NzBhNzUxMjMxYjQzZjli
MWYwYWVjMDU1MmJiZGRhYjQzZGE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgRGF0YWJhc2VQ
cm9jZXNzJiBEYXRhYmFzZVByb2Nlc3M6OnNpbmdsZXRvbigpCiB9CiAKIERhdGFiYXNlUHJvY2Vz
czo6RGF0YWJhc2VQcm9jZXNzKCkKLSAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VQcm9jZXNzIiwgIkRCUHJvY2Vz
cyIgfSkpCiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoZSBVVEY4RW5jb2RpbmcgZW5jb2RpbmcgYW5k
IHRoZSB0ZXh0IGVuY29kaW5nIG1hcHMgaGF2ZSBiZWVuIGJ1aWx0IG9uIHRoZSBtYWluIHRocmVh
ZCBiZWZvcmUgYSBiYWNrZ3JvdW5kIHRocmVhZCBuZWVkcyBpdC4KICAgICAvLyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTM2NSAtIE5lZWQgYSBtb3Jl
IGV4cGxpY2l0IHdheSBvZiBkb2luZyB0aGlzIGJlc2lkZXMgYWNjZXNzaW5nIHRoZSBVVEY4RW5j
b2RpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmNwcAppbmRleCBhODAyOTFmYzFkMWQ1OWM3YzFkYjYwMjFiOTRjY2U4MjRjNTFj
NTk3Li4wNWI4M2JkNmFhYTQ1ZTIzN2Y5NzY3ZGVhODBhYjEwZDQzN2VjNmUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAK
QEAgLTU4Myw3ICs1ODMsNyBAQCB2b2lkIENhY2hlOjpkdW1wQ29udGVudHNUb0ZpbGUoKQogCiB2
b2lkIENhY2hlOjpkZWxldGVEdW1wRmlsZSgpCiB7Ci0gICAgV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuQ2FjaGUuZGVsZXRlIiktPmRpc3BhdGNoKFtwYXRoID0gZHVtcEZpbGVQ
YXRoKCkuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBw
bGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIsICJDYWNoZURlbGV0ZXIiIH0pLT5kaXNwYXRjaChbcGF0
aCA9IGR1bXBGaWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAgIFdlYkNvcmU6OmRl
bGV0ZUZpbGUocGF0aCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAu
Y3BwCmluZGV4IGVmN2JhODk5ODIwMjMyNTg5ZTczOTFmMjdmY2QzZDZlMTY5ZjY4OTQuLmMyNGMw
ZmIzMDY3YTQ4NDkzNTM2YWNlMDVhZmJiODVjZmMxNzAwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlP
Q2hhbm5lbFNvdXAuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJT0NoYW5uZWw6OnJlYWRT
eW5jSW5UaHJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSogcXVldWUs
IHMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIFJlZlB0cjxJT0NoYW5uZWw+
IGNoYW5uZWwodGhpcyk7Ci0gICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZCgiSU9DaGFubmVs
OjpyZWFkU3luYyIsIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRsZXJdIHsK
KyAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHsgIklPQ2hhbm5lbDo6cmVhZFN5bmMiLCAi
SU9DUmVhZFN5bmMiIH0sIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRsZXJd
IHsKICAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1pbihzaXplLCBnRGVmYXVsdFJl
YWRCdWZmZXJTaXplKTsKICAgICAgICAgdWludDhfdCogYnVmZmVyRGF0YSA9IHN0YXRpY19jYXN0
PHVpbnQ4X3QqPihmYXN0TWFsbG9jKGJ1ZmZlclNpemUpKTsKICAgICAgICAgR1JlZlB0cjxTb3Vw
QnVmZmVyPiByZWFkQnVmZmVyID0gYWRvcHRHUmVmKHNvdXBfYnVmZmVyX25ld193aXRoX293bmVy
KGJ1ZmZlckRhdGEsIGJ1ZmZlclNpemUsIGJ1ZmZlckRhdGEsIGZhc3RGcmVlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtD
YWNoZVN0YXRpc3RpY3MuY3BwCmluZGV4IDEwYTUyMDNlZmQ4MTgwZTBhY2EzNGJlNTRkZjUyNTgy
ZjU5Yzk1ZjcuLjIwODI0YjJlYjFjMzVkNzkwMjYwM2Y0ZjY1MTljNTcyMjIxMTJhMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0
YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwCkBAIC04Miw3ICs4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxTdGF0aXN0aWNzPiBTdGF0aXN0aWNzOjpvcGVuKGNvbnN0IFN0cmluZyYgY2FjaGVQYXRoKQog
fQogCiBTdGF0aXN0aWNzOjpTdGF0aXN0aWNzKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQot
ICAgIDogbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6
OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQorICAgIDogbV9zZXJpYWxCYWNr
Z3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hl
LlN0YXRpc3RpY3MuQmFja2dyb3VuZCIsICJDYWNoZVN0YXRzQkciIH0sIFdvcmtRdWV1ZTo6VHlw
ZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCiAgICAgLCBtX3dyaXRlVGlt
ZXIoKnRoaXMsICZTdGF0aXN0aWNzOjp3cml0ZVRpbWVyRmlyZWQpCiB7CiAgICAgaW5pdGlhbGl6
ZShkYXRhYmFzZVBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAppbmRleCA4ZjdiNmUzZjJkZmZk
MDkzYjAyZmM3NjFhYWU2MmRlNTJhMjVlOGRlLi5jZTRhNzFlYTEwNzNjNTRlZjNmZWRiOTJiYWM4
YmJiYmI1MGRkYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcApAQCAtMjEzLDkgKzIxMyw5IEBA
IFN0b3JhZ2U6OlN0b3JhZ2UoY29uc3QgU3RyaW5nJiBiYXNlRGlyZWN0b3J5UGF0aCwgU2FsdCBz
YWx0KQogICAgICwgbV9zYWx0KHNhbHQpCiAgICAgLCBtX3JlYWRPcGVyYXRpb25UaW1lb3V0VGlt
ZXIoKnRoaXMsICZTdG9yYWdlOjpjYW5jZWxBbGxSZWFkT3BlcmF0aW9ucykKICAgICAsIG1fd3Jp
dGVPcGVyYXRpb25EaXNwYXRjaFRpbWVyKCp0aGlzLCAmU3RvcmFnZTo6ZGlzcGF0Y2hQZW5kaW5n
V3JpdGVPcGVyYXRpb25zKQotICAgICwgbV9pb1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQp
KQotICAgICwgbV9iYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxl
LldlYktpdC5DYWNoZS5TdG9yYWdlLmJhY2tncm91bmQiLCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1
cnJlbnQsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKLSAgICAsIG1fc2VyaWFsQmFja2dy
b3VuZElPUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3Rv
cmFnZS5zZXJpYWxCYWNrZ3JvdW5kIiwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1
ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1faW9RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7
ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2UiLCAiQ2FjaGVTdG9yYWdlRkciIH0sIFdv
cmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBtX2JhY2tncm91bmRJT1F1ZXVlKFdv
cmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3Jv
dW5kIiwgIkNhY2hlU3RvcmFnZUJHIiB9LCBXb3JrUXVldWU6OlR5cGU6OkNvbmN1cnJlbnQsIFdv
cmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKKyAgICAsIG1fc2VyaWFsQmFja2dyb3VuZElPUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlLnNl
cmlhbEJhY2tncm91bmQiLCAiQ2FjaGVTdG9yYWdlU0JHIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNl
cmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKQogICAgICwgbV9ibG9iU3RvcmFnZSht
YWtlQmxvYkRpcmVjdG9yeVBhdGgoYmFzZURpcmVjdG9yeVBhdGgpLCBtX3NhbHQpCiB7CiAgICAg
ZGVsZXRlT2xkVmVyc2lvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9Db25uZWN0
aW9uLmNwcAppbmRleCBkYThlYTNmYmIwNWUzZGZmZTQ5YmUzMzJhNjYwMWUyN2FiZmNhZjQxLi42
ZmY1YTBhZDFiNjlhZjU1OTg5MmNhOTU4Y2JhMWUwYzBmN2VmMzc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgQ29ubmVj
dGlvbjo6Q29ubmVjdGlvbihJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENs
aWVudCYgY2xpZW50KQogICAgICwgbV9zaG91bGRFeGl0T25TeW5jTWVzc2FnZVNlbmRGYWlsdXJl
KGZhbHNlKQogICAgICwgbV9kaWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZUNhbGxiYWNrKDAp
CiAgICAgLCBtX2lzQ29ubmVjdGVkKGZhbHNlKQotICAgICwgbV9jb25uZWN0aW9uUXVldWUoV29y
a1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5JUEMuUmVjZWl2ZVF1ZXVlIikpCisgICAgLCBtX2Nv
bm5lY3Rpb25RdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuSVBDLlJlY2VpdmVR
dWV1ZSIsICJJUENSZWNlaXZlUXVldWUiIH0pKQogICAgICwgbV9pblNlbmRTeW5jQ291bnQoMCkK
ICAgICAsIG1faW5EaXNwYXRjaE1lc3NhZ2VDb3VudCgwKQogICAgICwgbV9pbkRpc3BhdGNoTWVz
c2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgwKQpAQCAtNzIw
LDcgKzcyMCw3IEBAIHVpbnQ2NF90IENvbm5lY3Rpb246Omluc3RhbGxJbmNvbWluZ1N5bmNNZXNz
YWdlQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjCiAgICAgbV9uZXh0SW5jb21pbmdT
eW5jTWVzc2FnZUNhbGxiYWNrSUQrKzsKIAogICAgIGlmICghbV9pbmNvbWluZ1N5bmNNZXNzYWdl
Q2FsbGJhY2tRdWV1ZSkKLSAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1
ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LklQQy5JbmNvbWluZ1N5bmNN
ZXNzYWdlQ2FsbGJhY2tRdWV1ZSIpOworICAgICAgICBtX2luY29taW5nU3luY01lc3NhZ2VDYWxs
YmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5JUEMuSW5j
b21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrUXVldWUiLCAiSVN5bmNNc2dDQlF1ZXVlIiB9KTsKIAog
ICAgIG1faW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrcy5hZGQobV9uZXh0SW5jb21pbmdTeW5j
TWVzc2FnZUNhbGxiYWNrSUQsIGNhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzLmNwcAppbmRleCAxNzU3ODlmYjlhZTcxM2YxNmVlZWRiZmFiZTAwZDZmMzNlNjNjZjIz
Li5jNzU1ZWE4MTI0YzllMDY0NWY3NzMzN2U5M2E1NDFkOTJjZTE1YTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgdm9pZCBk
aWRDbG9zZU9uQ29ubmVjdGlvbldvcmtRdWV1ZShJUEM6OkNvbm5lY3Rpb24qKQogICAgIC8vIHRo
ZSBwcm9jZXNzIHdpbGwgZXhpdCBmb3JjaWJseS4KICAgICBhdXRvIHdhdGNoZG9nRGVsYXkgPSBz
dGQ6OmNocm9ubzo6c2Vjb25kcygxMCk7CiAKLSAgICBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dRdWV1ZSIpLT5kaXNwYXRjaEFmdGVyKHdh
dGNoZG9nRGVsYXksIFtdIHsKKyAgICBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2Vi
S2l0LkNoaWxkUHJvY2Vzcy5XYXRjaERvZ1F1ZXVlIiwgIkNoaWxkV2RvZ1F1ZXVlIiB9KS0+ZGlz
cGF0Y2hBZnRlcih3YXRjaGRvZ0RlbGF5LCBbXSB7CiAgICAgICAgIC8vIFdlIHVzZSBfZXhpdCBo
ZXJlIHNpbmNlIHRoZSB3YXRjaGRvZyBjYWxsYmFjayBpcyBjYWxsZWQgZnJvbSBhbm90aGVyIHRo
cmVhZCBhbmQgd2UgZG9uJ3Qgd2FudAogICAgICAgICAvLyBnbG9iYWwgZGVzdHJ1Y3RvcnMgb3Ig
YXRleGl0IGhhbmRsZXJzIHRvIGJlIGNhbGxlZCBmcm9tIHRoaXMgdGhyZWFkIHdoaWxlIHRoZSBt
YWluIHRocmVhZCBpcyBidXN5CiAgICAgICAgIC8vIGRvaW5nIGl0cyB0aGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5j
cHAKaW5kZXggNDBkYzRmNDQ1NmMyOGZjOTM3ZDlhMTY2YWEyMjE5Y2Y3ZThlYzUzMC4uM2FkMjM4
YjhlMDEyOTNjNWVkZDFhNTkyNzg4Y2I1MGM1OGViYjRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKQEAgLTky
LDcgKzkyLDcgQEAgY2xhc3MgV29ya1F1ZXVlUG9vbCB7CiAgICAgICAgICAgICAgICAgQVNTRVJU
KG1fc2hhcmVkV29ya1F1ZXVlKTsKICAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlID0gbV9zaGFyZWRXb3JrUXVldWU7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgi
b3JnLndlYmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUiKTsKKyAgICAgICAgICAgICAg
ICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV29ya1F1ZXVlOjpjcmVhdGUoeyAib3JnLndl
YmtpdC5UaHJlYWRlZENvbXBvc2l0b3JXb3JrUXVldWUiLCAiVGhyZWFkZWRDb21wIiB9KTsKICAg
ICAgICAgICAgICAgICBpZiAoIW1fdGhyZWFkQ291bnQpCiAgICAgICAgICAgICAgICAgICAgIG1f
c2hhcmVkV29ya1F1ZXVlID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAg
ICAgICBtX3RocmVhZENvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1NlY0l0ZW1TaGltLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNo
aW0uY3BwCmluZGV4IDg1NDMzYmQ1OTg2YzEzNmE4YmVjYzk4MWJmZDcwZDg0ZWU0N2Q0NmEuLmQz
ZWI4NDZkZGMzMmEyOTRjMzEyNDliNGM0MGVjOThiOTE3YTYyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBXb3Jr
UXVldWUmIHdvcmtRdWV1ZSgpCiAgICAgc3RhdGljIFdvcmtRdWV1ZSogd29ya1F1ZXVlOwogICAg
IHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwogICAgIGRpc3BhdGNoX29uY2UoJm9u
Y2VUb2tlbiwgXnsKLSAgICAgICAgd29ya1F1ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltIikubGVha1JlZigpOworICAgICAgICB3b3JrUXVldWUg
PSAmV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbSIsICJT
ZWNJdGVtU2hpbSIgfSkubGVha1JlZigpOwogCiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUuY3BwCmluZGV4IDNhNzQwZmQ1MGE1ZjMzODQ1ODlkMDc2MjdkY2ZjMzBhMmM2OTlhYWIuLjIz
YmJkNGE4ODQ4NDczMjcxODFjMGQzZTE4ODgzMjllZWNhNDBhMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlLmNwcApAQCAtNjQsOSArNjQsOSBAQCBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlKCkKIAogVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZTo6
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZShjb25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoKQog
ICAgIDogbV9zdG9yZVBhdGgoc3RvcmVQYXRoKQotICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIsIFdv
cmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCi0gICAgLCBtX3JlYWRRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZWFkIFF1ZXVlIikpCi0gICAgLCBt
X3JlbW92ZVF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
IFJlbW92ZSBRdWV1ZSIpKQorICAgICwgbV9jb21waWxlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
eyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVlIiwgIlVDRXhTdENvbXBR
dWV1ZSIgfSwgV29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKKyAgICAsIG1fcmVhZFF1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVhZCBRdWV1
ZSIsICJVQ0V4U3RSZFF1ZXVlIiB9KSkKKyAgICAsIG1fcmVtb3ZlUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoeyAiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBSZW1vdmUgUXVldWUiLCAiVUNFeFN0
Um1RdWV1ZSIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxZmUxMDI1NGQ3YzU2MGFjZmE2OTA1MTZh
NTMzOGRlNDRiMGZkM2NhLi4zZjUzMTMxMjlkZTY4NDUwYjEwMTdlMGMyMzljMWRjZTM5Y2QyMzVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1h
bmFnZXIuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgUmVmPFN0b3JhZ2VNYW5hZ2VyPiBTdG9yYWdl
TWFuYWdlcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KQogfQog
CiBTdG9yYWdlTWFuYWdlcjo6U3RvcmFnZU1hbmFnZXIoY29uc3QgU3RyaW5nJiBsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnkpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2VNYW5hZ2VyIikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KHsgImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZU1hbmFnZXIiLCAiU3RvcmFnZU1nciIgfSkpCiAg
ICAgLCBtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcihMb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXI6OmNyZWF0ZShtX3F1ZXVlLmNvcHlSZWYoKSwgbG9jYWxTdG9yYWdlRGlyZWN0b3J5KSkK
IHsKICAgICAvLyBNYWtlIHN1cmUgdGhlIGVuY29kaW5nIGlzIGluaXRpYWxpemVkIGJlZm9yZSB3
ZSBzdGFydCBkaXNwYXRjaGluZyB0aGluZ3MgdG8gdGhlIHF1ZXVlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAppbmRleCBjMmY4ZTZhNGJhNzM1MGE0NjNhNDU5ZGU0OGU1NmFhZGZiZDJhMjUwLi43ZTkw
NzY5NTUwOGNlYzI1MTU4YTQ2YmZkYWY5MmNmZjU5N2YyNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
PiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZShjb25zdAogCiBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShj
b25zdCBTdHJpbmcmIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCiAgICAgOiBtX3Jl
c291cmNlU3RhdGlzdGljc1N0b3JlKFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3JlYXRl
KCkpCi0gICAgLCBtX3N0YXRpc3RpY3NRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIpKQorICAgICwgbV9zdGF0
aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlIFByb2Nlc3MgRGF0YSBRdWV1ZSIsICJXZWJSc1N0YXRRdWV1ZSIgfSkpCiAgICAgLCBt
X3N0b3JhZ2VQYXRoKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggN2E4NDNiMWYwNDNiZjdkMGVjN2VjM2Y2YjNkMTc5MTAzM2RmZWUx
Yy4uMTA0NjI2M2RmYTE0MDc4YjQxNTc2ZTk0ODZmYjU1OGM5OGZjNTMwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtODAsNyArODAsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0
b3JlKENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICAsIG1fY29uZmlndXJhdGlvbihX
VEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQogICAgICwgbV9zdG9yYWdlTWFuYWdlcihTdG9yYWdlTWFu
YWdlcjo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKQogICAg
ICwgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
KSkKLSAgICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vi
c2l0ZURhdGFTdG9yZSIpKQorICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20u
YXBwbGUuV2ViS2l0LldlYnNpdGVEYXRhU3RvcmUiLCAiV2ViRGF0YVN0b3JlIiB9KSkKIHsKICAg
ICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KQEAgLTg5LDcgKzg5LDcgQEAgV2Vic2l0ZURhdGFT
dG9yZTo6V2Vic2l0ZURhdGFTdG9yZShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogbV9pZGVudGlmaWVyKGdlbmVyYXRlSWRlbnRpZmllcigpKQogICAgICwgbV9zZXNzaW9uSUQo
c2Vzc2lvbklEKQogICAgICwgbV9jb25maWd1cmF0aW9uKCkKLSAgICAsIG1fcXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFTdG9yZSIpKQorICAgICwg
bV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LldlYnNpdGVEYXRh
U3RvcmUiLCAiV2ViRGF0YVN0b3JlIiB9KSkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVz
c3VyZU1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVBy
ZXNzdXJlTW9uaXRvci5jcHAKaW5kZXggMDYwOGFiNzJmOTkyNDhlZjI0Y2QyZDUyNDVlZTUzMzNh
MDBkOWQwZC4uZTIwOWRmZDFiYWI2ZWMyZWVjOTMyNDhmZTM0NjU2NzFkMDNkYTExYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJlTW9uaXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2xpbnV4L01lbW9yeVByZXNzdXJl
TW9uaXRvci5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBNZW1vcnlQcmVzc3VyZU1vbml0b3I6Ok1l
bW9yeVByZXNzdXJlTW9uaXRvcigpCiAgICAgaWYgKG1fZXZlbnRGRCA9PSAtMSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRl
VGhyZWFkKCJNZW1vcnlQcmVzc3VyZU1vbml0b3IiLCBbdGhpc10geworICAgIFRocmVhZElkZW50
aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh7ICJNZW1vcnlQcmVzc3VyZU1v
bml0b3IiLCAiTWVtUHJlc3NNb25pdG9yIiB9LCBbdGhpc10gewogICAgICAgICBkb3VibGUgcG9s
bEludGVydmFsID0gc19tYXhQb2xsaW5nSW50ZXJ2YWxJblNlY29uZHM7CiAgICAgICAgIHdoaWxl
ICh0cnVlKSB7CiAgICAgICAgICAgICBzbGVlcChwb2xsSW50ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5jcHAKaW5kZXggMjFlYTdi
MDEyYjE4OThkMjEwMTJiMjI4NzI1YmVlMTA2ZmNhNmRiNC4uYzNmMDE1ZWY3ZDYyYWE0ZDNhNjNl
ZWQ1YjQ1YjliMzkyYmI3ODU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFNlY0l0ZW1TaGltUHJv
eHkmIFNlY0l0ZW1TaGltUHJveHk6OnNpbmdsZXRvbigpCiB9CiAKIFNlY0l0ZW1TaGltUHJveHk6
OlNlY0l0ZW1TaGltUHJveHkoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29t
LmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbVByb3h5IikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1
ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuU2VjSXRlbVNoaW1Qcm94eSIsICJTZWNJdGVt
U2hpbVAiIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3Bw
CmluZGV4IGNiYzRmMGUzZTg0MjliYWFkNWU4OGNhYWUzNmQ1ZmIzNTE5ZDg4NmIuLjY0ODI3OWI4
NTZhOWE4OTAzYjU5ZWI4NzIwZmNlNDViNWI2NGI2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFJlZjxQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI+IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Y3JlYXRlKCkK
IH0KIAogUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxl
LldlYktpdC5QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIiKSkKKyAgICA6IG1fcXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1hbmFnZXIiLCAiUGx1Z2luQ29ubk1nciIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXgg
MWYyMjI2NThjOTA2YjczZjc1NTQxYWNhMzcyZThlZjUwOTk4ZDE3YS4uMTc4NTg3NzU1MzMzYzUy
NmE2ZmFkNDhhZTY3ZGY3OWRmMDk1ZWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
UmVmPEV2ZW50RGlzcGF0Y2hlcj4gRXZlbnREaXNwYXRjaGVyOjpjcmVhdGUoKQogfQogCiBFdmVu
dERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hlcigpCi0gICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkV2ZW50RGlzcGF0Y2hlciIsIFdvcmtRdWV1ZTo6VHlw
ZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXNlckludGVyYWN0aXZlKSkKKyAgICA6IG1fcXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5FdmVudERpc3BhdGNoZXIi
LCAiRXZlbnREaXNwYXRjaCIgfSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1ZTo6
UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogICAgICwgbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpjcmVhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNoZXIu
Y3BwCmluZGV4IGM4ZTM2Mzg2MWYyMDU3YTA4NmEzZjc4ZDVkYjQ1YjIzYTBjNWI4NmEuLjdhNWYx
NGVkN2ZjMTAwNDNjMGUwNGZkYzNhMzE5MjNjZTBhYzYyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNw
cApAQCAtNDEsNyArNDEsNyBAQCBSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdVcGRhdGVE
aXNwYXRjaGVyOjpjcmVhdGUoKQogfQogCiBWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1VwZGF0
ZURpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxl
LldlYktpdC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIpKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlZpZXdVcGRhdGVEaXNwYXRjaGVyIiwgIlZVcGRh
dGVEaXNwYXRjaCIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA4MzdlZmZiYzM4ZGYyYjJlNTlhODllZjFhNGRlNzliNWVhNWVi
ZGEyLi4yNzBlNmRjNjk4ZGM0OGIwYzQ3ODU1ZmY0NDlkZGU1OGFjNzVjYjA4IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTctMDEtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAg
ICAgICAgVXNlIFRocmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKHJ1bkphdmFTY3JpcHRUaHJl
YWQpOgorICAgICAgICAoc3RhcnRKYXZhU2NyaXB0VGhyZWFkcyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAodGVzdFRocmVhZElkZW50
aWZpZXJNYXApOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpydW5Mb2NrVGVzdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvUGFya2luZ0xvdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
b1VwcGVyQ29udmVydGVyOjpwcm9kdWNlUXVldWUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VG9VcHBlckNvbnZlcnRlcjo6Y29uc3VtZVF1ZXVlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXRU
ZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKToKKwogMjAxNy0wMS0xMCAgQ2FybG9zIEFsYmVy
dG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBpbnN0
YWxsLWRlcGVuZGVuY2llcyBzY3JpcHQgbWlzc2VzIGdkYgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCBlMmY5YmFkZTZjYTdjMjY5NDg1YTRjZGNi
ZTYwOTljMzZiYTAyMTk4Li45YjU2MThhNTljMTYzOTY2MTgwYzMyZjc5OGQyZGQzZjNjNDI3NGU5
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcApAQCAt
MTExLDcgKzExMSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAg
VGhyZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAgICAgIGRldGFj
aFRocmVhZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSh0aHJl
YWQpOwotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1bkph
dmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQo
Y3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIiLCAiIiB9KSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgc3RhcnRKYXZhU2Ny
aXB0VGhyZWFkcygpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoamF2YVNjcmlwdFRocmVhZHNNdXRl
eCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgamF2YVNjcmlwdFRocmVhZHNDb3Vu
dDsgKytpKQotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1
bkphdmFTY3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5h
ZGQoY3JlYXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCB7ICIiLCAiIiB9KSk7CiB9
CiAKIHZvaWQgc3RvcEphdmFTY3JpcHRUaHJlYWRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAxOGJjNzg0OGM4NGE3ZDMwNmU2YTU4N2Q4OTk4Mjlk
OWVlYTYxN2NjLi41MmRjNTZmYTIyOTQyMDYxYjFlNzE4ODhiMzg4Mzg3MTU0YzlkOWVmIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMTA3LDcgKzEx
MDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0VGhyZWFkSWRlbnRpZmllck1hcCgpCiAKICAgICAvLyBO
b3cgY3JlYXRlIGFub3RoZXIgdGhyZWFkIHVzaW5nIFdURi4gT24gT1NYLCBpdCB3aWxsIGhhdmUg
dGhlIHNhbWUgcHRocmVhZCBoYW5kbGUKICAgICAvLyBidXQgc2hvdWxkIGdldCBhIGRpZmZlcmVu
dCBUaHJlYWRJZGVudGlmaWVyLgotICAgIGNyZWF0ZVRocmVhZChydW5UaHJlYWQsIDAsICJEdW1w
UmVuZGVyVHJlZTogdGVzdCIpOworICAgIGNyZWF0ZVRocmVhZChydW5UaHJlYWQsIDAsIHsgIkR1
bXBSZW5kZXJUcmVlOiB0ZXN0IiwgIkRSVFRlc3QiIH0pOwogfQogCiBzdGF0aWMgdm9pZCBhbGxv
Y2F0ZUdsb2JhbENvbnRyb2xsZXJzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9D
b25kaXRpb24uY3BwCmluZGV4IDg0ODUyNzM1MWY2MDYzZmMyNjM2ODc4MDU2ZDljMjRkYmFiZTgz
ZGMuLmI4NTE0ZDdjYWUxNTE1YTdlNmI0NmYyNTYwNGJkOWNmNWI5Y2FhMWEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcApAQCAtOTcsNyArOTcsNyBAQCB2
b2lkIHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29uc3VtZXJzOyBp
LS07KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0
ZVRocmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAgICAgICAgeyAi
Q29uc3VtZXIgdGhyZWFkIiwgIkNvbnN1bWVyIiB9LAogICAgICAgICAgICAgWyZdICgpIHsKICAg
ICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJl
c3VsdDsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIHJ1blRlc3QoCiAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0
aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIlByb2R1Y2VyIFRo
cmVhZCIsCisgICAgICAgICAgICB7ICJQcm9kdWNlciBUaHJlYWQiLCAiUHJvZHVjZXIiIH0sCiAg
ICAgICAgICAgICBbJl0gKCkgewogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBudW1NZXNzYWdlc1BlclByb2R1Y2VyOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBzaG91bGROb3RpZnkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0xvY2suY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9j
ay5jcHAKaW5kZXggNTU3NjMwMmQ2OTBkZmNhMzU5OTI5MjhiMWM4NTNjNzYyMmU0NWZiOS4uNTc2
M2EwNGEzNjRhNTFhMTgyN2U5MGYyZWE4OTRmZjkzNGY1NTAyOSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvTG9jay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBydW5Mb2NrVGVzdCh1
bnNpZ25lZCBudW1UaHJlYWRHcm91cHMsIHVuc2lnbmVkIG51bVRocmVhZHNQZXJHcm91cCwgdW5z
aWduZWQKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIHRocmVhZEluZGV4ID0gbnVtVGhyZWFkc1Bl
ckdyb3VwOyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgdGhyZWFkc1t0aHJlYWRHcm91
cEluZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFk
KAotICAgICAgICAgICAgICAgICJMb2NrIHRlc3QgdGhyZWFkIiwKKyAgICAgICAgICAgICAgICB7
ICJMb2NrIHRlc3QgdGhyZWFkIiwgIkxvY2tUZXN0ZXIiIH0sCiAgICAgICAgICAgICAgICAgW3Ro
cmVhZEdyb3VwSW5kZXgsICZsb2NrcywgJndvcmRzLCBudW1JdGVyYXRpb25zLCB3b3JrUGVyQ3Jp
dGljYWxTZWN0aW9uXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IG51bUl0ZXJhdGlvbnM7IGktLTspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tzW3Ro
cmVhZEdyb3VwSW5kZXhdLmxvY2soKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
UGFya2luZ0xvdC5jcHAKaW5kZXggYzY3ZTFlMDgxNWE4M2FmYTkzMzNlMmFjOWEyYmQ3OGI2N2Ix
NjQ1Yi4uZDAxNjU0MWUwNzBmODEyODIwNTRjOTNmZDYxZmM5MmM3ZDZhZTMwMiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFya2luZ0xvdC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgc3RydWN0IFNpbmdsZUxhdGNoVGVzdCB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51
bVRocmVhZHM7IGktLTspIHsKICAgICAgICAgICAgIHRocmVhZHMuYXBwZW5kKAogICAgICAgICAg
ICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAgICAgICAgIlBhcmtpbmcgVGVzdCBU
aHJlYWQiLAorICAgICAgICAgICAgICAgICAgICB7ICJQYXJraW5nIFRlc3QgdGhyZWFkIiwgIlBh
cmtpbmdUZXN0ZXIiIH0sCiAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGN1cnJlbnRUaHJlYWQoKSk7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1
ZS5jcHAKaW5kZXggMzE0MzZiYzIyMzA3ZjlkZDczZjY5MThiMjRhZGI0MGU3ODlmYjVlYy4uMWI4
Y2E0ZmIwOWQzMTY0YjVhMTlhY2M2ZjhmMzhiNTRkMjI5ODMzYiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAK
QEAgLTYyLDE0ICs2MiwxNCBAQCBjbGFzcyBUb1VwcGVyQ29udmVydGVyIHsKICAgICBXb3JrUXVl
dWUqIHByb2R1Y2VRdWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcHJvZHVjZVF1ZXVlKQot
ICAgICAgICAgICAgbV9wcm9kdWNlUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtp
dC5Qcm9kdWNlIik7CisgICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKHsgIm9yZy53ZWJraXQuUHJvZHVjZSIsICJQcm9kdWNlciIgfSk7CiAgICAgICAgIHJldHVy
biBtX3Byb2R1Y2VRdWV1ZS5nZXQoKTsKICAgICB9CiAKICAgICBXb3JrUXVldWUqIGNvbnN1bWVR
dWV1ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fY29uc3VtZVF1ZXVlKQotICAgICAgICAgICAg
bV9jb25zdW1lUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5Db25zdW1lIik7
CisgICAgICAgICAgICBtX2NvbnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIm9yZy53
ZWJraXQuQ29uc3VtZSIsICJDb25zdW1lciIgfSk7CiAgICAgICAgIHJldHVybiBtX2NvbnN1bWVR
dWV1ZS5nZXQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1dvcmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3Jr
UXVldWUuY3BwCmluZGV4IDdlMjc3ZTk0YzQ3Y2UzY2UyZmI4MjUyZjZjZGMzYTU1YWYzN2JlNzku
LmE4ZWJhMTkwZWNhZmQ1MTQ0YzE3NTgxZWYzMTIxMWNlMGViMDQ0YWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtNTQsNyArNTQsNyBAQCBURVNU
KFdURl9Xb3JrUXVldWUsIFNpbXBsZSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogbG9uZ1Rlc3RM
YWJlbCA9ICJsb25nVGVzdCI7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRoaXJkVGVzdExhYmVs
ID0gInRoaXJkVGVzdCI7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNv
bS5hcHBsZS5XZWJLaXQuVGVzdC5zaW1wbGUiKTsKKyAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBsZSIsICJTaW1wbGVUZXN0IiB9
KTsKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJlZkNvdW50KCk7CiAgICAgRVhQ
RUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKQEAgLTEwNiw4ICsxMDYsOCBAQCBURVNUKFdU
Rl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBib29sIGNhbGxlZExvbmdUZXN0ID0gZmFsc2U7
CiAgICAgYm9vbCBjYWxsZWRUaGlyZFRlc3QgPSBmYWxzZTsKICAgICAKLSAgICBhdXRvIHF1ZXVl
MSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIp
OwotICAgIGF1dG8gcXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQu
VGVzdC50d29RdWV1ZXMyIik7CisgICAgYXV0byBxdWV1ZTEgPSBXb3JrUXVldWU6OmNyZWF0ZSh7
ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QudHdvUXVldWVzMSIsICJUd29RdWV1ZXMxVGVzdCIgfSk7
CisgICAgYXV0byBxdWV1ZTIgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0
LlRlc3QudHdvUXVldWVzMiIsICJUd29RdWV1ZXMyVGVzdCIgfSk7CiAKICAgICBFWFBFQ1RfRVEo
MSwgcXVldWUxLT5yZWZDb3VudCgpKTsKICAgICBFWFBFQ1RfRVEoMSwgcXVldWUyLT5yZWZDb3Vu
dCgpKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERpc3BhdGNoQWZ0
ZXIpCiAgICAgYm9vbCBjYWxsZWRTaW1wbGVUZXN0ID0gZmFsc2U7CiAgICAgYm9vbCBjYWxsZWRE
aXNwYXRjaEFmdGVyVGVzdCA9IGZhbHNlOwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgIGF1dG8g
cXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0
Y2hBZnRlciIsICJEaXNwYXRjaEFmdGVyIiB9KTsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CiAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERlc3Ryb3lP
blNlbGYpCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihsb2NrKTsKICAgICAgICAg
ewotICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdv
cmtRdWV1ZTo6Y3JlYXRlKHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC5kZXN0cm95T25TZWxmIiwg
IkRlc3Ryb3lPblNlbGYiIH0pOwogICAgICAgICAgICAgcXVldWUtPmRpc3BhdGNoQWZ0ZXIoc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApLCBbJl0odm9pZCkgewogICAgICAgICAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKGxvY2spOwogICAgICAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJU
ZXN0U3RhcnRlZC53YWl0KGxvY2ssIFsmXSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcAppbmRleCA5OTIzZDY1ODAwZWQ3MTRi
YTY4MDZiMTNmN2U1MWZlZTU4MDM1YWQwLi40Y2E0ZThkYmZkM2U3OGVjNmZmOGNiOWY1OTY0MjI4
N2I1ZDRlZDhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGli
L1dvcmtRdWV1ZUdMaWIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL2ds
aWIvV29ya1F1ZXVlR0xpYi5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVl
LCBBc3luY0lPKQogICAgICAgICBHTWFpbkNvbnRleHQqIG1fbWFpbkNvbnRleHQ7CiAgICAgfSBj
b250ZXh0OwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUu
V2ViS2l0LlRlc3QuQXN5bmNJTyIpOworICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0
ZSh7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuQXN5bmNJTyIsICJBc3luY0lPVGVzdCIgfSk7CiAg
ICAgY29udGV4dC5tX21haW5Db250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOwogICAg
IEVYUEVDVF9GQUxTRShnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSk7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNl
cnZlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRlc3RT
ZXJ2ZXIuY3BwCmluZGV4IGRlOTQ2NmMzOWQ3MWNmYzJhYmY0NDlmY2ZkZTM4OWI1NDQ5ZGYzMjcu
LmRiYzUzNWIxMjE0YmRhOThkZmMwODMzM2IyZjE3YmIwOTJkMTY1OTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViS2l0VGVzdFNlcnZlci5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNw
cApAQCAtMjgsNyArMjgsNyBAQCBXZWJLaXRUZXN0U2VydmVyOjpXZWJLaXRUZXN0U2VydmVyKFNl
cnZlck9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBpZiAob3B0aW9ucyAmIFNlcnZlclJ1bkluVGhy
ZWFkKSB7CiAgICAgICAgIFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgICAgICBtX3F1
ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIldlYktpdFRlc3RTZXJ2ZXIiKTsKKyAgICAgICAgbV9x
dWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKHsgIldlYktpdFRlc3RTZXJ2ZXIiLCAiVGVzdFNlcnZl
ciIgfSk7CiAgICAgfQogCiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzc2xDZXJ0aWZpY2F0ZUZpbGU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298864</attachid>
            <date>2017-01-14 15:44:56 -0800</date>
            <delta_ts>2017-01-14 17:26:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166678-20170115084312.patch</filename>
            <type>text/plain</type>
            <size>106333</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWI3ODA3NDQ2YjZjNTNkNTg4MDdiNTEyZDEyYWE1NzdlNDU4YzlhLi45MDViNWExN2E1NDljYjUw
NjYzNGNmMDJlMTQ5Mjg0YzI1ODRkYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IEFQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwOgorICAgICAgICAodGVzdENvbXBhcmVB
bmRTd2FwKToKKyAgICAgICAgKiBiMy9haXIvdGVzdGFpci5jcHA6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OnJ1bik6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnJ1bik6CisgICAgICAgICogYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6aW5pdGlhbGl6ZVN1cGVyU2FtcGxlcik6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6VGhyZWFkQm9keTo6VGhyZWFkQm9keSk6
CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OldvcmtsaXN0KToKKyAgICAgICAgKEpTQzo6
REZHOjpXb3JrbGlzdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Oldvcmts
aXN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpERkc6OmVuc3VyZUdsb2JhbERGR1dvcmtsaXN0
KToKKyAgICAgICAgKEpTQzo6REZHOjplbnN1cmVHbG9iYWxGVExXb3JrbGlzdCk6CisgICAgICAg
ICogZGZnL0RGR1dvcmtsaXN0Lmg6CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxl
ci5jcHA6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6VGhy
ZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpIZWFwOjpub3RpZnlJc1NhZmVUb0NvbGxlY3Qp
OgorICAgICAgICAqIGhlYXAvSGVhcEhlbHBlclBvb2wuY3BwOgorICAgICAgICAoSlNDOjpoZWFw
SGVscGVyUG9vbCk6CisgICAgICAgICogaml0L0lDU3RhdHMuY3BwOgorICAgICAgICAoSlNDOjpJ
Q1N0YXRzOjpJQ1N0YXRzKToKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuY3BwOgorICAgICAg
ICAoSlNDOjpKSVRXb3JrbGlzdDo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAqIGpzYy5jcHA6
CisgICAgICAgIChzdGFydFRpbWVvdXRUaHJlYWRJZk5lZWRlZCk6CisgICAgICAgICogcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6
Y3JlYXRlVGhyZWFkSWZOZWNlc3NhcnkpOgorICAgICAgICAqIHJ1bnRpbWUvV2F0Y2hkb2cuY3Bw
OgorICAgICAgICAoSlNDOjpXYXRjaGRvZzo6V2F0Y2hkb2cpOgorICAgICAgICAqIHdhc20vV2Fz
bVBsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpQbGFuOjpydW4pOgorCisyMDE3LTAxLTE0
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFdlYkFz
c2VtYmx5OiBTdXBwcmVzcyB3YXJuaW5ncyAmIGVycm9ycyBpbiBHQ0MKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzA0OQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5Y2EzYTgx
MzE5NjY2ZjRkNWE0ODM5M2E1OTY1NTA4MWQ4NjVlYWUuLjY1OTdiZDAyZjZmYWM2NGVhYThkNGI5
MDM5M2ViNzUzYTQ4ZGU5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTAzIEBACiAyMDE3LTAxLTE0ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFVzZSBUaHJlYWRO
YW1lIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBUaHJlYWRO
YW1lLiBBbmQgYXBwbHkgY29uc2lzdGVudCBuYW1pbmcKKyAgICAgICAgcG9saWN5IGZvciB0aHJl
YWRzIGluIFdlYktpdC4KKworICAgICAgICBUaHJlYWROYW1lIHRha2VzIDIgbmFtZXMsIHNob3J0
IGFuZCBsb25nIG5hbWVzLiBUaGUgbG9uZyBuYW1lCisgICAgICAgIGlzIHVzZWQgZm9yIG1hY09T
IGFuZCBpT1Mgc2luY2UgdGhleSBkbyBub3QgaGF2ZSB0aGUgbGltaXRhdGlvbi4gT24gdGhlCisg
ICAgICAgIG90aGVyIGhhbmQsIExpbnV4IG9ubHkgYWxsb3dzIDE1IGNoYXJhY3RlcnMgZm9yIHRo
cmVhZCBuYW1lcy4gU28gZm9yCisgICAgICAgIExpbnV4LCB3ZSB1c2UgdGhlIHNob3J0IG5hbWUu
IFdpbmRvd3MgYWxzbyBoYXMgMzEgY2hhcmFjdGVycyBsaW1pdGF0aW9uLgorICAgICAgICBXaW5k
b3dzIGFsc28gdXNlcyB0aGUgc2hvcnQgbmFtZS4KKworICAgICAgICBXaGVuIHlvdSBzcGVjaWZ5
IHRoZSBuYW1lIGxpa2UsCisKKyAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiQXN5bmNocm9ub3Vz
IERpc2Fzc2VtYmxlciIsICJBc3luY0Rpc2FzbSIgfSwKKworICAgICAgICBUaGUgdGhyZWFkIG5h
bWUgYmVjb21lcywKKworICAgICAgICAgICAgTGludXggIkFzeW5jRGlzYXNtIgorICAgICAgICAg
ICAgV2luZG93cyAiV2ViS2l0OiBBc3luY0Rpc2FzbSIKKyAgICAgICAgICAgIG1hY09TIGFuZCBp
T1MgIldlYktpdDogQXN5bmNocm9ub3VzIERpc2Fzc2VtYmxlciIKKworICAgICAgICBUaHJlYWRO
YW1lIGNoZWNrcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaG9ydCBuYW1lIGlzIDw9IDE1IGF0IGNvbXBp
bGUKKyAgICAgICAgdGltZS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCwgY29tcGlsZSBl
cnJvciBvY2N1cnMuCisKKyAgICAgICAgVGhlICJXZWJLaXQ6ICIgcHJlZml4IGlzIGF1dG9tYXRp
Y2FsbHkgYWRkZWQgYnkgVGhyZWFkTmFtZS4KKyAgICAgICAgVGhpcyBwcmVmaXggaXMgaW1wb3J0
YW50IHNpbmNlIGl0IGNhbiBzYXkgdGhhdCB0aGlzIHRocmVhZCBpcyByZWxhdGVkIHRvIFdlYktp
dC4KKyAgICAgICAgV2hlbiB1c2luZyBXZWJLaXQgYXMgZnJhbWV3b3JrLCBXZWJLaXQgcmVsYXRl
ZCB0aHJlYWRzIHdpbGwgYmUgbGF1bmNoZWQgYWxvbmcKKyAgICAgICAgd2l0aCB1c2VyIGFwcGxp
Y2F0aW9uJ3MgdGhyZWFkcy4gV2l0aG91dCAiV2ViS2l0OiAiIHByZWZpeCwgaXQgaXMgYSBiaXQg
ZGlmZmljdWx0CisgICAgICAgIHRvIGRpc3Rpbmd1aXNoIHVzZXIncyB0aHJlYWRzIGZyb20gV2Vi
S2l0IHJlbGF0ZWQgb25lcy4KKworICAgICAgICBXZSBhcHBseSB0aGlzIHBvbGljeSB0byBhbGwg
dGhlIFdlYktpdCB0aHJlYWQgbmFtZXMgZXhjZXB0IGZvciBibWFsbG9jJ3Mgb25lLgorICAgICAg
ICBUaGlzIHdpbGwgYmUgY2hhbmdlZCBpbiBbMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njg0CisKKyAgICAgICAgKiBXVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiZW5jaG1hcmtzL0NvbmRpdGlvblNw
ZWVkVGVzdC5jcHA6CisgICAgICAgICogYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcDoK
KyAgICAgICAgKiBiZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwOgorICAgICAgICAqIHd0Zi9B
dXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9t
YXRpY1RocmVhZCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6c3RhcnQpOgorICAg
ICAgICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYvSGFzaGVyLmg6Cisg
ICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFs
bGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKToKKyAgICAgICAgKFdURjo6UGFyYWxs
ZWxIZWxwZXJQb29sOjpUaHJlYWQ6OlRocmVhZCk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5oOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6Om5hbWUpOgorICAg
ICAgICAqIHd0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxs
ZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0Zvcik6CisgICAgICAgICogd3Rm
L1N0ZExpYkV4dHJhcy5oOgorICAgICAgICAoV1RGOjpzdHJpbmdMaXRlcmFsTGVuZ3RoKToKKyAg
ICAgICAgKiB3dGYvVGhyZWFkTmFtZS5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6VGhyZWFkTmFt
ZTo6VGhyZWFkTmFtZSk6CisgICAgICAgIChXVEY6OlRocmVhZE5hbWU6Om5hbWUpOgorICAgICAg
ICAoV1RGOjpUaHJlYWROYW1lOjpwcmVmaXhlZE5hbWUpOgorICAgICAgICAqIHd0Zi9UaHJlYWRp
bmcuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVUaHJlYWQpOgorICAgICAgICAoV1RGOjpub3Jt
YWxpemVUaHJlYWROYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6Cisg
ICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRl
VGhyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV1RGOjppbml0aWFsaXplQ3VycmVudFRocmVhZElu
dGVybmFsKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6
aW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbCk6CisgICAgICAgIChXVEY6OmNyZWF0ZVRo
cmVhZEludGVybmFsKToKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNwcDoKKyAgICAgICAgKFdU
Rjo6V29ya1F1ZXVlOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpXb3JrUXVldWU6OldvcmtRdWV1
ZSk6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KToKKyAgICAgICAg
KiB3dGYvV29ya1F1ZXVlLmg6CisgICAgICAgICogd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNw
cDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAg
ICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHA6CisgICAgICAgIChEaXNwYXRjaFF1ZXVl
OjpUaHJlYWRDb250ZXh0OjpzdGFydCk6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlOjpjcmVhdGUp
OgorICAgICAgICAqIHd0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oOgorICAgICAgICAqIHd0Zi9l
ZmwvV29ya1F1ZXVlRWZsLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIHd0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwOgor
ICAgICAgICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHd0Zi90
ZXh0L0FTQ0lJTGl0ZXJhbC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwSGVscGVyUG9vbC5jcHAuCisgICAgICAgIChXVEY6OkFTQ0lJTGl0ZXJhbDo6QVNDSUlM
aXRlcmFsKToKKyAgICAgICAgKFdURjo6QVNDSUlMaXRlcmFsOjpvcGVyYXRvciBjb25zdCBjaGFy
Kik6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OkFTQ0lJ
TGl0ZXJhbDo6QVNDSUlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6QVNDSUlMaXRl
cmFsOjpvcGVyYXRvciBjb25zdCBjaGFyKik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL3dpbi9N
YWluVGhyZWFkV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0
Zm9ybSk6CisgICAgICAgICogd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwOgorICAgICAgICAoV1RG
OjpXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisKKzIwMTctMDEtMTQgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgV2ViQXNzZW1ibHk6IFN1
cHByZXNzIHdhcm5pbmdzICYgZXJyb3JzIGluIEdDQwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MDQ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NDE5NGU2NDYy
ZWJmYzE5ZGU1NjEzYWE5NzE4ZDdjM2FhOGQyMDVlLi44NDhhOTdjZWJlOWI1NjVjNGYwOWQ3Yzgx
ZTQwY2I5ZTYwZTY2ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTctMDEtMTQg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgVXNlIFRo
cmVhZE5hbWUgdG8gc3BlY2lmeSBsb25nIGFuZCBzaG9ydCBuYW1lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2Njc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVy
OjpJREJTZXJ2ZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29k
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNBdWRpb0RlY29kZXI6OkFzeW5jQXVkaW9E
ZWNvZGVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGU6OnN0YXJ0UmVuZGVyaW5nKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpzdGFydCk6
CisgICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdDQ29udHJvbGxlcjo6Z2FyYmFnZUNvbGxlY3RPbkFsdGVybmF0ZVRocmVhZEZvckRlYnVn
Z2luZyk6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdWJ0bGVDcnlwdG86OlN1YnRsZUNyeXB0byk6CisgICAgICAgICogZmlsZWFwaS9Bc3lu
Y0ZpbGVTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FsbE9uRmlsZVRocmVhZCk6Cisg
ICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okljb25EYXRhYmFzZTo6b3Blbik6CisgICAgICAgICogcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNhZ2VUaHJlYWQ6OmNyZWF0ZVRocmVh
ZElmTmVlZGVkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVGhyZWFkOjpjcmVhdGVUaHJlYWRJZk5lZWRl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZEFzeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmV2ZXJiQ29udm9sdmVyOjpSZXZlcmJDb252b2x2ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0ZpbGVSZWFkZXJHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQnVzRnJvbUF1ZGlvRmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0ZpbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1l
Q2FjaGU6OmRlY29kaW5nUXVldWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGVTdHJlYW1pbmdDbGllbnQ6OlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OkV2ZW50RkRQb2xsZXI6OkV2ZW50
RkRQb2xsZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpibG9iVXRpbGl0eVF1ZXVlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFV
UkxEZWNvZGVyOjpkZWNvZGVRdWV1ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9M
b2FkZXJSdW5Mb29wQ0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9hZGVyUnVuTG9vcCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWRNYW5hZ2VyOjpzdGFydFRocmVhZElmTmVlZGVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6c3RhcnRUaHJl
YWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZDo6c3RhcnQpOgorCiAyMDE3LTAxLTE0ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU21hbGwgY29kZSBjbGVhbnVwIGFmdGVyIHIyMTA3
NjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYjVmZDg1Y2FhZmU0ZWQ4ZWU0OGE1MWJkMTc1YzZiNDZkNWM2ZWYxZi4u
NTRiZWVjZDk4YTQxODdiZmJmMjY3M2M3OWQ1ODJmNjkzODBiYmViYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0wMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNob3J0
IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFN0b3JhZ2UvU3RvcmFnZVRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVGhy
ZWFkOjpzdGFydCk6CisKIDIwMTctMDEtMDUgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5dIENvbXBpbGUgZXJyb3IuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2I4
OTNiMTJkYTA0MzMwNTdmY2IwMmEzM2U5M2EzY2YxOTZlYTQ1Zi4uOTQ1MmMzNzNmOTdmM2QzM2Jh
Nzc3ZWM2YzYwMWM1ZjA5Nzg0OTgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE3
LTAxLTE0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAg
IFVzZSBUaHJlYWROYW1lIHRvIHNwZWNpZnkgbG9uZyBhbmQgc2hvcnQgbmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJvY2Vzczo6
RGF0YWJhc2VQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkNhY2hlOjpkZWxldGVE
dW1wRmlsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlSU9D
aGFubmVsU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6SU9DaGFubmVs
OjpyZWFkU3luY0luVGhyZWFkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpT
dGF0aXN0aWNzOjpTdGF0aXN0aWNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpT
dG9yYWdlOjpTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjptX2JhY2tn
cm91bmRJT1F1ZXVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjptX3NlcmlhbEJh
Y2tncm91bmRJT1F1ZXVlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAgICAoSVBDOjpD
b25uZWN0aW9uOjppbnN0YWxsSW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAg
KiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGlkQ2xvc2VPbkNv
bm5lY3Rpb25Xb3JrUXVldWUpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXb3JrUXVldWVQb29sOjpnZXRPckNyZWF0ZVdvcmtRdWV1ZUZvckNvbnRleHQpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwOgorICAgICAgICAoV2ViS2l0Ojp3b3Jr
UXVldWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZS5jcHA6CisgICAgICAgIChBUEk6OlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OlVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUpOgorICAgICAgICAoQVBJOjptX3JlYWRRdWV1ZSk6CisgICAg
ICAgIChBUEk6Om1fcmVtb3ZlUXVldWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OlN0b3Jh
Z2VNYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL2xp
bnV4L01lbW9yeVByZXNzdXJlTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lbW9yeVBy
ZXNzdXJlTW9uaXRvcjo6TWVtb3J5UHJlc3N1cmVNb25pdG9yKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZWNJdGVtU2hp
bVByb3h5OjpTZWNJdGVtU2hpbVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpFdmVudERpc3BhdGNoZXI6OkV2ZW50RGlzcGF0Y2hlcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpZXdVcGRhdGVEaXNwYXRjaGVyKToK
KwogMjAxNy0wMS0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgdW51c2VkIFdLVmlldyBpbml0aWFsaXplciBwYXJhbWV0ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvQ29tcGFyZUFuZFN3YXBUZXN0
LmNwcAppbmRleCBlNzgwODZjM2E5NjEyYTJmMGI0ZDdhYWYxYWRjN2JhMWExMDFjNTQ3Li44MmUx
OWM1ODg3MWQwZmI1NzU2Mzk5OTcxM2M3ZGFkYmU5ZDZkZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0NvbXBhcmVBbmRTd2FwVGVzdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9Db21wYXJlQW5kU3dhcFRlc3QuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZUFuZFN3YXAoKQogICAgICAgICBkYXRhW2ld
LmlkID0gaTsKICAgICAgICAgZGF0YVtpXS5udW1UaHJlYWRzID0gbnVtVGhyZWFkczsKICAgICAg
ICAgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHRocmVhZEZ1bmMgPSBzdGQ6OmJpbmQoc2V0Qml0VGhy
ZWFkRnVuYywgJmRhdGFbaV0pOwotICAgICAgICB0aHJlYWRJRHNbaV0gPSBjcmVhdGVUaHJlYWQo
InNldEJpdFRocmVhZEZ1bmMiLCB0aHJlYWRGdW5jKTsKKyAgICAgICAgdGhyZWFkSURzW2ldID0g
Y3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgeyAic2V0Qml0VGhyZWFkRnVuYyIsICJzZXRCaXRUaHJl
YWQiIH0sIHRocmVhZEZ1bmMpOwogICAgIH0KIAogICAgIHByaW50ZigiV2FpdGluZyBmb3IgJWQg
dGhyZWFkcyB0byBqb2luXG4iLCBudW1UaHJlYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL3Rlc3RhaXIuY3BwCmluZGV4IDlmOGE4ZDgzZTVmZDMzMWU0NDllZjkxZjNkYTc4NGQ0NTc2
Y2Y0NGYuLjg5NzA3NWYzMmFmM2VkNDEzMTU0ODJkYzIxYzdmYzk2NWNmYTAxMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcApAQCAtMTkxMyw3ICsxOTEzLDcgQEAg
dm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIGZvciAodW5zaWduZWQgaSA9IGZpbHRl
ciA/IDEgOiBXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsgaS0tOykgewogICAgICAgICB0
aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgIGNyZWF0ZVRocmVhZCgKLSAgICAgICAgICAgICAg
ICAidGVzdGIzIHRocmVhZCIsCisgICAgICAgICAgICAgICAgVGhyZWFkTmFtZSB7ICJ0ZXN0YjMg
dGhyZWFkIiB9LAogICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgICAg
IGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZv
aWQoKT4+IHRhc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGZjMzNjNmZj
ZmFkZjg5MjhkN2JlMmY0YTJjMzIzNzljMDViNDU1ZTEuLjJlY2RlYzI5MjYzZTU4Yjc1OTYzY2M0
NzBjMjVjYzBkODYwZDg3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0x
NTY2MSw3ICsxNTY2MSw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBmaWx0ZXIgPyAxIDogV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7
IGktLTspIHsKICAgICAgICAgdGhyZWFkcy5hcHBlbmQoCiAgICAgICAgICAgICBjcmVhdGVUaHJl
YWQoCi0gICAgICAgICAgICAgICAgInRlc3RiMyB0aHJlYWQiLAorICAgICAgICAgICAgICAgIFRo
cmVhZE5hbWUgeyAidGVzdGIzIHRocmVhZCIgfSwKICAgICAgICAgICAgICAgICBbJl0gKCkgewog
ICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBS
ZWZQdHI8U2hhcmVkVGFzazx2b2lkKCk+PiB0YXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1N1cGVyU2FtcGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmNwcAppbmRleCBhNGUyMWY5ZmEzY2Q0NzIxZWEyNjc1
ZTA2ZTRkNTMwYzViYTk1YjM1Li4zMjMwYWI4MWExYWU0MDFkNTljMWIwYmJlOWJhZGY0N2Y1ZmQ3
YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1w
bGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3VwZXJTYW1wbGVy
LmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIGluaXRpYWxpemVTdXBlclNhbXBsZXIoKQogICAg
ICAgICByZXR1cm47CiAKICAgICBjcmVhdGVUaHJlYWQoCi0gICAgICAgICJKU0MgU3VwZXIgU2Ft
cGxlciIsCisgICAgICAgIFRocmVhZE5hbWUgeyAiSlNDIFN1cGVyIFNhbXBsZXIiLCAiU3VwZXJT
YW1wbGVyIiB9LAogICAgICAgICBbXSAoKSB7CiAgICAgICAgICAgICBjb25zdCBpbnQgc2xlZXBR
dWFudHVtID0gMTA7CiAgICAgICAgICAgICBjb25zdCBpbnQgcHJpbnRpbmdQZXJpb2QgPSAxMDAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAppbmRleCAxMTRjYTk1
NzE0NGRiNTI4MDhjZTg1M2QzMWY3NjViZDIyZmNhYmViLi5hNzFlMTNiOGY2MmY5Y2Q5ZjJlZWZh
NjVmOTNkZDc1MDkzZmE5ZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmNwcApAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAKIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1dG9tYXRpY1RocmVhZCB7
CiBwdWJsaWM6Ci0gICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFdvcmts
aXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+IGxvY2ssIFJlZlB0cjxB
dXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJlbGF0aXZlUHJpb3JpdHkp
Ci0gICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgY29uZGl0aW9uKQorICAg
IFRocmVhZEJvZHkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYgd29ya2xpc3Qs
IFRocmVhZERhdGEmIGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5LCBUaHJlYWROYW1lIHRo
cmVhZE5hbWUpCisgICAgICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgY29uZGl0
aW9uLCB0aHJlYWROYW1lKQogICAgICAgICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAg
ICwgbV9kYXRhKGRhdGEpCiAgICAgICAgICwgbV9yZWxhdGl2ZVByaW9yaXR5KHJlbGF0aXZlUHJp
b3JpdHkpCkBAIC0xNzMsOCArMTczLDggQEAgY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgOiBw
dWJsaWMgQXV0b21hdGljVGhyZWFkIHsKICAgICBSZWZQdHI8UGxhbj4gbV9wbGFuOwogfTsKIAot
V29ya2xpc3Q6OldvcmtsaXN0KENTdHJpbmcgd29ya2xpc3ROYW1lKQotICAgIDogbV90aHJlYWRO
YW1lKHRvQ1N0cmluZyh3b3JrbGlzdE5hbWUsICIgV29ya2VyIFRocmVhZCIpKQorV29ya2xpc3Q6
OldvcmtsaXN0KFRocmVhZE5hbWUgdGhyZWFkTmFtZSkKKyAgICA6IG1fdGhyZWFkTmFtZSh0aHJl
YWROYW1lKQogICAgICwgbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5F
bnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAgICwgbV9udW1i
ZXJPZkFjdGl2ZVRocmVhZHMoMCkKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHZvaWQgV29ya2xpc3Q6
OmZpbmlzaENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJp
b3JpdHkpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIoKm1fbG9jayk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbnVtYmVyT2ZUaHJlYWRzOyBpLS07KSB7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxU
aHJlYWREYXRhPiBkYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxUaHJlYWREYXRhPih0aGlzKTsKLSAg
ICAgICAgZGF0YS0+bV90aHJlYWQgPSBhZG9wdFJlZihuZXcgVGhyZWFkQm9keShsb2NrZXIsICp0
aGlzLCAqZGF0YSwgbV9sb2NrLCBtX3BsYW5FbnF1ZXVlZCwgcmVsYXRpdmVQcmlvcml0eSkpOwor
ICAgICAgICBkYXRhLT5tX3RocmVhZCA9IGFkb3B0UmVmKG5ldyBUaHJlYWRCb2R5KGxvY2tlciwg
KnRoaXMsICpkYXRhLCBtX2xvY2ssIG1fcGxhbkVucXVldWVkLCByZWxhdGl2ZVByaW9yaXR5LCBt
X3RocmVhZE5hbWUpKTsKICAgICAgICAgbV90aHJlYWRzLmFwcGVuZChXVEZNb3ZlKGRhdGEpKTsK
ICAgICB9CiB9CiAKLVJlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShDU3RyaW5nIHdvcmts
aXN0TmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkK
K1JlZjxXb3JrbGlzdD4gV29ya2xpc3Q6OmNyZWF0ZShUaHJlYWROYW1lIHRocmVhZE5hbWUsIHVu
c2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50IHJlbGF0aXZlUHJpb3JpdHkpCiB7Ci0gICAgUmVm
PFdvcmtsaXN0PiByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFdvcmtsaXN0KHdvcmtsaXN0TmFtZSkp
OworICAgIFJlZjxXb3JrbGlzdD4gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBXb3JrbGlzdCh0aHJl
YWROYW1lKSk7CiAgICAgcmVzdWx0LT5maW5pc2hDcmVhdGlvbihudW1iZXJPZlRocmVhZHMsIHJl
bGF0aXZlUHJpb3JpdHkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00OTQsNyArNDk0LDcg
QEAgV29ya2xpc3QmIGVuc3VyZUdsb2JhbERGR1dvcmtsaXN0KCkKIHsKICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWc7CiAgICAgc3RkOjpj
YWxsX29uY2UoaW5pdGlhbGl6ZUdsb2JhbFdvcmtsaXN0T25jZUZsYWcsIFtdIHsKLSAgICAgICAg
dGhlR2xvYmFsREZHV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZSgiREZHIFdvcmtsaXN0Iiwg
T3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJpb3JpdHlE
ZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKKyAgICAgICAgdGhlR2xvYmFs
REZHV29ya2xpc3QgPSAmV29ya2xpc3Q6OmNyZWF0ZShUaHJlYWROYW1lIHsgIkRGRyBXb3JrbGlz
dCIgfSwgT3B0aW9uczo6bnVtYmVyT2ZERkdDb21waWxlclRocmVhZHMoKSwgT3B0aW9uczo6cHJp
b3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzKCkpLmxlYWtSZWYoKTsKICAgICB9KTsKICAg
ICByZXR1cm4gKnRoZUdsb2JhbERGR1dvcmtsaXN0OwogfQpAQCAtNTEwLDcgKzUxMCw3IEBAIFdv
cmtsaXN0JiBlbnN1cmVHbG9iYWxGVExXb3JrbGlzdCgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKGluaXRpYWxpemVHbG9iYWxXb3JrbGlzdE9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHRoZUds
b2JhbEZUTFdvcmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoIkZUTCBXb3JrbGlzdCIsIE9wdGlv
bnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5RGVsdGFP
ZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CisgICAgICAgIHRoZUdsb2JhbEZUTFdv
cmtsaXN0ID0gJldvcmtsaXN0OjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJGVEwgV29ya2xpc3QiIH0s
IE9wdGlvbnM6Om51bWJlck9mRlRMQ29tcGlsZXJUaHJlYWRzKCksIE9wdGlvbnM6OnByaW9yaXR5
RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcygpKS5sZWFrUmVmKCk7CiAgICAgfSk7CiAgICAgcmV0
dXJuICp0aGVHbG9iYWxGVExXb3JrbGlzdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
V29ya2xpc3QuaAppbmRleCAzNjYxZTZlZTgzZDM1NDc3ZjdiYWY4NzQ4YTcyNDQ1ODZhMDM5MGE1
Li41MmQyYzhhZmFlM2VhYzBlMTA2NGNlNWFlODcyNDY4ZjhmYmEzNjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFdvcmts
aXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V29ya2xpc3Q+IHsKIAogICAgIH5Xb3JrbGlzdCgpOwog
ICAgIAotICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShDU3RyaW5nIHdvcmtsaXN0TmFt
ZSwgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzLCBpbnQgcmVsYXRpdmVQcmlvcml0eSA9IDApOwor
ICAgIHN0YXRpYyBSZWY8V29ya2xpc3Q+IGNyZWF0ZShUaHJlYWROYW1lLCB1bnNpZ25lZCBudW1i
ZXJPZlRocmVhZHMsIGludCByZWxhdGl2ZVByaW9yaXR5ID0gMCk7CiAgICAgCiAgICAgdm9pZCBl
bnF1ZXVlKFBhc3NSZWZQdHI8UGxhbj4pOwogICAgIApAQCAtODIsNyArODIsNyBAQCBjbGFzcyBX
b3JrbGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiBwcml2YXRlOgotICAgIFdvcmtsaXN0KENTdHJpbmcg
d29ya2xpc3ROYW1lKTsKKyAgICBXb3JrbGlzdChUaHJlYWROYW1lKTsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcywgaW50KTsKICAgICAKICAgICBjbGFz
cyBUaHJlYWRCb2R5OwpAQCAtOTUsNyArOTUsNyBAQCBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdvcmtsaXN0PiB7CiAKICAgICB2b2lkIGR1bXAoY29uc3QgTG9ja0hvbGRlciYs
IFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCi0gICAgQ1N0cmluZyBtX3RocmVhZE5hbWU7Cisg
ICAgVGhyZWFkTmFtZSBtX3RocmVhZE5hbWU7CiAgICAgCiAgICAgLy8gVXNlZCB0byBpbmZvcm0g
dGhlIHRocmVhZCBhYm91dCB3aGF0IHdvcmsgdGhlcmUgaXMgbGVmdCB0byBkby4KICAgICBEZXF1
ZTxSZWZQdHI8UGxhbj4+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKaW5kZXggNzg4YTZjMzYyMzY5YzU4ZGFkMjlh
NjBhMzg3MTA0NGU0NjRlZDMwNS4uNTU3ZDcxMzVjNzNkNjRiMjk5MTE4ZmFmYjE1MzVhY2VkMTlm
ZTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNh
c3NlbWJsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlz
YXNzZW1ibGVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBjbGFzcyBBc3luY2hyb25vdXNEaXNhc3Nl
bWJsZXIgewogcHVibGljOgogICAgIEFzeW5jaHJvbm91c0Rpc2Fzc2VtYmxlcigpCiAgICAgewot
ICAgICAgICBjcmVhdGVUaHJlYWQoIkFzeW5jaHJvbm91cyBEaXNhc3NlbWJsZXIiLCBbJl0gKCkg
eyBydW4oKTsgfSk7CisgICAgICAgIGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgIkFzeW5jaHJv
bm91cyBEaXNhc3NlbWJsZXIiLCAiQXN5bmNEaXNhc20iIH0sIFsmXSAoKSB7IHJ1bigpOyB9KTsK
ICAgICB9CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJs
eVRhc2s+IHRhc2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IDgyOGUwZjg2
OTZiYWNhODIwMjEwOWQ4MzhkNzg3ZjVmMjExMzgxYzEuLmFiZTcxNGQzOTYyZGJiMWIwNjMzZjA4
ZDc1ZTIxMTU4MzJmYTY0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0y
MDYsNyArMjA2LDcgQEAgY2xhc3MgVGltaW5nU2NvcGUgewogY2xhc3MgSGVhcDo6VGhyZWFkIDog
cHVibGljIEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkKGNvbnN0IExvY2tI
b2xkZXImIGxvY2tlciwgSGVhcCYgaGVhcCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9j
a2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVhZENvbmRpdGlvbikKKyAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBoZWFwLm1fdGhyZWFkTG9jaywgaGVhcC5tX3RocmVh
ZENvbmRpdGlvbiwgVGhyZWFkTmFtZSB7ICJIZWFwIENvbGxlY3RvciIgfSkKICAgICAgICAgLCBt
X2hlYXAoaGVhcCkKICAgICB7CiAgICAgfQpAQCAtMjI3OSw3ICsyMjc5LDcgQEAgdm9pZCBIZWFw
Ojpub3RpZnlJc1NhZmVUb0NvbGxlY3QoKQogICAgIAogICAgIGlmIChPcHRpb25zOjpjb2xsZWN0
Q29udGludW91c2x5KCkpIHsKICAgICAgICAgbV9jb2xsZWN0Q29udGludW91c2x5VGhyZWFkID0g
Y3JlYXRlVGhyZWFkKAotICAgICAgICAgICAgIkpTQyBERUJVRyBDb250aW51b3VzIEdDIiwKKyAg
ICAgICAgICAgIFRocmVhZE5hbWUgeyAiSlNDIERFQlVHIENvbnRpbnVvdXMgR0MiLCAiQ29udGlu
dW91c0dDIiB9LAogICAgICAgICAgICAgW3RoaXNdICgpIHsKICAgICAgICAgICAgICAgICBNb25v
dG9uaWNUaW1lIGluaXRpYWxUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAgICAgICAgICAg
ICAgICAgU2Vjb25kcyBwZXJpb2QgPSBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKE9wdGlvbnM6
OmNvbGxlY3RDb250aW51b3VzbHlQZXJpb2RNUygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXBIZWxwZXJQb29sLmNwcAppbmRleCA3OTFhYTc1NmY5NWUxY2I1NjQwZmMzM2I0
NTY3NzQ1MWVlMWEyNTM2Li5iMjQyYWRkNTFlMWY4YzVlZDE2MDY4NzE1NjVkODJmZTkxODg2OWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwSGVscGVyUG9vbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcEhlbHBlclBvb2wuY3BwCkBA
IC0zOCw3ICszOCw3IEBAIFBhcmFsbGVsSGVscGVyUG9vbCYgaGVhcEhlbHBlclBvb2woKQogICAg
IHN0ZDo6Y2FsbF9vbmNlKAogICAgICAgICBpbml0aWFsaXplSGVscGVyUG9vbE9uY2VGbGFnLAog
ICAgICAgICBbXSB7Ci0gICAgICAgICAgICBoZWxwZXJQb29sID0gbmV3IFBhcmFsbGVsSGVscGVy
UG9vbCgpOworICAgICAgICAgICAgaGVscGVyUG9vbCA9IG5ldyBQYXJhbGxlbEhlbHBlclBvb2wo
VGhyZWFkTmFtZSB7ICJIZWFwIEhlbHBlciIgfSk7CiAgICAgICAgICAgICBoZWxwZXJQb29sLT5l
bnN1cmVUaHJlYWRzKE9wdGlvbnM6Om51bWJlck9mR0NNYXJrZXJzKCkgLSAxKTsKICAgICAgICAg
fSk7CiAgICAgcmV0dXJuICpoZWxwZXJQb29sOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9JQ1N0YXRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSUNTdGF0
cy5jcHAKaW5kZXggMjA4MGNkOTM0NTgzM2QyZDIzMmI4YTljZDZmM2RiZmViZTA1Y2IyMy4uYzkw
ZmM5OTNhZTdiMjUwNTZhZWUzMjc3NGNmYmY2MGY1Mjg2NmM3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9JQ1N0YXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0lDU3RhdHMuY3BwCkBAIC01OSw3ICs1OSw3IEBAIEF0b21pYzxJQ1N0YXRzKj4gSUNT
dGF0czo6c19pbnN0YW5jZTsKIElDU3RhdHM6OklDU3RhdHMoKQogewogICAgIG1fdGhyZWFkID0g
Y3JlYXRlVGhyZWFkKAotICAgICAgICAiSlNDIElDU3RhdHMiLAorICAgICAgICBUaHJlYWROYW1l
IHsgIkpTQyBJQ1N0YXRzIiB9LAogICAgICAgICBbdGhpc10gKCkgewogICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgICAgIGZvciAoOzspIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggMmMyMmRhMzg5OGJjMjg3OWJh
Zjc3ZDk2MTZhY2VkMDRjYTdmNTFhNi4uZDVkMzkyZTE2NDlhZjQwYWQxOWYwNDUwNmE1MzkxOTBh
OGMzMWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlz
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAg
LTEwMCw3ICsxMDAsNyBAQCBjbGFzcyBKSVRXb3JrbGlzdDo6UGxhbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxKSVRXb3JrbGlzdDo6UGxhbj4gewogY2xhc3MgSklUV29ya2xpc3Q6OlRo
cmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIFRocmVhZChjb25z
dCBMb2NrSG9sZGVyJiBsb2NrZXIsIEpJVFdvcmtsaXN0JiB3b3JrbGlzdCkKLSAgICAgICAgOiBB
dXRvbWF0aWNUaHJlYWQobG9ja2VyLCB3b3JrbGlzdC5tX2xvY2ssIHdvcmtsaXN0Lm1fY29uZGl0
aW9uKQorICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIHdvcmtsaXN0Lm1fbG9jaywg
d29ya2xpc3QubV9jb25kaXRpb24sIFRocmVhZE5hbWUgeyAiQmFzZWxpbmUgSklUIENvbXBpbGVy
IFdvcmtlciIsICJKSVRDb21waWxlciIgfSkKICAgICAgICAgLCBtX3dvcmtsaXN0KHdvcmtsaXN0
KQogICAgIHsKICAgICAgICAgbV93b3JrbGlzdC5tX251bUF2YWlsYWJsZVRocmVhZHMrKzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKaW5kZXggNjUxZjQ0OGQzOTVjOGFmYjEzNGYzMDQxNTcwZTMzMjhlYjc1
MTYwMi4uMjhkN2IzY2U1ZDhiNzQ5ZjkzMTE4OGM5ZjE3MDgyMGFjYjdjNjgzOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKQEAgLTI3NDcsNyArMjc0Nyw3IEBAIHN0YXRpYyB2b2lkIHN0YXJ0VGltZW91
dFRocmVhZElmTmVlZGVkKCkKICAgICAgICAgICAgIGRhdGFMb2coIldBUk5JTkc6IHRpbWVvdXQg
c3RyaW5nIGlzIG1hbGZvcm1lZCwgZ290ICIsIHRpbWVvdXRTdHJpbmcsCiAgICAgICAgICAgICAg
ICAgIiBidXQgZXhwZWN0ZWQgYSBudW1iZXIuIE5vdCB1c2luZyBhIHRpbWVvdXQuXG4iKTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjcmVhdGVUaHJlYWQodGltZW91dFRocmVhZE1haW4s
IDAsICJqc2MgVGltZW91dCBUaHJlYWQiKTsKKyAgICAgICAgICAgIGNyZWF0ZVRocmVhZCh0aW1l
b3V0VGhyZWFkTWFpbiwgMCwgVGhyZWFkTmFtZSB7ICJqc2MgVGltZW91dCBUaHJlYWQiLCAiVGlt
ZW91dFRocmVhZCIgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDcwMzRkYzY5NmI5ZTExNDkyODhj
N2JiOWVkZGVmZTJhYjE2YjE3Y2EuLjU4MmI3MTI2OWUxNTFhYTA0YjhkOTdiZTIzYTQ5YmFlNDAz
ZjM3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCkBAIC0yMTMsNyArMjEzLDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpj
cmVhdGVUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBMb2NrSG9sZGVyJikKICAgICAgICAgcmV0dXJu
OwogCiAgICAgUmVmUHRyPFNhbXBsaW5nUHJvZmlsZXI+IHByb2ZpbGVyID0gdGhpczsKLSAgICBt
X3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoImpzYy5zYW1wbGluZy1wcm9maWxlci50
aHJlYWQiLCBbcHJvZmlsZXJdIHsKKyAgICBtX3RocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJl
YWQoVGhyZWFkTmFtZSB7ICJqc2Muc2FtcGxpbmctcHJvZmlsZXIudGhyZWFkIiwgIlNhbXBsaW5n
IiB9LCBbcHJvZmlsZXJdIHsKICAgICAgICAgcHJvZmlsZXItPnRpbWVyTG9vcCgpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCmluZGV4IGY2
MDA0ZTZlZjFjMGJjNGQyNTM5Mjg0OGY2MGM5NTcyNTZjYjVjMjMuLjUwMGM4YzZkNDAyNTg0Y2Qx
YzQxNGVlNDNmMTg1NmE5YWI3MzhjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dhdGNoZG9nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2F0Y2hkb2c6OldhdGNoZG9nKCkKICAg
ICAsIG1fY2FsbGJhY2soMCkKICAgICAsIG1fY2FsbGJhY2tEYXRhMSgwKQogICAgICwgbV9jYWxs
YmFja0RhdGEyKDApCi0gICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImpzYy53
YXRjaGRvZy5xdWV1ZSIsIFdvcmtRdWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6
VXRpbGl0eSkpCisgICAgLCBtX3RpbWVyUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFt
ZSB7ICJqc2Mud2F0Y2hkb2cucXVldWUiLCAiV2F0Y2hkb2ciIH0sIFdvcmtRdWV1ZTo6VHlwZTo6
U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6VXRpbGl0eSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21QbGFuLmNwcAppbmRleCA1OTgwYjUxZTg3NDIyMjM3NTVjZTBjM2RmMmMx
NmIxZGU5ZWM4ZjEyLi5lYjNjZWJiNjYzZGVlMmQ1M2VlNWFlYjY2NjNjMTMzODAyYTY4ODJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGxhbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBsYW4uY3BwCkBAIC0xOTcsNyArMTk3LDcg
QEAgdm9pZCBQbGFuOjpydW4oKQogICAgIFZlY3RvcjxUaHJlYWRJZGVudGlmaWVyPiB0aHJlYWRz
OwogICAgIHRocmVhZHMucmVzZXJ2ZUNhcGFjaXR5KG51bVdvcmtlclRocmVhZHMpOwogICAgIGZv
ciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1Xb3JrZXJUaHJlYWRzOyBpKyspCi0gICAgICAgIHRo
cmVhZHMudW5jaGVja2VkQXBwZW5kKGNyZWF0ZVRocmVhZCgianNjLndhc20tYjMtY29tcGlsYXRp
b24udGhyZWFkIiwgZG9Xb3JrKSk7CisgICAgICAgIHRocmVhZHMudW5jaGVja2VkQXBwZW5kKGNy
ZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgImpzYy53YXNtLWIzLWNvbXBpbGF0aW9uLnRocmVhZCIs
ICJXYXNtQjNDb21waWxlciIgfSwgZG9Xb3JrKSk7CiAKICAgICBkb1dvcmsoKTsgLy8gTGV0IHRo
ZSBtYWluIHRocmVhZCBkbyBzb21lIHdvcmsgdG9vLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAyYTc4MDQ0OTNjOTVmODljZGE2YmYzMWEzODE1OTBmMWNm
YzBlMDRjLi5kMWQxY2U1YzI4N2IzMGUyMWZkYTk2ZjdhMTVlZWE0MjE0MWFlYzMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2OCw2ICszNjgsOCBAQAog
CQlGRTg5MjVCMDFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODkyNUFGMUQwMERBRUMwMDQ2OTA3RSAv
KiBJbmRlbnRlci5oICovOyB9OwogCQlGRURBQ0QzRDE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tT
dGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RURBQ0QzQjE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5jcHAgKi87IH07CiAJCUZFREFD
RDNFMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3Rh
Y2tTdGF0cy5oICovOyB9OworCQk4QUQ4OTJGMEQ1ODU0NkQxODZDRUQ4QzggLyogQVNDSUlMaXRl
cmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE5
QkQ0NUUwNjM0QjI0QjJBRjM5Q0MgLyogQVNDSUlMaXRlcmFsLmggKi87IH07CisJCTg5NjZFNDE4
NkI5RjRFQzFBQ0MyMjVDQSAvKiBUaHJlYWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMUUyRTVERTZFRDY0NENBOTE4OEVCNTUgLyogVGhyZWFk
TmFtZS5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2lu
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC03NDgsNiArNzUwLDggQEAKIAkJ
RkU4OTI1QUYxRDAwREFFQzAwNDY5MDdFIC8qIEluZGVudGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluZGVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFREFDRDNCMTYzMEY4M0YwMEM2OTYzNCAvKiBTdGFja1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YWNrU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGRURBQ0QzQzE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGFja1N0YXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTcxQTlCRDQ1RTA2MzRCMjRCMkFGMzlDQyAvKiBBU0NJSUxpdGVy
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQVNDSUlMaXRlcmFsLmg7IHBh
dGggPSBBU0NJSUxpdGVyYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjFFMkU1
REU2RUQ2NDRDQTkxODhFQjU1IC8qIFRocmVhZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gVGhyZWFkTmFtZS5oOyBwYXRoID0gVGhyZWFkTmFtZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMTMyLDYgKzEx
MzYsNyBAQAogCQkJCUU0QTBBRDM4MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuaCAqLywK
IAkJCQlBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgKi8sCiAJ
CQkJQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAqLywKKwkJCQlG
MUUyRTVERTZFRDY0NENBOTE4OEVCNTUgLyogVGhyZWFkTmFtZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSB3dGY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTIyMCw2ICsxMjI1LDcg
QEAKIAkJCQk3MEVDQTYwQzFCMDI0MjY4MDA0NDk3MzkgLyogVW5pcXVlZFN0cmluZ0ltcGwuaCAq
LywKIAkJCQlBOEE0NzMyRDE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCAqLywKIAkJ
CQlBOEE0NzMyRTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggKi8sCisJCQkJNzFBOUJE
NDVFMDYzNEIyNEIyQUYzOUNDIC8qIEFTQ0lJTGl0ZXJhbC5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSB0ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE1NjgsNiArMTU3NCw4IEBA
CiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIwMDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUU0M0E0Njk5MUUyMjhCOTEwMDI3NkIwNSAvKiBDb2Rlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOEFEODkyRjBENTg1NDZEMTg2Q0VEOEM4IC8qIEFTQ0lJTGl0ZXJhbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJODk2NkU0MTg2QjlGNEVDMUFDQzIyNUNBIC8qIFRocmVhZE5hbWUu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0NvbmRp
dGlvblNwZWVkVGVzdC5jcHAgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRU
ZXN0LmNwcAppbmRleCBjYjFkMTAxZTg1NjUyOWU4YWFlYTZhYmY2MGVjMzhlYTBiOGRkZTcyLi4y
MzQ0YTM3MThiNTU4YzBhOTE3N2Q1YTFiMTU5ZTAwY2RhNmJhYjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RG
L2JlbmNobWFya3MvQ29uZGl0aW9uU3BlZWRUZXN0LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lk
IHJ1blRlc3QoCiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gbnVtQ29uc3VtZXJzOyBpLS07
KSB7CiAgICAgICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRo
cmVhZCgKLSAgICAgICAgICAgICJDb25zdW1lciB0aHJlYWQiLAorICAgICAgICAgICAgVGhyZWFk
TmFtZSB7ICJDb25zdW1lciB0aHJlYWQiIH0sCiAgICAgICAgICAgICBbJl0gKCkgewogICAgICAg
ICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgcmVzdWx0
OwpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgcnVuVGVzdCgKIAogICAgIGZvciAodW5zaWduZWQg
aSA9IG51bVByb2R1Y2VyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVh
ZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiUHJvZHVjZXIgVGhyZWFk
IiwKKyAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiUHJvZHVjZXIgVGhyZWFkIiB9LAogICAgICAg
ICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bnVtTWVzc2FnZXNQZXJQcm9kdWNlcjsgKytpKSB7CiAgICAgICAgICAgICAgICAgICAgIGJvb2wg
bXVzdE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xv
Y2tGYWlybmVzc1Rlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tGYWlybmVzc1Rl
c3QuY3BwCmluZGV4IGYwODMyMWMwZjY4ODM2NTM1ZDgzY2I2YmM3NTExODQ4YmI1MmQ5NGYuLmM1
MjhmMzIxNDkzOGMxZWZhZGZlMzcwNjNkMTNlMWU5NTRlMmM1OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvYmVuY2htYXJrcy9Mb2NrRmFpcm5lc3NUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2Jl
bmNobWFya3MvTG9ja0ZhaXJuZXNzVGVzdC5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0IEJl
bmNobWFyayB7CiAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJlYWRz
OyB0aHJlYWRJbmRleC0tOykgewogICAgICAgICAgICAgY291bnRzW3RocmVhZEluZGV4XSA9IDA7
CiAgICAgICAgICAgICB0aHJlYWRzW3RocmVhZEluZGV4XSA9IGNyZWF0ZVRocmVhZCgKLSAgICAg
ICAgICAgICAgICAiQmVuY2htYXJrIFRocmVhZCIsCisgICAgICAgICAgICAgICAgVGhyZWFkTmFt
ZSB7ICJCZW5jaG1hcmsgdGhyZWFkIiwgIkJlbmNobWFya1J1bm5lciIgfSwKICAgICAgICAgICAg
ICAgICBbJiwgdGhyZWFkSW5kZXhdICgpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFtaWNy
b3NlY29uZHNJbkNyaXRpY2FsU2VjdGlvbikgewogICAgICAgICAgICAgICAgICAgICAgICAgd2hp
bGUgKGtlZXBHb2luZykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tT
cGVlZFRlc3QuY3BwIGIvU291cmNlL1dURi9iZW5jaG1hcmtzL0xvY2tTcGVlZFRlc3QuY3BwCmlu
ZGV4IDU0NWQyZTBiMDQ4OGYzMzg5NGE1OTY4OGZkOTFiMGQzYTM4N2NjYTIuLjViZTZhOTVmMzk1
Nzg2ZmUwOGZmNmNkY2YwZWE1MDMwMjAzYWRmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvYmVu
Y2htYXJrcy9Mb2NrU3BlZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV1RGL2JlbmNobWFya3MvTG9j
a1NwZWVkVGVzdC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgc3RydWN0IEJlbmNobWFyayB7CiAKICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFkSW5kZXggPSBudW1UaHJlYWRzUGVyR3JvdXA7
IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAgICAgICAgdGhyZWFkc1t0aHJlYWRHcm91cElu
ZGV4ICogbnVtVGhyZWFkc1Blckdyb3VwICsgdGhyZWFkSW5kZXhdID0gY3JlYXRlVGhyZWFkKAot
ICAgICAgICAgICAgICAgICAgICAiQmVuY2htYXJrIHRocmVhZCIsCisgICAgICAgICAgICAgICAg
ICAgIFRocmVhZE5hbWUgeyAiQmVuY2htYXJrIHRocmVhZCIsICJCZW5jaG1hcmtSdW5uZXIiIH0s
CiAgICAgICAgICAgICAgICAgICAgIFt0aHJlYWRHcm91cEluZGV4LCAmbG9ja3MsICZ3b3Jkcywg
JmtlZXBHb2luZywgJm51bUl0ZXJhdGlvbnNMb2NrLCAmbnVtSXRlcmF0aW9uc10gKCkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxvY2FsV29yZCA9IDA7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBkb3VibGUgdmFsdWUgPSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
QXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAK
aW5kZXggNGQ4ZmI4NDg5Zjk5Y2I4ZjY3ZTdjYzJkMTNiZjQxNTVlZTg3ZTVjNS4uYzY0YzYwODZk
NTllOTlhZTUxN2E3ZDQxZmNkNjlmYWEwZDUyOTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJl
YWQuY3BwCkBAIC05OCw5ICs5OCwxMCBAQCBib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6
Y29udGFpbnMoY29uc3QgTG9ja0hvbGRlciYsIEF1dG9tYXRpY1RocmVhZCogdGhyZQogICAgIHJl
dHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpB
dXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywg
UmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uKQorQXV0b21hdGljVGhy
ZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBCb3g8TG9jaz4g
bG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gY29uZGl0aW9uLCBUaHJlYWRO
YW1lIHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKGNv
bmRpdGlvbikKKyAgICAsIG1fbmFtZSh0aHJlYWROYW1lKQogewogICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICBkYXRhTG9nKFJhd1BvaW50ZXIodGhpcyksICI6IEFsbG9jYXRlZCBBdXRvbWF0aWNU
aHJlYWQuXG4iKTsKQEAgLTE1Niw3ICsxNTcsNyBAQCB2b2lkIEF1dG9tYXRpY1RocmVhZDo6c3Rh
cnQoY29uc3QgTG9ja0hvbGRlciYpCiAgICAgbV9oYXNVbmRlcmx5aW5nVGhyZWFkID0gdHJ1ZTsK
ICAgICAKICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZCA9IGNyZWF0ZVRocmVhZCgKLSAgICAg
ICAgIldURjo6QXV0b21hdGljVGhyZWFkIiwKKyAgICAgICAgbV9uYW1lLAogICAgICAgICBbPV0g
KCkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgZGF0YUxvZyhS
YXdQb2ludGVyKHRoaXMpLCAiOiBSdW5uaW5nIGF1dG9tYXRpYyB0aHJlYWQhXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oIGIvU291cmNlL1dURi93dGYv
QXV0b21hdGljVGhyZWFkLmgKaW5kZXggNjkyNmY2MjM2NTNkNGM1OTIxMzcwY2M0ZDljZWM4ZDA2
YzMzZWRhOC4uNzE5ZmNiZGRkNzBjYmNjZDRkZTlmYWI5NDVkN2IzYTgwMTllOWQ1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmgKKysrIGIvU291cmNlL1dURi93
dGYvQXV0b21hdGljVGhyZWFkLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBjbGFzcyBXVEZfRVhQT1JU
X1BSSVZBVEUgQXV0b21hdGljVGhyZWFkIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEF1
dG9tYXRpYwogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRo
cmVhZCwgYnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHNv
bWVvbmUKICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeU9uZSgp
IG9yIG5vdGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBMb2NrSG9sZGVyJiwg
Qm94PExvY2s+LCBSZWZQdHI8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPik7CisgICAgQXV0b21h
dGljVGhyZWFkKGNvbnN0IExvY2tIb2xkZXImLCBCb3g8TG9jaz4sIFJlZlB0cjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+LCBUaHJlYWROYW1lKTsKICAgICAKICAgICAvLyBUbyB1bmRlcnN0YW5k
IFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdpbmUgdGhhdCBwb2xsKCkgYW5kIHdvcmso
KSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBzbzoKQEAgLTE4Miw2ICsxODIsNyBAQCBj
bGFzcyBXVEZfRVhQT1JUX1BSSVZBVEUgQXV0b21hdGljVGhyZWFkIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEF1dG9tYXRpYwogICAgIGJvb2wgbV9oYXNVbmRlcmx5aW5nVGhyZWFkIHsg
ZmFsc2UgfTsKICAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0aW9uOwogICAgIENvbmRpdGlvbiBt
X2lzUnVubmluZ0NvbmRpdGlvbjsKKyAgICBUaHJlYWROYW1lIG1fbmFtZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaGVyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9IYXNoZXIuaAppbmRleCBjMGEyZThjZjI5N2M1MGE0ZDViZTAwNzU0OTU3ZjBh
YTRjMjMxMzljLi5mM2VlMzVjMDAxMThkNGRjNmJlZTUxNTZjM2M5NzMxYTMxZmExODdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNo
ZXIuaApAQCAtMSw5ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgMjAw
OCwgMjAxMCwgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgUGF0cmljayBHYW5zdGVyZXIgPHBhcm9nYUBwYXJvZ2EuY29tPgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAg
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKaW5kZXggOTQ5MmZkZGRmMTk2NDlk
NjViNTEwYjFlNDNjMDJhYTk1MTRjMDczMS4uMmMzYmYwNzQwODhlMjlhOTkxOGYyOWZhZmY5NGNk
MGM1YjYyZDEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29s
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC0xMjMs
OSArMTIzLDEwIEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2soUmVmUHRyPFNo
YXJlZFRhc2s8dm9pZCAoKT4+IHRhc2spCiAgICAgfQogfQogCi1QYXJhbGxlbEhlbHBlclBvb2w6
OlBhcmFsbGVsSGVscGVyUG9vbCgpCitQYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVsSGVscGVy
UG9vbChUaHJlYWROYW1lIHRocmVhZE5hbWUpCiAgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVh
dGUoKSkKICAgICAsIG1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246OmNyZWF0ZSgpKQorICAgICwgbV9uYW1lKHRocmVhZE5hbWUpCiB7CiB9CiAKQEAgLTE3
MSw3ICsxNzIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyUG9vbDo6ZG9Tb21lSGVscGluZygpCiBj
bGFzcyBQYXJhbGxlbEhlbHBlclBvb2w6OlRocmVhZCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQg
ewogcHVibGljOgogICAgIFRocmVhZChjb25zdCBMb2NrSG9sZGVyJiBsb2NrZXIsIFBhcmFsbGVs
SGVscGVyUG9vbCYgcG9vbCkKLSAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBwb29s
Lm1fbG9jaywgcG9vbC5tX3dvcmtBdmFpbGFibGVDb25kaXRpb24pCisgICAgICAgIDogQXV0b21h
dGljVGhyZWFkKGxvY2tlciwgcG9vbC5tX2xvY2ssIHBvb2wubV93b3JrQXZhaWxhYmxlQ29uZGl0
aW9uLCBwb29sLm5hbWUoKSkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAppbmRleCA4MTYzNWJiNzgxOTAwM2FjOWQ3ZjRh
NjgxY2M1NTQ0ZTkwZGE3ZDkxLi5lZGMxYWVlMWEyNGFkN2I4MDQ2NTIyMTU1YWY2NGJhMDRkYmNi
YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaApAQCAtMTc5LDcgKzE3OSw3IEBA
IGNsYXNzIFBhcmFsbGVsSGVscGVyQ2xpZW50IHsKIAogY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29s
IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewogcHVi
bGljOgotICAgIFdURl9FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woKTsKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKFRocmVhZE5hbWUpOwogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSB+UGFyYWxsZWxIZWxwZXJQb29sKCk7CiAKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOwpAQCAtMTg4
LDYgKzE4OCw4IEBAIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKICAgICAKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5nKCk7CiAKKyAgICBUaHJlYWROYW1lIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGFyYWxs
ZWxIZWxwZXJDbGllbnQ7CiAgICAgY2xhc3MgVGhyZWFkOwpAQCAtMjA3LDYgKzIwOSw3IEBAIGNs
YXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJh
bGxlbEhlbHBlclBvb2w+IHsKICAgICAKICAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQq
PiBtX2NsaWVudHM7CiAgICAgVmVjdG9yPFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+PiBtX3RocmVh
ZHM7CisgICAgVGhyZWFkTmFtZSBtX25hbWU7CiAgICAgdW5zaWduZWQgbV9udW1UaHJlYWRzIHsg
MCB9OyAvLyBUaGlzIGNhbiBiZSBsYXJnZXIgdGhhbiBtX3RocmVhZHMuc2l6ZSgpIGJlY2F1c2Ug
d2Ugc3RhcnQgdGhyZWFkcyBvbmx5IG9uY2UgdGhlcmUgaXMgd29yay4KICAgICBib29sIG1faXNE
eWluZyB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxK
b2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApp
bmRleCA0MDIzZjQzZTZmMjBhMzhlMTAzZTdjOWEyZTRmMGY3ZTA2MTA1NzE0Li5kMGVhNmY2N2Qy
NzMwNzU1NGMxYTVhZWFhMWI2OGI1MDMzMjJmM2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpv
YnNHZW5lcmljLmNwcApAQCAtOTQsNyArOTQsNyBAQCBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6
OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQog
ICAgIH0KIAogICAgIGlmICghbV90aHJlYWRJRCkKLSAgICAgICAgbV90aHJlYWRJRCA9IGNyZWF0
ZVRocmVhZCgmUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6d29ya2VyVGhyZWFk
LCB0aGlzLCAiUGFyYWxsZWwgd29ya2VyIik7CisgICAgICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVU
aHJlYWQoJlBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OndvcmtlclRocmVhZCwg
dGhpcywgVGhyZWFkTmFtZSB7ICJQYXJhbGxlbCB3b3JrZXIiIH0pOwogCiAgICAgaWYgKG1fdGhy
ZWFkSUQpCiAgICAgICAgIG1fcGFyZW50ID0gcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvU3RkTGliRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAppbmRl
eCA3NzljMzkyOGE0MTAzYjJkMGNiMDlhM2Y1YjgzMzQwZjFhMWEzMzAyLi5mMGU3OWNiNDYyYmRm
ZWZkMzRhOWVlMjM3OTE3NjI0MjY0OWI1Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaApAQCAtNDA4
LDYgKzQwOCwxMiBAQCBzdHJ1Y3QgUmVtb3ZlQ1ZBbmRSZWZlcmVuY2UgIHsKICAgICB0eXBlZGVm
IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2N2PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxU
Pjo6dHlwZT46OnR5cGUgdHlwZTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPgor
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzdHJpbmdMaXRlcmFsTGVuZ3RoKGNvbnN0IENoYXJU
eXBlKiBjaGFyYWN0ZXJzKQoreworICAgIHJldHVybiAoY2hhcmFjdGVyc1swXSA9PSAnXDAnKSA/
IDAgOiAxICsgc3RyaW5nTGl0ZXJhbExlbmd0aChjaGFyYWN0ZXJzICsgMSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdURgogCiAvLyBUaGlzIHZlcnNpb24gb2YgcGxhY2VtZW50IG5ldyBvbWl0cyBh
IDAgY2hlY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWROYW1lLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWROYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZkZWY2ODhmMDk5NTIwOTAwNTA1
ZmNiMTQ3Yjg4MTc3ZjA5ZGNhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZE5hbWUuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTYgWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgVGhyZWFkTmFtZSB7
CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dW5zaWduZWQgc2hvcnROYW1lQ291bnQ+CisgICAgZXhw
bGljaXQgY29uc3RleHByIFRocmVhZE5hbWUoY29uc3QgY2hhciAoJnNob3J0TmFtZSlbc2hvcnRO
YW1lQ291bnRdKQorICAgICAgICA6IG1fbmFtZShzaG9ydE5hbWUpCisgICAgeworICAgICAgICBz
dGF0aWNfYXNzZXJ0KChzaG9ydE5hbWVDb3VudCAtIDEpIDw9ICgxNiAtIDEpLCAiIik7CisgICAg
fQorCisjaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRPV1MpCisgICAgdGVtcGxhdGU8dW5zaWduZWQg
bG9uZ05hbWVDb3VudCwgdW5zaWduZWQgc2hvcnROYW1lQ291bnQ+CisgICAgZXhwbGljaXQgY29u
c3RleHByIFRocmVhZE5hbWUoY29uc3QgY2hhciAoJilbbG9uZ05hbWVDb3VudF0sIGNvbnN0IGNo
YXIgKCZzaG9ydE5hbWUpW3Nob3J0TmFtZUNvdW50XSkKKyAgICAgICAgOiBtX25hbWUoc2hvcnRO
YW1lKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoc2hvcnROYW1lQ291bnQgLSAxKSA8
PSAoMTYgLSAxKSwgIiIpOworICAgIH0KKyNlbHNlCisgICAgdGVtcGxhdGU8dW5zaWduZWQgbG9u
Z05hbWVDb3VudCwgdW5zaWduZWQgc2hvcnROYW1lQ291bnQ+CisgICAgZXhwbGljaXQgY29uc3Rl
eHByIFRocmVhZE5hbWUoY29uc3QgY2hhciAoJmxvbmdOYW1lKVtsb25nTmFtZUNvdW50XSwgY29u
c3QgY2hhciAoJilbc2hvcnROYW1lQ291bnRdKQorICAgICAgICA6IG1fbmFtZShsb25nTmFtZSkK
KyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoKHNob3J0TmFtZUNvdW50IC0gMSkgPD0gKDE2
IC0gMSksICIiKTsKKyAgICB9CisjZW5kaWYKKworICAgIENTdHJpbmcgbmFtZSgpIGNvbnN0Cisg
ICAgeworI2lmIE9TKExJTlVYKQorICAgICAgICByZXR1cm4gbV9uYW1lOworI2Vsc2UKKyAgICAg
ICAgcmV0dXJuIHByZWZpeGVkTmFtZShtX25hbWUpOworI2VuZGlmCisgICAgfQorCitwcml2YXRl
OgorICAgIHN0YXRpYyBDU3RyaW5nIHByZWZpeGVkTmFtZShjb25zdCBjaGFyKiBjb250ZW50KQor
ICAgIHsKKyAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IHN0cmluZ0xp
dGVyYWxMZW5ndGgoIldlYktpdDogIik7CisgICAgICAgIHVuc2lnbmVkIGNvbnRlbnRMZW5ndGgg
PSBzdHJsZW4oY29udGVudCk7CisgICAgICAgIGNoYXIqIGJ1ZmZlciA9IG51bGxwdHI7CisgICAg
ICAgIENTdHJpbmcgc3RyaW5nID0gQ1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChwcmVmaXhMZW5n
dGggKyBjb250ZW50TGVuZ3RoLCBidWZmZXIpOworICAgICAgICBtZW1jcHkoYnVmZmVyLCAiV2Vi
S2l0OiAiLCBwcmVmaXhMZW5ndGgpOworICAgICAgICBidWZmZXIgKz0gcHJlZml4TGVuZ3RoOwor
ICAgICAgICBtZW1jcHkoYnVmZmVyLCBjb250ZW50LCBjb250ZW50TGVuZ3RoKTsKKyAgICAgICAg
cmV0dXJuIHN0cmluZzsKKyAgICB9CisKKyAgICBjb25zdCBjaGFyKiBtX25hbWU7Cit9OworCit9
CisKK3VzaW5nIFdURjo6VGhyZWFkTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuY3BwCmluZGV4IDQwY2UzOWE0
NWQzNTQwYTIzZmQ1ODc4Y2Y5MDY3ZWFmZDc2ODEzM2MuLjEzZGY1MzJjMzk0YTMxMzMzNTRhNTQz
MGI4MDQ4YzAyMmFhODMwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nLmNwcApAQCAtMzYsMzggKzM2LDExIEBA
IG5hbWVzcGFjZSBXVEYgewogc3RydWN0IE5ld1RocmVhZENvbnRleHQgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNvbnN0IGNoYXIqIG5hbWU7CisgICAgVGhy
ZWFkTmFtZSBuYW1lOwogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50OwogICAg
IE11dGV4IGNyZWF0aW9uTXV0ZXg7CiB9OwogCi1jb25zdCBjaGFyKiBub3JtYWxpemVUaHJlYWRO
YW1lKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCi17Ci0jaWYgSEFWRShQVEhSRUFEX1NFVE5BTUVf
TlApCi0gICAgcmV0dXJuIHRocmVhZE5hbWU7Ci0jZWxzZQotICAgIC8vIFRoaXMgbmFtZSBjYW4g
YmUgY29tLmFwcGxlLldlYktpdC5Qcm9jZXNzTGF1bmNoZXIgb3IgY29tLmFwcGxlLkNvcmVJUEMu
UmVjZWl2ZVF1ZXVlLgotICAgIC8vIFdlIGFyZSB1c2luZyB0aG9zZSBuYW1lcyBmb3IgdGhlIHRo
cmVhZCBuYW1lLCBidXQgYm90aCBhcmUgbG9uZ2VyIHRoYW4gdGhlIGxpbWl0IG9mCi0gICAgLy8g
dGhlIHBsYXRmb3JtIHRocmVhZCBuYW1lIGxlbmd0aCwgMzIgZm9yIFdpbmRvd3MgYW5kIDE2IGZv
ciBMaW51eC4KLSAgICBTdHJpbmdWaWV3IHJlc3VsdCh0aHJlYWROYW1lKTsKLSAgICBzaXplX3Qg
c2l6ZSA9IHJlc3VsdC5yZXZlcnNlRmluZCgnLicpOwotICAgIGlmIChzaXplICE9IG5vdEZvdW5k
KQotICAgICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKHNpemUgKyAxKTsKLQotI2lmIE9T
KFdJTkRPV1MpCi0gICAgY29uc3RleHByIGNvbnN0IHNpemVfdCBrVmlzdWFsU3R1ZGlvVGhyZWFk
TmFtZUxpbWl0ID0gMzIgLSAxOwotICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPiBrVmlzdWFsU3R1
ZGlvVGhyZWFkTmFtZUxpbWl0KQotICAgICAgICByZXN1bHQgPSByZXN1bHQucmlnaHQoa1Zpc3Vh
bFN0dWRpb1RocmVhZE5hbWVMaW1pdCk7Ci0jZWxpZiBPUyhMSU5VWCkKLSAgICBjb25zdGV4cHIg
Y29uc3Qgc2l6ZV90IGtMaW51eFRocmVhZE5hbWVMaW1pdCA9IDE2IC0gMTsKLSAgICBpZiAocmVz
dWx0Lmxlbmd0aCgpID4ga0xpbnV4VGhyZWFkTmFtZUxpbWl0KQotICAgICAgICByZXN1bHQgPSBy
ZXN1bHQucmlnaHQoa0xpbnV4VGhyZWFkTmFtZUxpbWl0KTsKLSNlbmRpZgotICAgIEFTU0VSVChy
ZXN1bHQuY2hhcmFjdGVyczgoKVtyZXN1bHQubGVuZ3RoKCldID09ICdcMCcpOwotICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihyZXN1bHQuY2hhcmFjdGVyczgoKSk7Ci0j
ZW5kaWYKLX0KLQogc3RhdGljIHZvaWQgdGhyZWFkRW50cnlQb2ludCh2b2lkKiBjb250ZXh0RGF0
YSkKIHsKICAgICBOZXdUaHJlYWRDb250ZXh0KiBjb250ZXh0ID0gc3RhdGljX2Nhc3Q8TmV3VGhy
ZWFkQ29udGV4dCo+KGNvbnRleHREYXRhKTsKQEAgLTg4LDcgKzYxLDcgQEAgc3RhdGljIHZvaWQg
dGhyZWFkRW50cnlQb2ludCh2b2lkKiBjb250ZXh0RGF0YSkKICAgICBlbnRyeVBvaW50KCk7CiB9
CiAKLVRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBlbnRyeVBvaW50KQorVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJl
YWQoVGhyZWFkTmFtZSBuYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZW50cnlQb2ludCkKIHsK
ICAgICBOZXdUaHJlYWRDb250ZXh0KiBjb250ZXh0ID0gbmV3IE5ld1RocmVhZENvbnRleHQgeyBu
YW1lLCBXVEZNb3ZlKGVudHJ5UG9pbnQpLCB7IH0gfTsKIApAQCAtOTgsNyArNzEsNyBAQCBUaHJl
YWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZChjb25zdCBjaGFyKiBuYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZW50cnlQb2ludAogICAgIHJldHVybiBjcmVhdGVUaHJlYWRJbnRlcm5hbCh0aHJl
YWRFbnRyeVBvaW50LCBjb250ZXh0LCBuYW1lKTsKIH0KIAotVGhyZWFkSWRlbnRpZmllciBjcmVh
dGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24gZW50cnlQb2ludCwgdm9pZCogZGF0YSwgY29uc3QgY2hh
ciogbmFtZSkKK1RocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0aW9uIGVu
dHJ5UG9pbnQsIHZvaWQqIGRhdGEsIFRocmVhZE5hbWUgbmFtZSkKIHsKICAgICByZXR1cm4gY3Jl
YXRlVGhyZWFkKG5hbWUsIFtlbnRyeVBvaW50LCBkYXRhXSB7CiAgICAgICAgIGVudHJ5UG9pbnQo
ZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaCBiL1NvdXJjZS9X
VEYvd3RmL1RocmVhZGluZy5oCmluZGV4IDMwNTBkZDhkZjg0OGI2ZTVhMDljOGU3M2FhYWNmNTQw
N2Y4YTRiNjUuLmRjM2FlYWI3OTI3MGFiYTM1MmY2NTk4YzY4MDBmODU3MWE4Y2NmOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNp
bmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogCkBAIC01NSw3ICs1
Niw3IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKIAog
Ly8gUmV0dXJucyAwIGlmIHRocmVhZCBjcmVhdGlvbiBmYWlsZWQuCiAvLyBUaGUgdGhyZWFkIG5h
bWUgbXVzdCBiZSBhIGxpdGVyYWwgc2luY2Ugb24gc29tZSBwbGF0Zm9ybXMgaXQncyBwYXNzZWQg
aW4gdG8gdGhlIHRocmVhZC4KLVdURl9FWFBPUlRfUFJJVkFURSBUaHJlYWRJZGVudGlmaWVyIGNy
ZWF0ZVRocmVhZChjb25zdCBjaGFyKiB0aHJlYWROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4p
OworV1RGX0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVh
ZE5hbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiAKIC8vIE1hcmsgdGhlIGN1cnJlbnQgdGhy
ZWFkIGFzIHJlcXVpcmluZyBVSSByZXNwb25zaXZlbmVzcy4KIC8vIHJlbGF0aXZlUHJpb3JpdHkg
aXMgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgWy0xNSwgMF0gd2hlcmUgYSBsb3dlciB2YWx1ZSBpbmRp
Y2F0ZXMgYSBsb3dlciBwcmlvcml0eS4KQEAgLTY4LDE2ICs2OSwxNCBAQCBXVEZfRVhQT1JUX1BS
SVZBVEUgaW50IHdhaXRGb3JUaHJlYWRDb21wbGV0aW9uKFRocmVhZElkZW50aWZpZXIpOwogV1RG
X0VYUE9SVF9QUklWQVRFIHZvaWQgZGV0YWNoVGhyZWFkKFRocmVhZElkZW50aWZpZXIpOwogCiAv
LyBEZXByZWNhdGVkIGZ1bmN0aW9uLXBvaW50ZXItYmFzZWQgdGhyZWFkIGNyZWF0aW9uLgotV1RG
X0VYUE9SVF9QUklWQVRFIFRocmVhZElkZW50aWZpZXIgY3JlYXRlVGhyZWFkKFRocmVhZEZ1bmN0
aW9uLCB2b2lkKiwgY29uc3QgY2hhciogdGhyZWFkTmFtZSk7CitXVEZfRVhQT1JUX1BSSVZBVEUg
VGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWQoVGhyZWFkRnVuY3Rpb24sIHZvaWQqLCBUaHJl
YWROYW1lKTsKIAogLy8gSW50ZXJuYWwgcGxhdGZvcm0tc3BlY2lmaWMgY3JlYXRlVGhyZWFkIGlt
cGxlbWVudGF0aW9uLgotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJl
YWRGdW5jdGlvbiwgdm9pZCosIGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOworVGhyZWFkSWRlbnRp
ZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiwgdm9pZCosIFRocmVhZE5h
bWUpOwogCiAvLyBDYWxsZWQgaW4gdGhlIHRocmVhZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAv
LyBIZWxwZnVsIGZvciBwbGF0Zm9ybXMgd2hlcmUgdGhlIHRocmVhZCBuYW1lIG11c3QgYmUgc2V0
IGZyb20gd2l0aGluIHRoZSB0aHJlYWQuCi12b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50
ZXJuYWwoY29uc3QgY2hhciogdGhyZWFkTmFtZSk7Ci0KLWNvbnN0IGNoYXIqIG5vcm1hbGl6ZVRo
cmVhZE5hbWUoY29uc3QgY2hhciogdGhyZWFkTmFtZSk7Cit2b2lkIGluaXRpYWxpemVDdXJyZW50
VGhyZWFkSW50ZXJuYWwoVGhyZWFkTmFtZSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKaW5kZXggMGY5ZjJmYzcyYzlkM2U4OTBjNzNhYWRh
NzM5MTUwNGE5MWE3NDI4MC4uNTNjYTM4ZWE0N2M3NTA0YzdlMzlkOWRhMGQ0YmZiYWU2YTQwNWUx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBA
IHN0YXRpYyB2b2lkKiB3dGZUaHJlYWRFbnRyeVBvaW50KHZvaWQqIHBhcmFtKQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1UaHJlYWRJZGVudGlmaWVyIGNyZWF0ZVRocmVhZEludGVybmFsKFRo
cmVhZEZ1bmN0aW9uIGVudHJ5UG9pbnQsIHZvaWQqIGRhdGEsIGNvbnN0IGNoYXIqKQorVGhyZWFk
SWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50
LCB2b2lkKiBkYXRhLCBUaHJlYWROYW1lKQogewogICAgIGF1dG8gaW52b2NhdGlvbiA9IHN0ZDo6
bWFrZV91bmlxdWU8VGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uPihlbnRyeVBvaW50LCBkYXRhKTsK
ICAgICBwdGhyZWFkX3QgdGhyZWFkSGFuZGxlOwpAQCAtMTkyLDEyICsxOTIsMTQgQEAgVGhyZWFk
SWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50
LCB2b2lkKiBkYXRhLCBjb24KICAgICByZXR1cm4gZXN0YWJsaXNoSWRlbnRpZmllckZvclB0aHJl
YWRIYW5kbGUodGhyZWFkSGFuZGxlKTsKIH0KIAotdm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVh
ZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpCit2b2lkIGluaXRpYWxpemVDdXJyZW50
VGhyZWFkSW50ZXJuYWwoVGhyZWFkTmFtZSB0aHJlYWROYW1lKQogewogI2lmIEhBVkUoUFRIUkVB
RF9TRVROQU1FX05QKQotICAgIHB0aHJlYWRfc2V0bmFtZV9ucChub3JtYWxpemVUaHJlYWROYW1l
KHRocmVhZE5hbWUpKTsKKyAgICBhdXRvIG5hbWUgPSB0aHJlYWROYW1lLm5hbWUoKTsKKyAgICBw
dGhyZWFkX3NldG5hbWVfbnAobmFtZS5kYXRhKCkpOwogI2VsaWYgT1MoTElOVVgpCi0gICAgcHJj
dGwoUFJfU0VUX05BTUUsIG5vcm1hbGl6ZVRocmVhZE5hbWUodGhyZWFkTmFtZSkpOworICAgIGF1
dG8gbmFtZSA9IHRocmVhZE5hbWUubmFtZSgpOworICAgIHByY3RsKFBSX1NFVF9OQU1FLCBuYW1l
LmRhdGEoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh0aHJlYWROYW1lKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1dpbi5jcHAKaW5kZXggNTRiNDNlZmVmMzVjZDY2MzJhNzAwODE1MDdhNWIz
Nzk5ZGVmYjZmYi4uNGM5YmM1NzdhMjZhOTBkYTU1MDlkMmM2MjM4MzFiZmJlZjg3ZDQwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmdXaW4uY3BwCkBAIC0xMjEsMTUgKzEyMSwxNiBAQCB0eXBlZGVmIHN0cnVj
dCB0YWdUSFJFQUROQU1FX0lORk8gewogfSBUSFJFQUROQU1FX0lORk87CiAjcHJhZ21hIHBhY2so
cG9wKQogCi12b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoY29uc3QgY2hhciog
c3pUaHJlYWROYW1lKQordm9pZCBpbml0aWFsaXplQ3VycmVudFRocmVhZEludGVybmFsKFRocmVh
ZE5hbWUgdGhyZWFkTmFtZSkKIHsKICNpZiBDT01QSUxFUihNSU5HVykKICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRocmVhZCBuYW1lIHNldHRpbmcgd2l0aCBNaW5nVy4KLSAgICBVTlVTRURfUEFS
QU0oc3pUaHJlYWROYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odGhyZWFkTmFtZSk7CiAjZWxzZQor
ICAgIGF1dG8gbmFtZSA9IHRocmVhZE5hbWUubmFtZSgpOwogICAgIFRIUkVBRE5BTUVfSU5GTyBp
bmZvOwogICAgIGluZm8uZHdUeXBlID0gMHgxMDAwOwotICAgIGluZm8uc3pOYW1lID0gbm9ybWFs
aXplVGhyZWFkTmFtZShzelRocmVhZE5hbWUpOworICAgIGluZm8uc3pOYW1lID0gbmFtZS5kYXRh
KCk7CiAgICAgaW5mby5kd1RocmVhZElEID0gR2V0Q3VycmVudFRocmVhZElkKCk7CiAgICAgaW5m
by5kd0ZsYWdzID0gMDsKIApAQCAtMTk5LDcgKzIwMCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBfX3N0
ZGNhbGwgd3RmVGhyZWFkRW50cnlQb2ludCh2b2lkKiBwYXJhbSkKICAgICByZXR1cm4gMDsKIH0K
IAotVGhyZWFkSWRlbnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBl
bnRyeVBvaW50LCB2b2lkKiBkYXRhLCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKQorVGhyZWFkSWRl
bnRpZmllciBjcmVhdGVUaHJlYWRJbnRlcm5hbChUaHJlYWRGdW5jdGlvbiBlbnRyeVBvaW50LCB2
b2lkKiBkYXRhLCBUaHJlYWROYW1lIHRocmVhZE5hbWUpCiB7CiAgICAgdW5zaWduZWQgdGhyZWFk
SWRlbnRpZmllciA9IDA7CiAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwIGIvU291cmNlL1dURi93dGYvV29y
a1F1ZXVlLmNwcAppbmRleCBiMmEwYTc5ZjRhYjVhYWMyODliMTY5ZjkyYmJjMWE4MDU4NTJjYTMy
Li5jNzY0NzhmZDU2M2I3ZThhOWYxN2Y0YjRhNzcwOGY0ODFlNDA5YzdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1
ZS5jcHAKQEAgLTM5LDEyICszOSwxMiBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotUmVmPFdvcmtR
dWV1ZT4gV29ya1F1ZXVlOjpjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1Mg
cW9zKQorUmVmPFdvcmtRdWV1ZT4gV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSBuYW1lLCBU
eXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya1F1ZXVl
KG5hbWUsIHR5cGUsIHFvcykpOwogfQogCi1Xb3JrUXVldWU6OldvcmtRdWV1ZShjb25zdCBjaGFy
KiBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCitXb3JrUXVldWU6OldvcmtRdWV1ZShUaHJlYWRO
YW1lIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUo
bmFtZSwgdHlwZSwgcW9zKTsKIH0KQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBXb3JrUXVldWU6OmNv
bmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lk
IChzaXoKIAogICAgICAgICAgICAgbV93b3JrZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodGhy
ZWFkQ291bnQpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRocmVhZENv
dW50OyArK2kpIHsKLSAgICAgICAgICAgICAgICBtX3dvcmtlcnMuYXBwZW5kKGNyZWF0ZVRocmVh
ZChTdHJpbmc6OmZvcm1hdCgiVGhyZWFkUG9vbCBXb3JrZXIgJXUiLCBpKS51dGY4KCkuZGF0YSgp
LCBbdGhpc10geworICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoY3JlYXRlVGhyZWFk
KFRocmVhZE5hbWUgeyAiVGhyZWFkUG9vbCBXb3JrZXIiLCAiQ29uY3VycmVudEFwcGx5IiB9LCBb
dGhpc10gewogICAgICAgICAgICAgICAgICAgICB0aHJlYWRCb2R5KCk7CiAgICAgICAgICAgICAg
ICAgfSkpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1
ZXVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAppbmRleCBkOTE4NGI0ODI3YmYxMGJh
MzhhNDgxNDgwNWIyZjMzNjQ2ZDc2ZTAzLi40MjcyNGFmNjgzZGRhMTc2YTZkNmUwNmM0OWI0OGY2
ODkzZGI0OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uRGlzcGF0Y2hlci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZE5hbWUuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKQEAgLTY3
LDcgKzY4LDcgQEAgY2xhc3MgV29ya1F1ZXVlIGZpbmFsIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0
Y2hlciB7CiAgICAgICAgIEJhY2tncm91bmQKICAgICB9OwogCi0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBSZWY8V29ya1F1ZXVlPiBjcmVhdGUoY29uc3QgY2hhciogbmFtZSwgVHlwZSA9
IFR5cGU6OlNlcmlhbCwgUU9TID0gUU9TOjpEZWZhdWx0KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIFJlZjxXb3JrUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lLCBUeXBlID0gVHlwZTo6
U2VyaWFsLCBRT1MgPSBRT1M6OkRlZmF1bHQpOwogICAgIHZpcnR1YWwgfldvcmtRdWV1ZSgpOwog
CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4m
Jikgb3ZlcnJpZGU7CkBAIC04NSw5ICs4Niw5IEBAIGNsYXNzIFdvcmtRdWV1ZSBmaW5hbCA6IHB1
YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgV29ya1F1ZXVlKGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUsIFFPUyk7CisgICAgZXhwbGljaXQg
V29ya1F1ZXVlKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAKLSAgICB2b2lkIHBsYXRmb3JtSW5p
dGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOworICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplKFRocmVhZE5hbWUsIFR5cGUsIFFPUyk7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFs
aWRhdGUoKTsKIAogI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9Xb3JrUXVldWVDb2NvYS5jcHAKaW5kZXggOGVkYmYyM2M1NTg4ODgyOTZjMTRjOGM5ZDBlZTBj
NGY2MzMwYjMyMy4uN2Y1NTE2OTdlYTU5YTM5YzkxMTcwMTk5YjNjYjlhYzg1NDM5NDM4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcApAQCAtNzksNyArNzksNyBAQCBz
dGF0aWMgZGlzcGF0Y2hfcXVldWVfdCB0YXJnZXRRdWV1ZUZvclFPU0NsYXNzKFdvcmtRdWV1ZTo6
UU9TIHFvcykKIH0KICNlbmRpZgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KGNvbnN0IGNoYXIqIG5hbWUsIFR5cGUgdHlwZSwgUU9TIHFvcykKK3ZvaWQgV29ya1F1ZXVlOjpw
bGF0Zm9ybUluaXRpYWxpemUoVGhyZWFkTmFtZSBuYW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7
CiAgICAgZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0dHIgPSB0eXBlID09IFR5cGU6OkNvbmN1cnJl
bnQgPyBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5UIDogRElTUEFUQ0hfUVVFVUVfU0VSSUFMOwog
I2lmIEhBVkUoUU9TX0NMQVNTRVMpCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgV29ya1F1ZXVlOjpw
bGF0Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSB0eXBlLCBRT1MgcW9zKQog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocW9zKTsKICNlbmRpZgotICAgIG1fZGlzcGF0Y2hRdWV1
ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZShuYW1lLCBhdHRyKTsKKyAgICBtX2Rpc3BhdGNoUXVl
dWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUobmFtZS5uYW1lKCkuZGF0YSgpLCBhdHRyKTsKICNp
ZiAhSEFWRShRT1NfQ0xBU1NFUykKICAgICBpZiAocW9zICE9IFdvcmtRdWV1ZTo6UU9TOjpEZWZh
dWx0KQogICAgICAgICBkaXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKG1fZGlzcGF0Y2hRdWV1ZSwg
dGFyZ2V0UXVldWVGb3JRT1NDbGFzcyhxb3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2VmbC9EaXNwYXRjaFF1ZXVlRWZsLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNwYXRjaFF1
ZXVlRWZsLmNwcAppbmRleCBiNGFkMmJkYzQzOGY5ZDk0NTdlM2Y3ZmI0OTIyNGM2ODE1OTc2ZGFm
Li4yZjEwYjAyYTBlMTkzYzJmMjkyZWM5MGMyYmMyYjI4ZTRlZDNjODhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuY3BwCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyBjb25z
dCBjaGFyIHdha2VVcFRocmVhZE1lc3NhZ2UgPSAnVyc7CiAKIGNsYXNzIERpc3BhdGNoUXVldWU6
OlRocmVhZENvbnRleHQgewogcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHN0YXJ0KGNvbnN0IGNo
YXIqIG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gZGlzcGF0Y2hRdWV1ZSkKKyAgICBz
dGF0aWMgdm9pZCBzdGFydChUaHJlYWROYW1lIG5hbWUsIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1
ZT4gZGlzcGF0Y2hRdWV1ZSkKICAgICB7CiAgICAgICAgIC8vIFRoZSBEaXNwYXRjaFF1ZXVlVGhy
ZWFkQ29udGV4dCBpbnN0YW5jZSB3aWxsIGJlIHBhc3NlZCB0byB0aGUgdGhyZWFkIGZ1bmN0aW9u
IGFuZCBkZWxldGVkIGluIGl0LgogICAgICAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKHJl
aW50ZXJwcmV0X2Nhc3Q8V1RGOjpUaHJlYWRGdW5jdGlvbj4oJlRocmVhZENvbnRleHQ6OmZ1bmN0
aW9uKSwgbmV3IFRocmVhZENvbnRleHQoZGlzcGF0Y2hRdWV1ZSksIG5hbWUpKTsKQEAgLTYxLDcg
KzYxLDcgQEAgY2xhc3MgRGlzcGF0Y2hRdWV1ZTo6VGhyZWFkQ29udGV4dCB7CiAgICAgUmVmUHRy
PERpc3BhdGNoUXVldWU+IG1fZGlzcGF0Y2hRdWV1ZTsKIH07CiAKLVBhc3NSZWZQdHI8RGlzcGF0
Y2hRdWV1ZT4gRGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpCitQYXNzUmVm
UHRyPERpc3BhdGNoUXVldWU+IERpc3BhdGNoUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIG5hbWUp
CiB7CiAgICAgUmVmUHRyPERpc3BhdGNoUXVldWU+IGRpc3BhdGNoUXVldWUgPSBhZG9wdFJlZjxE
aXNwYXRjaFF1ZXVlPihuZXcgRGlzcGF0Y2hRdWV1ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaCBiL1NvdXJjZS9XVEYvd3RmL2VmbC9EaXNw
YXRjaFF1ZXVlRWZsLmgKaW5kZXggZmM1NTUxOWIwMWNlZThmZTA0OWMxM2MxZTVmY2ZjN2Q5OTc5
NGYyNi4uNTcwOTQyNmRiYWViYWE3MTE1ZjYyODI2YmMyNGRkNGZiMmU0MWU5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZWZsL0Rpc3BhdGNoUXVldWVFZmwuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9lZmwvRGlzcGF0Y2hRdWV1ZUVmbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
IDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkTmFt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMzcs
NyArMzgsNyBAQCBjbGFzcyBXb3JrSXRlbTsKIAogY2xhc3MgRGlzcGF0Y2hRdWV1ZSA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEaXNwYXRjaFF1ZXVlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gY3JlYXRlKGNvbnN0IGNoYXIqIG5hbWUpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0ZShUaHJlYWROYW1lKTsK
ICAgICB+RGlzcGF0Y2hRdWV1ZSgpOwogCiAgICAgdm9pZCBkaXNwYXRjaChzdGQ6OnVuaXF1ZV9w
dHI8V29ya0l0ZW0+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2VmbC9Xb3JrUXVldWVF
ZmwuY3BwIGIvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKaW5kZXggZGE5MTNi
ZjA0Y2U3MjczMTA3NjdlZjQ3OTRmZGQyYjg3OGE1ZjRlZC4uODMyNWY1ZDZjMzE0ZDRmYmI4MzMz
ZjIxOTBkM2ZiY2YxOTQ3ZTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZWZsL1dvcmtR
dWV1ZUVmbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZWZsL1dvcmtRdWV1ZUVmbC5jcHAKQEAg
LTI1LDcgKzI1LDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLXZvaWQgV29ya1F1ZXVlOjpwbGF0
Zm9ybUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQordm9pZCBXb3JrUXVl
dWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShUaHJlYWROYW1lIG5hbWUsIFR5cGUsIFFPUykKIHsKICAg
ICBtX2Rpc3BhdGNoUXVldWUgPSBEaXNwYXRjaFF1ZXVlOjpjcmVhdGUobmFtZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwIGIvU291
cmNlL1dURi93dGYvZ2VuZXJpYy9Xb3JrUXVldWVHZW5lcmljLmNwcAppbmRleCBmNTk0ZTI0MDEx
NmQ0ZTA0M2Q0ZGMzYTNmNmNmN2MwN2Q0YjIzNDQyLi5kZjZlMDcyMmQxZTQwM2M3YWI5NzAwNzBk
NTdmNjNiNjI2MTI0MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1dvcmtR
dWV1ZUdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvV29ya1F1ZXVlR2Vu
ZXJpYy5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5h
bWUsIFR5cGUsIFFPUykKK3ZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoVGhyZWFk
TmFtZSBuYW1lLCBUeXBlLCBRT1MpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9pbml0aWFs
aXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3dvcmtRdWV1ZVRocmVhZCA9IGNyZWF0
ZVRocmVhZChuYW1lLCBbdGhpc10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9B
U0NJSUxpdGVyYWwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzk0NmE5Mjk4NGY5NDRiMTM1ZDcwMjlmNTMxZGQ3MWI4Y2E2OTk2NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQVNDSUlMaXRlcmFsLmgKQEAgLTAsMCArMSw0
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgQVNDSUlMaXRlcmFsIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBjb25zdGV4cHIgQVNDSUlMaXRlcmFsKGNvbnN0IGNoYXIq
IGNoYXJhY3RlcnMpCisgICAgICAgIDogbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCisgICAgewor
ICAgIH0KKworICAgIGNvbnN0ZXhwciBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gbV9jaGFyYWN0ZXJzOworICAgIH0KKworcHJpdmF0ZToKKyAgICBj
b25zdCBjaGFyKiBtX2NoYXJhY3RlcnM7Cit9OworCit9CisKK3VzaW5nIFdURjo6QVNDSUlMaXRl
cmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggMDFjNzY4MTBiZDZjZDFlZGJiZWY4YWZl
ZDg0MmY4MDgwZGY3ZGFkMy4uODBlNjQ0NzFmZWQwODg3NDA1MzM2NTNmNmY0ZTY5NmVhZTA0YjBj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC0yNiw2ICsyNiw3IEBACiAvLyBvbiBzeXN0
ZW1zIHdpdGhvdXQgY2FzZS1zZW5zaXRpdmUgZmlsZSBzeXN0ZW1zLgogCiAjaW5jbHVkZSA8d3Rm
L3RleHQvQVNDSUlGYXN0UGF0aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0FTQ0lJTGl0ZXJhbC5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIAogI2lmZGVmIF9fT0JKQ19fCkBA
IC0zNCw4ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1jbGFzcyBBU0NJSUxpdGVyYWw7
Ci0KIC8vIERlY2xhcmF0aW9ucyBvZiBzdHJpbmcgb3BlcmF0aW9ucwogCiBXVEZfRVhQT1JUX1NU
UklOR19BUEkgaW50IGNoYXJhY3RlcnNUb0ludFN0cmljdChjb25zdCBMQ2hhciosIHNpemVfdCwg
Ym9vbCogb2sgPSBudWxscHRyLCBpbnQgYmFzZSA9IDEwKTsKQEAgLTY4MSwxNSArNjgwLDYgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8U3RyaW5nPiB7CiAKIHRlbXBsYXRlIDw+IHN0
cnVjdCBWZWN0b3JUcmFpdHM8U3RyaW5nPiA6IFNpbXBsZUNsYXNzVmVjdG9yVHJhaXRzIHsgfTsK
IAotY2xhc3MgQVNDSUlMaXRlcmFsIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBBU0NJSUxpdGVy
YWwoY29uc3QgY2hhciogY2hhcmFjdGVycykgOiBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykgeyB9
Ci0gICAgb3BlcmF0b3IgY29uc3QgY2hhciooKSB7IHJldHVybiBtX2NoYXJhY3RlcnM7IH0KLQot
cHJpdmF0ZToKLSAgICBjb25zdCBjaGFyKiBtX2NoYXJhY3RlcnM7Ci19OwotCiAvLyBTaGFyZWQg
Z2xvYmFsIGVtcHR5IHN0cmluZy4KIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBjb25zdCBTdHJpbmcm
IGVtcHR5U3RyaW5nKCk7CiAKQEAgLTczOCw3ICs3MjgsNiBAQCB1c2luZyBXVEY6OmZpbmQ7CiB1
c2luZyBXVEY6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnM7CiB1c2luZyBXVEY6OmlzU3BhY2VPck5l
d2xpbmU7CiB1c2luZyBXVEY6OnJldmVyc2VGaW5kOwotdXNpbmcgV1RGOjpBU0NJSUxpdGVyYWw7
CiAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvd2luL01haW5UaHJlYWRXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL01h
aW5UaHJlYWRXaW4uY3BwCmluZGV4IGYzMjRlOGI2MWRkNDFmYTA1NjA4NjNiNmM1ODE5MTBmODY3
ZDM2ZWIuLjgxNTFmMjU2ODEwNTFmZjM0NjBhMDI2YzlhNmEyNjc5YWQyMWNiNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9NYWluVGhyZWFkV2luLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi93aW4vTWFpblRocmVhZFdpbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBpbml0aWFs
aXplTWFpblRocmVhZFBsYXRmb3JtKCkKICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNF
REVGQVVMVCwgMCwgSFdORF9NRVNTQUdFLCAwLCAwLCAwKTsKICAgICB0aHJlYWRpbmdGaXJlZE1l
c3NhZ2UgPSBSZWdpc3RlcldpbmRvd01lc3NhZ2VXKEwiY29tLmFwcGxlLldlYktpdC5NYWluVGhy
ZWFkRmlyZWQiKTsKIAotICAgIGluaXRpYWxpemVDdXJyZW50VGhyZWFkSW50ZXJuYWwoIk1haW4g
VGhyZWFkIik7CisgICAgaW5pdGlhbGl6ZUN1cnJlbnRUaHJlYWRJbnRlcm5hbChUaHJlYWROYW1l
IHsgIk1haW4gVGhyZWFkIiB9KTsKIH0KIAogdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25z
T25NYWluVGhyZWFkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVX
aW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKaW5kZXggZjRjNGI4
Yzc3ZGNlOTk1ZjU3ZjI1NjcwMmMxZjljZWY4YzY1YTVhYS4uNzEyNGFjZmM5N2RjYWU5YTIyMTQ4
NDI2ODI5Yjg0ZDM2ZDgyYzI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1dvcmtR
dWV1ZVdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29y
a1RocmVhZCgpCiAgICAgbV9mdW5jdGlvblF1ZXVlTG9jay51bmxvY2soKTsKIH0KIAotdm9pZCBX
b3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1Mp
Cit2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1Jbml0aWFsaXplKFRocmVhZE5hbWUgbmFtZSwgVHlw
ZSwgUU9TKQogewogICAgIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCA9IDA7CiAgICAgbV90aW1l
clF1ZXVlID0gOjpDcmVhdGVUaW1lclF1ZXVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDg3NDc2NDM4Y2Fl
NjVhNjM4N2Q5MDFhNzUyODgxNWVjOTU0N2YyMzIuLmYyYjA5ZDhlNzZmZTJmOGExNzNiYjk5MjY2
NzU3YmMxMGU2ODk1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01Niw3ICs1Niw3IEBAIElEQlNlcnZlcjo6
SURCU2VydmVyKElEQkJhY2tpbmdTdG9yZVRlbXBvcmFyeUZpbGVIYW5kbGVyJiBmaWxlSGFuZGxl
cikKICAgICA6IG1fYmFja2luZ1N0b3JlVGVtcG9yYXJ5RmlsZUhhbmRsZXIoZmlsZUhhbmRsZXIp
CiB7CiAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX2RhdGFiYXNlVGhyZWFkQ3JlYXRpb25Mb2Nr
KTsKLSAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJl
YWRFbnRyeSwgdGhpcywgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiKTsKKyAgICBtX3RocmVhZElE
ID0gY3JlYXRlVGhyZWFkKElEQlNlcnZlcjo6ZGF0YWJhc2VUaHJlYWRFbnRyeSwgdGhpcywgVGhy
ZWFkTmFtZSB7ICJJbmRleGVkRGF0YWJhc2UgU2VydmVyIiwgIklEQlNlcnZlciIgfSk7CiB9CiAK
IElEQlNlcnZlcjo6SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlQYXRo
LCBJREJCYWNraW5nU3RvcmVUZW1wb3JhcnlGaWxlSGFuZGxlciYgZmlsZUhhbmRsZXIpCkBAIC02
Niw3ICs2Niw3IEBAIElEQlNlcnZlcjo6SURCU2VydmVyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLCBJREJCYWNraW5nU3RvcmVUZW1wb3JhCiAgICAgTE9HKEluZGV4ZWREQiwg
IklEQlNlcnZlciBjcmVhdGVkIGF0IHBhdGggJXMiLCBkYXRhYmFzZURpcmVjdG9yeVBhdGgudXRm
OCgpLmRhdGEoKSk7CiAKICAgICBMb2NrZXI8TG9jaz4gbG9ja2VyKG1fZGF0YWJhc2VUaHJlYWRD
cmVhdGlvbkxvY2spOwotICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoSURCU2VydmVyOjpk
YXRhYmFzZVRocmVhZEVudHJ5LCB0aGlzLCAiSW5kZXhlZERhdGFiYXNlIFNlcnZlciIpOworICAg
IG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoSURCU2VydmVyOjpkYXRhYmFzZVRocmVhZEVudHJ5
LCB0aGlzLCBUaHJlYWROYW1lIHsgIkluZGV4ZWREYXRhYmFzZSBTZXJ2ZXIiLCAiSURCU2VydmVy
IiB9KTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OnJlZ2lzdGVyQ29ubmVjdGlvbihJREJDb25uZWN0
aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCmluZGV4IDI5MmYwNWI4Y2Q1MDZlMjI5
YWU2YjhiZDg2MjljMDk1NGQxODQ1OWIuLjFlYjY3ZGMxNDY0YmJiNDZkMTMyZWYxZmVkNjQ1ODM2
MmI2MTAxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXN5
bmNBdWRpb0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXN5bmNBdWRpb0RlY29kZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIEFzeW5jQXVkaW9EZWNvZGVy
OjpBc3luY0F1ZGlvRGVjb2RlcigpCiB7CiAgICAgLy8gU3RhcnQgd29ya2VyIHRocmVhZC4KICAg
ICBMb2NrSG9sZGVyIGxvY2sobV90aHJlYWRDcmVhdGlvbk11dGV4KTsKLSAgICBtX3RocmVhZElE
ID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9EZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhpcywgIkF1
ZGlvIERlY29kZXIiKTsKKyAgICBtX3RocmVhZElEID0gY3JlYXRlVGhyZWFkKEFzeW5jQXVkaW9E
ZWNvZGVyOjp0aHJlYWRFbnRyeSwgdGhpcywgVGhyZWFkTmFtZSB7ICJBdWRpbyBEZWNvZGVyIiB9
KTsKIH0KIAogQXN5bmNBdWRpb0RlY29kZXI6On5Bc3luY0F1ZGlvRGVjb2RlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggNTA1MjMwNDE5N2NkZWRkZTQ3ZmRjYmI5MTJlYzQ3
NDA1NTc5NzQyOC4uZTI3NjM1ZTM0MjYxMTVmNzlkODNhOTRlNDIyYjgzMDg3NjRiNGUzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIE9mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c3RhcnRSZW5kZXJpbmcoKQogICAgIGlmICghbV9zdGFy
dGVkUmVuZGVyaW5nKSB7CiAgICAgICAgIG1fc3RhcnRlZFJlbmRlcmluZyA9IHRydWU7CiAgICAg
ICAgIHJlZigpOyAvLyBTZWUgY29ycmVzcG9uZGluZyBkZXJlZigpIGNhbGwgaW4gbm90aWZ5Q29t
cGxldGVEaXNwYXRjaCgpLgotICAgICAgICBtX3JlbmRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChP
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6Om9mZmxpbmVSZW5kZXJFbnRyeSwgdGhpcywgIm9m
ZmxpbmUgcmVuZGVyZXIiKTsKKyAgICAgICAgbV9yZW5kZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQo
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlOjpvZmZsaW5lUmVuZGVyRW50cnksIHRoaXMsIFRo
cmVhZE5hbWUgeyAib2ZmbGluZSByZW5kZXJlciIsICJPZmZsaW5lUmVuZGVyZXIiIH0pOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGhyZWFkLmNwcAppbmRleCAwZGRlNWY3MjY4ZWU2NDJjMDA0MzA1Y2VmZTM2YjFjOWU0
NGI4N2QzLi43YWIxOGM4NGZkMDAwNmRmODJmN2Y0ZWU3YmI5ZTUxNDZlY2QzZjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFk
LmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIERhdGFiYXNlVGhyZWFkOjpzdGFydCgpCiAgICAg
aWYgKG1fdGhyZWFkSUQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgbV90aHJlYWRJRCA9
IGNyZWF0ZVRocmVhZChEYXRhYmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWRTdGFydCwgdGhpcywg
IldlYkNvcmU6IERhdGFiYXNlIik7CisgICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChEYXRh
YmFzZVRocmVhZDo6ZGF0YWJhc2VUaHJlYWRTdGFydCwgdGhpcywgVGhyZWFkTmFtZSB7ICJXZWJD
b3JlOiBEYXRhYmFzZSIsICJXZWJEQiIgfSk7CiAKICAgICByZXR1cm4gbV90aHJlYWRJRDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDZmOWZj
YTY3ZjNjNDdhZGRjODNkZWM4Y2IwZDVlYjhjY2I0MGQ3NDMuLjMzMTA5ZjZlMjY2MDMwYmZhN2Rl
MzZkNjY5NzYxYWQ2ZjNhZmFlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0ND
b250cm9sbGVyLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgR0NDb250cm9sbGVyOjpnYXJi
YWdlQ29sbGVjdE5vd0lmTm90RG9uZVJlY2VudGx5KCkKIAogdm9pZCBHQ0NvbnRyb2xsZXI6Omdh
cmJhZ2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcoYm9vbCB3YWl0VW50aWxE
b25lKQogewotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29s
bGVjdCwgMCwgIldlYkNvcmU6IEdDQ29udHJvbGxlciIpOworICAgIFRocmVhZElkZW50aWZpZXIg
dGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoY29sbGVjdCwgMCwgVGhyZWFkTmFtZSB7ICJXZWJDb3Jl
OiBHQyBDb250cm9sbGVyIiwgIkdDQ29udHJvbGxlciIgfSk7CiAKICAgICBpZiAod2FpdFVudGls
RG9uZSkgewogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IGY2OTFmNmIwOWYyNmE1ZDY5NTRj
ZTE2MzdiMzI3MjY2MGIxNjljMDAuLjdlOTlmZDI0NWFjMGY4NjYzNjM1YjdlYzQ0OWU0NGFiNGM5
NzA5ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCkBAIC0zMiw3ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU3VidGxlQ3J5cHRvOjpTdWJ0bGVDcnlwdG8o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyKCZjb250ZXh0KQotICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUo
ImNvbS5hcHBsZS5XZWJLaXQuQ3J5cHRvUXVldWUiKSkKKyAgICAsIG1fd29ya1F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5DcnlwdG9RdWV1ZSIs
ICJDcnlwdG9RdWV1ZSIgfSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQXN5bmNG
aWxlU3RyZWFtLmNwcAppbmRleCA1YjgxMzYxMTJhZGRlYTE0NWM5NTU5MGE4YTNjMTc2MWYxYjFi
OTgzLi40NTc5N2ExYmVlMThkOWQ4MWJiMWQ0NDJjNDUwMTNmZTYwNjZhYWE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0FzeW5jRmlsZVN0cmVhbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0
YXRpYyB2b2lkIGNhbGxPbkZpbGVUaHJlYWQoRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikK
IAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBjcmVhdGVGaWxlVGhyZWFkT25jZTsKICAgICBz
dGQ6OmNhbGxfb25jZShjcmVhdGVGaWxlVGhyZWFkT25jZSwgW10gewotICAgICAgICBjcmVhdGVU
aHJlYWQoIldlYkNvcmU6IEFzeW5jRmlsZVN0cmVhbSIsIFtdIHsKKyAgICAgICAgY3JlYXRlVGhy
ZWFkKFRocmVhZE5hbWUgeyAiV2ViQ29yZTogQXN5bmNGaWxlU3RyZWFtIiwgIkFzeW5jRmlsZVN0
cmVhbSIgfSwgW10gewogICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgIEF1
dG9kcmFpbmVkUG9vbCBwb29sOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcAppbmRleCBlZTQzN2U4NjI4ZWJmNGU4NjMyN2NjNzcwMzBmNWY2OTRlMzBiYjJk
Li4wNjdlY2RkZjE3MzIzMjQ2OWViMDJkNDhlOGVkNjEwNWIwZGJkZDhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCBi
b29sIEljb25EYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSkKICAgICAvLyBMb2NrIGhlcmUgYXMgd2VsbCBhcyBmaXJzdCB0aGluZyBp
biB0aGUgdGhyZWFkIHNvIHRoZSB0aHJlYWQgZG9lc24ndCBhY3R1YWxseSBjb21tZW5jZSB1bnRp
bCB0aGUgY3JlYXRlVGhyZWFkKCkgY2FsbCAKICAgICAvLyBjb21wbGV0ZXMgYW5kIG1fc3luY1Ro
cmVhZFJ1bm5pbmcgaXMgcHJvcGVybHkgc2V0CiAgICAgbV9zeW5jTG9jay5sb2NrKCk7Ci0gICAg
bV9zeW5jVGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3lu
Y1RocmVhZFN0YXJ0LCB0aGlzLCAiV2ViQ29yZTogSWNvbkRhdGFiYXNlIik7CisgICAgbV9zeW5j
VGhyZWFkID0gY3JlYXRlVGhyZWFkKEljb25EYXRhYmFzZTo6aWNvbkRhdGFiYXNlU3luY1RocmVh
ZFN0YXJ0LCB0aGlzLCBUaHJlYWROYW1lIHsgIldlYkNvcmU6IEljb25EYXRhYmFzZSIsICJJY29u
REIiIH0pOwogICAgIG1fc3luY1RocmVhZFJ1bm5pbmcgPSBtX3N5bmNUaHJlYWQ7CiAgICAgbV9z
eW5jTG9jay51bmxvY2soKTsKICAgICBpZiAoIW1fc3luY1RocmVhZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Jlc291cmNlVXNhZ2VUaHJlYWQuY3BwCmluZGV4IDkxMjAwYzM0NWY0NTVmOTZkNDk0
YmZkMmFkNzAzZjI4YzVjNjI5ZDEuLmFmNGZmOGIxMzJjYWQxM2FjZjYyYTgwM2VjYzAxMWY0NzI1
ZTNlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZVRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcApA
QCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgUmVzb3VyY2VVc2FnZVRocmVhZDo6Y3JlYXRlVGhyZWFk
SWZOZWVkZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ZtID0gJmNvbW1vblZNKCk7Ci0g
ICAgbV90aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKHRocmVhZENhbGxiYWNrLCB0aGlz
LCAiV2ViQ29yZTogUmVzb3VyY2VVc2FnZSIpOworICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNy
ZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywgdGhpcywgVGhyZWFkTmFtZSB7ICJXZWJDb3JlOiBS
ZXNvdXJjZVVzYWdlIiwgIlJlc291cmNlVXNhZ2UiIH0pOwogfQogCiB2b2lkIFJlc291cmNlVXNh
Z2VUaHJlYWQ6OnRocmVhZENhbGxiYWNrKHZvaWQqIHJlc291cmNlVXNhZ2VUaHJlYWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAppbmRl
eCA3MzBjMGE2YmQ5M2Y0NTc4ZDFlZGJmOWFjZTFjZDg2NTY2ZTZjOTg4Li5mNjQxNDI0MGFlYjY0
YzM3NWEyYWZiMjZiNWM0Zjk5M2UyZjE4NjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RocmVhZC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBT
Y3JvbGxpbmdUaHJlYWQ6OmNyZWF0ZVRocmVhZElmTmVlZGVkKCkKICAgICB7CiAgICAgICAgIHN0
ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2luaXRpYWxpemVSdW5Mb29wTXV0ZXgpOwogCi0g
ICAgICAgIG1fdGhyZWFkSWRlbnRpZmllciA9IGNyZWF0ZVRocmVhZCh0aHJlYWRDYWxsYmFjaywg
dGhpcywgIldlYkNvcmU6IFNjcm9sbGluZyIpOworICAgICAgICBtX3RocmVhZElkZW50aWZpZXIg
PSBjcmVhdGVUaHJlYWQodGhyZWFkQ2FsbGJhY2ssIHRoaXMsIFRocmVhZE5hbWUgeyAiV2ViQ29y
ZTogU2Nyb2xsaW5nIiwgIlNjcm9sbGluZyIgfSk7CiAgICAgICAgIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICAgICBtX2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uVmFyaWFibGUud2FpdChs
b2NrLCBbdGhpc117IHJldHVybiBtX3RocmVhZFJ1bkxvb3A7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXggZjcx
MzMzYzVhMzdhOTk4OTY0ZjNhNzQxYzczMTUyZTk1MTQ2NmNmNi4uOGJlNDI3MTdhMzkwNDRkY2Y4
MTE2ZmQ0OWEyMjM3ZDMzYjdhZjlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9p
ZCBIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRBc3luY2hyb25vdXNseSgpCiAgICAgCiAgICAgaWYg
KCFtX2hydGZEYXRhYmFzZS5nZXQoKSAmJiAhbV9kYXRhYmFzZUxvYWRlclRocmVhZCkgewogICAg
ICAgICAvLyBTdGFydCB0aGUgYXN5bmNocm9ub3VzIGRhdGFiYXNlIGxvYWRpbmcgcHJvY2Vzcy4K
LSAgICAgICAgbV9kYXRhYmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxv
YWRlckVudHJ5LCB0aGlzLCAiSFJURiBkYXRhYmFzZSBsb2FkZXIiKTsKKyAgICAgICAgbV9kYXRh
YmFzZUxvYWRlclRocmVhZCA9IGNyZWF0ZVRocmVhZChkYXRhYmFzZUxvYWRlckVudHJ5LCB0aGlz
LCBUaHJlYWROYW1lIHsgIkhSVEYgZGF0YWJhc2UgbG9hZGVyIiwgIkhSVEZEQkxvYWRlciIgfSk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9S
ZXZlcmJDb252b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJi
Q29udm9sdmVyLmNwcAppbmRleCA5NmYzMzA4MjgwNzlhNzlhZDY0ODIwZDA3MjFjNTljNWVhMTZm
ZGIxLi5lODkyOWExN2RiNjliZGEwMTVlYmJiNzE5ZWM5OWJlOTRiZjIyNWVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTEz
MCw3ICsxMzAsNyBAQCBSZXZlcmJDb252b2x2ZXI6OlJldmVyYkNvbnZvbHZlcihBdWRpb0NoYW5u
ZWwqIGltcHVsc2VSZXNwb25zZSwgc2l6ZV90IHJlbmRlclNsaQogICAgIC8vIFN0YXJ0IHVwIGJh
Y2tncm91bmQgdGhyZWFkCiAgICAgLy8gRklYTUU6IHdvdWxkIGJlIGJldHRlciB0byB1cCB0aGUg
dGhyZWFkIHByaW9yaXR5IGhlcmUuICBJdCBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhbC10aW1lLCBi
dXQgaGlnaGVyIHRoYW4gdGhlIGRlZmF1bHQuLi4KICAgICBpZiAodGhpcy0+dXNlQmFja2dyb3Vu
ZFRocmVhZHMoKSAmJiBtX2JhY2tncm91bmRTdGFnZXMuc2l6ZSgpID4gMCkKLSAgICAgICAgbV9i
YWNrZ3JvdW5kVGhyZWFkID0gY3JlYXRlVGhyZWFkKFdlYkNvcmU6OmJhY2tncm91bmRUaHJlYWRF
bnRyeSwgdGhpcywgImNvbnZvbHV0aW9uIGJhY2tncm91bmQgdGhyZWFkIik7CisgICAgICAgIG1f
YmFja2dyb3VuZFRocmVhZCA9IGNyZWF0ZVRocmVhZChXZWJDb3JlOjpiYWNrZ3JvdW5kVGhyZWFk
RW50cnksIHRoaXMsIFRocmVhZE5hbWUgeyAiY29udm9sdXRpb24gYmFja2dyb3VuZCB0aHJlYWQi
LCAiQ29udm9sdXRpb24iIH0pOwogfQogCiBSZXZlcmJDb252b2x2ZXI6On5SZXZlcmJDb252b2x2
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVy
L0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAppbmRleCA5MTI5NDk4
MTYwZjFiZTNlNmNmZTdmMDQ3NjRiNGQ3OWQ0OGY4ZjNmLi45MGZlMGYyM2U0NTkxZjVkYjY1ZWVh
MWYxOWVmZDM3ZDQ4OWVjYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVy
LmNwcApAQCAtMzcwLDcgKzM3MCw3IEBAIFBhc3NSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJl
YWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vCiBQYXNzUmVm
UHRyPEF1ZGlvQnVzPiBjcmVhdGVCdXNGcm9tQXVkaW9GaWxlKGNvbnN0IGNoYXIqIGZpbGVQYXRo
LCBib29sIG1peFRvTW9ubywgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICBSZWZQdHI8QXVkaW9C
dXM+IHJldHVyblZhbHVlOwotICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoIkF1ZGlv
RmlsZVJlYWRlciIsIFsmcmV0dXJuVmFsdWUsIGZpbGVQYXRoLCBtaXhUb01vbm8sIHNhbXBsZVJh
dGVdIHsKKyAgICBhdXRvIHRocmVhZElEID0gY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgeyAiQXVk
aW9GaWxlUmVhZGVyIiB9LCBbJnJldHVyblZhbHVlLCBmaWxlUGF0aCwgbWl4VG9Nb25vLCBzYW1w
bGVSYXRlXSB7CiAgICAgICAgIHJldHVyblZhbHVlID0gQXVkaW9GaWxlUmVhZGVyKGZpbGVQYXRo
KS5jcmVhdGVCdXMoc2FtcGxlUmF0ZSwgbWl4VG9Nb25vKTsKICAgICB9KTsKICAgICB3YWl0Rm9y
VGhyZWFkQ29tcGxldGlvbih0aHJlYWRJRCk7CkBAIC0zODAsNyArMzgwLDcgQEAgUGFzc1JlZlB0
cjxBdWRpb0J1cz4gY3JlYXRlQnVzRnJvbUF1ZGlvRmlsZShjb25zdCBjaGFyKiBmaWxlUGF0aCwg
Ym9vbCBtaXhUb01vbm8KIFBhc3NSZWZQdHI8QXVkaW9CdXM+IGNyZWF0ZUJ1c0Zyb21Jbk1lbW9y
eUF1ZGlvRmlsZShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgZGF0YVNpemUsIGJvb2wgbWl4VG9N
b25vLCBmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIFJlZlB0cjxBdWRpb0J1cz4gcmV0dXJuVmFs
dWU7Ci0gICAgYXV0byB0aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiQXVkaW9GaWxlUmVhZGVyIiwg
WyZyZXR1cm5WYWx1ZSwgZGF0YSwgZGF0YVNpemUsIG1peFRvTW9ubywgc2FtcGxlUmF0ZV0gewor
ICAgIGF1dG8gdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSB7ICJBdWRpb0ZpbGVS
ZWFkZXIiIH0sIFsmcmV0dXJuVmFsdWUsIGRhdGEsIGRhdGFTaXplLCBtaXhUb01vbm8sIHNhbXBs
ZVJhdGVdIHsKICAgICAgICAgcmV0dXJuVmFsdWUgPSBBdWRpb0ZpbGVSZWFkZXIoZGF0YSwgZGF0
YVNpemUpLmNyZWF0ZUJ1cyhzYW1wbGVSYXRlLCBtaXhUb01vbm8pOwogICAgIH0pOwogICAgIHdh
aXRGb3JUaHJlYWRDb21wbGV0aW9uKHRocmVhZElEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCmluZGV4IDgxZmIxZjk4Njhm
MzEwZTUzNTlkMTYxZGMyZGFjYTVjYzdkM2FlZDcuLjI0NmE3MjVjMTU4ZDM5ZGEyNTVmYmIzZTI5
ZDA0Y2M2Zjc2YzcxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcApAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgSW1hZ2VG
cmFtZUNhY2hlOjpjYWNoZUZyYW1lTmF0aXZlSW1hZ2VBdEluZGV4KE5hdGl2ZUltYWdlUHRyJiYg
bmF0aXZlSW1hZ2UsCiBSZWY8V29ya1F1ZXVlPiBJbWFnZUZyYW1lQ2FjaGU6OmRlY29kaW5nUXVl
dWUoKQogewogICAgIGlmICghbV9kZWNvZGluZ1F1ZXVlKQotICAgICAgICBtX2RlY29kaW5nUXVl
dWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5JbWFnZURlY29kZXIiLCBXb3JrUXVl
dWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSk7CisgICAg
ICAgIG1fZGVjb2RpbmdRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiSW1h
Z2VEZWNvZGVyIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OlVz
ZXJJbnRlcmFjdGl2ZSk7CiAgICAgCiAgICAgcmV0dXJuICptX2RlY29kaW5nUXVldWU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IDJhN2Y4OWVi
MGRkNTUxYTc4OTc1OGRmOWFmMmQ1MGE1Y2QxZWFkNjAuLjk2YmQ3MzA0NmUzZTE4YmE5NTVhOGFk
ZjYzMDZiOTFmNDA1NDYxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCkBAIC0xMDY3LDcgKzEwNjcsNyBAQCBSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0Ns
aWVudDo6UmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGllbnQoV2ViS2l0V2ViU3JjKiBzcmMsCiAg
ICAgOiBTdHJlYW1pbmdDbGllbnQoc3JjKQogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faW5p
dGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7Ci0gICAgbV90aHJlYWQgPSBjcmVhdGVUaHJl
YWQoIlJlc291cmNlSGFuZGxlU3RyZWFtaW5nQ2xpZW50IiwgW3RoaXMsIHJlcXVlc3QgPSBXVEZN
b3ZlKHJlcXVlc3QpXSB7CisgICAgbV90aHJlYWQgPSBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSB7
ICJSZXNvdXJjZUhhbmRsZVN0cmVhbWluZ0NsaWVudCIsICJSU3RyZWFtaW5nIiB9LCBbdGhpcywg
cmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldIHsKICAgICAgICAgewogICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICAg
ICAgICAgIG1fcnVuTG9vcCA9ICZSdW5Mb29wOjpjdXJyZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51eC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9saW51eC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJMaW51
eC5jcHAKaW5kZXggNGNkMWJkZGYzYWI3NjZhMDAwNDhmOGFjNTc2ZmEyODQ3ZWM2MjcwZC4uMTgz
YTk0MWM2MGI0ODUyYTY3MzQxNDAyZmUxYmExNmE1ODQzNTgzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbGludXgvTWVtb3J5UHJlc3N1cmVIYW5kbGVyTGludXguY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2xpbnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxp
bnV4LmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6RXZlbnRG
RFBvbGxlcjo6RXZlbnRGRFBvbGxlcihpbnQgZmQsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoCiAgICAg
fSwgdGhpcywgbnVsbHB0cik7CiAgICAgZ19zb3VyY2VfYXR0YWNoKG1fc291cmNlLmdldCgpLCBu
dWxscHRyKTsKICNlbHNlCi0gICAgbV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZCgiV2ViQ29yZTog
TWVtb3J5UHJlc3N1cmVIYW5kbGVyIiwgW3RoaXNdIHsgcmVhZEFuZE5vdGlmeSgpOyB9CisgICAg
bV90aHJlYWRJRCA9IGNyZWF0ZVRocmVhZChUaHJlYWROYW1lIHsgIk1lbW9yeVByZXNzdXJlSGFu
ZGxlciIsICJNZW1QcmVzc0hhbmRsZXIiIH0sIFt0aGlzXSB7IHJlYWRBbmROb3RpZnkoKTsgfQog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Js
b2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IGUxNDM0NTFmZGFhMzM4YzM3MTAxMGI3ZmVkZmRlMDUy
YTVlMzk5ZjcuLmFlNGM3OWYyZjFjZjU2MGNmOGVhZTg1MDE1MDFhYWI5OGJmOTE1ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmNwcApAQCAtMjQzLDcgKzI0Myw3IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlJ
bXBsOjpibG9iU2l6ZShjb25zdCBVUkwmIHVybCkKIAogc3RhdGljIFdvcmtRdWV1ZSYgYmxvYlV0
aWxpdHlRdWV1ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxXb3JrUXVldWU+
PiBxdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5CbG9iVXRpbGl0eSIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1ZXVlPj4gcXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoVGhyZWFkTmFtZSB7ICJvcmcud2Via2l0LkJsb2JVdGlsaXR5IiwgIkJsb2JVdGlsaXR5IiB9
LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91bmQpKTsK
ICAgICByZXR1cm4gcXVldWUuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXggYWJmYjQ2Y2VjZjgyMTQzYjlm
ZmFjZDAxYmU1Nzg2YTUzYTAwOGVjMC4uYWVhMmY4Njc2ZWQ4ZTc0NTc1Mzc2MzEzOTJkY2Q1NWVj
MGUxOTQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMRGVjb2Rlci5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVy
IHsKIAogc3RhdGljIFdvcmtRdWV1ZSYgZGVjb2RlUXVldWUoKQogewotICAgIHN0YXRpYyBhdXRv
JiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkRhdGFVUkxEZWNvZGVyIiku
bGVha1JlZigpOworICAgIHN0YXRpYyBhdXRvJiBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRo
cmVhZE5hbWUgeyAib3JnLndlYmtpdC5EYXRhVVJMRGVjb2RlciIsICJEYXRhVVJMRGVjb2RlciIg
fSkubGVha1JlZigpOwogICAgIHJldHVybiBxdWV1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Mb2FkZXJSdW5Mb29wQ0YuY3BwCmluZGV4IDQ2
Yjg5OTRhODQxZWY3MWVhMjc5Y2U3N2NiYzhmYjQzYzI5ZjBhNjIuLjcxODBhZGQyNjM4NTIwODA3
ODZiN2NkOTNkODEwZDI2NGQwMzZlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvTG9hZGVyUnVuTG9vcENGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL0xvYWRlclJ1bkxvb3BDRi5jcHAKQEAgLTc3LDcgKzc3LDcgQEAg
Q0ZSdW5Mb29wUmVmIGxvYWRlclJ1bkxvb3AoKQogICAgIHN0ZDo6dW5pcXVlX2xvY2s8U3RhdGlj
TG9jaz4gbG9jayhsb2FkZXJSdW5Mb29wTXV0ZXgpOwogCiAgICAgaWYgKCFsb2FkZXJSdW5Mb29w
T2JqZWN0KSB7Ci0gICAgICAgIGNyZWF0ZVRocmVhZChydW5Mb2FkZXJUaHJlYWQsIDAsICJXZWJD
b3JlOiBDRk5ldHdvcmsgTG9hZGVyIik7CisgICAgICAgIGNyZWF0ZVRocmVhZChydW5Mb2FkZXJU
aHJlYWQsIDAsIFRocmVhZE5hbWUgeyAiV2ViQ29yZTogQ0ZOZXR3b3JrIExvYWRlciIsICJDRk5l
dHdvcmtMb2FkZXIiIH0pOwogCiAgICAgICAgIGxvYWRlclJ1bkxvb3BDb25kaXRpb25WYXJpYWJs
ZS53YWl0KGxvY2ssIFtdIHsgcmV0dXJuIGxvYWRlclJ1bkxvb3BPYmplY3Q7IH0pOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3du
bG9hZC5jcHAKaW5kZXggNDQwOGNkMTk4NzA1YmE4NmNjOGMxOTg2ZmIzZTJjYWRlNzk2ZGNjNi4u
YTBkZTI5ZDczMTNlOTcwZmUyMDRkNWMyNmIyYzZjZmIzYWEwMTdjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKQEAg
LTk3LDcgKzk3LDcgQEAgdm9pZCBDdXJsRG93bmxvYWRNYW5hZ2VyOjpzdGFydFRocmVhZElmTmVl
ZGVkKCkKICAgICAgICAgaWYgKG1fdGhyZWFkSWQpCiAgICAgICAgICAgICB3YWl0Rm9yVGhyZWFk
Q29tcGxldGlvbihtX3RocmVhZElkKTsKICAgICAgICAgc2V0UnVuVGhyZWFkKHRydWUpOwotICAg
ICAgICBtX3RocmVhZElkID0gY3JlYXRlVGhyZWFkKGRvd25sb2FkVGhyZWFkLCB0aGlzLCAiZG93
bmxvYWRUaHJlYWQiKTsKKyAgICAgICAgbV90aHJlYWRJZCA9IGNyZWF0ZVRocmVhZChkb3dubG9h
ZFRocmVhZCwgdGhpcywgVGhyZWFkTmFtZSB7ICJkb3dubG9hZFRocmVhZCIgfSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29j
a2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUltcGxDdXJsLmNwcAppbmRleCBlOTRmODRhNjgy
MzM5NTJkNGMyYzY1MmM2YjJhZmYyNWQyNjZkYzZiLi5hOTgwZjU0ZmMwZjYzNGI4NGVhNGI3ZGIy
M2U5N2NjOTU1NmZiOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlSW1wbEN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ3VybC5jcHAK
QEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6OnN0YXJ0VGhy
ZWFkKCkKIAogICAgIHJlZigpOyAvLyBzdG9wVGhyZWFkKCkgd2lsbCBjYWxsIGRlcmVmKCkuCiAK
LSAgICBtX3dvcmtlclRocmVhZCA9IGNyZWF0ZVRocmVhZCgiV2ViU29ja2V0IHRocmVhZCIsIFt0
aGlzXSB7CisgICAgbV93b3JrZXJUaHJlYWQgPSBjcmVhdGVUaHJlYWQoVGhyZWFkTmFtZSB7ICJX
ZWJTb2NrZXQgdGhyZWFkIiwgIldlYlNvY2tldCIgfSwgW3RoaXNdIHsKIAogICAgICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQu
Y3BwCmluZGV4IDUxZjQyZjVmZmZmMmZhNmRhNjg0NTdlNGQyMjZlYjZmMzc2YzQwZGEuLjllNDhi
YTFiYTIxMTUzNjU5MDhiMGZhOWNlM2U0OTY5NjIzOWQwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBib29sIFdvcmtlclRocmVh
ZDo6c3RhcnQoKQogICAgIGlmIChtX3RocmVhZElEKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRT
dGFydCwgdGhpcywgIldlYkNvcmU6IFdvcmtlciIpOworICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVU
aHJlYWQoV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRTdGFydCwgdGhpcywgVGhyZWFkTmFtZSB7
ICJXZWJDb3JlOiBXZWJXb3JrZXIiLCAiV2ViV29ya2VyIiB9KTsKIAogICAgIHJldHVybiBtX3Ro
cmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJl
YWQuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlL1N0b3JhZ2VUaHJlYWQuY3BwCmluZGV4IGJi
NjZmY2VhN2U1MjhiYzI3ZjYzM2EzZTUyODc4YjUwMWVmMGUxODcuLmU5YzIwYTdlYmVlZWIyNWQ1
ZTA0NTZiYzViYzA4ZTcwMjU1MDhlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZS9TdG9yYWdlVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2UvU3RvcmFnZVRo
cmVhZC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBTdG9yYWdlVGhyZWFkOjpzdGFydCgpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoIW1fdGhyZWFkSUQpCi0gICAg
ICAgIG1fdGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQ
b2ludENhbGxiYWNrLCB0aGlzLCAiV2ViQ29yZTogTG9jYWxTdG9yYWdlIik7CisgICAgICAgIG1f
dGhyZWFkSUQgPSBjcmVhdGVUaHJlYWQoU3RvcmFnZVRocmVhZDo6dGhyZWFkRW50cnlQb2ludENh
bGxiYWNrLCB0aGlzLCBUaHJlYWROYW1lIHsgIldlYkNvcmU6IExvY2FsU3RvcmFnZSIsICJMb2Nh
bFN0b3JhZ2UiIH0pOwogICAgIGFjdGl2ZVN0b3JhZ2VUaHJlYWRzKCkuYWRkKHRoaXMpOwogICAg
IHJldHVybiBtX3RocmVhZElEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmNwcAppbmRleCBkNWVhZGIwYjNiNDFhYTQzOTYwZjAxODVh
YzJhM2JiNWYyYWVmYTY0Li5mOGZlODFiODllZjhjNGEzNDgwMzAzOGFhZTAwYTdlNDMyZWYyYmY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9j
ZXNzLmNwcApAQCAtNTMsNyArNTMsNyBAQCBEYXRhYmFzZVByb2Nlc3MmIERhdGFiYXNlUHJvY2Vz
czo6c2luZ2xldG9uKCkKIH0KIAogRGF0YWJhc2VQcm9jZXNzOjpEYXRhYmFzZVByb2Nlc3MoKQot
ICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5EYXRhYmFz
ZVByb2Nlc3MiKSkKKyAgICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7
ICJjb20uYXBwbGUuV2ViS2l0LkRhdGFiYXNlUHJvY2VzcyIsICJEQlByb2Nlc3MiIH0pKQogewog
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgVVRGOEVuY29kaW5nIGVuY29kaW5nIGFuZCB0aGUgdGV4dCBl
bmNvZGluZyBtYXBzIGhhdmUgYmVlbiBidWlsdCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGEg
YmFja2dyb3VuZCB0aHJlYWQgbmVlZHMgaXQuCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUzNjUgLSBOZWVkIGEgbW9yZSBleHBsaWNpdCB3
YXkgb2YgZG9pbmcgdGhpcyBiZXNpZGVzIGFjY2Vzc2luZyB0aGUgVVRGOEVuY29kaW5nLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAKaW5kZXggYTgwMjkxZmMxZDFkNTljN2MxZGI2MDIxYjk0Y2NlODI0YzUxYzU5Ny4uZWQzODY0
NWUzMTc5Njk2MzNlOGQ1YTcxMDZmNTYzNDExMjNlNThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC01ODMsNyAr
NTgzLDcgQEAgdm9pZCBDYWNoZTo6ZHVtcENvbnRlbnRzVG9GaWxlKCkKIAogdm9pZCBDYWNoZTo6
ZGVsZXRlRHVtcEZpbGUoKQogewotICAgIFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2Vi
S2l0LkNhY2hlLmRlbGV0ZSIpLT5kaXNwYXRjaChbcGF0aCA9IGR1bXBGaWxlUGF0aCgpLmlzb2xh
dGVkQ29weSgpXSB7CisgICAgV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBw
bGUuV2ViS2l0LkNhY2hlLmRlbGV0ZSIsICJDYWNoZURlbGV0ZXIiIH0pLT5kaXNwYXRjaChbcGF0
aCA9IGR1bXBGaWxlUGF0aCgpLmlzb2xhdGVkQ29weSgpXSB7CiAgICAgICAgIFdlYkNvcmU6OmRl
bGV0ZUZpbGUocGF0aCk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAu
Y3BwCmluZGV4IGVmN2JhODk5ODIwMjMyNTg5ZTczOTFmMjdmY2QzZDZlMTY5ZjY4OTQuLjNiOTk1
MDRjNTIzNTgxYTJiNGFjYzk4NzE1M2U0OTNiOTUxMGU4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlP
Q2hhbm5lbFNvdXAuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBJT0NoYW5uZWw6OnJlYWRT
eW5jSW5UaHJlYWQoc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIFdvcmtRdWV1ZSogcXVldWUs
IHMKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIFJlZlB0cjxJT0NoYW5uZWw+
IGNoYW5uZWwodGhpcyk7Ci0gICAgZGV0YWNoVGhyZWFkKGNyZWF0ZVRocmVhZCgiSU9DaGFubmVs
OjpyZWFkU3luYyIsIFtjaGFubmVsLCBzaXplLCBxdWV1ZSwgY29tcGxldGlvbkhhbmRsZXJdIHsK
KyAgICBkZXRhY2hUaHJlYWQoY3JlYXRlVGhyZWFkKFRocmVhZE5hbWUgeyAiSU9DaGFubmVsOjpy
ZWFkU3luYyIsICJJT0NSZWFkU3luYyIgfSwgW2NoYW5uZWwsIHNpemUsIHF1ZXVlLCBjb21wbGV0
aW9uSGFuZGxlcl0gewogICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IHN0ZDo6bWluKHNpemUs
IGdEZWZhdWx0UmVhZEJ1ZmZlclNpemUpOwogICAgICAgICB1aW50OF90KiBidWZmZXJEYXRhID0g
c3RhdGljX2Nhc3Q8dWludDhfdCo+KGZhc3RNYWxsb2MoYnVmZmVyU2l6ZSkpOwogICAgICAgICBH
UmVmUHRyPFNvdXBCdWZmZXI+IHJlYWRCdWZmZXIgPSBhZG9wdEdSZWYoc291cF9idWZmZXJfbmV3
X3dpdGhfb3duZXIoYnVmZmVyRGF0YSwgYnVmZmVyU2l6ZSwgYnVmZmVyRGF0YSwgZmFzdEZyZWUp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKaW5kZXggMTBhNTIwM2VmZDgxODBlMGFjYTM0
YmU1NGRmNTI1ODJmNTljOTVmNy4uMzlkOTlkMjAxMjZjNDNkMzczNTUzYzAyODBmYTU2MzI3MDU4
ZWU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFN0YXRpc3RpY3M+IFN0YXRpc3RpY3M6Om9wZW4oY29uc3QgU3RyaW5nJiBj
YWNoZVBhdGgpCiB9CiAKIFN0YXRpc3RpY3M6OlN0YXRpc3RpY3MoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZVBhdGgpCi0gICAgOiBtX3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhY2hlLlN0YXRpc3RpY3MuQmFja2dyb3VuZCIsIFdvcmtR
dWV1ZTo6VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgOiBt
X3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAi
Y29tLmFwcGxlLldlYktpdC5DYWNoZS5TdGF0aXN0aWNzLkJhY2tncm91bmQiLCAiQ2FjaGVTdGF0
c0JHIiB9LCBXb3JrUXVldWU6OlR5cGU6OlNlcmlhbCwgV29ya1F1ZXVlOjpRT1M6OkJhY2tncm91
bmQpKQogICAgICwgbV93cml0ZVRpbWVyKCp0aGlzLCAmU3RhdGlzdGljczo6d3JpdGVUaW1lckZp
cmVkKQogewogICAgIGluaXRpYWxpemUoZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5j
cHAKaW5kZXggOGY3YjZlM2YyZGZmZDA5M2IwMmZjNzYxYWFlNjJkZTUyYTI1ZThkZS4uYjEzZmI1
NmNhNWE1MWRmMTM4YWU1ZGQ0OWIxNWI1MzAyYmJkNTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5j
cHAKQEAgLTIxMyw5ICsyMTMsOSBAQCBTdG9yYWdlOjpTdG9yYWdlKGNvbnN0IFN0cmluZyYgYmFz
ZURpcmVjdG9yeVBhdGgsIFNhbHQgc2FsdCkKICAgICAsIG1fc2FsdChzYWx0KQogICAgICwgbV9y
ZWFkT3BlcmF0aW9uVGltZW91dFRpbWVyKCp0aGlzLCAmU3RvcmFnZTo6Y2FuY2VsQWxsUmVhZE9w
ZXJhdGlvbnMpCiAgICAgLCBtX3dyaXRlT3BlcmF0aW9uRGlzcGF0Y2hUaW1lcigqdGhpcywgJlN0
b3JhZ2U6OmRpc3BhdGNoUGVuZGluZ1dyaXRlT3BlcmF0aW9ucykKLSAgICAsIG1faW9RdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlIiwgV29ya1F1
ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKLSAgICAsIG1fYmFja2dyb3VuZElPUXVldWUoV29ya1F1
ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5iYWNrZ3JvdW5kIiwg
V29ya1F1ZXVlOjpUeXBlOjpDb25jdXJyZW50LCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkp
Ci0gICAgLCBtX3NlcmlhbEJhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20u
YXBwbGUuV2ViS2l0LkNhY2hlLlN0b3JhZ2Uuc2VyaWFsQmFja2dyb3VuZCIsIFdvcmtRdWV1ZTo6
VHlwZTo6U2VyaWFsLCBXb3JrUXVldWU6OlFPUzo6QmFja2dyb3VuZCkpCisgICAgLCBtX2lvUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBwbGUuV2ViS2l0LkNhY2hl
LlN0b3JhZ2UiLCAiQ2FjaGVTdG9yYWdlRkciIH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVu
dCkpCisgICAgLCBtX2JhY2tncm91bmRJT1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5h
bWUgeyAiY29tLmFwcGxlLldlYktpdC5DYWNoZS5TdG9yYWdlLmJhY2tncm91bmQiLCAiQ2FjaGVT
dG9yYWdlQkciIH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCwgV29ya1F1ZXVlOjpRT1M6
OkJhY2tncm91bmQpKQorICAgICwgbV9zZXJpYWxCYWNrZ3JvdW5kSU9RdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuQ2FjaGUuU3RvcmFnZS5zZXJp
YWxCYWNrZ3JvdW5kIiwgIkNhY2hlU3RvcmFnZVNCRyIgfSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJp
YWwsIFdvcmtRdWV1ZTo6UU9TOjpCYWNrZ3JvdW5kKSkKICAgICAsIG1fYmxvYlN0b3JhZ2UobWFr
ZUJsb2JEaXJlY3RvcnlQYXRoKGJhc2VEaXJlY3RvcnlQYXRoKSwgbV9zYWx0KQogewogICAgIGRl
bGV0ZU9sZFZlcnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlv
bi5jcHAKaW5kZXggZGE4ZWEzZmJiMDVlM2RmZmU0OWJlMzMyYTY2MDFlMjdhYmZjYWY0MS4uZWQ5
NDY5NTA1MWU3M2JkOGI4YWQzYTdiODYxMzgxNWQ1M2IxZjE5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIENvbm5lY3Rp
b246OkNvbm5lY3Rpb24oSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlzU2VydmVyLCBDbGll
bnQmIGNsaWVudCkKICAgICAsIG1fc2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFpbHVyZShm
YWxzZSkKICAgICAsIG1fZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFjaygwKQog
ICAgICwgbV9pc0Nvbm5lY3RlZChmYWxzZSkKLSAgICAsIG1fY29ubmVjdGlvblF1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuSVBDLlJlY2VpdmVRdWV1ZSIpKQorICAgICwgbV9jb25u
ZWN0aW9uUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBwbGUuSVBD
LlJlY2VpdmVRdWV1ZSIsICJJUENSZWNlaXZlUXVldWUiIH0pKQogICAgICwgbV9pblNlbmRTeW5j
Q291bnQoMCkKICAgICAsIG1faW5EaXNwYXRjaE1lc3NhZ2VDb3VudCgwKQogICAgICwgbV9pbkRp
c3BhdGNoTWVzc2FnZU1hcmtlZERpc3BhdGNoV2hlbldhaXRpbmdGb3JTeW5jUmVwbHlDb3VudCgw
KQpAQCAtNzIwLDcgKzcyMCw3IEBAIHVpbnQ2NF90IENvbm5lY3Rpb246Omluc3RhbGxJbmNvbWlu
Z1N5bmNNZXNzYWdlQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBjCiAgICAgbV9uZXh0
SW5jb21pbmdTeW5jTWVzc2FnZUNhbGxiYWNrSUQrKzsKIAogICAgIGlmICghbV9pbmNvbWluZ1N5
bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSkKLSAgICAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2Fs
bGJhY2tRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LklQQy5JbmNv
bWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSIpOworICAgICAgICBtX2luY29taW5nU3luY01l
c3NhZ2VDYWxsYmFja1F1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20u
YXBwbGUuV2ViS2l0LklQQy5JbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tRdWV1ZSIsICJJU3lu
Y01zZ0NCUXVldWUiIH0pOwogCiAgICAgbV9pbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tzLmFk
ZChtX25leHRJbmNvbWluZ1N5bmNNZXNzYWdlQ2FsbGJhY2tJRCwgY2FsbGJhY2spOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IDE3NTc4OWZiOWFlNzEzZjE2ZWVl
ZGJmYWJlMDBkNmYzM2U2M2NmMjMuLjNiMTczNTBhMjdhZGUwODdlOGY1ODNlMzRiMDNiN2FmNjFl
NDQ2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCkBAIC01MCw3ICs1
MCw3IEBAIHN0YXRpYyB2b2lkIGRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKElQQzo6Q29u
bmVjdGlvbiopCiAgICAgLy8gdGhlIHByb2Nlc3Mgd2lsbCBleGl0IGZvcmNpYmx5LgogICAgIGF1
dG8gd2F0Y2hkb2dEZWxheSA9IHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDEwKTsKIAotICAgIFdvcmtR
dWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNoaWxkUHJvY2Vzcy5XYXRjaERvZ1F1ZXVl
IiktPmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwgW10geworICAgIFdvcmtRdWV1ZTo6Y3Jl
YXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5DaGlsZFByb2Nlc3MuV2F0Y2hEb2dR
dWV1ZSIsICJDaGlsZFdkb2dRdWV1ZSIgfSktPmRpc3BhdGNoQWZ0ZXIod2F0Y2hkb2dEZWxheSwg
W10gewogICAgICAgICAvLyBXZSB1c2UgX2V4aXQgaGVyZSBzaW5jZSB0aGUgd2F0Y2hkb2cgY2Fs
bGJhY2sgaXMgY2FsbGVkIGZyb20gYW5vdGhlciB0aHJlYWQgYW5kIHdlIGRvbid0IHdhbnQKICAg
ICAgICAgLy8gZ2xvYmFsIGRlc3RydWN0b3JzIG9yIGF0ZXhpdCBoYW5kbGVycyB0byBiZSBjYWxs
ZWQgZnJvbSB0aGlzIHRocmVhZCB3aGlsZSB0aGUgbWFpbiB0aHJlYWQgaXMgYnVzeQogICAgICAg
ICAvLyBkb2luZyBpdHMgdGhpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29w
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDQwZGM0ZjQ0NTZjMjhmYzkz
N2Q5YTE2NmFhMjIxOWNmN2U4ZWM1MzAuLjJkMDRiNzI3NzAwNTVkZDIzNTMwOTUzNjNkMTVhODQ0
MmZjYzhlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFdvcmtRdWV1
ZVBvb2wgewogICAgICAgICAgICAgICAgIEFTU0VSVChtX3NoYXJlZFdvcmtRdWV1ZSk7CiAgICAg
ICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG1fc2hhcmVkV29ya1F1ZXVl
OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhZGRSZXN1bHQuaXRlcmF0
b3ItPnZhbHVlID0gV29ya1F1ZXVlOjpjcmVhdGUoIm9yZy53ZWJraXQuVGhyZWFkZWRDb21wb3Np
dG9yV29ya1F1ZXVlIik7CisgICAgICAgICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAib3JnLndlYmtpdC5UaHJlYWRlZENv
bXBvc2l0b3JXb3JrUXVldWUiLCAiVGhyZWFkZWRDb21wIiB9KTsKICAgICAgICAgICAgICAgICBp
ZiAoIW1fdGhyZWFkQ291bnQpCiAgICAgICAgICAgICAgICAgICAgIG1fc2hhcmVkV29ya1F1ZXVl
ID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgICAgICAgICBtX3RocmVhZENv
dW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1TaGlt
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uY3BwCmluZGV4IDg1
NDMzYmQ1OTg2YzEzNmE4YmVjYzk4MWJmZDcwZDg0ZWU0N2Q0NmEuLmUzNzNhNzMzYTQwODc2NmNm
MTFiNzkxN2Y0ZjIwNzQ0Yjc3MDc0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvU2VjSXRlbVNoaW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
SXRlbVNoaW0uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBXb3JrUXVldWUmIHdvcmtRdWV1
ZSgpCiAgICAgc3RhdGljIFdvcmtRdWV1ZSogd29ya1F1ZXVlOwogICAgIHN0YXRpYyBkaXNwYXRj
aF9vbmNlX3Qgb25jZVRva2VuOwogICAgIGRpc3BhdGNoX29uY2UoJm9uY2VUb2tlbiwgXnsKLSAg
ICAgICAgd29ya1F1ZXVlID0gJldvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlNl
Y0l0ZW1TaGltIikubGVha1JlZigpOworICAgICAgICB3b3JrUXVldWUgPSAmV29ya1F1ZXVlOjpj
cmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBwbGUuV2ViS2l0LlNlY0l0ZW1TaGltIiwgIlNlY0l0
ZW1TaGltIiB9KS5sZWFrUmVmKCk7CiAKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5j
cHAKaW5kZXggM2E3NDBmZDUwYTVmMzM4NDU4OWQwNzYyN2RjZmMzMGEyYzY5OWFhYi4uOTY2Mjg2
ZWEzMWU1NWQ4ODg4MGQwN2I4OTgzNGZjNWYwNzJjZjA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUuY3BwCkBAIC02NCw5ICs2NCw5IEBAIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmU6OlVzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUoKQogCiBVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlOjpVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpCiAgICAg
OiBtX3N0b3JlUGF0aChzdG9yZVBhdGgpCi0gICAgLCBtX2NvbXBpbGVRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBDb21waWxlIFF1ZXVlIiwgV29ya1F1
ZXVlOjpUeXBlOjpDb25jdXJyZW50KSkKLSAgICAsIG1fcmVhZFF1ZXVlKFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIFJlYWQgUXVldWUiKSkKLSAgICAsIG1fcmVt
b3ZlUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgUmVt
b3ZlIFF1ZXVlIikpCisgICAgLCBtX2NvbXBpbGVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJl
YWROYW1lIHsgIlVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgQ29tcGlsZSBRdWV1ZSIsICJVQ0V4
U3RDb21wUXVldWUiIH0sIFdvcmtRdWV1ZTo6VHlwZTo6Q29uY3VycmVudCkpCisgICAgLCBtX3Jl
YWRRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgIlVzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUgUmVhZCBRdWV1ZSIsICJVQ0V4U3RSZFF1ZXVlIiB9KSkKKyAgICAsIG1fcmVtb3Zl
UXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIFJlbW92ZSBRdWV1ZSIsICJVQ0V4U3RSbVF1ZXVlIiB9KSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmlu
ZGV4IDFmZTEwMjU0ZDdjNTYwYWNmYTY5MDUxNmE1MzM4ZGU0NGIwZmQzY2EuLjFhZWQ0NGVhMTVi
YWIwNDRjMzQ4MzMyMGU1ZTcyNGU5Yjk2NzM0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTQ1Miw3ICs0NTIsNyBA
QCBSZWY8U3RvcmFnZU1hbmFnZXI+IFN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpCiB9CiAKIFN0b3JhZ2VNYW5hZ2VyOjpTdG9yYWdlTWFu
YWdlcihjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkKLSAgICA6IG1fcXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZU1hbmFnZXIiKSkKKyAg
ICA6IG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBwbGUuV2Vi
S2l0LlN0b3JhZ2VNYW5hZ2VyIiwgIlN0b3JhZ2VNZ3IiIH0pKQogICAgICwgbV9sb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIoTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyOjpjcmVhdGUobV9x
dWV1ZS5jb3B5UmVmKCksIGxvY2FsU3RvcmFnZURpcmVjdG9yeSkpCiB7CiAgICAgLy8gTWFrZSBz
dXJlIHRoZSBlbmNvZGluZyBpcyBpbml0aWFsaXplZCBiZWZvcmUgd2Ugc3RhcnQgZGlzcGF0Y2hp
bmcgdGhpbmdzIHRvIHRoZSBxdWV1ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggYzJmOGU2
YTRiYTczNTBhNDYzYTQ1OWRlNDhlNTZhYWRmYmQyYTI1MC4uMzQ2ODliNjhkN2FhYTFmNWUxNzVm
MWQ1NDE2NjEyNTAxYmJjODlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTU1LDcgKzU1
LDcgQEAgUmVmPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZT4gV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpjcmVhdGUoY29uc3QKIAogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoY29uc3QgU3RyaW5nJiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KQogICAgIDogbV9yZXNvdXJjZVN0YXRpc3RpY3NT
dG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0ZSgpKQotICAgICwgbV9zdGF0
aXN0aWNzUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSBQcm9jZXNzIERhdGEgUXVldWUiKSkKKyAgICAsIG1fc3RhdGlzdGljc1F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
IFByb2Nlc3MgRGF0YSBRdWV1ZSIsICJXZWJSc1N0YXRRdWV1ZSIgfSkpCiAgICAgLCBtX3N0b3Jh
Z2VQYXRoKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKaW5kZXggN2E4NDNiMWYwNDNiZjdkMGVjN2VjM2Y2YjNkMTc5MTAzM2RmZWUxYy4uZDQ0
ZTgwNjgzNGU0NzgwZGQyZWNiZjZlY2NiY2U2M2JkNDE5YjQzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtODAsNyArODAsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKENv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbikKICAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKQogICAgICwgbV9zdG9yYWdlTWFuYWdlcihTdG9yYWdlTWFuYWdlcjo6
Y3JlYXRlKG1fY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkpKQogICAgICwgbV9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y3Jl
YXRlKG1fY29uZmlndXJhdGlvbi5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSkKLSAg
ICAsIG1fcXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURh
dGFTdG9yZSIpKQorICAgICwgbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsg
ImNvbS5hcHBsZS5XZWJLaXQuV2Vic2l0ZURhdGFTdG9yZSIsICJXZWJEYXRhU3RvcmUiIH0pKQog
ewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQpAQCAtODksNyArODksNyBAQCBXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVJZGVudGlmaWVyKCkpCiAgICAgLCBtX3Nlc3Np
b25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2NvbmZpZ3VyYXRpb24oKQotICAgICwgbV9xdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5XZWJzaXRlRGF0YVN0b3JlIikpCisg
ICAgLCBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldl
YktpdC5XZWJzaXRlRGF0YVN0b3JlIiwgIldlYkRhdGFTdG9yZSIgfSkpCiB7CiAgICAgcGxhdGZv
cm1Jbml0aWFsaXplKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCmluZGV4IDA2MDhhYjcyZjk5MjQ4ZWYy
NGNkMmQ1MjQ1ZWU1MzMzYTAwZDlkMGQuLmFkMDAzMGMwMWVjMGNhZDA4ODVjZGJjMzM0MDRmOTQ2
MDMzOWUyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51eC9NZW1v
cnlQcmVzc3VyZU1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9saW51
eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgTWVtb3J5UHJl
c3N1cmVNb25pdG9yOjpNZW1vcnlQcmVzc3VyZU1vbml0b3IoKQogICAgIGlmIChtX2V2ZW50RkQg
PT0gLTEpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRl
bnRpZmllciA9IGNyZWF0ZVRocmVhZCgiTWVtb3J5UHJlc3N1cmVNb25pdG9yIiwgW3RoaXNdIHsK
KyAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoVGhy
ZWFkTmFtZSB7ICJNZW1vcnlQcmVzc3VyZU1vbml0b3IiLCAiTWVtUHJlc3NNb25pdG9yIiB9LCBb
dGhpc10gewogICAgICAgICBkb3VibGUgcG9sbEludGVydmFsID0gc19tYXhQb2xsaW5nSW50ZXJ2
YWxJblNlY29uZHM7CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBzbGVlcChw
b2xsSW50ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvU2VjSXRl
bVNoaW1Qcm94eS5jcHAKaW5kZXggMjFlYTdiMDEyYjE4OThkMjEwMTJiMjI4NzI1YmVlMTA2ZmNh
NmRiNC4uNzc0OWVhZmNhMTk0NGJhZWQ0Y2RhZTIxNTY0NzQ4MzE1ZTE4NmMxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuY3BwCkBAIC00
Nyw3ICs0Nyw3IEBAIFNlY0l0ZW1TaGltUHJveHkmIFNlY0l0ZW1TaGltUHJveHk6OnNpbmdsZXRv
bigpCiB9CiAKIFNlY0l0ZW1TaGltUHJveHk6OlNlY0l0ZW1TaGltUHJveHkoKQotICAgIDogbV9x
dWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5TZWNJdGVtU2hpbVByb3h5
IikpCisgICAgOiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFw
cGxlLldlYktpdC5TZWNJdGVtU2hpbVByb3h5IiwgIlNlY0l0ZW1TaGltUCIgfSkpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKaW5kZXggY2JjNGYwZTNlODQy
OWJhYWQ1ZTg4Y2FhZTM2ZDVmYjM1MTlkODg2Yi4uNGFiZDk3M2NlYzdiY2M2YTQwMGM1NDBkMDEw
ZGY5MTI2NjljNTJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAK
QEAgLTQ4LDcgKzQ4LDcgQEAgUmVmPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcj4gUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpjcmVhdGUoKQogfQogCiBQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXI6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcigpCi0gICAg
OiBtX3F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlciIpKQorICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZShU
aHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyIiwgIlBsdWdpbkNvbm5NZ3IiIH0pKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDFmMjIyNjU4
YzkwNmI3M2Y3NTU0MWFjYTM3MmU4ZWY1MDk5OGQxN2EuLmE4ZDVjZGFjMTRkY2Q3ODgwZDg3Zjk5
MGVmOGU5OTc2ZWI2NDFiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxFdmVu
dERpc3BhdGNoZXI+IEV2ZW50RGlzcGF0Y2hlcjo6Y3JlYXRlKCkKIH0KIAogRXZlbnREaXNwYXRj
aGVyOjpFdmVudERpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Y29tLmFwcGxlLldlYktpdC5FdmVudERpc3BhdGNoZXIiLCBXb3JrUXVldWU6OlR5cGU6OlNlcmlh
bCwgV29ya1F1ZXVlOjpRT1M6OlVzZXJJbnRlcmFjdGl2ZSkpCisgICAgOiBtX3F1ZXVlKFdvcmtR
dWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5FdmVudERpc3BhdGNo
ZXIiLCAiRXZlbnREaXNwYXRjaCIgfSwgV29ya1F1ZXVlOjpUeXBlOjpTZXJpYWwsIFdvcmtRdWV1
ZTo6UU9TOjpVc2VySW50ZXJhY3RpdmUpKQogICAgICwgbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFG
aWx0ZXIoV2hlZWxFdmVudERlbHRhRmlsdGVyOjpjcmVhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld1VwZGF0ZURpc3BhdGNo
ZXIuY3BwCmluZGV4IGM4ZTM2Mzg2MWYyMDU3YTA4NmEzZjc4ZDVkYjQ1YjIzYTBjNWI4NmEuLjM4
YTA3OWU4OGI5YzYwYThhNDQ4MWE5N2I4Yjg5NzcxZjkxM2Q1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3VXBkYXRlRGlzcGF0Y2hlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNwYXRjaGVy
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IFZpZXdVcGRh
dGVEaXNwYXRjaGVyOjpjcmVhdGUoKQogfQogCiBWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6Vmlld1Vw
ZGF0ZURpc3BhdGNoZXIoKQotICAgIDogbV9xdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFw
cGxlLldlYktpdC5WaWV3VXBkYXRlRGlzcGF0Y2hlciIpKQorICAgIDogbV9xdWV1ZShXb3JrUXVl
dWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuVmlld1VwZGF0ZURpc3Bh
dGNoZXIiLCAiVlVwZGF0ZURpc3BhdGNoIiB9KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDMyNWRhYzlkMzcxNGViYTBjODhlZjU3
OTNmMGZkMjNiMDA5MWI3OTMuLmQ2ZDRkMzZlMWQ4YjU4NjFkYmZlMmM1ZWRjYWJlZWE1NjU4ODU4
OWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOSBAQAorMjAxNy0wMS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBVc2UgVGhyZWFkTmFtZSB0byBzcGVjaWZ5IGxvbmcgYW5kIHNo
b3J0IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjY2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL0phdmFTY3JpcHRUaHJlYWRpbmcuY3BwOgorICAgICAgICAocnVu
SmF2YVNjcmlwdFRocmVhZCk6CisgICAgICAgIChzdGFydEphdmFTY3JpcHRUaHJlYWRzKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgICh0
ZXN0VGhyZWFkSWRlbnRpZmllck1hcCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2Nr
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnJ1bkxvY2tUZXN0KToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9TeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRvVXBwZXJDb252ZXJ0ZXI6OnByb2R1Y2VRdWV1ZSk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpUb1VwcGVyQ29udmVydGVyOjpjb25zdW1lUXVldWUpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9nbGliL1dv
cmtRdWV1ZUdMaWIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdFRlc3RTZXJ2ZXI6OldlYktpdFRlc3RTZXJ2ZXIpOgorCiAyMDE3LTAxLTEz
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IEVOQUJMRShERVRBSUxTX0VMRU1FTlQpIGd1YXJkcwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9K
YXZhU2NyaXB0VGhyZWFkaW5nLmNwcAppbmRleCBlMmY5YmFkZTZjYTdjMjY5NDg1YTRjZGNiZTYw
OTljMzZiYTAyMTk4Li4wN2Q5MDZhMzE2YjRmNDkxN2IxNTM5ODhiNTc2NzM2N2NiYTkzNjE5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9KYXZhU2NyaXB0VGhyZWFkaW5nLmNwcApAQCAtMTEx
LDcgKzExMSw3IEBAIHZvaWQgcnVuSmF2YVNjcmlwdFRocmVhZCh2b2lkKikKICAgICAgICAgVGhy
ZWFkSWRlbnRpZmllciB0aHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CiAgICAgICAgIGRldGFjaFRo
cmVhZCh0aHJlYWQpOwogICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLnJlbW92ZSh0aHJlYWQp
OwotICAgICAgICBqYXZhU2NyaXB0VGhyZWFkcygpLmFkZChjcmVhdGVUaHJlYWQoJnJ1bkphdmFT
Y3JpcHRUaHJlYWQsIDAsIDApKTsKKyAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQoY3Jl
YXRlVGhyZWFkKCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCBUaHJlYWROYW1lIHsgIiIgfSkpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIHN0YXJ0SmF2
YVNjcmlwdFRocmVhZHMoKQogICAgIExvY2tIb2xkZXIgbG9ja2VyKGphdmFTY3JpcHRUaHJlYWRz
TXV0ZXgoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGphdmFTY3JpcHRUaHJlYWRz
Q291bnQ7ICsraSkKLSAgICAgICAgamF2YVNjcmlwdFRocmVhZHMoKS5hZGQoY3JlYXRlVGhyZWFk
KCZydW5KYXZhU2NyaXB0VGhyZWFkLCAwLCAwKSk7CisgICAgICAgIGphdmFTY3JpcHRUaHJlYWRz
KCkuYWRkKGNyZWF0ZVRocmVhZCgmcnVuSmF2YVNjcmlwdFRocmVhZCwgMCwgVGhyZWFkTmFtZSB7
ICIiIH0pKTsKIH0KIAogdm9pZCBzdG9wSmF2YVNjcmlwdFRocmVhZHMoKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDE4YmM3ODQ4Yzg0YTdkMzA2ZTZh
NTg3ZDg5OTgyOWQ5ZWVhNjE3Y2MuLjY4YzNlMmU5ZGQ3YjljNDkzNWFmY2M0MmVmYmUxYjI0MGRi
NmIwMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAg
LTExMDcsNyArMTEwNyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RUaHJlYWRJZGVudGlmaWVyTWFwKCkK
IAogICAgIC8vIE5vdyBjcmVhdGUgYW5vdGhlciB0aHJlYWQgdXNpbmcgV1RGLiBPbiBPU1gsIGl0
IHdpbGwgaGF2ZSB0aGUgc2FtZSBwdGhyZWFkIGhhbmRsZQogICAgIC8vIGJ1dCBzaG91bGQgZ2V0
IGEgZGlmZmVyZW50IFRocmVhZElkZW50aWZpZXIuCi0gICAgY3JlYXRlVGhyZWFkKHJ1blRocmVh
ZCwgMCwgIkR1bXBSZW5kZXJUcmVlOiB0ZXN0Iik7CisgICAgY3JlYXRlVGhyZWFkKHJ1blRocmVh
ZCwgMCwgVGhyZWFkTmFtZSB7ICJEdW1wUmVuZGVyVHJlZTogdGVzdCIsICJEUlRUZXN0IiB9KTsK
IH0KIAogc3RhdGljIHZvaWQgYWxsb2NhdGVHbG9iYWxDb250cm9sbGVycygpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAppbmRleCA4NDg1MjczNTFmNjA2M2Zj
MjYzNjg3ODA1NmQ5YzI0ZGJhYmU4M2RjLi43ODlhZmI5MjIxZjhkOTU4Y2JkMTRjNDA5YWQ2MGEz
NGU2OWVjYTdjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25k
aXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5j
cHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBydW5UZXN0KAogICAgIAogICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bUNvbnN1bWVyczsgaS0tOykgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRo
cmVhZElkZW50aWZpZXIgPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAiQ29uc3VtZXIgdGhy
ZWFkIiwKKyAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiQ29uc3VtZXIgdGhyZWFkIiB9LAogICAg
ICAgICAgICAgWyZdICgpIHsKICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIHJ1blRl
c3QoCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1Qcm9kdWNlcnM7IGktLTspIHsKICAgICAg
ICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyID0gY3JlYXRlVGhyZWFkKAotICAg
ICAgICAgICAgIlByb2R1Y2VyIFRocmVhZCIsCisgICAgICAgICAgICBUaHJlYWROYW1lIHsgIlBy
b2R1Y2VyIFRocmVhZCIgfSwKICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU1lc3NhZ2VzUGVyUHJvZHVjZXI7ICsraSkgewog
ICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZE5vdGlmeSA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcAppbmRleCA1NTc2MzAyZDY5MGRmY2EzNTk5MjkyOGIx
Yzg1M2M3NjIyZTQ1ZmI5Li5jOTcxYTgwNDYzZjRhZTRjMjcyNGNlYmM1YzdmNzMxOTc2NGFiOTE0
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Mb2NrLmNwcApAQCAtNTMsNyArNTMsNyBA
QCB2b2lkIHJ1bkxvY2tUZXN0KHVuc2lnbmVkIG51bVRocmVhZEdyb3VwcywgdW5zaWduZWQgbnVt
VGhyZWFkc1Blckdyb3VwLCB1bnNpZ25lZAogCiAgICAgICAgIGZvciAodW5zaWduZWQgdGhyZWFk
SW5kZXggPSBudW1UaHJlYWRzUGVyR3JvdXA7IHRocmVhZEluZGV4LS07KSB7CiAgICAgICAgICAg
ICB0aHJlYWRzW3RocmVhZEdyb3VwSW5kZXggKiBudW1UaHJlYWRzUGVyR3JvdXAgKyB0aHJlYWRJ
bmRleF0gPSBjcmVhdGVUaHJlYWQoCi0gICAgICAgICAgICAgICAgIkxvY2sgdGVzdCB0aHJlYWQi
LAorICAgICAgICAgICAgICAgIFRocmVhZE5hbWUgeyAiTG9jayB0ZXN0IHRocmVhZCIsICJMb2Nr
VGVzdGVyIiB9LAogICAgICAgICAgICAgICAgIFt0aHJlYWRHcm91cEluZGV4LCAmbG9ja3MsICZ3
b3JkcywgbnVtSXRlcmF0aW9ucywgd29ya1BlckNyaXRpY2FsU2VjdGlvbl0gKCkgewogICAgICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1JdGVyYXRpb25zOyBpLS07KSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2Nrc1t0aHJlYWRHcm91cEluZGV4XS5sb2NrKCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYXJraW5nTG90LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwCmluZGV4IGM2N2Ux
ZTA4MTVhODNhZmE5MzMzZTJhYzlhMmJkNzhiNjdiMTY0NWIuLjUwZGMyZjk0YTczZjk4ODUxOTgz
MTM2YjJkYWY0OTNkYzE1N2EzZmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1BhcmtpbmdMb3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1BhcmtpbmdMb3QuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0cnVjdCBTaW5nbGVMYXRjaFRlc3Qg
ewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1UaHJlYWRzOyBpLS07KSB7CiAgICAgICAg
ICAgICB0aHJlYWRzLmFwcGVuZCgKICAgICAgICAgICAgICAgICBjcmVhdGVUaHJlYWQoCi0gICAg
ICAgICAgICAgICAgICAgICJQYXJraW5nIFRlc3QgVGhyZWFkIiwKKyAgICAgICAgICAgICAgICAg
ICAgVGhyZWFkTmFtZSB7ICJQYXJraW5nIFRlc3QgdGhyZWFkIiwgIlBhcmtpbmdUZXN0ZXIiIH0s
CiAgICAgICAgICAgICAgICAgICAgIFsmXSAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBF
WFBFQ1RfTkUoMHUsIGN1cnJlbnRUaHJlYWQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1N5bmNocm9uaXplZEZpeGVkUXVldWUuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKaW5kZXggMzE0
MzZiYzIyMzA3ZjlkZDczZjY5MThiMjRhZGI0MGU3ODlmYjVlYy4uZjcyZDYwNmMxNjM3NDdmN2Jm
Mjk0YzA3ZTYyY2Q4NjRiZjBlZDdiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3luY2hyb25pemVkRml4ZWRRdWV1ZS5jcHAKQEAgLTYyLDE0ICs2Miwx
NCBAQCBjbGFzcyBUb1VwcGVyQ29udmVydGVyIHsKICAgICBXb3JrUXVldWUqIHByb2R1Y2VRdWV1
ZSgpCiAgICAgewogICAgICAgICBpZiAoIW1fcHJvZHVjZVF1ZXVlKQotICAgICAgICAgICAgbV9w
cm9kdWNlUXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgib3JnLndlYmtpdC5Qcm9kdWNlIik7Cisg
ICAgICAgICAgICBtX3Byb2R1Y2VRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUg
eyAib3JnLndlYmtpdC5Qcm9kdWNlIiwgIlByb2R1Y2VyIiB9KTsKICAgICAgICAgcmV0dXJuIG1f
cHJvZHVjZVF1ZXVlLmdldCgpOwogICAgIH0KIAogICAgIFdvcmtRdWV1ZSogY29uc3VtZVF1ZXVl
KCkKICAgICB7CiAgICAgICAgIGlmICghbV9jb25zdW1lUXVldWUpCi0gICAgICAgICAgICBtX2Nv
bnN1bWVRdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJvcmcud2Via2l0LkNvbnN1bWUiKTsKKyAg
ICAgICAgICAgIG1fY29uc3VtZVF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoVGhyZWFkTmFtZSB7
ICJvcmcud2Via2l0LkNvbnN1bWUiLCAiQ29uc3VtZXIiIH0pOwogICAgICAgICByZXR1cm4gbV9j
b25zdW1lUXVldWUuZ2V0KCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvV29ya1F1ZXVlLmNwcAppbmRleCA3ZTI3N2U5NGM0N2NlM2NlMmZiODI1MmY2Y2RjM2E1NWFm
MzdiZTc5Li42NjM3Yjc3OGMxZDU1MTc2MTcyYzA5Yjk0NTY0ZjE0ZDlhZGQ5YjYxIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKQEAgLTU0LDcgKzU0LDcg
QEAgVEVTVChXVEZfV29ya1F1ZXVlLCBTaW1wbGUpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGxv
bmdUZXN0TGFiZWwgPSAibG9uZ1Rlc3QiOwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aGlyZFRl
c3RMYWJlbCA9ICJ0aGlyZFRlc3QiOwogCi0gICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3Jl
YXRlKCJjb20uYXBwbGUuV2ViS2l0LlRlc3Quc2ltcGxlIik7CisgICAgYXV0byBxdWV1ZSA9IFdv
cmtRdWV1ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LnNpbXBs
ZSIsICJTaW1wbGVUZXN0IiB9KTsKICAgICBpbnQgaW5pdGlhbFJlZkNvdW50ID0gcXVldWUtPnJl
ZkNvdW50KCk7CiAgICAgRVhQRUNUX0VRKDEsIGluaXRpYWxSZWZDb3VudCk7CiAKQEAgLTEwNiw4
ICsxMDYsOCBAQCBURVNUKFdURl9Xb3JrUXVldWUsIFR3b1F1ZXVlcykKICAgICBib29sIGNhbGxl
ZExvbmdUZXN0ID0gZmFsc2U7CiAgICAgYm9vbCBjYWxsZWRUaGlyZFRlc3QgPSBmYWxzZTsKICAg
ICAKLSAgICBhdXRvIHF1ZXVlMSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LlRlc3QudHdvUXVldWVzMSIpOwotICAgIGF1dG8gcXVldWUyID0gV29ya1F1ZXVlOjpjcmVhdGUo
ImNvbS5hcHBsZS5XZWJLaXQuVGVzdC50d29RdWV1ZXMyIik7CisgICAgYXV0byBxdWV1ZTEgPSBX
b3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgImNvbS5hcHBsZS5XZWJLaXQuVGVzdC50d29R
dWV1ZXMxIiwgIlR3b1F1ZXVlczFUZXN0IiB9KTsKKyAgICBhdXRvIHF1ZXVlMiA9IFdvcmtRdWV1
ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LnR3b1F1ZXVlczIi
LCAiVHdvUXVldWVzMlRlc3QiIH0pOwogCiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMS0+cmVmQ291
bnQoKSk7CiAgICAgRVhQRUNUX0VRKDEsIHF1ZXVlMi0+cmVmQ291bnQoKSk7CkBAIC0xNjcsNyAr
MTY3LDcgQEAgVEVTVChXVEZfV29ya1F1ZXVlLCBEaXNwYXRjaEFmdGVyKQogICAgIGJvb2wgY2Fs
bGVkU2ltcGxlVGVzdCA9IGZhbHNlOwogICAgIGJvb2wgY2FsbGVkRGlzcGF0Y2hBZnRlclRlc3Qg
PSBmYWxzZTsKIAotICAgIGF1dG8gcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZSgiY29tLmFwcGxl
LldlYktpdC5UZXN0LmRpc3BhdGNoQWZ0ZXIiKTsKKyAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVl
OjpjcmVhdGUoVGhyZWFkTmFtZSB7ICJjb20uYXBwbGUuV2ViS2l0LlRlc3QuZGlzcGF0Y2hBZnRl
ciIsICJEaXNwYXRjaEFmdGVyIiB9KTsKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7
CiAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdURl9Xb3JrUXVldWUsIERlc3Ryb3lPblNlbGYp
CiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihsb2NrKTsKICAgICAgICAgewotICAg
ICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0
LlRlc3QuZGlzcGF0Y2hBZnRlciIpOworICAgICAgICAgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1
ZTo6Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LmRlc3Ryb3lPblNl
bGYiLCAiRGVzdHJveU9uU2VsZiIgfSk7CiAgICAgICAgICAgICBxdWV1ZS0+ZGlzcGF0Y2hBZnRl
cihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUwMCksIFsmXSh2b2lkKSB7CiAgICAgICAgICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobG9jayk7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hB
ZnRlclRlc3RTdGFydGVkLndhaXQobG9jaywgWyZdIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCmluZGV4IDk5MjNkNjU4MDBl
ZDcxNGJhNjgwNmIxM2Y3ZTUxZmVlNTgwMzVhZDAuLjQwY2E0MTMwYjIyYzQxNDdkYjJiYTM1YjY1
MjBhMWQwY2U3ZWJmZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNwcApAQCAtNDQsNyArNDQsNyBAQCBURVNUKFdURl9Xb3Jr
UXVldWUsIEFzeW5jSU8pCiAgICAgICAgIEdNYWluQ29udGV4dCogbV9tYWluQ29udGV4dDsKICAg
ICB9IGNvbnRleHQ7CiAKLSAgICBhdXRvIHF1ZXVlID0gV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5h
cHBsZS5XZWJLaXQuVGVzdC5Bc3luY0lPIik7CisgICAgYXV0byBxdWV1ZSA9IFdvcmtRdWV1ZTo6
Y3JlYXRlKFRocmVhZE5hbWUgeyAiY29tLmFwcGxlLldlYktpdC5UZXN0LkFzeW5jSU8iLCAiQXN5
bmNJT1Rlc3QiIH0pOwogICAgIGNvbnRleHQubV9tYWluQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0
X2RlZmF1bHQoKTsKICAgICBFWFBFQ1RfRkFMU0UoZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9k
ZWZhdWx0KCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQy
R3RrL1dlYktpdFRlc3RTZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0
Mkd0ay9XZWJLaXRUZXN0U2VydmVyLmNwcAppbmRleCBkZTk0NjZjMzlkNzFjZmMyYWJmNDQ5ZmNm
ZGUzODliNTQ0OWRmMzI3Li42MzIxYmY3MzlmNTY5YTBjMGEzYmU1NDkxODE2YWI5OTNkZjMzNmZl
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYktpdFRl
c3RTZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2Vi
S2l0VGVzdFNlcnZlci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAgV2ViS2l0VGVzdFNlcnZlcjo6V2Vi
S2l0VGVzdFNlcnZlcihTZXJ2ZXJPcHRpb25zIG9wdGlvbnMpCiB7CiAgICAgaWYgKG9wdGlvbnMg
JiBTZXJ2ZXJSdW5JblRocmVhZCkgewogICAgICAgICBXVEY6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKLSAgICAgICAgbV9xdWV1ZSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJXZWJLaXRUZXN0U2VydmVy
Iik7CisgICAgICAgIG1fcXVldWUgPSBXb3JrUXVldWU6OmNyZWF0ZShUaHJlYWROYW1lIHsgIldl
YktpdFRlc3RTZXJ2ZXIiLCAiVGVzdFNlcnZlciIgfSk7CiAgICAgfQogCiAgICAgR1VuaXF1ZVB0
cjxjaGFyPiBzc2xDZXJ0aWZpY2F0ZUZpbGU7Cg==
</data>
<flag name="review"
          id="320963"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>