<?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>233945</bug_id>
          
          <creation_ts>2021-12-07 11:51:57 -0800</creation_ts>
          <short_desc>ActiveDOMObject::suspendIfNeeded() should not be called within constructors</short_desc>
          <delta_ts>2021-12-17 10:36:32 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821145</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-07 11:51:57 -0800</bug_when>
    <thetext>ActiveDOMObject::suspendIfNeeded() should not be called within constructors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821147</commentid>
    <comment_count>1</comment_count>
      <attachid>446215</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-07 11:52:35 -0800</bug_when>
    <thetext>Created attachment 446215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821149</commentid>
    <comment_count>2</comment_count>
      <attachid>446215</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 11:54:29 -0800</bug_when>
    <thetext>Comment on attachment 446215
Patch

r=me assuming the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821155</commentid>
    <comment_count>3</comment_count>
      <attachid>446215</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-07 12:08:00 -0800</bug_when>
    <thetext>Comment on attachment 446215
Patch

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

Really great patch. Too bad we can’t get the compiler or an assertion to catch this mistake, but this is nicely thorough.

Maybe we should rename this function suspendIfNeededDoNotCallInConstructor (just kidding, but maybe not kidding).

&gt; Source/WebCore/Modules/cache/DOMCache.h:40
&gt; +    static Ref&lt;DOMCache&gt; create(ScriptExecutionContext&amp;, String&amp;&amp;, uint64_t, Ref&lt;CacheStorageConnection&gt;&amp;&amp;);

Not sure that we should remove *all* of these names. The argument names &quot;name&quot; and &quot;identifier&quot; are probably still helpful.

&gt; Source/WebCore/Modules/geolocation/Geolocation.cpp:137
&gt; -    geolocation.get().suspendIfNeeded();
&gt; +    geolocation-&gt;suspendIfNeeded();

Ah, brevity competes with &quot;looks like a risky pointer dereference, but is not&quot;. I think the more terse version is better, and it’s what we use almost everywhere, but I am conflicted. There’s something cool about &quot;.get().&quot; not looking like a pointer is involved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821185</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-07 12:53:21 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 446215 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446215&amp;action=review
&gt; 
&gt; Really great patch. Too bad we can’t get the compiler or an assertion to
&gt; catch this mistake, but this is nicely thorough.

Not quite! There are 17 cases left to fix, those were just the easy ones. I&apos;ll look into fixing the other ones piecemeal.

&gt; Maybe we should rename this function suspendIfNeededDoNotCallInConstructor
&gt; (just kidding, but maybe not kidding).
&gt; 
&gt; &gt; Source/WebCore/Modules/cache/DOMCache.h:40
&gt; &gt; +    static Ref&lt;DOMCache&gt; create(ScriptExecutionContext&amp;, String&amp;&amp;, uint64_t, Ref&lt;CacheStorageConnection&gt;&amp;&amp;);
&gt; 
&gt; Not sure that we should remove *all* of these names. The argument names
&gt; &quot;name&quot; and &quot;identifier&quot; are probably still helpful.

Will restore those.

&gt; &gt; Source/WebCore/Modules/geolocation/Geolocation.cpp:137
&gt; &gt; -    geolocation.get().suspendIfNeeded();
&gt; &gt; +    geolocation-&gt;suspendIfNeeded();
&gt; 
&gt; Ah, brevity competes with &quot;looks like a risky pointer dereference, but is
&gt; not&quot;. I think the more terse version is better, and it’s what we use almost
&gt; everywhere, but I am conflicted. There’s something cool about &quot;.get().&quot; not
&gt; looking like a pointer is involved.

I personally don&apos;t mind either way, I stumbled onto this code looking at all call sites to ActiveDOMObject::suspendIfNeeded() and it was the only call on a Ref that called .get(). Felt right to put it in line with the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821252</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-07 15:40:54 -0800</bug_when>
    <thetext>(In reply to Antoine Quint from comment #4)
&gt; Not quite! There are 17 cases left to fix, those were just the easy ones.
&gt; I&apos;ll look into fixing the other ones piecemeal.

!!

&gt; Felt right to put it in line with the rest.

Agreed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823953</commentid>
    <comment_count>6</comment_count>
      <attachid>447120</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-14 03:12:13 -0800</bug_when>
    <thetext>Created attachment 447120
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824062</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-14 11:52:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/86481861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824277</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-15 01:17:16 -0800</bug_when>
    <thetext>Committed r287066 (245261@main): &lt;https://commits.webkit.org/245261@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447120.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824306</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 03:02:25 -0800</bug_when>
    <thetext>Lots to do on this left, this first commit was only part of the work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824358</commentid>
    <comment_count>10</comment_count>
      <attachid>447234</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 08:24:26 -0800</bug_when>
    <thetext>Created attachment 447234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824368</commentid>
    <comment_count>11</comment_count>
      <attachid>447234</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-15 08:38:27 -0800</bug_when>
    <thetext>Comment on attachment 447234
Patch

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

r=me with suggestions.

&gt; Source/WebCore/Modules/indexeddb/IDBIndex.cpp:45
&gt; +std::unique_ptr&lt;IDBIndex&gt; IDBIndex::create(ScriptExecutionContext&amp; context, const IDBIndexInfo&amp; info, IDBObjectStore&amp; objectStore)

We may want to return a UniqueRef instead since this cannot return null.

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:58
&gt; +std::unique_ptr&lt;IDBObjectStore&gt; IDBObjectStore::create(ScriptExecutionContext&amp; context, const IDBObjectStoreInfo&amp; info, IDBTransaction&amp; transaction)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824392</commentid>
    <comment_count>12</comment_count>
      <attachid>447245</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 09:42:56 -0800</bug_when>
    <thetext>Created attachment 447245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824439</commentid>
    <comment_count>13</comment_count>
      <attachid>447245</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-15 11:19:00 -0800</bug_when>
    <thetext>Comment on attachment 447245
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:532
&gt; +    m_referencedIndexes.set(indexName, std::unique_ptr&lt;IDBIndex&gt;(&amp;index));

You want `index.moveToUniquePtr()`. This adopts the pointer so you will double-free.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824443</commentid>
    <comment_count>14</comment_count>
      <attachid>447262</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 11:34:17 -0800</bug_when>
    <thetext>Created attachment 447262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824483</commentid>
    <comment_count>15</comment_count>
      <attachid>447270</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 12:22:10 -0800</bug_when>
    <thetext>Created attachment 447270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824490</commentid>
    <comment_count>16</comment_count>
      <attachid>447270</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-15 12:35:49 -0800</bug_when>
    <thetext>Comment on attachment 447270
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:530
&gt; +    Ref&lt;IDBIndex&gt; referencedIndex { index };

Since we’re touching this code, it can likely be changed to Ref instead of Ref&lt;IDBIndex&gt; since we have type deduction now.

&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:753
&gt; +    auto index = IDBIndex::create(*scriptExecutionContext(), info, objectStore);
&gt; +    return index.moveToUniquePtr();

Should just be able to write:

    return IDBIndex::create(*scriptExecutionContext(), info, objectStore);

Move construction of unique_ptr from UniqueRef should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824501</commentid>
    <comment_count>17</comment_count>
      <attachid>447279</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 12:46:44 -0800</bug_when>
    <thetext>Created attachment 447279
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824689</commentid>
    <comment_count>18</comment_count>
      <attachid>447327</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-15 22:21:15 -0800</bug_when>
    <thetext>Created attachment 447327
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824715</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-16 03:31:27 -0800</bug_when>
    <thetext>Committed r287129 (?): &lt;https://commits.webkit.org/r287129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824725</commentid>
    <comment_count>20</comment_count>
      <attachid>447346</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-16 05:17:46 -0800</bug_when>
    <thetext>Created attachment 447346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824732</commentid>
    <comment_count>21</comment_count>
      <attachid>447349</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-16 06:20:23 -0800</bug_when>
    <thetext>Created attachment 447349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824821</commentid>
    <comment_count>22</comment_count>
      <attachid>447349</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-16 11:09:23 -0800</bug_when>
    <thetext>Comment on attachment 447349
Patch

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

Looks fantastic

&gt; Source/WebCore/Modules/entriesapi/FileSystemEntry.cpp:57
&gt; +void FileSystemEntry::initialize()
&gt; +{
&gt; +    suspendIfNeeded();
&gt; +}

Why do we need these initialize functions instead of calling suspendIfNeeded directly?

I’m sure that you thought about a reason, but I don’t know what it is. Would be nice to have one less function if there’s no abstraction here and suspendIfNeeded would do the same thing.

If what we’re trying to mitigate is callers neglecting to call suspendIfNeeded, I’m not sure that renaming it to initialize will help. If we do want to tackle that problem there may be some compile time techniques or some runtime ones, like adding a debug-only boolean set every time suspendIfNeeded and finding a good place to assert afterward to catch cases where it wasn’t called even once. Could even use a micro-task to do that assertion.

&gt; Source/WebCore/Modules/fetch/FetchBodyOwner.cpp:60
&gt; +void FetchBodyOwner::initialize()
&gt; +{
&gt; +    suspendIfNeeded();
&gt; +}

Ditto.

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:57
&gt; +    static Ref&lt;FetchRequest&gt; create(ScriptExecutionContext&amp;, std::optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, ResourceRequest&amp;&amp;, FetchOptions&amp;&amp;, String&amp;&amp;);

Not sure we should have removed the name &quot;referrer&quot;.

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemHandle.cpp:51
&gt; +void FileSystemHandle::initialize()
&gt; +{
&gt; +    suspendIfNeeded();
&gt; +}

Ditto.

&gt; Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp:47
&gt; +    auto result = adoptRef(* new RTCDTMFSender(context, sender, WTFMove(backend)));

Maybe get rid of the space between the &quot;*&quot; and &quot;new&quot;?

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.h:44
&gt; +#include &lt;wtf/UniqueRef.h&gt;

Not something that should block landing this patch as-is, but: This should require only a forward-declaration of UniqueRef, which should be provided by Forward.h. Files where ServiceWorkerContainer::create are called will need UniquerRef.h, but this header should not require it.

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.h:61
&gt; +    static UniqueRef&lt;ServiceWorkerContainer&gt; create(ScriptExecutionContext*, NavigatorBase&amp;);

Another thing not about this patch: Do you know why this takes ScriptExecutionContext* rather than ScriptExecutionContext&amp;? Is nullptr OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824852</commentid>
    <comment_count>23</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-16 12:52:15 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #22)
&gt; Comment on attachment 447349 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=447349&amp;action=review
&gt; 
&gt; Looks fantastic
&gt; 
&gt; &gt; Source/WebCore/Modules/entriesapi/FileSystemEntry.cpp:57
&gt; &gt; +void FileSystemEntry::initialize()
&gt; &gt; +{
&gt; &gt; +    suspendIfNeeded();
&gt; &gt; +}
&gt; 
&gt; Why do we need these initialize functions instead of calling suspendIfNeeded
&gt; directly?
&gt; 
&gt; I’m sure that you thought about a reason, but I don’t know what it is. Would
&gt; be nice to have one less function if there’s no abstraction here and
&gt; suspendIfNeeded would do the same thing.
&gt; 
&gt; If what we’re trying to mitigate is callers neglecting to call
&gt; suspendIfNeeded, I’m not sure that renaming it to initialize will help. If
&gt; we do want to tackle that problem there may be some compile time techniques
&gt; or some runtime ones, like adding a debug-only boolean set every time
&gt; suspendIfNeeded and finding a good place to assert afterward to catch cases
&gt; where it wasn’t called even once. Could even use a micro-task to do that
&gt; assertion.

That was exactly my thought. If I were subclassing a class and looking at an existing subclass, I would see `initialize()` and think &quot;I better call this&quot;, but if I saw `suspendIfNeeded()` without knowing necessarily much about ActiveDOMObject, it might not be as clear that it should be called.

But this is just me, and it might in fact be a missed opportunity for the person subclassing to ask themselves the right questions and engage with a domain expert about what `suspendIfNeeded()` is.

So I&apos;m leaning towards removing initialize() and replacing its calls with `suspendIfNeeded()`.

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.h:57
&gt; &gt; +    static Ref&lt;FetchRequest&gt; create(ScriptExecutionContext&amp;, std::optional&lt;FetchBody&gt;&amp;&amp;, Ref&lt;FetchHeaders&gt;&amp;&amp;, ResourceRequest&amp;&amp;, FetchOptions&amp;&amp;, String&amp;&amp;);
&gt; 
&gt; Not sure we should have removed the name &quot;referrer&quot;.

I&apos;ll put it back.

&gt; &gt; Source/WebCore/Modules/mediastream/RTCDTMFSender.cpp:47
&gt; &gt; +    auto result = adoptRef(* new RTCDTMFSender(context, sender, WTFMove(backend)));
&gt; 
&gt; Maybe get rid of the space between the &quot;*&quot; and &quot;new&quot;?

Yes, copying-and-pasting without thinking.

&gt; &gt; Source/WebCore/workers/service/ServiceWorkerContainer.h:44
&gt; &gt; +#include &lt;wtf/UniqueRef.h&gt;
&gt; 
&gt; Not something that should block landing this patch as-is, but: This should
&gt; require only a forward-declaration of UniqueRef, which should be provided by
&gt; Forward.h. Files where ServiceWorkerContainer::create are called will need
&gt; UniquerRef.h, but this header should not require it.

OK, I will switch to a forward declaration and hopefully the bots will prove that is just fine.

&gt; &gt; Source/WebCore/workers/service/ServiceWorkerContainer.h:61
&gt; &gt; +    static UniqueRef&lt;ServiceWorkerContainer&gt; create(ScriptExecutionContext*, NavigatorBase&amp;);
&gt; 
&gt; Another thing not about this patch: Do you know why this takes
&gt; ScriptExecutionContext* rather than ScriptExecutionContext&amp;? Is nullptr OK?

I don&apos;t know, but the ActiveDOMObject constructor takes a ScriptExecutionContext* and this just passes this along to that constructor:

ActiveDOMObject::ActiveDOMObject(ScriptExecutionContext* scriptExecutionContext)
    : ActiveDOMObject(suitableScriptExecutionContext(scriptExecutionContext), CheckedScriptExecutionContext)
{
}

… which calls this method:

static inline ScriptExecutionContext* suitableScriptExecutionContext(ScriptExecutionContext* scriptExecutionContext)
{
    // For detached documents, make sure we observe their context document instead.
    return is&lt;Document&gt;(scriptExecutionContext) ? &amp;downcast&lt;Document&gt;(*scriptExecutionContext).contextDocument() : scriptExecutionContext;
}

… and calls this other constructor:

inline ActiveDOMObject::ActiveDOMObject(ScriptExecutionContext* context, CheckedScriptExecutionContextType)
    : ContextDestructionObserver(context)
{
    ASSERT(!is&lt;Document&gt;(context) || &amp;downcast&lt;Document&gt;(context)-&gt;contextDocument() == downcast&lt;Document&gt;(context));
    if (!context)
        return;

    ASSERT(context-&gt;isContextThread());
    context-&gt;didCreateActiveDOMObject(*this);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825011</commentid>
    <comment_count>24</comment_count>
      <attachid>447437</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-17 00:10:12 -0800</bug_when>
    <thetext>Created attachment 447437
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825040</commentid>
    <comment_count>25</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-17 03:58:42 -0800</bug_when>
    <thetext>Committed r287177 (245346@trunk): &lt;https://commits.webkit.org/245346@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825042</commentid>
    <comment_count>26</comment_count>
      <attachid>447447</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-17 04:11:52 -0800</bug_when>
    <thetext>Created attachment 447447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825043</commentid>
    <comment_count>27</comment_count>
      <attachid>447448</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-17 04:23:53 -0800</bug_when>
    <thetext>Created attachment 447448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825077</commentid>
    <comment_count>28</comment_count>
      <attachid>447448</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-17 07:26:47 -0800</bug_when>
    <thetext>Comment on attachment 447448
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825083</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-17 07:52:57 -0800</bug_when>
    <thetext>Committed r287186 (245353@main): &lt;https://commits.webkit.org/245353@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447448.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825121</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-17 10:36:32 -0800</bug_when>
    <thetext>We should also consider adding a checker that asserts if we make this error, to make sure this mistake doesn’t creep back in. I have some ideas about how to add that, for any objects that are put into our Ref/RefPtr/UniqueRef after creating them. No idea how to do the same for objects that go into unique_ptr, though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446215</attachid>
            <date>2021-12-07 11:52:35 -0800</date>
            <delta_ts>2021-12-15 08:24:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211207205234.patch</filename>
            <type>text/plain</type>
            <size>37796</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ1ZDNmM2Q4MzhmMDlm
NDI0ZWI2NGNmMzEwNTNmMDVkM2Q0OWU3Yy4uM2E0MDFkY2U5OTNkMjdmN2QxZDE3ZjY1ZjYyYzgy
NmI4M2YyNGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACitkdTIwMjEtMTItMDcgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWN0aXZlRE9NT2Jq
ZWN0OjpzdXNwZW5kSWZOZWVkZWQoKSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoaW4gY29uc3Ry
dWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM5NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2V0dXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXR1cDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2V0dXA6OkFwcGxlUGF5U2V0dXApOgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cFdlYkNvcmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5U2V0dXA6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9k
dWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpET01DYWNoZSk6CisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2Fj
aGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6RE9NQ2FjaGVTdG9yYWdlKToK
KyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVy
KToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRl
ci5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlOjpJREJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5k
VmVyc2lvblJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0b3JlR2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlcXVlc3Q6OmNyZWF0ZUluZGV4R2V0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlJl
cXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06
Ok1lZGlhU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpjcmVhdGUpOgor
ICAgICAgICAqIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVtb3RlUGxheWJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdGVQbGF5YmFjazo6UmVtb3RlUGxheWJhY2spOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQ
cm9jZXNzb3JOb2RlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvY2Vzc29y
Tm9kZTo6U2NyaXB0UHJvY2Vzc29yTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJY
UlNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJTZXNzaW9uOjpXZWJYUlNlc3Npb24pOgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJT
eXN0ZW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3RlbTo6V2ViWFJTeXN0
ZW0pOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTRm9udFNlbGVjdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6bV92ZXJzaW9u
KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmg6CisgICAgICAgICogZG9tL01lc3Nh
Z2VQb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6Ok1lc3NhZ2VQb3J0KToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckFuaW1hdGlvbkNvbnRyb2xsZXI6OldvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXI6OlNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb246OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb246OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24pOgorCiAyMDIxLTEyLTA2
ICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFdl
YiBJbnNwZWN0b3I6IFVuaWZ5IEdyaWQgb3ZlcmxheSBkcmF3aW5nIGNvZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAppbmRleCA2
NDNjMTFjNTljMDc4ZjNhZWJkMTY3ZWJmNDMyNWJkZDhlMzE3MmE2Li4wZjUzZWY1YjNlZjFjOWQy
NWFjYjBiODZlY2EyMzAxNDMxZjNjOGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zMzMsNyArMzMzLDkgQEAgRXhj
ZXB0aW9uT3I8UmVmPEFwcGxlUGF5U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCwgdW4KICAgICBpZiAoY29udmVydGVkUGF5bWVudFJlcXVlc3QuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsZVBheVNlc3Np
b24oZG9jdW1lbnQsIHZlcnNpb24sIGNvbnZlcnRlZFBheW1lbnRSZXF1ZXN0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpKSk7CisgICAgYXV0byBzZXNzaW9uID0gYWRvcHRSZWYoKm5ldyBBcHBsZVBheVNl
c3Npb24oZG9jdW1lbnQsIHZlcnNpb24sIGNvbnZlcnRlZFBheW1lbnRSZXF1ZXN0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKSk7CisgICAgc2Vzc2lvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0
dXJuIHNlc3Npb247CiB9CiAKIEFwcGxlUGF5U2Vzc2lvbjo6QXBwbGVQYXlTZXNzaW9uKERvY3Vt
ZW50JiBkb2N1bWVudCwgdW5zaWduZWQgdmVyc2lvbiwgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3QmJiBwYXltZW50UmVxdWVzdCkKQEAgLTM0Miw3ICszNDQsNiBAQCBBcHBsZVBheVNlc3Np
b246OkFwcGxlUGF5U2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVkIHZlcnNpb24s
IEFwcGxlUGF5UwogICAgICwgbV92ZXJzaW9uIHsgdmVyc2lvbiB9CiB7CiAgICAgQVNTRVJUKGRv
Y3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCkuc3VwcG9ydHNWZXJzaW9uKGRvY3Vt
ZW50LCB2ZXJzaW9uKSk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIEFwcGxlUGF5U2Vz
c2lvbjo6fkFwcGxlUGF5U2Vzc2lvbigpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCmluZGV4IGRmYzZiOTU0YTVjZTZk
OTc1Yzk0MzVhMDQxOGE2MmEzZjMzMGM4NDIuLmU4YjEzNjE2OTBiMjBlYWY3ZTFjNjE2YTc3MmE4
ZjYxM2RlZmYzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNldHVwLmNwcApAQCAtMTE1LDExICsxMTUsMTcgQEAgdm9pZCBBcHBsZVBheVNldHVw
OjpiZWdpbihEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlTZXR1cEZl
YXR1cmUKICAgICB9KTsKIH0KIAorUmVmPEFwcGxlUGF5U2V0dXA+IEFwcGxlUGF5U2V0dXA6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBBcHBsZVBheVNldHVwQ29uZmln
dXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBzZXR1cCA9IGFkb3B0UmVmKCpu
ZXcgQXBwbGVQYXlTZXR1cChjb250ZXh0LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7CisgICAg
c2V0dXAtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzZXR1cDsKK30KKwogQXBwbGVQ
YXlTZXR1cDo6QXBwbGVQYXlTZXR1cChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBB
cHBsZVBheVNldHVwQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBBY3RpdmVE
T01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1
cmF0aW9uKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBBcHBsZVBheVNl
dHVwOjpzdG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cFdlYkNvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cFdlYkNvcmUuaAppbmRleCBmZWYyYmVkN2VkNWUzZTFjY2FjOTY4NjkwOTEz
Y2I5NWZlZWE0Zjk1Li5hMmM0ZWIxZDlkMzIwNmU2MWZiOTRmNWYwMWE3MWFhZDI0ZmU3ZjU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXBX
ZWJDb3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
dHVwV2ViQ29yZS5oCkBAIC00MywxMCArNDMsNyBAQCBjbGFzcyBEb2N1bWVudDsKIAogY2xhc3Mg
QXBwbGVQYXlTZXR1cCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVk
PEFwcGxlUGF5U2V0dXA+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFwcGxlUGF5U2V0dXA+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBBcHBsZVBheVNldHVwQ29u
ZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBcHBsZVBheVNldHVwKGNvbnRleHQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKTsK
LSAgICB9CisgICAgc3RhdGljIFJlZjxBcHBsZVBheVNldHVwPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNpbmcg
U2V0dXBGZWF0dXJlc1Byb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURM
SW50ZXJmYWNlPEFwcGxlUGF5U2V0dXBGZWF0dXJlPj4+OwogICAgIHZvaWQgZ2V0U2V0dXBGZWF0
dXJlcyhEb2N1bWVudCYsIFNldHVwRmVhdHVyZXNQcm9taXNlJiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAppbmRleCBlNmNjMWFhZTc4M2E1MjA5NGY2NTQ5OWJi
OTBkZDdmMDA3MWQ0MjRjLi4xN2UzMjZlMTNlY2FjODg3ZjQyZDM3YThhZjY4MTVjZDAwMGQ1Y2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNDAsMTMg
KzQwLDE5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6
RE9NQ2FjaGVFbmdpbmU7CiAKK1JlZjxET01DYWNoZT4gRE9NQ2FjaGU6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCB1aW50NjRfdCBpZGVudGlm
aWVyLCBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQoreworICAgIGF1
dG8gY2FjaGUgPSBhZG9wdFJlZigqbmV3IERPTUNhY2hlKGNvbnRleHQsIFdURk1vdmUobmFtZSks
IGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICBjYWNoZS0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgcmV0dXJuIGNhY2hlOworfQorCiBET01DYWNoZTo6RE9NQ2FjaGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgdWludDY0X3QgaWRl
bnRpZmllciwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6
IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fbmFtZShXVEZNb3ZlKG5hbWUpKQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92
ZShjb25uZWN0aW9uKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKICAgICBtX2Nvbm5lY3Rp
b24tPnJlZmVyZW5jZShtX2lkZW50aWZpZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlLmgKaW5kZXggMTM5NzU0ZDMwZTQwMDc4NTRhNjQ0YTc0MTFhM2M4MTdjZDlk
MWY5Mi4uMGIwOGExYjkzM2NjMDNlZTJhNmFjNTE1MTNhNzRiM2I2Yjc0Nzg3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBET01DYWNoZSBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPERPTUNhY2hlPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxET01DYWNoZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFN0cmluZyYmIG5hbWUsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFJlZjxDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NQ2Fj
aGUoY29udGV4dCwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9u
KSkpOyB9CisgICAgc3RhdGljIFJlZjxET01DYWNoZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBTdHJpbmcmJiwgdWludDY0X3QsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYm
KTsKICAgICB+RE9NQ2FjaGUoKTsKIAogICAgIHVzaW5nIFJlcXVlc3RJbmZvID0gRmV0Y2hSZXF1
ZXN0OjpJbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0
b3JhZ2UuY3BwCmluZGV4IDhhOWNiMWZjODc1ZjIzNTc3OTNhNTg2NTBlMTFkOWUxYWY5YTI4ZDgu
LjkxZmE3MTQ1NWYxZTZmOGEwMjBiYTUxMjYwNDQ5MzQ0ZDE3ODEwNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKQEAgLTM2LDExICsz
NiwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1JlZjxET01DYWNoZVN0b3JhZ2U+IERP
TUNhY2hlU3RvcmFnZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJl
ZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCit7CisgICAgYXV0byBjYWNo
ZVN0b3JhZ2UgPSBhZG9wdFJlZigqbmV3IERPTUNhY2hlU3RvcmFnZShjb250ZXh0LCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CisgICAgY2FjaGVTdG9yYWdlLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICByZXR1cm4gY2FjaGVTdG9yYWdlOworfQorCiBET01DYWNoZVN0b3JhZ2U6OkRPTUNhY2hlU3Rv
cmFnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQog
ICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiB7Ci0gICAgc3VzcGVuZElm
TmVlZGVkKCk7CiB9CiAKIERPTUNhY2hlU3RvcmFnZTo6fkRPTUNhY2hlU3RvcmFnZSgpID0gZGVm
YXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVT
dG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5o
CmluZGV4IDE5NDdmYzdhY2NjOWUzYzk5MzQ2MzY1ZGVmZDlmY2I3NzcyNTNjN2EuLjUwZWYzYWRj
ZGNmOWU5ODcxMzA2NGVjMjFmNWM5NjhkMWM0ZTVlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTUNhY2hlU3RvcmFnZSA6IHB1YmxpYyBSZWZDb3VudGVk
PERPTUNhY2hlU3RvcmFnZT4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8RE9NQ2FjaGVTdG9yYWdlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBET01DYWNoZVN0b3JhZ2UoY29udGV4dCwgV1RGTW92ZShjb25u
ZWN0aW9uKSkpOyB9CisgICAgc3RhdGljIFJlZjxET01DYWNoZVN0b3JhZ2U+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAg
IH5ET01DYWNoZVN0b3JhZ2UoKTsKIAogICAgIHVzaW5nIEtleXNQcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETFNlcXVlbmNlPElETERPTVN0cmluZz4+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlS
ZWFkZXIuY3BwCmluZGV4IDQyNjVhNDJmMzA5ZGI0YzRjNTRiYzE5OTU4NWRlZWI4MmQ4ZGI4ZTEu
LjFlOWVjNDk1NzFlNjdlNGE1MjZmMjIzOTZkNTkyNWY5YTQzZjUwNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURp
cmVjdG9yeVJlYWRlci5jcHAKQEAgLTQxLDExICs0MSwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVy
KTsKIAorUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI+IEZpbGVTeXN0ZW1EaXJlY3RvcnlS
ZWFkZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVt
RGlyZWN0b3J5RW50cnkmIGRpcmVjdG9yeSkKK3sKKyAgICBhdXRvIHJlYWRlciA9IGFkb3B0UmVm
KCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcihjb250ZXh0LCBkaXJlY3RvcnkpKTsKKyAg
ICByZWFkZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZWFkZXI7Cit9CisKIEZp
bGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI6OkZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5JiBkaXJl
Y3RvcnkpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2RpcmVjdG9y
eShkaXJlY3RvcnkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIEZpbGVTeXN0ZW1E
aXJlY3RvcnlSZWFkZXI6On5GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxl
U3lzdGVtRGlyZWN0b3J5UmVhZGVyLmgKaW5kZXggNGZlOTIzNWNmNjZlNzMyMjRkNGQ5Y2Y1MmU2
ZDJlNmQwZmZmODA2Zi4uMWNmYTQ5NmU5NWU3YWZlMGZkNmViYzJkNDUxYTgxNGU3YjRkOWM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlSZWFkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oCkBAIC00MSwxMCArNDEsNyBAQCBjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlciBmaW5h
bCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI+IHsKICAgICBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIpOwogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeSYgZGlyZWN0b3J5KQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeVJl
YWRlcihjb250ZXh0LCBkaXJlY3RvcnkpKTsKLSAgICB9CisgICAgc3RhdGljIFJlZjxGaWxlU3lz
dGVtRGlyZWN0b3J5UmVhZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeSYpOwogCiAgICAgfkZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKaW5kZXggYjg1
YWRhZmMyOWI0ODcwOTFkZTY1YWI1MjQzOWI0NTFkMDM2NzVjNy4uOWU1MmFlZmI0NDMxNDJjN2Ew
OTQwZDQxZWFiMTI3MjcwNmJhZjU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuY3BwCkBAIC0zNyw3ICszNyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVm
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShjb250ZXh0LCBzb3VyY2Us
IGlkZW50aWZpZXIsIGZpbGUpKTsKKyAgICBhdXRvIGhhbmRsZSA9IGFkb3B0UmVmKCpuZXcgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoY29udGV4dCwgc291cmNlLCBpZGVudGlmaWVyLCBmaWxl
KSk7CisgICAgaGFuZGxlLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gaGFuZGxlOwog
fQogCiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQpAQCAtNDcsNyArNDksNiBAQCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgYwogICAgICwgbV9maWxlKGZpbGUpCiB7CiAgICAgQVNTRVJU
KG1fZmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKLSAgICBz
dXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIG1fc291cmNlLT5yZWdpc3RlclN5bmNBY2Nlc3NIYW5k
bGUobV9pZGVudGlmaWVyLCAqdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGUyNzJlY2RlZjJhN2QwNjZhMTIx
ZWMzNjZhOTkwNmQ0YjhkYjE0YzcuLmI1Y2EzMWM2MjY5ODYxNzE1NTFkN2U4ZDlmNzU5NjgzZDk5
NDQ0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb24uY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6V2F0Y2hl
cnM6OmdldE5vdGlmaWVyc1ZlY3RvcihHZW9Ob3RpZmllclZlY3RvciYgY29weSkgY29uc3QKIFJl
ZjxHZW9sb2NhdGlvbj4gR2VvbG9jYXRpb246OmNyZWF0ZShOYXZpZ2F0b3ImIG5hdmlnYXRvcikK
IHsKICAgICBhdXRvIGdlb2xvY2F0aW9uID0gYWRvcHRSZWYoKm5ldyBHZW9sb2NhdGlvbihuYXZp
Z2F0b3IpKTsKLSAgICBnZW9sb2NhdGlvbi5nZXQoKS5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBn
ZW9sb2NhdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIGdlb2xvY2F0aW9uOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5MTExN2JhODM2Yy4uNjUyYjI3
NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtNDgsNyArNDgsOSBAQCBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2UpOwogCiBSZWY8SURCRGF0YWJh
c2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURC
UmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJE
YXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBhdXRv
IGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9u
UHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkm
IGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKQEAgLTU5
LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAgICAsIG1fZXZlbnROYW1lcyhl
dmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRhdGFiYXNlOjpJREJEYXRh
YmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lvbiAlIiBQUkl1NjQgIiBjb25u
ZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgpLnV0ZjgoKS5kYXRhKCksIG1f
aW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgdGhpcyk7Ci0g
ICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9uUHJveHktPnJlZ2lzdGVyRGF0
YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThmN2FhNzc0ZjJmZjE1YzA5YTdl
NDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAwM2ZhOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNp
b25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2LDcgKzM2LDkgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KTsK
IAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIEluZm9DYWxs
YmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgV1RGTW92ZShj
YWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5LCBXVEZNb3ZlKGNh
bGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OklEQkRhdGFiYXNl
TmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIEluZm9DYWxsYmFj
ayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
UmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoU2NyaXB0RXhlY3V0aQog
ICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAgICBBU1NFUlQoY2FuQ3Vy
cmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJlYWQoKSkpOwotCi0gICAg
c3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggZTJlMTJmY2ZiMzg2ZDBkYzgyYjM3ZmM0NWIxZjQ1Yzcx
MzcxYzMxMy4uNGUwNjhiN2I5ZjQ2M2UxOGFkMjk5ZTM0YTk1OWVkZTMxYzZhZjNkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTU3
LDI3ICs1NywzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCUmVxdWVzdCk7CiAK
IFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJREJUcmFuc2FjdGlvbiYg
dHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250
ZXh0LCBvYmplY3RTdG9yZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHRyYW5zYWN0aW9uKSk7
CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9
CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgSURCQ3Vyc29yJiBjdXJzb3IsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGN1
cnNvciwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElE
QlJlcXVlc3QoY29udGV4dCwgY3Vyc29yLCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1
c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8SURCUmVxdWVz
dD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElE
QkluZGV4JiBpbmRleCwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgaW5kZXgsIHRyYW5zYWN0aW9uKSk7
CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGlu
ZGV4LCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAg
IHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRl
T2JqZWN0U3RvcmVHZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0
U3RvcmUmIG9iamVjdFN0b3JlLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZSB0eXBl
LCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9yZSwgdHlwZSwgdHJhbnNhY3Rpb24pKTsK
KyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2Jq
ZWN0U3RvcmUsIHR5cGUsIHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1
ZXN0OjpjcmVhdGVJbmRleEdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJ
bmRleCYgaW5kZXgsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlIHJlcXVlc3RlZFJlY29yZFR5
cGUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCByZXF1ZXN0ZWRSZWNvcmRUeXBlLCB0cmFu
c2FjdGlvbikpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChj
b250ZXh0LCBpbmRleCwgcmVxdWVzdGVkUmVjb3JkVHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBy
ZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBJbmRleGVkREI6OlJl
cXVlc3RUeXBlIHJlcXVlc3RUeXBlKQpAQCAtODcsNyArOTcsNiBAQCBJREJSZXF1ZXN0OjpJREJS
ZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29u
bmVjdGlvbgogICAgICwgbV9jb25uZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQogICAgICwg
bV9yZXF1ZXN0VHlwZShyZXF1ZXN0VHlwZSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0K
IAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
bikKQEAgLTk4LDcgKzEwNyw2IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0CiAgICAgLCBtX3Nv
dXJjZSgmb2JqZWN0U3RvcmUpCiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eSh0cmFuc2FjdGlvbi5k
YXRhYmFzZSgpLmNvbm5lY3Rpb25Qcm94eSgpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwog
fQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIElEQkN1cnNvciYgY3Vyc29yLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC0x
MDksOCArMTE3LDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBJREJDdXJzb3ImIGN1cnNvciwgSURCVHIKICAgICAsIG1fcGVuZGluZ0N1
cnNvcigmY3Vyc29yKQogICAgICwgbV9jb25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJh
c2UoKS5jb25uZWN0aW9uUHJveHkoKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLQogICAg
IFdURjo6c3dpdGNoT24oY3Vyc29yLnNvdXJjZSgpLAogICAgICAgICBbdGhpc10gKGNvbnN0IGF1
dG8mIHZhbHVlKSB7IHRoaXMtPm1fc291cmNlID0gSURCUmVxdWVzdDo6U291cmNlIHsgdmFsdWUg
fTsgfQogICAgICk7CkBAIC0xMjYsNyArMTMyLDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIElEQlRyYW4K
ICAgICAsIG1fc291cmNlKCZpbmRleCkKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0
aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVk
KCk7CiB9CiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJbmRleGVkREI6Ok9iamVjdFN0
b3JlUmVjb3JkVHlwZSB0eXBlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC0xMzgs
NyArMTQzLDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3QKICAgICAsIG1fY29ubmVjdGlvblBy
b3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCiAgICAgLCBtX3Jl
cXVlc3RlZE9iamVjdFN0b3JlUmVjb3JkVHlwZSh0eXBlKQogewotICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgcmVx
dWVzdGVkUmVjb3JkVHlwZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4
IGE0YWFjNWE2NmE0YjVmNDRiM2MyN2Y3MTlhYTdiYzk0YTYzZmFiOGQuLmNjYzBjYjAwNGE3OTBm
YTg0MjE5OTJjMTY1ZmJiZDYzNjEwMzQwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTY1LDEyICs2NSwxNiBAQCBz
dGQ6OmF0b21pYzx1bnNpZ25lZD4gSURCVHJhbnNhY3Rpb246Om51bWJlck9mSURCVHJhbnNhY3Rp
b25zIHsgMCB9OwogCiBSZWY8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUo
SURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCVHJhbnNhY3Rpb24oZGF0YWJhc2UsIGluZm8s
IG51bGxwdHIpKTsKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gYWRvcHRSZWYoKm5ldyBJREJUcmFu
c2FjdGlvbihkYXRhYmFzZSwgaW5mbywgbnVsbHB0cikpOworICAgIHRyYW5zYWN0aW9uLT5zdXNw
ZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gdHJhbnNhY3Rpb247CiB9CiAKIFJlZjxJREJUcmFu
c2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShJREJEYXRhYmFzZSYgZGF0YWJhc2UsIGNv
bnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbywgSURCT3BlbkRCUmVxdWVzdCYgcmVxdWVzdCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwgaW5m
bywgJnJlcXVlc3QpKTsKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gYWRvcHRSZWYoKm5ldyBJREJU
cmFuc2FjdGlvbihkYXRhYmFzZSwgaW5mbywgJnJlcXVlc3QpKTsKKyAgICB0cmFuc2FjdGlvbi0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHRyYW5zYWN0aW9uOwogfQogCiBJREJUcmFu
c2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJU
cmFuc2FjdGlvbkluZm8mIGluZm8sIElEQk9wZW5EQlJlcXVlc3QqIHJlcXVlc3QpCkBAIC0xMDIs
OCArMTA2LDYgQEAgSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBk
YXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJgogCiAgICAgICAgIGVzdGFibGlzaE9u
U2VydmVyKCk7CiAgICAgfQotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlRyYW5z
YWN0aW9uOjp+SURCVHJhbnNhY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAppbmRleCA0ZmIwNGEzYWU1NjlhNzg5ZGNiMmIw
MTA4NzUxMmIyMWQ1M2ZmNDdmLi4xZmQ3ZGVhMzdmOWY4ZjcwZjA3Njg3ZGE1ZDE4MTdiZDI2Zjk2
MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmNwcApAQCAtNTAsMTcgKzUwLDIzIEBAIFJlZjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJl
YW06OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKIFJlZjxNZWRpYVN0cmVhbT4gTWVkaWFT
dHJlYW06OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1lZGlhU3RyZWFtJiBzdHJlYW0pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW0oZG9jdW1lbnQsIHN0cmVhbS5n
ZXRUcmFja3MoKSkpOworICAgIGF1dG8gbWVkaWFTdHJlYW0gPSBhZG9wdFJlZigqbmV3IE1lZGlh
U3RyZWFtKGRvY3VtZW50LCBzdHJlYW0uZ2V0VHJhY2tzKCkpKTsKKyAgICBtZWRpYVN0cmVhbS0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1lZGlhU3RyZWFtOwogfQogCiBSZWY8TWVk
aWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBN
ZWRpYVN0cmVhbVRyYWNrVmVjdG9yJiB0cmFja3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTWVkaWFTdHJlYW0oZG9jdW1lbnQsIHRyYWNrcykpOworICAgIGF1dG8gbWVkaWFTdHJlYW0g
PSBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtKGRvY3VtZW50LCB0cmFja3MpKTsKKyAgICBtZWRp
YVN0cmVhbS0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1lZGlhU3RyZWFtOwogfQog
CiBSZWY8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiYmIHN0cmVhbVByaXZhdGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW0oZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtUHJpdmF0
ZSkpKTsKKyAgICBhdXRvIG1lZGlhU3RyZWFtID0gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbShk
b2N1bWVudCwgV1RGTW92ZShzdHJlYW1Qcml2YXRlKSkpOworICAgIG1lZGlhU3RyZWFtLT5zdXNw
ZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gbWVkaWFTdHJlYW07CiB9CiAKIHN0YXRpYyBpbmxp
bmUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgY3JlYXRlVHJhY2tQcml2YXRlVmVjdG9y
KGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3ImIHRyYWNrcykKQEAgLTgyLDcgKzg4LDYgQEAg
TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFT
dHJlYW1UcmFja1ZlY3RvciYgdHJhY2sKIAogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0
aXZlKCkpOwogICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwotICAgIHN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiYmIHN0cmVhbVByaXZhdGUpCkBAIC05Niw3ICsx
MDEsNiBAQCBNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8
TWVkaWFTdHJlYW1Qcml2YXRlPiYmIHN0cmVhbVByaQogCiAgICAgc2V0SXNBY3RpdmUobV9wcml2
YXRlLT5hY3RpdmUoKSk7CiAgICAgbV9wcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7Ci0gICAg
c3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIE1lZGlhU3RyZWFtOjp+TWVkaWFTdHJlYW0oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXF1ZXN0LmNwcAppbmRleCBlZWNhMmNlYzU0MjFiNjhiNjdkM2FlYjE5YjY5OWM1ZjdiNzdkMjMx
Li5mZGIyZGNhMGY0NmRhYjE4N2NkODFlMjkxMDk5YjRjY2M0NmJiYTUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmNwcApAQCAtMzQ0LDcgKzM0NCw5IEBAIEV4Y2VwdGlvbk9yPFJlZjxQYXltZW50UmVxdWVzdD4+
IFBheW1lbnRSZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0CiAgICAgICAg
IHJldHVybiBkZXRhaWxzUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIGF1dG8gc2hp
cHBpbmdPcHRpb25BbmRNb2RpZmllckRhdGEgPSBkZXRhaWxzUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOwotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1lbnRSZXF1ZXN0KGRvY3VtZW50
LCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKGRldGFpbHMpLCBXVEZNb3ZlKHN0ZDo6Z2V0PDE+
KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSksIFdURk1vdmUoc2VyaWFsaXplZE1ldGhv
ZERhdGEpLCBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRh
KSkpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IFBheW1lbnRSZXF1ZXN0KGRv
Y3VtZW50LCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKGRldGFpbHMpLCBXVEZNb3ZlKHN0ZDo6
Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSksIFdURk1vdmUoc2VyaWFsaXpl
ZE1ldGhvZERhdGEpLCBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZp
ZXJEYXRhKSkpKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIAogYm9vbCBQYXltZW50UmVxdWVzdDo6ZW5hYmxlZEZvckNvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKQEAgLTM2MCw3ICszNjIsNiBAQCBQYXltZW50
UmVxdWVzdDo6UGF5bWVudFJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXltZW50T3B0aW9u
cyYmIG9wdGlvbnMsIFBheQogICAgICwgbV9zZXJpYWxpemVkTWV0aG9kRGF0YSB7IFdURk1vdmUo
c2VyaWFsaXplZE1ldGhvZERhdGEpIH0KICAgICAsIG1fc2hpcHBpbmdPcHRpb24geyBXVEZNb3Zl
KHNlbGVjdGVkU2hpcHBpbmdPcHRpb24pIH0KIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0K
IAogUGF5bWVudFJlcXVlc3Q6On5QYXltZW50UmVxdWVzdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCmluZGV4
IDRhMTU1YjBhNDVhYTJkNTYxNjEwM2EyOTNhZWU3NDIyN2UyMGNjZjQuLjQwZmExODkwMWJlYjAw
ZTkyYjM3ZDc2NDNkM2E4YWNjZTJhMzIxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3BwCkBAIC00NSwxNCAr
NDUsMTUgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbW90ZVBsYXliYWNrKTsKIAog
UmVmPFJlbW90ZVBsYXliYWNrPiBSZW1vdGVQbGF5YmFjazo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlUGxheWJhY2so
ZWxlbWVudCkpOworICAgIGF1dG8gcmVtb3RlUGxheWJhY2sgPSBhZG9wdFJlZigqbmV3IFJlbW90
ZVBsYXliYWNrKGVsZW1lbnQpKTsKKyAgICByZW1vdGVQbGF5YmFjay0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHJlbW90ZVBsYXliYWNrOwogfQogCiBSZW1vdGVQbGF5YmFjazo6UmVt
b3RlUGxheWJhY2soSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICA6IFdlYkNvcmU6OkFj
dGl2ZURPTU9iamVjdChlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAsIG1f
bWVkaWFFbGVtZW50KGVsZW1lbnQpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIFJl
bW90ZVBsYXliYWNrOjp+UmVtb3RlUGxheWJhY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKaW5kZXggMTI0Nzhi
MDYzMTQyOGY4ZTg1NDhlZmJmNDhmZjY5NGQwZDk4MmJmYS4uMjU3YmYwNDc5NjM5NjEzMWQzMjZk
MzM4MGVkZDgyYWIxMjlkMDVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBAIC00Nyw3ICs0Nyw5IEBAIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTY3JpcHRQcm9jZXNzb3JOb2RlKTsKIAogUmVmPFNj
cmlwdFByb2Nlc3Nvck5vZGU+IFNjcmlwdFByb2Nlc3Nvck5vZGU6OmNyZWF0ZShCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXh0LCBzaXplX3QgYnVmZmVyU2l6ZSwgdW5zaWduZWQgbnVtYmVyT2ZJbnB1
dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNjcmlwdFByb2Nlc3Nvck5vZGUoY29udGV4dCwgYnVmZmVyU2l6ZSwg
bnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENoYW5uZWxzKSk7CisgICAgYXV0
byBub2RlID0gYWRvcHRSZWYoKm5ldyBTY3JpcHRQcm9jZXNzb3JOb2RlKGNvbnRleHQsIGJ1ZmZl
clNpemUsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZPdXRwdXRDaGFubmVscykpOwor
ICAgIG5vZGUtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBub2RlOwogfQogCiBTY3Jp
cHRQcm9jZXNzb3JOb2RlOjpTY3JpcHRQcm9jZXNzb3JOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQsIHNpemVfdCBidWZmZXJTaXplLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMs
IHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCkBAIC02OSw3ICs3MSw2IEBAIFNjcmlw
dFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nvck5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29u
dGV4dCwgc2l6ZV90IGJ1ZmZlCiAgICAgYWRkT3V0cHV0KG51bWJlck9mT3V0cHV0Q2hhbm5lbHMp
OwogCiAgICAgaW5pdGlhbGl6ZSgpOwotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBTY3Jp
cHRQcm9jZXNzb3JOb2RlOjp+U2NyaXB0UHJvY2Vzc29yTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKaW5kZXggOTQ5YmU0OWY4ZjNiMGU2MjEz
ZDQ5NmE0ZjA2NWExMTEwMjA5ODdhZC4uMzc2MGU0ZGY2MDhlMDNkOGNiYjIwOTk1N2VkNjIzMTRm
Yzc1Y2Q3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTZXNzaW9u
LmNwcApAQCAtNDcsNyArNDcsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViWFJT
ZXNzaW9uKTsKIAogUmVmPFdlYlhSU2Vzc2lvbj4gV2ViWFJTZXNzaW9uOjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBXZWJYUlN5c3RlbSYgc3lzdGVtLCBYUlNlc3Npb25Nb2RlIG1vZGUsIFBs
YXRmb3JtWFI6OkRldmljZSYgZGV2aWNlLCBGZWF0dXJlTGlzdCYmIHJlcXVlc3RlZEZlYXR1cmVz
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSU2Vzc2lvbihkb2N1bWVudCwgc3lz
dGVtLCBtb2RlLCBkZXZpY2UsIFdURk1vdmUocmVxdWVzdGVkRmVhdHVyZXMpKSk7CisgICAgYXV0
byBzZXNzaW9uID0gYWRvcHRSZWYoKm5ldyBXZWJYUlNlc3Npb24oZG9jdW1lbnQsIHN5c3RlbSwg
bW9kZSwgZGV2aWNlLCBXVEZNb3ZlKHJlcXVlc3RlZEZlYXR1cmVzKSkpOworICAgIHNlc3Npb24t
PnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzZXNzaW9uOwogfQogCiBXZWJYUlNlc3Np
b246OldlYlhSU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlhSU3lzdGVtJiBzeXN0ZW0s
IFhSU2Vzc2lvbk1vZGUgbW9kZSwgUGxhdGZvcm1YUjo6RGV2aWNlJiBkZXZpY2UsIEZlYXR1cmVM
aXN0JiYgcmVxdWVzdGVkRmVhdHVyZXMpCkBAIC02OCw4ICs3MCw2IEBAIFdlYlhSU2Vzc2lvbjo6
V2ViWFJTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgV2ViWFJTeXN0ZW0mIHN5c3RlbSwgWFJT
ZXNzaW9uTW9kCiAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8j
cmVmLWZvci1kb20teHJyZWZlcmVuY2VzcGFjZXR5cGUtdmlld2VyJUUyJTkxJUEyCiAgICAgLy8g
RXZlcnkgc2Vzc2lvbiBNVVNUIHN1cHBvcnQgdmlld2VyIFhSUmVmZXJlbmNlU3BhY2VzLgogICAg
IG1fZGV2aWNlLT5pbml0aWFsaXplUmVmZXJlbmNlU3BhY2UoWFJSZWZlcmVuY2VTcGFjZVR5cGU6
OlZpZXdlcik7Ci0KLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogV2ViWFJTZXNzaW9uOjp+
V2ViWFJTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3Rl
bS5jcHAKaW5kZXggYzY0NjFkYTMzMzBmMGFiNTExZDI0OTRlMzliMDJlZDk4MzhhMTBlZC4uOGFm
ZGZiNmUwMDg4N2RkNTJmMTkzZTEwNTc2ZWIxMzFiMThlOTQwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTU2LDcgKzU2LDkgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSU3lzdGVtKTsKIAogUmVmPFdlYlhSU3lzdGVtPiBX
ZWJYUlN5c3RlbTo6Y3JlYXRlKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlhSU3lzdGVtKG5hdmlnYXRvcikpOworICAgIGF1dG8gc3lzdGVtID0g
YWRvcHRSZWYoKm5ldyBXZWJYUlN5c3RlbShuYXZpZ2F0b3IpKTsKKyAgICBzeXN0ZW0tPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzeXN0ZW07CiB9CiAKIFdlYlhSU3lzdGVtOjpXZWJY
UlN5c3RlbShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKQEAgLTY1LDcgKzY3LDYgQEAgV2ViWFJTeXN0
ZW06OldlYlhSU3lzdGVtKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogICAgICwgbV9kZWZhdWx0SW5s
aW5lRGV2aWNlKCpuYXZpZ2F0b3Iuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogewogICAgIG1f
aW5saW5lWFJEZXZpY2UgPSBtX2RlZmF1bHRJbmxpbmVEZXZpY2U7Ci0gICAgc3VzcGVuZElmTmVl
ZGVkKCk7CiB9CiAKIFdlYlhSU3lzdGVtOjp+V2ViWFJTeXN0ZW0oKSA9IGRlZmF1bHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmluZGV4IGFlMTFhOGI5Y2U4ZTBmN2FmMmUx
YzcyOWExYTM1ZDU5ODQ2ZWU5ODYuLmJiZTdkYTQ4MzU2YWQxYzE2NDQ4MTM2YmZkNDNjNjZjYWYz
ODg2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC02Miw2ICs2
MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Rm9udEZhbWlseU5hbWVzOwogCiBzdGF0aWMg
dW5zaWduZWQgZm9udFNlbGVjdG9ySWQ7CiAKK1JlZjxDU1NGb250U2VsZWN0b3I+IENTU0ZvbnRT
ZWxlY3Rvcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisgICAg
YXV0byBmb250U2VsZWN0b3IgPSBhZG9wdFJlZigqbmV3IENTU0ZvbnRTZWxlY3Rvcihjb250ZXh0
KSk7CisgICAgZm9udFNlbGVjdG9yLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gZm9u
dFNlbGVjdG9yOworfQorCiBDU1NGb250U2VsZWN0b3I6OkNTU0ZvbnRTZWxlY3RvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0
KQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCkBAIC04NCw4ICs5MSw2IEBAIENTU0ZvbnRTZWxl
Y3Rvcjo6Q1NTRm9udFNlbGVjdG9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAg
ICAgbV9mb250Q2FjaGUtPmFkZENsaWVudCgqdGhpcyk7CiAgICAgbV9jc3NGb250RmFjZVNldC0+
YWRkRm9udE1vZGlmaWVkT2JzZXJ2ZXIobV9mb250TW9kaWZpZWRPYnNlcnZlcik7CiAgICAgTE9H
KEZvbnRzLCAiQ1NTRm9udFNlbGVjdG9yICVwIGN0b3IiLCB0aGlzKTsKLQotICAgIHN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBDU1NGb250U2VsZWN0b3I6On5DU1NGb250U2VsZWN0b3IoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCmluZGV4IDE0YTA0NTQ5ZDQxMDhjZTUzMjkyNTgz
YjM4ZTQ3MDMyN2YxOTRiYTUuLjc3NTQ0YTJmMmU0NWRlMTM0M2E4OGViMTZjYWZlMjJmN2EyMDQ0
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKQEAgLTUxLDEwICs1MSw3IEBA
IGNsYXNzIFN0eWxlUnVsZUZvbnRGYWNlOwogCiBjbGFzcyBDU1NGb250U2VsZWN0b3IgZmluYWwg
OiBwdWJsaWMgRm9udFNlbGVjdG9yLCBwdWJsaWMgQ1NTRm9udEZhY2U6OkNsaWVudCwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPENTU0ZvbnRTZWxlY3Rvcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q1NTRm9udFNlbGVjdG9yPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IENTU0ZvbnRTZWxlY3Rvcihjb250ZXh0KSk7Ci0gICAgfQorICAgIHN0YXRpYyBSZWY8
Q1NTRm9udFNlbGVjdG9yPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHZp
cnR1YWwgfkNTU0ZvbnRTZWxlY3RvcigpOwogICAgIAogICAgIHVuc2lnbmVkIHZlcnNpb24oKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3ZlcnNpb247IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
Y3BwCmluZGV4IDhkYTIwNzYxODMxZjcyMjNjOGIzNGI3MWJkYWY2NTM2MjE2YWUxM2QuLmNkMjNj
ZjA1OTc2ZmQ3MWUwZWJkNmRjYTJhZDQyZjZiZjc3ZmY2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3Nh
Z2VQb3J0LmNwcApAQCAtOTMsNyArOTMsOSBAQCB2b2lkIE1lc3NhZ2VQb3J0Ojpub3RpZnlNZXNz
YWdlQXZhaWxhYmxlKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllcgogCiBS
ZWY8TWVzc2FnZVBvcnQ+IE1lc3NhZ2VQb3J0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBs
b2NhbCwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgTWVzc2FnZVBvcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgbG9jYWws
IHJlbW90ZSkpOworICAgIGF1dG8gbWVzc2FnZVBvcnQgPSBhZG9wdFJlZigqbmV3IE1lc3NhZ2VQ
b3J0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGxvY2FsLCByZW1vdGUpKTsKKyAgICBtZXNzYWdl
UG9ydC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIG1lc3NhZ2VQb3J0OwogfQogCiBN
ZXNzYWdlUG9ydDo6TWVzc2FnZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiBsb2NhbCwgY29uc3Qg
TWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGUpCkBAIC0xMTAsNyArMTEyLDYgQEAgTWVzc2Fn
ZVBvcnQ6Ok1lc3NhZ2VQb3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIGNvbnN0IE0KICAgICBpbml0aWFsaXplV2Vha1B0ckZhY3RvcnkoKTsKIAogICAg
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y3JlYXRlZE1lc3NhZ2VQb3J0KCp0aGlzKTsKLSAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIC8vIERvbid0IG5lZWQgdG8gY2FsbCBwcm9jZXNz
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHNTb29uKCkgaGVyZSwgYmVjYXVzZSB0aGUgcG9ydCB3aWxs
IG5vdCBiZSBvcGVuZWQgdW50aWwgc3RhcnQoKSBpcyBpbnZva2VkLgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXgg
MDNjYTZhN2U2MjUzN2M4NTc3NjkzYzMzY2U1MTA1MjY1ZWFmMzkxMC4uZjA1ZTJmNDMxN2Y0M2Jj
OWYwYTkxNzA0MjJjZTY0YTkwY2Y3MjE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zOSw3ICszOSw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmPFdvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXI+IFdvcmtl
ckFuaW1hdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2xv
YmFsU2NvcGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyQW5pbWF0aW9uQ29u
dHJvbGxlcih3b3JrZXJHbG9iYWxTY29wZSkpOworICAgIGF1dG8gY29udHJvbGxlciA9IGFkb3B0
UmVmKCpuZXcgV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcih3b3JrZXJHbG9iYWxTY29wZSkpOwor
ICAgIGNvbnRyb2xsZXItPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBjb250cm9sbGVy
OwogfQogCiBXb3JrZXJBbmltYXRpb25Db250cm9sbGVyOjpXb3JrZXJBbmltYXRpb25Db250cm9s
bGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSkKQEAgLTQ3LDcgKzQ5LDYg
QEAgV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjo6V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcihX
b3JrZXJHbG9iYWxTY29wZSYgd29ya2VyR2wKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUod29y
a2VyR2xvYmFsU2NvcGUpCiAgICAgLCBtX2FuaW1hdGlvblRpbWVyKCp0aGlzLCAmV29ya2VyQW5p
bWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9uVGltZXJGaXJlZCkKIHsKLSAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIH0KIAogV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjo6fldvcmtlckFuaW1hdGlv
bkNvbnRyb2xsZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuY3BwCmluZGV4IGRmOTBkNTc3N2VhM2M4YmQ3YjIyZTVkYjk1NDJjZGVmMmVmN2E4
OTcuLjVhZDk5MTJlM2IwYjcxZmUxYzJjMmJlZjIyMzQ3OTUzODhmZDJhOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTU3LDE1
ICs1NywxNSBAQCBSZWY8U2VydmljZVdvcmtlcj4gU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUwogewogICAgIGlmIChhdXRvIGV4aXN0
aW5nU2VydmljZVdvcmtlciA9IGNvbnRleHQuc2VydmljZVdvcmtlcihkYXRhLmlkZW50aWZpZXIp
KQogICAgICAgICByZXR1cm4gKmV4aXN0aW5nU2VydmljZVdvcmtlcjsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyKGNvbnRleHQsIFdURk1vdmUoZGF0YSkpKTsKKyAgICBh
dXRvIHNlcnZpY2VXb3JrZXIgPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoY29udGV4dCwg
V1RGTW92ZShkYXRhKSkpOworICAgIHNlcnZpY2VXb3JrZXItPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiBzZXJ2aWNlV29ya2VyOwogfQogCiBTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29y
a2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJEYXRhJiYg
ZGF0YSkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fZGF0YShXVEZN
b3ZlKGRhdGEpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotCiAgICAgY29udGV4dC5yZWdp
c3RlclNlcnZpY2VXb3JrZXIoKnRoaXMpOwogCiAgICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggMGMwNmQ5OWJiMzJlMmNmZTVmMDZjODAw
OTg1NmJjNjQwZjg3Yjk5OS4uZjllOWY0MTA4NmQ0NTYzNDM3ZjdmMTZiNDdiOTBhYWE2MjE5NjI0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcApAQCAtNTQsNyArNTQsOSBAQCBSZWY8U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbj4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6Z2V0T3JDcmVh
dGUoU2NyaXB0RXhlYwogICAgICAgICByZXR1cm4gKnJlZ2lzdHJhdGlvbjsKICAgICB9CiAKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKGNvbnRleHQs
IFdURk1vdmUoY29udGFpbmVyKSwgV1RGTW92ZShkYXRhKSkpOworICAgIGF1dG8gcmVnaXN0cmF0
aW9uID0gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKGNvbnRleHQsIFdU
Rk1vdmUoY29udGFpbmVyKSwgV1RGTW92ZShkYXRhKSkpOworICAgIHJlZ2lzdHJhdGlvbi0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbjsKIH0KIAogU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbjo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBSZWY8U2VydmljZVdvcmtlckNvbnRhaW5lcj4mJiBjb250YWlu
ZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSkKQEAg
LTYzLDcgKzY1LDYgQEAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb24KICAgICAsIG1fY29udGFpbmVy
KFdURk1vdmUoY29udGFpbmVyKSkKIHsKICAgICBMT0coU2VydmljZVdvcmtlciwgIkNyZWF0aW5n
IHJlZ2lzdHJhdGlvbiAlcCBmb3IgcmVnaXN0cmF0aW9uIGtleSAlcyIsIHRoaXMsIG1fcmVnaXN0
cmF0aW9uRGF0YS5rZXkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHN1c3Bl
bmRJZk5lZWRlZCgpOwogCiAgICAgaWYgKG1fcmVnaXN0cmF0aW9uRGF0YS5pbnN0YWxsaW5nV29y
a2VyKQogICAgICAgICBtX2luc3RhbGxpbmdXb3JrZXIgPSBTZXJ2aWNlV29ya2VyOjpnZXRPckNy
ZWF0ZShjb250ZXh0LCBXVEZNb3ZlKCptX3JlZ2lzdHJhdGlvbkRhdGEuaW5zdGFsbGluZ1dvcmtl
cikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447120</attachid>
            <date>2021-12-14 03:12:13 -0800</date>
            <delta_ts>2021-12-15 08:24:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233945-20211214121211.patch</filename>
            <type>text/plain</type>
            <size>29278</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVkMjVkMmM1MTczMTQ4
ZGI0ZWExZThhMjc3YThjZDBiZGNkNzAyOC4uMGYwOTUyYjUxY2ViMTZkN2JiMWU5YmE2NmVkZmFk
YzVlMWU0YjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIxLTEyLTE0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXogYW5kIERhcmluIEFkbGVyLgor
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNl
dHVwOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXR1cDo6QXBwbGVQYXlT
ZXR1cCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwV2ViQ29yZS5o
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXR1cDo6Y3JlYXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNhY2hlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OkRPTUNhY2hlKToK
KyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmg6CisgICAgICAgICogTW9kdWxlcy9j
YWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9y
YWdlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpET01DYWNo
ZVN0b3JhZ2UpOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI6OkZpbGVTeXN0ZW1EaXJl
Y3RvcnlSZWFkZXIpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGly
ZWN0b3J5UmVhZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0pOgorICAgICAgICAqIE1vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGF5bWVudFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9yZW1vdGVwbGF5YmFj
ay9SZW1vdGVQbGF5YmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdGVQbGF5YmFjazo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbW90ZVBsYXliYWNrOjpSZW1vdGVQbGF5YmFj
ayk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2Nlc3Nvck5vZGU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRQcm9jZXNzb3JOb2RlOjpTY3JpcHRQcm9jZXNzb3JOb2RlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJYUlNlc3Npb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlNlc3Npb246
OldlYlhSU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3RlbTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlhSU3lzdGVtOjpXZWJYUlN5c3RlbSk6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjptX3ZlcnNpb24pOgorICAgICAgICAqIGNzcy9DU1NGb250U2VsZWN0
b3IuaDoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVzc2FnZVBvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydDo6TWVz
c2FnZVBvcnQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjo6V29ya2VyQW5p
bWF0aW9uQ29udHJvbGxlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2VydmljZVdvcmtlcik6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6Z2V0T3JDcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbik6CisKIDIwMjEtMTItMTQgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW5hbWUgU2hhcmVkQnVmZmVyIGNsYXNzZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKaW5kZXgg
NjQzYzExYzU5YzA3OGYzYWViZDE2N2ViZjQzMjViZGQ4ZTMxNzJhNi4uMGY1M2VmNWIzZWYxYzlk
MjVhY2IwYjg2ZWNhMjMwMTQzMWYzYzhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcApAQCAtMzMzLDcgKzMzMyw5IEBAIEV4
Y2VwdGlvbk9yPFJlZjxBcHBsZVBheVNlc3Npb24+PiBBcHBsZVBheVNlc3Npb246OmNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQsIHVuCiAgICAgaWYgKGNvbnZlcnRlZFBheW1lbnRSZXF1ZXN0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkUGF5bWVudFJlcXVlc3QucmVs
ZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlTZXNz
aW9uKGRvY3VtZW50LCB2ZXJzaW9uLCBjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSkpOworICAgIGF1dG8gc2Vzc2lvbiA9IGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlT
ZXNzaW9uKGRvY3VtZW50LCB2ZXJzaW9uLCBjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKSkpOworICAgIHNlc3Npb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiBzZXNzaW9uOwogfQogCiBBcHBsZVBheVNlc3Npb246OkFwcGxlUGF5U2Vzc2lvbihEb2N1
bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVkIHZlcnNpb24sIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0JiYgcGF5bWVudFJlcXVlc3QpCkBAIC0zNDIsNyArMzQ0LDYgQEAgQXBwbGVQYXlTZXNz
aW9uOjpBcHBsZVBheVNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCB2ZXJzaW9u
LCBBcHBsZVBheVMKICAgICAsIG1fdmVyc2lvbiB7IHZlcnNpb24gfQogewogICAgIEFTU0VSVChk
b2N1bWVudC5wYWdlKCktPnBheW1lbnRDb29yZGluYXRvcigpLnN1cHBvcnRzVmVyc2lvbihkb2N1
bWVudCwgdmVyc2lvbikpOwotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBBcHBsZVBheVNl
c3Npb246On5BcHBsZVBheVNlc3Npb24oKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcAppbmRleCBkZmM2Yjk1NGE1Y2U2
ZDk3NWM5NDM1YTA0MThhNjJhM2YzMzBjODQyLi5lOGIxMzYxNjkwYjIwZWFmN2UxYzYxNmE3NzJh
OGY2MTNkZWZmMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2V0dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHAKQEAgLTExNSwxMSArMTE1LDE3IEBAIHZvaWQgQXBwbGVQYXlTZXR1
cDo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5U2V0dXBG
ZWF0dXJlCiAgICAgfSk7CiB9CiAKK1JlZjxBcHBsZVBheVNldHVwPiBBcHBsZVBheVNldHVwOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgQXBwbGVQYXlTZXR1cENvbmZp
Z3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQoreworICAgIGF1dG8gc2V0dXAgPSBhZG9wdFJlZigq
bmV3IEFwcGxlUGF5U2V0dXAoY29udGV4dCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOworICAg
IHNldHVwLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gc2V0dXA7Cit9CisKIEFwcGxl
UGF5U2V0dXA6OkFwcGxlUGF5U2V0dXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
QXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIDogQWN0aXZl
RE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9jb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmln
dXJhdGlvbikpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgQXBwbGVQYXlT
ZXR1cDo6c3RvcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2V0dXBXZWJDb3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2V0dXBXZWJDb3JlLmgKaW5kZXggZmVmMmJlZDdlZDVlM2UxY2NhYzk2ODY5MDkx
M2NiOTVmZWVhNGY5NS4uYTJjNGViMWQ5ZDMyMDZlNjFmYjk0ZjVmMDFhNzFhYWQyNGZlN2Y1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVw
V2ViQ29yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
ZXR1cFdlYkNvcmUuaApAQCAtNDMsMTAgKzQzLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiAKIGNsYXNz
IEFwcGxlUGF5U2V0dXAgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRl
ZDxBcHBsZVBheVNldHVwPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBcHBsZVBheVNldHVw
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgQXBwbGVQYXlTZXR1cENv
bmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXBwbGVQYXlTZXR1cChjb250ZXh0LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKSk7
Ci0gICAgfQorICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlTZXR1cD4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHVzaW5n
IFNldHVwRmVhdHVyZXNQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETFNlcXVlbmNlPElE
TEludGVyZmFjZTxBcHBsZVBheVNldHVwRmVhdHVyZT4+PjsKICAgICB2b2lkIGdldFNldHVwRmVh
dHVyZXMoRG9jdW1lbnQmLCBTZXR1cEZlYXR1cmVzUHJvbWlzZSYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKaW5kZXggOTVhYTA4NjU5NGE2ZmI2MGQ1NmZkNzE1
ZTNmNDJlMjQ0Njg5YTFiYy4uOTZmYWZmMmRmNDU3MDdhYTcwZGY0MGVmZGRlZDhjNTE2YjM1NTU3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAgLTQwLDEz
ICs0MCwxOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6
OkRPTUNhY2hlRW5naW5lOwogCitSZWY8RE9NQ2FjaGU+IERPTUNhY2hlOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgdWludDY0X3QgaWRlbnRp
ZmllciwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK3sKKyAgICBh
dXRvIGNhY2hlID0gYWRvcHRSZWYoKm5ldyBET01DYWNoZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUp
LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgY2FjaGUtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiBjYWNoZTsKK30KKwogRE9NQ2FjaGU6OkRPTUNhY2hlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAg
OiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1v
dmUoY29ubmVjdGlvbikpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0
aW9uLT5yZWZlcmVuY2UobV9pZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5oCmluZGV4IDEzOTc1NGQzMGU0MDA3ODU0YTY0NGE3NDExYTNjODE3Y2Q5
ZDFmOTIuLjBiMDhhMWI5MzNjYzAzZWUyYTZhYzUxNTEzYTc0YjNiNmI3NDc4N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgRE9NQ2FjaGUgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxET01DYWNoZT4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8RE9NQ2FjaGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBTdHJpbmcmJiBuYW1lLCB1aW50NjRfdCBpZGVudGlmaWVyLCBSZWY8Q2FjaGVTdG9y
YWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTUNh
Y2hlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlv
bikpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NQ2FjaGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgU3RyaW5nJiYsIHVpbnQ2NF90LCBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4m
Jik7CiAgICAgfkRPTUNhY2hlKCk7CiAKICAgICB1c2luZyBSZXF1ZXN0SW5mbyA9IEZldGNoUmVx
dWVzdDo6SW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVT
dG9yYWdlLmNwcAppbmRleCA4YTljYjFmYzg3NWYyMzU3NzkzYTU4NjUwZTExZDllMWFmOWEyOGQ4
Li45MWZhNzE0NTVmMWU2ZjhhMDIwYmE1MTI2MDQ0OTM0NGQxNzgxMDYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCkBAIC0zNiwxMSAr
MzYsMTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitSZWY8RE9NQ2FjaGVTdG9yYWdlPiBE
T01DYWNoZVN0b3JhZ2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBS
ZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gY2Fj
aGVTdG9yYWdlID0gYWRvcHRSZWYoKm5ldyBET01DYWNoZVN0b3JhZ2UoY29udGV4dCwgV1RGTW92
ZShjb25uZWN0aW9uKSkpOworICAgIGNhY2hlU3RvcmFnZS0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIGNhY2hlU3RvcmFnZTsKK30KKwogRE9NQ2FjaGVTdG9yYWdlOjpET01DYWNoZVN0
b3JhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPENhY2hlU3RvcmFnZUNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
ICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewotICAgIHN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBET01DYWNoZVN0b3JhZ2U6On5ET01DYWNoZVN0b3JhZ2UoKSA9IGRl
ZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2Uu
aAppbmRleCAxOTQ3ZmM3YWNjYzllM2M5OTM0NjM2NWRlZmQ5ZmNiNzc3MjUzYzdhLi41MGVmM2Fk
Y2RjZjllOTg3MTMwNjRlYzIxZjVjOTY4ZDFjNGU1ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01DYWNoZVN0b3JhZ2UgOiBwdWJsaWMgUmVmQ291bnRl
ZDxET01DYWNoZVN0b3JhZ2U+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPERPTUNhY2hlU3RvcmFnZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NQ2FjaGVTdG9yYWdlKGNvbnRleHQsIFdURk1vdmUoY29u
bmVjdGlvbikpKTsgfQorICAgIHN0YXRpYyBSZWY8RE9NQ2FjaGVTdG9yYWdlPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAg
ICB+RE9NQ2FjaGVTdG9yYWdlKCk7CiAKICAgICB1c2luZyBLZXlzUHJvbWlzZSA9IERPTVByb21p
c2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+PjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyLmNwcAppbmRleCA0MjY1YTQyZjMwOWRiNGM0YzU0YmMxOTk1ODVkZWViODJkOGRiOGUx
Li4xZTllYzQ5NTcxZTY3ZTRhNTI2ZjIyMzk2ZDU5MjVmOWE0M2Y1MDc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlSZWFkZXIuY3BwCkBAIC00MSwxMSArNDEsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9yeVJlYWRl
cik7CiAKK1JlZjxGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyPiBGaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3Rl
bURpcmVjdG9yeUVudHJ5JiBkaXJlY3RvcnkpCit7CisgICAgYXV0byByZWFkZXIgPSBhZG9wdFJl
ZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIoY29udGV4dCwgZGlyZWN0b3J5KSk7Cisg
ICAgcmVhZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVhZGVyOworfQorCiBG
aWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyOjpGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeSYgZGly
ZWN0b3J5KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9kaXJlY3Rv
cnkoZGlyZWN0b3J5KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBGaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyOjp+RmlsZVN5c3RlbURpcmVjdG9yeVJlYWRlcigpID0gZGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmls
ZVN5c3RlbURpcmVjdG9yeVJlYWRlci5oCmluZGV4IDRmZTkyMzVjZjY2ZTczMjI0ZDRkOWNmNTJl
NmQyZTZkMGZmZjgwNmYuLjFjZmE0OTZlOTVlN2FmZTBmZDZlYmMyZDQ1MWE4MTRlN2I0ZDljNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVt
RGlyZWN0b3J5UmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBp
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaApAQCAtNDEsMTAgKzQxLDcgQEAgY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIgZmlu
YWwgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJs
aWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyPiB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkmIGRpcmVjdG9yeSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlS
ZWFkZXIoY29udGV4dCwgZGlyZWN0b3J5KSk7Ci0gICAgfQorICAgIHN0YXRpYyBSZWY8RmlsZVN5
c3RlbURpcmVjdG9yeVJlYWRlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkmKTsKIAogICAgIH5GaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVy
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmluZGV4IGI4
NWFkYWZjMjliNDg3MDkxZGU2NWFiNTI0MzliNDUxZDAzNjc1YzcuLjllNTJhZWZiNDQzMTQyYzdh
MDk0MGQ0MWVhYjEyNzI3MDZiYWY1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmNwcApAQCAtMzcsNyArMzcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJl
ZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtRmlsZUhh
bmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoY29udGV4dCwgc291cmNl
LCBpZGVudGlmaWVyLCBmaWxlKSk7CisgICAgYXV0byBoYW5kbGUgPSBhZG9wdFJlZigqbmV3IEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKGNvbnRleHQsIHNvdXJjZSwgaWRlbnRpZmllciwgZmls
ZSkpOworICAgIGhhbmRsZS0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGhhbmRsZTsK
IH0KIAogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
JiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKQEAgLTQ3LDcgKzQ5LDYgQEAg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGMKICAgICAsIG1fZmlsZShmaWxlKQogewogICAgIEFTU0VS
VChtX2ZpbGUgIT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSk7Ci0gICAg
c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBtX3NvdXJjZS0+cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKG1faWRlbnRpZmllciwgKnRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBkYTMyMWU0MWY0NDFmM2E0MTc2
NWE0NzkxNTlmNGRjNzE0NTkyYWVlLi5jZDM3MmY0MzY5MWFkZDRkN2RmMGM5ZTUyNTcwZWFmZmQy
OTM0MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OldhdGNo
ZXJzOjpnZXROb3RpZmllcnNWZWN0b3IoR2VvTm90aWZpZXJWZWN0b3ImIGNvcHkpIGNvbnN0CiBS
ZWY8R2VvbG9jYXRpb24+IEdlb2xvY2F0aW9uOjpjcmVhdGUoTmF2aWdhdG9yJiBuYXZpZ2F0b3Ip
CiB7CiAgICAgYXV0byBnZW9sb2NhdGlvbiA9IGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb24obmF2
aWdhdG9yKSk7Ci0gICAgZ2VvbG9jYXRpb24uZ2V0KCkuc3VzcGVuZElmTmVlZGVkKCk7CisgICAg
Z2VvbG9jYXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJldHVybiBnZW9sb2NhdGlvbjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLmNwcAppbmRleCA0ZmIwNGEzYWU1NjlhNzg5ZGNiMmIwMTA4NzUxMmIyMWQ1M2ZmNDdmLi4x
ZmQ3ZGVhMzdmOWY4ZjcwZjA3Njg3ZGE1ZDE4MTdiZDI2Zjk2MDNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcApAQCAtNTAsMTcg
KzUwLDIzIEBAIFJlZjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiAKIFJlZjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIE1lZGlhU3RyZWFtJiBzdHJlYW0pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTWVkaWFTdHJlYW0oZG9jdW1lbnQsIHN0cmVhbS5nZXRUcmFja3MoKSkpOworICAgIGF1
dG8gbWVkaWFTdHJlYW0gPSBhZG9wdFJlZigqbmV3IE1lZGlhU3RyZWFtKGRvY3VtZW50LCBzdHJl
YW0uZ2V0VHJhY2tzKCkpKTsKKyAgICBtZWRpYVN0cmVhbS0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIG1lZGlhU3RyZWFtOwogfQogCiBSZWY8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFt
OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9y
JiB0cmFja3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFTdHJlYW0oZG9jdW1l
bnQsIHRyYWNrcykpOworICAgIGF1dG8gbWVkaWFTdHJlYW0gPSBhZG9wdFJlZigqbmV3IE1lZGlh
U3RyZWFtKGRvY3VtZW50LCB0cmFja3MpKTsKKyAgICBtZWRpYVN0cmVhbS0+c3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgcmV0dXJuIG1lZGlhU3RyZWFtOwogfQogCiBSZWY8TWVkaWFTdHJlYW0+IE1l
ZGlhU3RyZWFtOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW1Qcml2
YXRlPiYmIHN0cmVhbVByaXZhdGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFT
dHJlYW0oZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtUHJpdmF0ZSkpKTsKKyAgICBhdXRvIG1lZGlh
U3RyZWFtID0gYWRvcHRSZWYoKm5ldyBNZWRpYVN0cmVhbShkb2N1bWVudCwgV1RGTW92ZShzdHJl
YW1Qcml2YXRlKSkpOworICAgIG1lZGlhU3RyZWFtLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBy
ZXR1cm4gbWVkaWFTdHJlYW07CiB9CiAKIHN0YXRpYyBpbmxpbmUgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGVWZWN0b3IgY3JlYXRlVHJhY2tQcml2YXRlVmVjdG9yKGNvbnN0IE1lZGlhU3RyZWFtVHJh
Y2tWZWN0b3ImIHRyYWNrcykKQEAgLTgyLDcgKzg4LDYgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3Ry
ZWFtKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ZlY3RvciYgdHJh
Y2sKIAogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZlKCkpOwogICAgIG1fcHJpdmF0
ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBNZWRp
YVN0cmVhbTo6TWVkaWFTdHJlYW0oRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW1Q
cml2YXRlPiYmIHN0cmVhbVByaXZhdGUpCkBAIC05Niw3ICsxMDEsNiBAQCBNZWRpYVN0cmVhbTo6
TWVkaWFTdHJlYW0oRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW1Qcml2YXRlPiYm
IHN0cmVhbVByaQogCiAgICAgc2V0SXNBY3RpdmUobV9wcml2YXRlLT5hY3RpdmUoKSk7CiAgICAg
bV9wcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9
CiAKIE1lZGlhU3RyZWFtOjp+TWVkaWFTdHJlYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKaW5kZXggNDJlNTJiOTk0NDcz
N2VhMjFiMjQ1MmQwMDdlYzBhNzBkMWIwMTFiYS4uMDBiMjBhNjRhN2FmYmNhMTc1ZDNkZWQwYTNl
Y2IyOWZjNGI3OWRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEVE1GU2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCkBAIC01MSw2ICs1MSw3IEBAIFJUQ0RUTUZTZW5kZXI6
OlJUQ0RUTUZTZW5kZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUlRDUnRwU2Vu
ZGVyJiBzZW5kCiAgICAgbV9iYWNrZW5kLT5vblRvbmVQbGF5ZWQoW3RoaXNdKGNvbnN0IFN0cmlu
ZyYpIHsKICAgICAgICAgb25Ub25lUGxheWVkKCk7CiAgICAgfSk7CisKICAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAppbmRleCBlZWNhMmNlYzU0MjFiNjhiNjdkM2Fl
YjE5YjY5OWM1ZjdiNzdkMjMxLi5mZGIyZGNhMGY0NmRhYjE4N2NkODFlMjkxMDk5YjRjY2M0NmJi
YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1Bh
eW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAtMzQ0LDcgKzM0NCw5IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxQYXltZW50UmVxdWVzdD4+IFBheW1lbnRSZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBWZWN0CiAgICAgICAgIHJldHVybiBkZXRhaWxzUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KTsKIAogICAgIGF1dG8gc2hpcHBpbmdPcHRpb25BbmRNb2RpZmllckRhdGEgPSBkZXRhaWxzUmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBheW1l
bnRSZXF1ZXN0KGRvY3VtZW50LCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKGRldGFpbHMpLCBX
VEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSksIFdURk1v
dmUoc2VyaWFsaXplZE1ldGhvZERhdGEpLCBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KHNoaXBwaW5nT3B0
aW9uQW5kTW9kaWZpZXJEYXRhKSkpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3
IFBheW1lbnRSZXF1ZXN0KGRvY3VtZW50LCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKGRldGFp
bHMpLCBXVEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSks
IFdURk1vdmUoc2VyaWFsaXplZE1ldGhvZERhdGEpLCBXVEZNb3ZlKHN0ZDo6Z2V0PDA+KHNoaXBw
aW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSkpKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogYm9vbCBQYXltZW50UmVxdWVzdDo6ZW5h
YmxlZEZvckNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKQEAgLTM2MCw3
ICszNjIsNiBAQCBQYXltZW50UmVxdWVzdDo6UGF5bWVudFJlcXVlc3QoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBQYXltZW50T3B0aW9ucyYmIG9wdGlvbnMsIFBheQogICAgICwgbV9zZXJpYWxpemVkTWV0
aG9kRGF0YSB7IFdURk1vdmUoc2VyaWFsaXplZE1ldGhvZERhdGEpIH0KICAgICAsIG1fc2hpcHBp
bmdPcHRpb24geyBXVEZNb3ZlKHNlbGVjdGVkU2hpcHBpbmdPcHRpb24pIH0KIHsKLSAgICBzdXNw
ZW5kSWZOZWVkZWQoKTsKIH0KIAogUGF5bWVudFJlcXVlc3Q6On5QYXltZW50UmVxdWVzdCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBs
YXliYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3Rl
UGxheWJhY2suY3BwCmluZGV4IDRhMTU1YjBhNDVhYTJkNTYxNjEwM2EyOTNhZWU3NDIyN2UyMGNj
ZjQuLjQwZmExODkwMWJlYjAwZTkyYjM3ZDc2NDNkM2E4YWNjZTJhMzIxY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVtb3RlUGxheWJh
Y2suY3BwCkBAIC00NSwxNCArNDUsMTUgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJl
bW90ZVBsYXliYWNrKTsKIAogUmVmPFJlbW90ZVBsYXliYWNrPiBSZW1vdGVQbGF5YmFjazo6Y3Jl
YXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUmVtb3RlUGxheWJhY2soZWxlbWVudCkpOworICAgIGF1dG8gcmVtb3RlUGxheWJhY2sgPSBh
ZG9wdFJlZigqbmV3IFJlbW90ZVBsYXliYWNrKGVsZW1lbnQpKTsKKyAgICByZW1vdGVQbGF5YmFj
ay0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlbW90ZVBsYXliYWNrOwogfQogCiBS
ZW1vdGVQbGF5YmFjazo6UmVtb3RlUGxheWJhY2soSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkK
ICAgICA6IFdlYkNvcmU6OkFjdGl2ZURPTU9iamVjdChlbGVtZW50LnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKICAgICAsIG1fbWVkaWFFbGVtZW50KGVsZW1lbnQpCiB7Ci0gICAgc3VzcGVuZElm
TmVlZGVkKCk7CiB9CiAKIFJlbW90ZVBsYXliYWNrOjp+UmVtb3RlUGxheWJhY2soKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAKaW5kZXggMTI0NzhiMDYzMTQyOGY4ZTg1NDhlZmJmNDhmZjY5NGQwZDk4MmJmYS4uMjU3
YmYwNDc5NjM5NjEzMWQzMjZkMzM4MGVkZDgyYWIxMjlkMDVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCkBA
IC00Nyw3ICs0Nyw5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTY3JpcHRQcm9jZXNz
b3JOb2RlKTsKIAogUmVmPFNjcmlwdFByb2Nlc3Nvck5vZGU+IFNjcmlwdFByb2Nlc3Nvck5vZGU6
OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBzaXplX3QgYnVmZmVyU2l6ZSwgdW5z
aWduZWQgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5u
ZWxzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcmlwdFByb2Nlc3Nvck5vZGUoY29u
dGV4dCwgYnVmZmVyU2l6ZSwgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBudW1iZXJPZk91dHB1dENo
YW5uZWxzKSk7CisgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5ldyBTY3JpcHRQcm9jZXNzb3JO
b2RlKGNvbnRleHQsIGJ1ZmZlclNpemUsIG51bWJlck9mSW5wdXRDaGFubmVscywgbnVtYmVyT2ZP
dXRwdXRDaGFubmVscykpOworICAgIG5vZGUtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVy
biBub2RlOwogfQogCiBTY3JpcHRQcm9jZXNzb3JOb2RlOjpTY3JpcHRQcm9jZXNzb3JOb2RlKEJh
c2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIHNpemVfdCBidWZmZXJTaXplLCB1bnNpZ25lZCBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCkBAIC02
OSw3ICs3MSw2IEBAIFNjcmlwdFByb2Nlc3Nvck5vZGU6OlNjcmlwdFByb2Nlc3Nvck5vZGUoQmFz
ZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgc2l6ZV90IGJ1ZmZlCiAgICAgYWRkT3V0cHV0KG51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMpOwogCiAgICAgaW5pdGlhbGl6ZSgpOwotICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQogCiBTY3JpcHRQcm9jZXNzb3JOb2RlOjp+U2NyaXB0UHJvY2Vzc29yTm9kZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAKaW5kZXgg
OTQ5YmU0OWY4ZjNiMGU2MjEzZDQ5NmE0ZjA2NWExMTEwMjA5ODdhZC4uMzc2MGU0ZGY2MDhlMDNk
OGNiYjIwOTk1N2VkNjIzMTRmYzc1Y2Q3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJTZXNzaW9uLmNwcApAQCAtNDcsNyArNDcsOSBAQCBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoV2ViWFJTZXNzaW9uKTsKIAogUmVmPFdlYlhSU2Vzc2lvbj4gV2ViWFJTZXNz
aW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJYUlN5c3RlbSYgc3lzdGVtLCBYUlNl
c3Npb25Nb2RlIG1vZGUsIFBsYXRmb3JtWFI6OkRldmljZSYgZGV2aWNlLCBGZWF0dXJlTGlzdCYm
IHJlcXVlc3RlZEZlYXR1cmVzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSU2Vz
c2lvbihkb2N1bWVudCwgc3lzdGVtLCBtb2RlLCBkZXZpY2UsIFdURk1vdmUocmVxdWVzdGVkRmVh
dHVyZXMpKSk7CisgICAgYXV0byBzZXNzaW9uID0gYWRvcHRSZWYoKm5ldyBXZWJYUlNlc3Npb24o
ZG9jdW1lbnQsIHN5c3RlbSwgbW9kZSwgZGV2aWNlLCBXVEZNb3ZlKHJlcXVlc3RlZEZlYXR1cmVz
KSkpOworICAgIHNlc3Npb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzZXNzaW9u
OwogfQogCiBXZWJYUlNlc3Npb246OldlYlhSU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFdl
YlhSU3lzdGVtJiBzeXN0ZW0sIFhSU2Vzc2lvbk1vZGUgbW9kZSwgUGxhdGZvcm1YUjo6RGV2aWNl
JiBkZXZpY2UsIEZlYXR1cmVMaXN0JiYgcmVxdWVzdGVkRmVhdHVyZXMpCkBAIC02OCw4ICs3MCw2
IEBAIFdlYlhSU2Vzc2lvbjo6V2ViWFJTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgV2ViWFJT
eXN0ZW0mIHN5c3RlbSwgWFJTZXNzaW9uTW9kCiAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2Vi
LmdpdGh1Yi5pby93ZWJ4ci8jcmVmLWZvci1kb20teHJyZWZlcmVuY2VzcGFjZXR5cGUtdmlld2Vy
JUUyJTkxJUEyCiAgICAgLy8gRXZlcnkgc2Vzc2lvbiBNVVNUIHN1cHBvcnQgdmlld2VyIFhSUmVm
ZXJlbmNlU3BhY2VzLgogICAgIG1fZGV2aWNlLT5pbml0aWFsaXplUmVmZXJlbmNlU3BhY2UoWFJS
ZWZlcmVuY2VTcGFjZVR5cGU6OlZpZXdlcik7Ci0KLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0K
IAogV2ViWFJTZXNzaW9uOjp+V2ViWFJTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKaW5kZXggOTc3MWI5ODQ1YzY0NjQ3ODJlZThkNWI0YWEw
ZWU5MDI5Y2Q5ZDE0Yy4uNzhmNDQ1MDYyNjYzYzg2Y2U3NDI0NTQwOTAyNTU3ODIyYmE4MWU5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAgLTU2
LDcgKzU2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYlhSU3lzdGVtKTsKIAog
UmVmPFdlYlhSU3lzdGVtPiBXZWJYUlN5c3RlbTo6Y3JlYXRlKE5hdmlnYXRvciYgbmF2aWdhdG9y
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSU3lzdGVtKG5hdmlnYXRvcikpOwor
ICAgIGF1dG8gc3lzdGVtID0gYWRvcHRSZWYoKm5ldyBXZWJYUlN5c3RlbShuYXZpZ2F0b3IpKTsK
KyAgICBzeXN0ZW0tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzeXN0ZW07CiB9CiAK
IFdlYlhSU3lzdGVtOjpXZWJYUlN5c3RlbShOYXZpZ2F0b3ImIG5hdmlnYXRvcikKQEAgLTY1LDcg
KzY3LDYgQEAgV2ViWFJTeXN0ZW06OldlYlhSU3lzdGVtKE5hdmlnYXRvciYgbmF2aWdhdG9yKQog
ICAgICwgbV9kZWZhdWx0SW5saW5lRGV2aWNlKCpuYXZpZ2F0b3Iuc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQogewogICAgIG1faW5saW5lWFJEZXZpY2UgPSBtX2RlZmF1bHRJbmxpbmVEZXZpY2U7
Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIFdlYlhSU3lzdGVtOjp+V2ViWFJTeXN0ZW0o
KSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCmluZGV4IDk0
ODE4MGE4MjEyY2QwNWQ4N2YwNTdjZWZiMWQwMzY0MGMwMWNjYWYuLmJiMjQ5Yzg2ZjNjMTc2MGFm
MTZlNWMwMjcyN2MwOWM1ZTc5M2VhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0
b3IuY3BwCkBAIC02Miw2ICs2MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Rm9udEZhbWls
eU5hbWVzOwogCiBzdGF0aWMgdW5zaWduZWQgZm9udFNlbGVjdG9ySWQ7CiAKK1JlZjxDU1NGb250
U2VsZWN0b3I+IENTU0ZvbnRTZWxlY3Rvcjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpCit7CisgICAgYXV0byBmb250U2VsZWN0b3IgPSBhZG9wdFJlZigqbmV3IENTU0Zv
bnRTZWxlY3Rvcihjb250ZXh0KSk7CisgICAgZm9udFNlbGVjdG9yLT5zdXNwZW5kSWZOZWVkZWQo
KTsKKyAgICByZXR1cm4gZm9udFNlbGVjdG9yOworfQorCiBDU1NGb250U2VsZWN0b3I6OkNTU0Zv
bnRTZWxlY3RvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgIDogQWN0aXZl
RE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCkBAIC04Myw4ICs5
MCw2IEBAIENTU0ZvbnRTZWxlY3Rvcjo6Q1NTRm9udFNlbGVjdG9yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpCiAgICAgRm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkKCkuYWRkQ2xp
ZW50KCp0aGlzKTsKICAgICBtX2Nzc0ZvbnRGYWNlU2V0LT5hZGRGb250TW9kaWZpZWRPYnNlcnZl
cihtX2ZvbnRNb2RpZmllZE9ic2VydmVyKTsKICAgICBMT0coRm9udHMsICJDU1NGb250U2VsZWN0
b3IgJXAgY3RvciIsIHRoaXMpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIENTU0Zv
bnRTZWxlY3Rvcjo6fkNTU0ZvbnRTZWxlY3RvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVj
dG9yLmgKaW5kZXggZmI4ZWM4OTIxYzNjNWJiOWFhNzNlOTVlNTVhZDIxMDk3YmU1Y2MzMC4uMDE0
MmM2ZmMwNzMwOGVkZWUxM2U0OTkwNWU2OWFhMjUxOGNmMjVlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250U2VsZWN0b3IuaApAQCAtNTEsMTAgKzUxLDcgQEAgY2xhc3MgU3R5bGVSdWxlRm9udEZh
Y2U7CiAKIGNsYXNzIENTU0ZvbnRTZWxlY3RvciBmaW5hbCA6IHB1YmxpYyBGb250U2VsZWN0b3Is
IHB1YmxpYyBDU1NGb250RmFjZTo6Q2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q1NTRm9u
dFNlbGVjdG9yPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxDU1NGb250U2VsZWN0b3I+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTRm9udFNlbGVjdG9y
KGNvbnRleHQpKTsKLSAgICB9CisgICAgc3RhdGljIFJlZjxDU1NGb250U2VsZWN0b3I+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAgICAgdmlydHVhbCB+Q1NTRm9udFNlbGVjdG9y
KCk7CiAgICAgCiAgICAgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
dmVyc2lvbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggZjQzYzAwMDhmZDI4
YTllOTFmMTcwNTFjZGM2ZjZmYTVhODZmZjI2OC4uODlmM2JhYmU2ZjZmMmU3NTNmMTcyZmViOTk5
OWE0NzFjMDE0MDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC05Myw3ICs5
Myw5IEBAIHZvaWQgTWVzc2FnZVBvcnQ6Om5vdGlmeU1lc3NhZ2VBdmFpbGFibGUoY29uc3QgTWVz
c2FnZVBvcnRJZGVudGlmaWVyJiBpZGVudGlmaWVyCiAKIFJlZjxNZXNzYWdlUG9ydD4gTWVzc2Fn
ZVBvcnQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBNZXNzYWdlUG9y
dElkZW50aWZpZXImIHJlbW90ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZXNzYWdl
UG9ydChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBsb2NhbCwgcmVtb3RlKSk7CisgICAgYXV0byBt
ZXNzYWdlUG9ydCA9IGFkb3B0UmVmKCpuZXcgTWVzc2FnZVBvcnQoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgbG9jYWwsIHJlbW90ZSkpOworICAgIG1lc3NhZ2VQb3J0LT5zdXNwZW5kSWZOZWVkZWQo
KTsKKyAgICByZXR1cm4gbWVzc2FnZVBvcnQ7CiB9CiAKIE1lc3NhZ2VQb3J0OjpNZXNzYWdlUG9y
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb25zdCBN
ZXNzYWdlUG9ydElkZW50aWZpZXImIGxvY2FsLCBjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXIm
IHJlbW90ZSkKQEAgLTExMCw3ICsxMTIsNiBAQCBNZXNzYWdlUG9ydDo6TWVzc2FnZVBvcnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3QgTQogICAg
IGluaXRpYWxpemVXZWFrUHRyRmFjdG9yeSgpOwogCiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcmVhdGVkTWVzc2FnZVBvcnQoKnRoaXMpOwotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogCiAg
ICAgLy8gRG9uJ3QgbmVlZCB0byBjYWxsIHByb2Nlc3NNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0c1Nv
b24oKSBoZXJlLCBiZWNhdXNlIHRoZSBwb3J0IHdpbGwgbm90IGJlIG9wZW5lZCB1bnRpbCBzdGFy
dCgpIGlzIGludm9rZWQuCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCAwM2NhNmE3ZTYyNTM3Yzg1Nzc2OTNjMzNj
ZTUxMDUyNjVlYWYzOTEwLi5mMDVlMmY0MzE3ZjQzYmM5ZjBhOTE3MDQyMmNlNjRhOTBjZjcyMTU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckFuaW1hdGlvbkNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQW5pbWF0aW9uQ29u
dHJvbGxlci5jcHAKQEAgLTM5LDcgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWY8
V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcj4gV29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3Jl
YXRlKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJHbG9iYWxTY29wZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXb3JrZXJBbmltYXRpb25Db250cm9sbGVyKHdvcmtlckdsb2JhbFNjb3Bl
KSk7CisgICAgYXV0byBjb250cm9sbGVyID0gYWRvcHRSZWYoKm5ldyBXb3JrZXJBbmltYXRpb25D
b250cm9sbGVyKHdvcmtlckdsb2JhbFNjb3BlKSk7CisgICAgY29udHJvbGxlci0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgcmV0dXJuIGNvbnRyb2xsZXI7CiB9CiAKIFdvcmtlckFuaW1hdGlvbkNv
bnRyb2xsZXI6OldvcmtlckFuaW1hdGlvbkNvbnRyb2xsZXIoV29ya2VyR2xvYmFsU2NvcGUmIHdv
cmtlckdsb2JhbFNjb3BlKQpAQCAtNDcsNyArNDksNiBAQCBXb3JrZXJBbmltYXRpb25Db250cm9s
bGVyOjpXb3JrZXJBbmltYXRpb25Db250cm9sbGVyKFdvcmtlckdsb2JhbFNjb3BlJiB3b3JrZXJH
bAogICAgICwgbV93b3JrZXJHbG9iYWxTY29wZSh3b3JrZXJHbG9iYWxTY29wZSkKICAgICAsIG1f
YW5pbWF0aW9uVGltZXIoKnRoaXMsICZXb3JrZXJBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRp
b25UaW1lckZpcmVkKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBXb3JrZXJBbmlt
YXRpb25Db250cm9sbGVyOjp+V29ya2VyQW5pbWF0aW9uQ29udHJvbGxlcigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggZGY5MGQ1
Nzc3ZWEzYzhiZDdiMjJlNWRiOTU0MmNkZWYyZWY3YTg5Ny4uNWFkOTkxMmUzYjBiNzFmZTFjMmMy
YmVmMjIzNDc5NTM4OGZkMmE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcApAQCAtNTcsMTUgKzU3LDE1IEBAIFJlZjxTZXJ2aWNlV29y
a2VyPiBTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBTCiB7CiAgICAgaWYgKGF1dG8gZXhpc3RpbmdTZXJ2aWNlV29ya2VyID0gY29udGV4
dC5zZXJ2aWNlV29ya2VyKGRhdGEuaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiAqZXhpc3Rp
bmdTZXJ2aWNlV29ya2VyOwotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIo
Y29udGV4dCwgV1RGTW92ZShkYXRhKSkpOworICAgIGF1dG8gc2VydmljZVdvcmtlciA9IGFkb3B0
UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0LCBXVEZNb3ZlKGRhdGEpKSk7CisgICAgc2Vy
dmljZVdvcmtlci0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHNlcnZpY2VXb3JrZXI7
CiB9CiAKIFNlcnZpY2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgU2VydmljZVdvcmtlckRhdGEmJiBkYXRhKQogICAgIDogQWN0aXZlRE9NT2Jq
ZWN0KCZjb250ZXh0KQogICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YSkpCiB7Ci0gICAgc3VzcGVu
ZElmTmVlZGVkKCk7Ci0KICAgICBjb250ZXh0LnJlZ2lzdGVyU2VydmljZVdvcmtlcigqdGhpcyk7
CiAKICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cAppbmRleCAwYzA2ZDk5YmIzMmUyY2ZlNWYwNmM4MDA5ODU2YmM2NDBmODdiOTk5Li5mOWU5ZjQx
MDg2ZDQ1NjM0MzdmN2YxNmI0N2I5MGFhYTYyMTk2MjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Y3BwCkBAIC01NCw3ICs1NCw5IEBAIFJlZjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpnZXRPckNyZWF0ZShTY3JpcHRFeGVjCiAgICAgICAgIHJl
dHVybiAqcmVnaXN0cmF0aW9uOwogICAgIH0KIAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oY29udGV4dCwgV1RGTW92ZShjb250YWluZXIpLCBXVEZN
b3ZlKGRhdGEpKSk7CisgICAgYXV0byByZWdpc3RyYXRpb24gPSBhZG9wdFJlZigqbmV3IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24oY29udGV4dCwgV1RGTW92ZShjb250YWluZXIpLCBXVEZNb3Zl
KGRhdGEpKSk7CisgICAgcmVnaXN0cmF0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gcmVnaXN0cmF0aW9uOwogfQogCiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyPiYmIGNvbnRhaW5lciwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQpAQCAtNjMsNyArNjUsNiBAQCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbgogICAgICwgbV9jb250YWluZXIoV1RGTW92ZShjb250YWluZXIpKQogewog
ICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ3JlYXRpbmcgcmVnaXN0cmF0aW9uICVwIGZvciByZWdp
c3RyYXRpb24ga2V5ICVzIiwgdGhpcywgbV9yZWdpc3RyYXRpb25EYXRhLmtleS5sb2dnaW5nU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBpZiAo
bV9yZWdpc3RyYXRpb25EYXRhLmluc3RhbGxpbmdXb3JrZXIpCiAgICAgICAgIG1faW5zdGFsbGlu
Z1dvcmtlciA9IFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKGNvbnRleHQsIFdURk1vdmUoKm1f
cmVnaXN0cmF0aW9uRGF0YS5pbnN0YWxsaW5nV29ya2VyKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447234</attachid>
            <date>2021-12-15 08:24:26 -0800</date>
            <delta_ts>2021-12-15 09:42:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211215172425.patch</filename>
            <type>text/plain</type>
            <size>18972</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI3OWEzYmRkYTJlMmM1
YWFiYWRjNDQ2ODY5ZjY1OWUwNTA4OWJkZi4uYjllYTEwNTJjOTEyYzg1M2UxYjIyMmRlMzY4N2E0
MDkzM2Y2MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAyIHdoZXJlIHdlIGNvbnZlcnQgdGhlIElEQiBjb2RlIHRvIHVzZSBzdXNwZW5kSWZOZWVkZWQo
KSBvbmx5IHdpdGhpbiBjcmVhdGUoKSBtZXRob2RzLiBUaGlzIHJlcXVpcmVkCisgICAgICAgIGFk
ZGluZyBzdWNoIG1ldGhvZHMgYW5kIG1ha2luZyB0aGUgY29uc3RydWN0b3IgcHJpdmF0ZSBmb3Ig
SURCSW5kZXggYW5kIElEQk9iamVjdFN0b3JlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9w
ZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6CisKIDIwMjEt
MTItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSB0byBzdGFydCBhIHJlYWx0aW1lIG91dGdvaW5nIHNvdXJjZSBpbiBjYXNlIGl0IGlzIHRh
a2VuIHRvIGFub3RoZXIgc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5
MTExN2JhODM2Yy4uNjUyYjI3NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApA
QCAtNDgsNyArNDgsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2Up
OwogCiBSZWY8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rp
b25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3Vs
dERhdGEpKTsKKyAgICBhdXRvIGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShj
b250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6
SURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0RGF0YSkKQEAgLTU5LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAg
ICAsIG1fZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QkRhdGFiYXNlOjpJREJEYXRhYmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lv
biAlIiBQUkl1NjQgIiBjb25uZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgp
LnV0ZjgoKS5kYXRhKCksIG1faW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9u
UHJveHktPnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThm
N2FhNzc0ZjJmZjE1YzA5YTdlNDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAw
M2ZhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2
LDcgKzM2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0KTsKIAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0
aW9uUHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rp
b25Qcm94eSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlv
blByb3h5LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QoU2NyaXB0RXhlY3V0aQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsK
ICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5U
aHJlYWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAxNjdkMzgwNGVmOTBkMDcxNzcx
OGUzZDE5ZGUwMjg3MWViYjllYmUwLi5kMDc3Y2FkOWY4NDk4MmQ5ZWRhNGNmODljODMxM2NhOGI3
NTlhZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
Y3BwCkBAIC00Miw2ICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSURCSW5kZXgpOwogCitzdGQ6OnVuaXF1ZV9wdHI8SURCSW5kZXg+
IElEQkluZGV4OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
SURCSW5kZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCit7CisgICAg
YXV0byogcmVzdWx0ID0gbmV3IElEQkluZGV4KGNvbnRleHQsIGluZm8sIG9iamVjdFN0b3JlKTsK
KyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8SURCSW5kZXg+KHJlc3VsdCk7Cit9CisKIElEQkluZGV4OjpJREJJbmRleChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJJbmRleEluZm8mIGluZm8sIElEQk9iamVj
dFN0b3JlJiBvYmplY3RTdG9yZSkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAg
ICAsIG1faW5mbyhpbmZvKQpAQCAtNDksOCArNTYsNiBAQCBJREJJbmRleDo6SURCSW5kZXgoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvLCBJ
RAogICAgICwgbV9vYmplY3RTdG9yZShvYmplY3RTdG9yZSkKIHsKICAgICBBU1NFUlQoY2FuQ3Vy
cmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX29iamVjdFN0b3JlLnRyYW5zYWN0aW9u
KCkuZGF0YWJhc2UoKS5vcmlnaW5UaHJlYWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7
CiB9CiAKIElEQkluZGV4Ojp+SURCSW5kZXgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4LmgKaW5kZXggN2Y4YjY4MTk5MWIzZjVjMDc5MjUyNTEwOGU3YTA5YzFh
MDI2MTI5YS4uOTFmOTUyYThjNWMzZmM0MGYwOTFmMWYwMWIxNTAxOWUyNTFlY2RhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCkBAIC00Myw3ICs0Myw3
IEBAIHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CiBjbGFzcyBJREJJbmRleCBmaW5hbCA6IHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSURCSW5kZXgp
OwogcHVibGljOgotICAgIElEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJ
REJJbmRleEluZm8mLCBJREJPYmplY3RTdG9yZSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8SURCSW5kZXg+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5k
ZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUmKTsKIAogICAgIHZpcnR1YWwgfklEQkluZGV4KCk7CiAK
QEAgLTg1LDYgKzg1LDggQEAgcHVibGljOgogICAgIHZvaWQqIG9iamVjdFN0b3JlQXNPcGFxdWVS
b290KCkgeyByZXR1cm4gJm1fb2JqZWN0U3RvcmU7IH0KIAogcHJpdmF0ZToKKyAgICBJREJJbmRl
eChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0
U3RvcmUmKTsKKwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZG9Db3VudChjb25z
dCBJREJLZXlSYW5nZURhdGEmKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGRv
R2V0KEV4Y2VwdGlvbk9yPElEQktleVJhbmdlRGF0YT4pOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJ
REJSZXF1ZXN0Pj4gZG9HZXRLZXkoRXhjZXB0aW9uT3I8SURCS2V5UmFuZ2VEYXRhPik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
aW5kZXggYTEwMzA5MWU1N2VlNmIxYTg2NGE3YzhiMWM4ZTQ4YWUwM2UxMGUxYy4uN2ExZDlmM2Yz
N2QyMWYzYTM3ZmY4NTk1OGJiZTAyNjVjYTBjNmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtNTUsNiArNTUsMTMg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElE
Qk9iamVjdFN0b3JlKTsKIAorc3RkOjp1bmlxdWVfcHRyPElEQk9iamVjdFN0b3JlPiBJREJPYmpl
Y3RTdG9yZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IElE
Qk9iamVjdFN0b3JlSW5mbyYgaW5mbywgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQorewor
ICAgIGF1dG8qIHJlc3VsdCA9IG5ldyBJREJPYmplY3RTdG9yZShjb250ZXh0LCBpbmZvLCB0cmFu
c2FjdGlvbik7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gc3Rk
Ojp1bmlxdWVfcHRyPElEQk9iamVjdFN0b3JlPihyZXN1bHQpOworfQorCiBJREJPYmplY3RTdG9y
ZTo6SURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJiBpbmZvLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2luZm8oaW5mbykKQEAgLTYy
LDggKzY5LDYgQEAgSURCT2JqZWN0U3RvcmU6OklEQk9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IElEQk9iamVjdFMKICAgICAsIG1fdHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb24pCiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEobV90cmFuc2FjdGlvbi5kYXRhYmFzZSgpLm9yaWdpblRocmVhZCgpKSk7Ci0KLSAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCT2JqZWN0U3RvcmU6On5JREJPYmplY3RTdG9y
ZSgpCkBAIC01MjAsNyArNTI1LDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQkluZGV4Pj4gSURCT2Jq
ZWN0U3RvcmU6OmluZGV4KGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lKQogICAgIGlmICghaW5mbykK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJGYWlsZWQgdG8gZXhl
Y3V0ZSAnaW5kZXgnIG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBzcGVjaWZpZWQgaW5kZXggd2Fz
IG5vdCBmb3VuZC4iX3MgfTsKIAotICAgIGF1dG8gaW5kZXggPSBtYWtlVW5pcXVlPElEQkluZGV4
Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOworICAgIGF1dG8gaW5k
ZXggPSBJREJJbmRleDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICppbmZvLCAq
dGhpcyk7CiAKICAgICBSZWY8SURCSW5kZXg+IHJlZmVyZW5jZWRJbmRleCB7ICppbmRleCB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
aAppbmRleCAzNmFiMzg0NTNiNmE1YjZmYTU2M2I4ZDc3NzY1Mzc0ZjY1NzA3NTczLi4xODFhYzc2
N2I1MmY2MDlhYzcxZTUxMjMwNGI3OGRjZWQxNDFkMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTU5LDcgKzU5LDcgQEAg
ZW51bSBjbGFzcyBPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgOiB1aW50OF90OwogY2xhc3MgSURC
T2JqZWN0U3RvcmUgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKElEQk9iamVjdFN0b3JlKTsKIHB1YmxpYzoKLSAgICBJREJPYmplY3RT
dG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwg
SURCVHJhbnNhY3Rpb24mKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElEQk9iamVjdFN0
b3JlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9iamVjdFN0b3Jl
SW5mbyYsIElEQlRyYW5zYWN0aW9uJik7CiAgICAgfklEQk9iamVjdFN0b3JlKCk7CiAKICAgICBj
b25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdDsKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW5hbWVSZWZlcmVuY2VkSW5kZXgoSURCSW5kZXgmLCBjb25zdCBTdHJpbmcmIG5l
d05hbWUpOwogCiBwcml2YXRlOgorICAgIElEQk9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOworCiAg
ICAgZW51bSBjbGFzcyBJbmxpbmVLZXlDaGVjayB7IFBlcmZvcm0sIERvTm90UGVyZm9ybSB9Owog
ICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gcHV0T3JBZGQoSlNDOjpKU0dsb2JhbE9i
amVjdCYsIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPElEQktleT4sIEluZGV4ZWREQjo6T2JqZWN0U3Rv
cmVPdmVyd3JpdGVNb2RlLCBJbmxpbmVLZXlDaGVjaywgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiA9IG51bGxwdHIpOwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZG9D
b3VudChjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKaW5kZXggMjM4NjQ0MDhlMDJm
YTdjNTc5Y2Q5ZjUwMWQzNzJlMDc5MzQ4NzVlNS4uMGU0ZDgwOTg1N2E0ZGFlYjAzNzA0ODA0MmFk
NGM2ZWM2OGM2NWY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAKQEAgLTQ2LDEyICs0NiwxNiBAQCBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSURCT3BlbkRCUmVxdWVzdCk7CiAKIFJlZjxJREJPcGVuREJSZXF1
ZXN0PiBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0
aW9uUHJveHksIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgZGF0YWJhc2VJZGVudGlmaWVy
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwg
Y29ubmVjdGlvblByb3h5LCBkYXRhYmFzZUlkZW50aWZpZXIsIDAsIEluZGV4ZWREQjo6UmVxdWVz
dFR5cGU6OkRlbGV0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBJREJPcGVu
REJSZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCAw
LCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpEZWxldGUpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIFJlZjxJREJPcGVuREJSZXF1ZXN0
PiBJREJPcGVuREJSZXF1ZXN0OjpjcmVhdGVPcGVuUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblBy
b3h5LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllciwgdWlu
dDY0X3QgdmVyc2lvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1
ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCB2ZXJzaW9u
LCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpPcGVuKSk7CisgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5LCBkYXRh
YmFzZUlkZW50aWZpZXIsIHZlcnNpb24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGU6Ok9wZW4pKTsK
KyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAg
ICAgCiBJREJPcGVuREJSZXF1ZXN0OjpJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgZGF0YWJhc2VJZGVudGlmaWVyLCB1
aW50NjRfdCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlIHJlcXVlc3RUeXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBl
MmUxMmZjZmIzODZkMGRjODJiMzdmYzQ1YjFmNDVjNzEzNzFjMzEzLi40ZTA2OGI3YjlmNDYzZTE4
YWQyOTllMzRhOTU5ZWRlMzFjNmFmM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNTcsMjcgKzU3LDM3IEBAIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChJREJSZXF1ZXN0KTsKIAogUmVmPElEQlJlcXVlc3Q+IElEQlJlcXVl
c3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9y
ZSYgb2JqZWN0U3RvcmUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIG9iamVjdFN0b3JlLCB0cmFuc2Fj
dGlvbikpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250
ZXh0LCBvYmplY3RTdG9yZSwgdHJhbnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZO
ZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUmVmPElEQlJlcXVlc3Q+IElEQlJl
cXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDdXJzb3Im
IGN1cnNvciwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgY3Vyc29yLCB0cmFuc2FjdGlvbikpOworICAg
IGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBjdXJzb3Is
IHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0
dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCSW5kZXgmIGluZGV4LCBJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVz
dChjb250ZXh0LCBpbmRleCwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9w
dFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgaW5kZXgsIHRyYW5zYWN0aW9uKSk7CisgICAg
cmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJl
ZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIEluZGV4
ZWREQjo6T2JqZWN0U3RvcmVSZWNvcmRUeXBlIHR5cGUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIG9i
amVjdFN0b3JlLCB0eXBlLCB0cmFuc2FjdGlvbikpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0
UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9yZSwgdHlwZSwgdHJhbnNhY3Rp
b24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVz
dDsKIH0KIAogUmVmPElEQlJlcXVlc3Q+IElEQlJlcXVlc3Q6OmNyZWF0ZUluZGV4R2V0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwgSW5kZXhlZERCOjpJ
bmRleFJlY29yZFR5cGUgcmVxdWVzdGVkUmVjb3JkVHlwZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwg
aW5kZXgsIHJlcXVlc3RlZFJlY29yZFR5cGUsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1
ZXN0ID0gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCByZXF1ZXN0ZWRS
ZWNvcmRUeXBlLCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgp
OworICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
JiBjb25uZWN0aW9uUHJveHksIEluZGV4ZWREQjo6UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUpCkBA
IC04Nyw3ICs5Nyw2IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uCiAgICAgLCBtX2Nvbm5lY3Rp
b25Qcm94eShjb25uZWN0aW9uUHJveHkpCiAgICAgLCBtX3JlcXVlc3RUeXBlKHJlcXVlc3RUeXBl
KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RT
dG9yZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQpAQCAtOTgsNyArMTA3LDYgQEAgSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJP
YmplY3RTdG9yZSYgb2JqZWN0U3QKICAgICAsIG1fc291cmNlKCZvYmplY3RTdG9yZSkKICAgICAs
IG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5
KCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJlcXVlc3Q6OklEQlJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ3Vyc29yJiBjdXJzb3IsIElE
QlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKQEAgLTEwOSw4ICsxMTcsNiBAQCBJREJSZXF1ZXN0
OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1cnNvciYg
Y3Vyc29yLCBJREJUcgogICAgICwgbV9wZW5kaW5nQ3Vyc29yKCZjdXJzb3IpCiAgICAgLCBtX2Nv
bm5lY3Rpb25Qcm94eSh0cmFuc2FjdGlvbi5kYXRhYmFzZSgpLmNvbm5lY3Rpb25Qcm94eSgpKQog
ewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotCiAgICAgV1RGOjpzd2l0Y2hPbihjdXJzb3Iuc291
cmNlKCksCiAgICAgICAgIFt0aGlzXSAoY29uc3QgYXV0byYgdmFsdWUpIHsgdGhpcy0+bV9zb3Vy
Y2UgPSBJREJSZXF1ZXN0OjpTb3VyY2UgeyB2YWx1ZSB9OyB9CiAgICAgKTsKQEAgLTEyNiw3ICsx
MzIsNiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIElEQkluZGV4JiBpbmRleCwgSURCVHJhbgogICAgICwgbV9zb3VyY2UoJmluZGV4KQog
ICAgICwgbV9jb25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJhc2UoKS5jb25uZWN0aW9u
UHJveHkoKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCUmVxdWVzdDo6SURC
UmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYg
b2JqZWN0U3RvcmUsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVSZWNvcmRUeXBlIHR5cGUsIElEQlRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKQEAgLTEzOCw3ICsxNDMsNiBAQCBJREJSZXF1ZXN0OjpJ
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3Jl
JiBvYmplY3RTdAogICAgICwgbV9jb25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJhc2Uo
KS5jb25uZWN0aW9uUHJveHkoKSkKICAgICAsIG1fcmVxdWVzdGVkT2JqZWN0U3RvcmVSZWNvcmRU
eXBlKHR5cGUpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJlcXVlc3Q6OklE
QlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCSW5kZXgmIGluZGV4
LCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSByZXF1ZXN0ZWRSZWNvcmRUeXBlLCBJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKaW5kZXggYTRhYWM1YTY2YTRiNWY0NGIzYzI3Zjcx
OWFhN2JjOTRhNjNmYWI4ZC4uY2NlMjUyZjFkMzEwYTlhN2Q0OGI2MTE1OGNiM2UwNzdmNGViNWY0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uLmNwcApAQCAtNjUsMTIgKzY1LDE2IEBAIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBJREJU
cmFuc2FjdGlvbjo6bnVtYmVyT2ZJREJUcmFuc2FjdGlvbnMgeyAwIH07CiAKIFJlZjxJREJUcmFu
c2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShJREJEYXRhYmFzZSYgZGF0YWJhc2UsIGNv
bnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwgaW5mbywgbnVsbHB0cikpOworICAgIGF1dG8gdHJh
bnNhY3Rpb24gPSBhZG9wdFJlZigqbmV3IElEQlRyYW5zYWN0aW9uKGRhdGFiYXNlLCBpbmZvLCBu
dWxscHRyKSk7CisgICAgdHJhbnNhY3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVy
biB0cmFuc2FjdGlvbjsKIH0KIAogUmVmPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6
Y3JlYXRlKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBp
bmZvLCBJREJPcGVuREJSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElEQlRyYW5zYWN0aW9uKGRhdGFiYXNlLCBpbmZvLCAmcmVxdWVzdCkpOworICAgIGF1dG8g
dHJhbnNhY3Rpb24gPSBhZG9wdFJlZigqbmV3IElEQlRyYW5zYWN0aW9uKGRhdGFiYXNlLCBpbmZv
LCAmcmVxdWVzdCkpOworICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICBy
ZXR1cm4gdHJhbnNhY3Rpb247CiB9CiAKIElEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihJ
REJEYXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbywgSURC
T3BlbkRCUmVxdWVzdCogcmVxdWVzdCkKQEAgLTEwMiw4ICsxMDYsNiBAQCBJREJUcmFuc2FjdGlv
bjo6SURCVHJhbnNhY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJUcmFuc2Fj
dGlvbkluZm8mCiAKICAgICAgICAgZXN0YWJsaXNoT25TZXJ2ZXIoKTsKICAgICB9Ci0KLSAgICBz
dXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCVHJhbnNhY3Rpb246On5JREJUcmFuc2FjdGlvbigp
CkBAIC0xNzUsNyArMTc3LDcgQEAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gSURC
VHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWMKICAgICBpZiAoIWlu
Zm8gfHwgKCFmb3VuZCAmJiAhaXNWZXJzaW9uQ2hhbmdlKCkpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdvYmplY3RTdG9yZScg
b24gJ0lEQlRyYW5zYWN0aW9uJzogVGhlIHNwZWNpZmllZCBvYmplY3Qgc3RvcmUgd2FzIG5vdCBm
b3VuZC4iX3MgfTsKIAotICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBtYWtlVW5pcXVlPElEQk9iamVj
dFN0b3JlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOworICAgIGF1
dG8gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICppbmZvLCAqdGhpcyk7CiAgICAgYXV0byogcmF3T2JqZWN0U3RvcmUgPSBvYmpl
Y3RTdG9yZS5nZXQoKTsKICAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KG9iamVjdFN0
b3JlTmFtZSwgV1RGTW92ZShvYmplY3RTdG9yZSkpOwogCkBAIC02NTksNyArNjYxLDcgQEAgUmVm
PElEQk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3Qg
SURCT2JqZWN0U3RvcmVJbmZvJgogCiAgICAgTG9ja2VyIGxvY2tlciB7IG1fcmVmZXJlbmNlZE9i
amVjdFN0b3JlTG9jayB9OwogCi0gICAgYXV0byBvYmplY3RTdG9yZSA9IG1ha2VVbmlxdWU8SURC
T2JqZWN0U3RvcmU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sICp0aGlzKTsKKyAg
ICBhdXRvIG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBpbmZvLCAqdGhpcyk7CiAgICAgYXV0byogcmF3T2JqZWN0U3RvcmUgPSBv
YmplY3RTdG9yZS5nZXQoKTsKICAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KGluZm8u
bmFtZSgpLCBXVEZNb3ZlKG9iamVjdFN0b3JlKSk7CiAKQEAgLTc0Nyw3ICs3NDksNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8SURCSW5kZXg+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleChJREJPYmpl
Y3RTdG9yZSYgb2JqZWN0U3RvcgogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jcmVhdGVJbmRleE9u
U2VydmVyKG9wZXJhdGlvbiwgaW5mbyk7CiAgICAgfSksIElzV3JpdGVPcGVyYXRpb246Olllcyk7
CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgaW5mbywgb2JqZWN0U3RvcmUpOworICAgIHJldHVybiBJREJJbmRleDo6Y3JlYXRlKCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sIG9iamVjdFN0b3JlKTsKIH0KIAogdm9pZCBJ
REJUcmFuc2FjdGlvbjo6Y3JlYXRlSW5kZXhPblNlcnZlcihJREJDbGllbnQ6OlRyYW5zYWN0aW9u
T3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447245</attachid>
            <date>2021-12-15 09:42:56 -0800</date>
            <delta_ts>2021-12-15 11:35:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211215184255.patch</filename>
            <type>text/plain</type>
            <size>20535</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI3OWEzYmRkYTJlMmM1
YWFiYWRjNDQ2ODY5ZjY1OWUwNTA4OWJkZi4uYjllYTEwNTJjOTEyYzg1M2UxYjIyMmRlMzY4N2E0
MDkzM2Y2MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAyIHdoZXJlIHdlIGNvbnZlcnQgdGhlIElEQiBjb2RlIHRvIHVzZSBzdXNwZW5kSWZOZWVkZWQo
KSBvbmx5IHdpdGhpbiBjcmVhdGUoKSBtZXRob2RzLiBUaGlzIHJlcXVpcmVkCisgICAgICAgIGFk
ZGluZyBzdWNoIG1ldGhvZHMgYW5kIG1ha2luZyB0aGUgY29uc3RydWN0b3IgcHJpdmF0ZSBmb3Ig
SURCSW5kZXggYW5kIElEQk9iamVjdFN0b3JlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9w
ZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6CisKIDIwMjEt
MTItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSB0byBzdGFydCBhIHJlYWx0aW1lIG91dGdvaW5nIHNvdXJjZSBpbiBjYXNlIGl0IGlzIHRh
a2VuIHRvIGFub3RoZXIgc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5
MTExN2JhODM2Yy4uNjUyYjI3NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApA
QCAtNDgsNyArNDgsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2Up
OwogCiBSZWY8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rp
b25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3Vs
dERhdGEpKTsKKyAgICBhdXRvIGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShj
b250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6
SURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0RGF0YSkKQEAgLTU5LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAg
ICAsIG1fZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QkRhdGFiYXNlOjpJREJEYXRhYmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lv
biAlIiBQUkl1NjQgIiBjb25uZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgp
LnV0ZjgoKS5kYXRhKCksIG1faW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9u
UHJveHktPnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThm
N2FhNzc0ZjJmZjE1YzA5YTdlNDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAw
M2ZhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2
LDcgKzM2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0KTsKIAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0
aW9uUHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rp
b25Qcm94eSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlv
blByb3h5LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QoU2NyaXB0RXhlY3V0aQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsK
ICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5U
aHJlYWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAxNjdkMzgwNGVmOTBkMDcxNzcx
OGUzZDE5ZGUwMjg3MWViYjllYmUwLi5jNjEwZDNkYjhjZTVmMWQ1ODBmNDAxN2Q5M2U3NWZhZTY0
NDdkMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
Y3BwCkBAIC00Miw2ICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSURCSW5kZXgpOwogCitVbmlxdWVSZWY8SURCSW5kZXg+IElEQklu
ZGV4OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCSW5k
ZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCit7CisgICAgYXV0byBy
ZXN1bHQgPSBtYWtlVW5pcXVlUmVmPElEQkluZGV4Pihjb250ZXh0LCBpbmZvLCBvYmplY3RTdG9y
ZSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiBJREJJbmRleDo6SURCSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgSURCSW5kZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2luZm8oaW5mbykKQEAgLTQ5
LDggKzU2LDYgQEAgSURCSW5kZXg6OklEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgSUQKICAgICAsIG1fb2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmUpCiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEobV9vYmplY3RTdG9yZS50cmFuc2FjdGlvbigpLmRhdGFiYXNlKCkub3JpZ2luVGhy
ZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJJbmRleDo6fklEQklu
ZGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4
IDdmOGI2ODE5OTFiM2Y1YzA3OTI1MjUxMDhlN2EwOWMxYTAyNjEyOWEuLmI0MzRiYWMxMjk3NTk4
ZmFjYjI5OTM4MjkyMzExOTRlMDEzYjdiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXguaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIklEQkluZGV4
SW5mby5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IENhbGxGcmFtZTsKQEAgLTQyLDggKzQzLDkgQEAgc3RydWN0IElEQktleVJhbmdlRGF0YTsKIAog
Y2xhc3MgSURCSW5kZXggZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKElEQkluZGV4KTsKKyAgICBmcmllbmQgVW5pcXVlUmVmPElEQklu
ZGV4PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPElEQkluZGV4LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3Rv
cmUmPihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2Jq
ZWN0U3RvcmUmKTsKIHB1YmxpYzoKLSAgICBJREJJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUmKTsKKyAgICBzdGF0aWMgVW5p
cXVlUmVmPElEQkluZGV4PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElE
QkluZGV4SW5mbyYsIElEQk9iamVjdFN0b3JlJik7CiAKICAgICB2aXJ0dWFsIH5JREJJbmRleCgp
OwogCkBAIC04NSw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkKiBvYmplY3RTdG9yZUFzT3Bh
cXVlUm9vdCgpIHsgcmV0dXJuICZtX29iamVjdFN0b3JlOyB9CiAKIHByaXZhdGU6CisgICAgSURC
SW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkluZGV4SW5mbyYsIElEQk9i
amVjdFN0b3JlJik7CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGRvQ291bnQo
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+
PiBkb0dldChFeGNlcHRpb25PcjxJREJLZXlSYW5nZURhdGE+KTsKICAgICBFeGNlcHRpb25PcjxS
ZWY8SURCUmVxdWVzdD4+IGRvR2V0S2V5KEV4Y2VwdGlvbk9yPElEQktleVJhbmdlRGF0YT4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
Y3BwCmluZGV4IGExMDMwOTFlNTdlZTZiMWE4NjRhN2M4YjFjOGU0OGFlMDNlMTBlMWMuLjBmMTQz
ZTdkZWYwZjZiMzYyMGQzZjA5YTZjMTZmYzUyNzc5MTNiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTU1LDYgKzU1
LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChJREJPYmplY3RTdG9yZSk7CiAKK1VuaXF1ZVJlZjxJREJPYmplY3RTdG9yZT4gSURCT2JqZWN0
U3RvcmU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJP
YmplY3RTdG9yZUluZm8mIGluZm8sIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWVSZWY8SURCT2JqZWN0U3RvcmU+KGNvbnRleHQsIGlu
Zm8sIHRyYW5zYWN0aW9uKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKIElEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8s
IElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29u
dGV4dCkKICAgICAsIG1faW5mbyhpbmZvKQpAQCAtNjIsOCArNjksNiBAQCBJREJPYmplY3RTdG9y
ZTo6SURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
SURCT2JqZWN0UwogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKIHsKICAgICBBU1NF
UlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX3RyYW5zYWN0aW9uLmRh
dGFiYXNlKCkub3JpZ2luVGhyZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQog
CiBJREJPYmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKCkKQEAgLTUyMCwxMSArNTI1LDExIEBA
IEV4Y2VwdGlvbk9yPFJlZjxJREJJbmRleD4+IElEQk9iamVjdFN0b3JlOjppbmRleChjb25zdCBT
dHJpbmcmIGluZGV4TmFtZSkKICAgICBpZiAoIWluZm8pCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb3RGb3VuZEVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2luZGV4JyBvbiAnSURCT2Jq
ZWN0U3RvcmUnOiBUaGUgc3BlY2lmaWVkIGluZGV4IHdhcyBub3QgZm91bmQuIl9zIH07CiAKLSAg
ICBhdXRvIGluZGV4ID0gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgKmluZm8sICp0aGlzKTsKKyAgICBhdXRvIGluZGV4ID0gSURCSW5kZXg6OmNyZWF0ZSgq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOwogCi0gICAgUmVmPElEQklu
ZGV4PiByZWZlcmVuY2VkSW5kZXggeyAqaW5kZXggfTsKKyAgICBSZWY8SURCSW5kZXg+IHJlZmVy
ZW5jZWRJbmRleCB7IGluZGV4IH07CiAKLSAgICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChpbmRl
eE5hbWUsIFdURk1vdmUoaW5kZXgpKTsKKyAgICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChpbmRl
eE5hbWUsIHN0ZDo6dW5pcXVlX3B0cjxJREJJbmRleD4oJmluZGV4KSk7CiAKICAgICByZXR1cm4g
cmVmZXJlbmNlZEluZGV4OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmgKaW5kZXggMzZhYjM4NDUzYjZhNWI2ZmE1NjNiOGQ3Nzc2NTM3
NGY2NTcwNzU3My4uNTU1ZjdhMThkNzljNGUyOTU1MWY0NGJjOGJlZmNkZTU2ZjlmYjhlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVJbmZvLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8
d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENhbGxGcmFtZTsKQEAg
LTU4LDggKzU5LDkgQEAgZW51bSBjbGFzcyBPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgOiB1aW50
OF90OwogCiBjbGFzcyBJREJPYmplY3RTdG9yZSBmaW5hbCA6IHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSURCT2JqZWN0U3RvcmUpOworICAgIGZy
aWVuZCBVbmlxdWVSZWY8SURCT2JqZWN0U3RvcmU+IFdURjo6bWFrZVVuaXF1ZVJlZldpdGhvdXRG
YXN0TWFsbG9jQ2hlY2s8SURCT2JqZWN0U3RvcmUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBj
b25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiY+KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOwog
cHVibGljOgotICAgIElEQk9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBJREJPYmplY3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOworICAgIHN0YXRpYyBVbmlx
dWVSZWY8SURCT2JqZWN0U3RvcmU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgSURCVHJhbnNhY3Rpb24mKTsKICAgICB+SURCT2JqZWN0
U3RvcmUoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0OwpAQCAtMTEzLDYgKzEx
NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbmFtZVJlZmVyZW5jZWRJbmRleChJREJJbmRleCYs
IGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAKIHByaXZhdGU6CisgICAgSURCT2JqZWN0U3RvcmUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIElEQlRy
YW5zYWN0aW9uJik7CisKICAgICBlbnVtIGNsYXNzIElubGluZUtleUNoZWNrIHsgUGVyZm9ybSwg
RG9Ob3RQZXJmb3JtIH07CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBwdXRPckFk
ZChKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8SURCS2V5PiwgSW5k
ZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUsIElubGluZUtleUNoZWNrLCBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmID0gbnVsbHB0cik7CiAgICAgRXhjZXB0aW9uT3I8UmVm
PElEQlJlcXVlc3Q+PiBkb0NvdW50KGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApp
bmRleCAyMzg2NDQwOGUwMmZhN2M1NzljZDlmNTAxZDM3MmUwNzkzNDg3NWU1Li4wZTRkODA5ODU3
YTRkYWViMDM3MDQ4MDQyYWQ0YzZlYzY4YzY1ZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcApAQCAtNDYsMTIgKzQ2
LDE2IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJREJPcGVuREJSZXF1ZXN0KTsKIAog
UmVmPElEQk9wZW5EQlJlcXVlc3Q+IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZURlbGV0ZVJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0
aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBk
YXRhYmFzZUlkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCT3BlbkRC
UmVxdWVzdChjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRpZmllciwgMCwg
SW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6RGVsZXRlKSk7CisgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5LCBkYXRh
YmFzZUlkZW50aWZpZXIsIDAsIEluZGV4ZWREQjo6UmVxdWVzdFR5cGU6OkRlbGV0ZSkpOworICAg
IHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogUmVm
PElEQk9wZW5EQlJlcXVlc3Q+IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblBy
b3h5JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgZGF0YWJh
c2VJZGVudGlmaWVyLCB1aW50NjRfdCB2ZXJzaW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5LCBkYXRhYmFzZUlk
ZW50aWZpZXIsIHZlcnNpb24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGU6Ok9wZW4pKTsKKyAgICBh
dXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBjb25u
ZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRpZmllciwgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1
ZXN0VHlwZTo6T3BlbikpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKIH0KICAgICAKIElEQk9wZW5EQlJlcXVlc3Q6OklEQk9wZW5EQlJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9u
UHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBkYXRh
YmFzZUlkZW50aWZpZXIsIHVpbnQ2NF90IHZlcnNpb24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGUg
cmVxdWVzdFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwCmluZGV4IGUyZTEyZmNmYjM4NmQwZGM4MmIzN2ZjNDViMWY0NWM3MTM3MWMzMTMu
LjRlMDY4YjdiOWY0NjNlMThhZDI5OWUzNGE5NTllZGUzMWM2YWYzZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC01NywyNyArNTcs
MzcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQlJlcXVlc3QpOwogCiBSZWY8SURC
UmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2Jq
ZWN0U3RvcmUsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5l
dyBJREJSZXF1ZXN0KGNvbnRleHQsIG9iamVjdFN0b3JlLCB0cmFuc2FjdGlvbikpOworICAgIHJl
cXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8
SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIElEQkN1cnNvciYgY3Vyc29yLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBjdXJzb3IsIHRy
YW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0
KGNvbnRleHQsIGN1cnNvciwgdHJhbnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZO
ZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUmVmPElEQlJlcXVlc3Q+IElEQlJl
cXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYg
aW5kZXgsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCB0cmFuc2FjdGlvbikpOworICAgIGF1
dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBpbmRleCwgdHJh
bnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIAogUmVmPElEQlJlcXVlc3Q+IElEQlJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0
b3JlR2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBv
YmplY3RTdG9yZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZVJlY29yZFR5cGUgdHlwZSwgSURCVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlJl
cXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHR5cGUsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0
byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIG9iamVjdFN0b3Jl
LCB0eXBlLCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3Jl
YXRlSW5kZXhHZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCSW5kZXgmIGlu
ZGV4LCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSByZXF1ZXN0ZWRSZWNvcmRUeXBlLCBJREJU
cmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURC
UmVxdWVzdChjb250ZXh0LCBpbmRleCwgcmVxdWVzdGVkUmVjb3JkVHlwZSwgdHJhbnNhY3Rpb24p
KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwg
aW5kZXgsIHJlcXVlc3RlZFJlY29yZFR5cGUsIHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIElEQlJlcXVlc3Q6
OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgSW5kZXhlZERCOjpSZXF1ZXN0VHlw
ZSByZXF1ZXN0VHlwZSkKQEAgLTg3LDcgKzk3LDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb24K
ICAgICAsIG1fY29ubmVjdGlvblByb3h5KGNvbm5lY3Rpb25Qcm94eSkKICAgICAsIG1fcmVxdWVz
dFR5cGUocmVxdWVzdFR5cGUpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJl
cXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2Jq
ZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC05
OCw3ICsxMDcsNiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdAogICAgICwgbV9zb3VyY2UoJm9i
amVjdFN0b3JlKQogICAgICwgbV9jb25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJhc2Uo
KS5jb25uZWN0aW9uUHJveHkoKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJD
dXJzb3ImIGN1cnNvciwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQpAQCAtMTA5LDggKzEx
Nyw2IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgSURCQ3Vyc29yJiBjdXJzb3IsIElEQlRyCiAgICAgLCBtX3BlbmRpbmdDdXJzb3IoJmN1
cnNvcikKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29u
bmVjdGlvblByb3h5KCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0KICAgICBXVEY6OnN3
aXRjaE9uKGN1cnNvci5zb3VyY2UoKSwKICAgICAgICAgW3RoaXNdIChjb25zdCBhdXRvJiB2YWx1
ZSkgeyB0aGlzLT5tX3NvdXJjZSA9IElEQlJlcXVlc3Q6OlNvdXJjZSB7IHZhbHVlIH07IH0KICAg
ICApOwpAQCAtMTI2LDcgKzEzMiw2IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCSW5kZXgmIGluZGV4LCBJREJUcmFuCiAgICAgLCBt
X3NvdXJjZSgmaW5kZXgpCiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eSh0cmFuc2FjdGlvbi5kYXRh
YmFzZSgpLmNvbm5lY3Rpb25Qcm94eSgpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQog
CiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZVJlY29y
ZFR5cGUgdHlwZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQpAQCAtMTM4LDcgKzE0Myw2
IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0CiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eSh0cmFu
c2FjdGlvbi5kYXRhYmFzZSgpLmNvbm5lY3Rpb25Qcm94eSgpKQogICAgICwgbV9yZXF1ZXN0ZWRP
YmplY3RTdG9yZVJlY29yZFR5cGUodHlwZSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0K
IAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBJREJJbmRleCYgaW5kZXgsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlIHJlcXVlc3RlZFJl
Y29yZFR5cGUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCBhNGFhYzVh
NjZhNGI1ZjQ0YjNjMjdmNzE5YWE3YmM5NGE2M2ZhYjhkLi45ZjgyMTVkNTgyMjAwZTZkM2U3OGVm
NDZhMTJlZTI4NWRlZGUzMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC02NSwxMiArNjUsMTYgQEAgc3RkOjphdG9t
aWM8dW5zaWduZWQ+IElEQlRyYW5zYWN0aW9uOjpudW1iZXJPZklEQlRyYW5zYWN0aW9ucyB7IDAg
fTsKIAogUmVmPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKElEQkRhdGFi
YXNlJiBkYXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQogewotICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IElEQlRyYW5zYWN0aW9uKGRhdGFiYXNlLCBpbmZvLCBudWxscHRy
KSk7CisgICAgYXV0byB0cmFuc2FjdGlvbiA9IGFkb3B0UmVmKCpuZXcgSURCVHJhbnNhY3Rpb24o
ZGF0YWJhc2UsIGluZm8sIG51bGxwdHIpKTsKKyAgICB0cmFuc2FjdGlvbi0+c3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgcmV0dXJuIHRyYW5zYWN0aW9uOwogfQogCiBSZWY8SURCVHJhbnNhY3Rpb24+
IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoSURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJU
cmFuc2FjdGlvbkluZm8mIGluZm8sIElEQk9wZW5EQlJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCVHJhbnNhY3Rpb24oZGF0YWJhc2UsIGluZm8sICZyZXF1
ZXN0KSk7CisgICAgYXV0byB0cmFuc2FjdGlvbiA9IGFkb3B0UmVmKCpuZXcgSURCVHJhbnNhY3Rp
b24oZGF0YWJhc2UsIGluZm8sICZyZXF1ZXN0KSk7CisgICAgdHJhbnNhY3Rpb24tPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiB0cmFuc2FjdGlvbjsKIH0KIAogSURCVHJhbnNhY3Rpb246
OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rp
b25JbmZvJiBpbmZvLCBJREJPcGVuREJSZXF1ZXN0KiByZXF1ZXN0KQpAQCAtMTAyLDggKzEwNiw2
IEBAIElEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihJREJEYXRhYmFzZSYgZGF0YWJhc2Us
IGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYKIAogICAgICAgICBlc3RhYmxpc2hPblNlcnZlcigp
OwogICAgIH0KLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJUcmFuc2FjdGlvbjo6
fklEQlRyYW5zYWN0aW9uKCkKQEAgLTE3NSw5ICsxNzcsOSBAQCBFeGNlcHRpb25PcjxSZWY8SURC
T2JqZWN0U3RvcmU+PiBJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBv
YmplYwogICAgIGlmICghaW5mbyB8fCAoIWZvdW5kICYmICFpc1ZlcnNpb25DaGFuZ2UoKSkpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1
dGUgJ29iamVjdFN0b3JlJyBvbiAnSURCVHJhbnNhY3Rpb24nOiBUaGUgc3BlY2lmaWVkIG9iamVj
dCBzdG9yZSB3YXMgbm90IGZvdW5kLiJfcyB9OwogCi0gICAgYXV0byBvYmplY3RTdG9yZSA9IG1h
a2VVbmlxdWU8SURCT2JqZWN0U3RvcmU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICppbmZv
LCAqdGhpcyk7Ci0gICAgYXV0byogcmF3T2JqZWN0U3RvcmUgPSBvYmplY3RTdG9yZS5nZXQoKTsK
LSAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KG9iamVjdFN0b3JlTmFtZSwgV1RGTW92
ZShvYmplY3RTdG9yZSkpOworICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RTdG9yZTo6
Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICppbmZvLCAqdGhpcyk7CisgICAgYXV0
byogcmF3T2JqZWN0U3RvcmUgPSAmb2JqZWN0U3RvcmU7CisgICAgbV9yZWZlcmVuY2VkT2JqZWN0
U3RvcmVzLnNldChvYmplY3RTdG9yZU5hbWUsIHN0ZDo6dW5pcXVlX3B0cjxJREJPYmplY3RTdG9y
ZT4ocmF3T2JqZWN0U3RvcmUpKTsKIAogICAgIHJldHVybiBSZWY8SURCT2JqZWN0U3RvcmU+KCpy
YXdPYmplY3RTdG9yZSk7CiB9CkBAIC02NTksOSArNjYxLDkgQEAgUmVmPElEQk9iamVjdFN0b3Jl
PiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCT2JqZWN0U3RvcmVJ
bmZvJgogCiAgICAgTG9ja2VyIGxvY2tlciB7IG1fcmVmZXJlbmNlZE9iamVjdFN0b3JlTG9jayB9
OwogCi0gICAgYXV0byBvYmplY3RTdG9yZSA9IG1ha2VVbmlxdWU8SURCT2JqZWN0U3RvcmU+KCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sICp0aGlzKTsKLSAgICBhdXRvKiByYXdPYmpl
Y3RTdG9yZSA9IG9iamVjdFN0b3JlLmdldCgpOwotICAgIG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jl
cy5zZXQoaW5mby5uYW1lKCksIFdURk1vdmUob2JqZWN0U3RvcmUpKTsKKyAgICBhdXRvIG9iamVj
dFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBpbmZvLCAqdGhpcyk7CisgICAgYXV0byogcmF3T2JqZWN0U3RvcmUgPSAmb2JqZWN0U3RvcmU7
CisgICAgbV9yZWZlcmVuY2VkT2JqZWN0U3RvcmVzLnNldChpbmZvLm5hbWUoKSwgc3RkOjp1bmlx
dWVfcHRyPElEQk9iamVjdFN0b3JlPihyYXdPYmplY3RTdG9yZSkpOwogCiAgICAgTE9HKEluZGV4
ZWREQk9wZXJhdGlvbnMsICJJREIgY3JlYXRlIG9iamVjdCBzdG9yZSBvcGVyYXRpb246ICVzIiwg
aW5mby5jb25kZW5zZWRMb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgc2NoZWR1
bGVPcGVyYXRpb24oSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgq
dGhpcywgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoY29uc3QgYXV0byYgcmVzdWx0
KSB7CkBAIC03NDcsNyArNzQ5LDggQEAgc3RkOjp1bmlxdWVfcHRyPElEQkluZGV4PiBJREJUcmFu
c2FjdGlvbjo6Y3JlYXRlSW5kZXgoSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3IKICAgICAgICAg
cHJvdGVjdGVkVGhpcy0+Y3JlYXRlSW5kZXhPblNlcnZlcihvcGVyYXRpb24sIGluZm8pOwogICAg
IH0pLCBJc1dyaXRlT3BlcmF0aW9uOjpZZXMpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SURC
SW5kZXg+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sIG9iamVjdFN0b3JlKTsKKyAg
ICBhdXRvIGluZGV4ID0gSURCSW5kZXg6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBpbmZvLCBvYmplY3RTdG9yZSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJREJJbmRl
eD4oJmluZGV4KTsKIH0KIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlSW5kZXhPblNlcnZl
cihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQklu
ZGV4SW5mbyYgaW5mbykK
</data>
<flag name="commit-queue"
          id="472847"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447262</attachid>
            <date>2021-12-15 11:34:17 -0800</date>
            <delta_ts>2021-12-15 12:22:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211215203416.patch</filename>
            <type>text/plain</type>
            <size>20912</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI3OWEzYmRkYTJlMmM1
YWFiYWRjNDQ2ODY5ZjY1OWUwNTA4OWJkZi4uYjllYTEwNTJjOTEyYzg1M2UxYjIyMmRlMzY4N2E0
MDkzM2Y2MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAyIHdoZXJlIHdlIGNvbnZlcnQgdGhlIElEQiBjb2RlIHRvIHVzZSBzdXNwZW5kSWZOZWVkZWQo
KSBvbmx5IHdpdGhpbiBjcmVhdGUoKSBtZXRob2RzLiBUaGlzIHJlcXVpcmVkCisgICAgICAgIGFk
ZGluZyBzdWNoIG1ldGhvZHMgYW5kIG1ha2luZyB0aGUgY29uc3RydWN0b3IgcHJpdmF0ZSBmb3Ig
SURCSW5kZXggYW5kIElEQk9iamVjdFN0b3JlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9w
ZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6CisKIDIwMjEt
MTItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSB0byBzdGFydCBhIHJlYWx0aW1lIG91dGdvaW5nIHNvdXJjZSBpbiBjYXNlIGl0IGlzIHRh
a2VuIHRvIGFub3RoZXIgc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5
MTExN2JhODM2Yy4uNjUyYjI3NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApA
QCAtNDgsNyArNDgsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2Up
OwogCiBSZWY8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rp
b25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3Vs
dERhdGEpKTsKKyAgICBhdXRvIGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShj
b250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6
SURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0RGF0YSkKQEAgLTU5LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAg
ICAsIG1fZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QkRhdGFiYXNlOjpJREJEYXRhYmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lv
biAlIiBQUkl1NjQgIiBjb25uZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgp
LnV0ZjgoKS5kYXRhKCksIG1faW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9u
UHJveHktPnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThm
N2FhNzc0ZjJmZjE1YzA5YTdlNDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAw
M2ZhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2
LDcgKzM2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0KTsKIAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0
aW9uUHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rp
b25Qcm94eSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlv
blByb3h5LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QoU2NyaXB0RXhlY3V0aQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsK
ICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5U
aHJlYWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAxNjdkMzgwNGVmOTBkMDcxNzcx
OGUzZDE5ZGUwMjg3MWViYjllYmUwLi5jNjEwZDNkYjhjZTVmMWQ1ODBmNDAxN2Q5M2U3NWZhZTY0
NDdkMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
Y3BwCkBAIC00Miw2ICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSURCSW5kZXgpOwogCitVbmlxdWVSZWY8SURCSW5kZXg+IElEQklu
ZGV4OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCSW5k
ZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCit7CisgICAgYXV0byBy
ZXN1bHQgPSBtYWtlVW5pcXVlUmVmPElEQkluZGV4Pihjb250ZXh0LCBpbmZvLCBvYmplY3RTdG9y
ZSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiBJREJJbmRleDo6SURCSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgSURCSW5kZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2luZm8oaW5mbykKQEAgLTQ5
LDggKzU2LDYgQEAgSURCSW5kZXg6OklEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgSUQKICAgICAsIG1fb2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmUpCiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEobV9vYmplY3RTdG9yZS50cmFuc2FjdGlvbigpLmRhdGFiYXNlKCkub3JpZ2luVGhy
ZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJJbmRleDo6fklEQklu
ZGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4
IDdmOGI2ODE5OTFiM2Y1YzA3OTI1MjUxMDhlN2EwOWMxYTAyNjEyOWEuLmI0MzRiYWMxMjk3NTk4
ZmFjYjI5OTM4MjkyMzExOTRlMDEzYjdiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXguaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIklEQkluZGV4
SW5mby5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IENhbGxGcmFtZTsKQEAgLTQyLDggKzQzLDkgQEAgc3RydWN0IElEQktleVJhbmdlRGF0YTsKIAog
Y2xhc3MgSURCSW5kZXggZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKElEQkluZGV4KTsKKyAgICBmcmllbmQgVW5pcXVlUmVmPElEQklu
ZGV4PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPElEQkluZGV4LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3Rv
cmUmPihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2Jq
ZWN0U3RvcmUmKTsKIHB1YmxpYzoKLSAgICBJREJJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUmKTsKKyAgICBzdGF0aWMgVW5p
cXVlUmVmPElEQkluZGV4PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElE
QkluZGV4SW5mbyYsIElEQk9iamVjdFN0b3JlJik7CiAKICAgICB2aXJ0dWFsIH5JREJJbmRleCgp
OwogCkBAIC04NSw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkKiBvYmplY3RTdG9yZUFzT3Bh
cXVlUm9vdCgpIHsgcmV0dXJuICZtX29iamVjdFN0b3JlOyB9CiAKIHByaXZhdGU6CisgICAgSURC
SW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkluZGV4SW5mbyYsIElEQk9i
amVjdFN0b3JlJik7CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGRvQ291bnQo
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+
PiBkb0dldChFeGNlcHRpb25PcjxJREJLZXlSYW5nZURhdGE+KTsKICAgICBFeGNlcHRpb25PcjxS
ZWY8SURCUmVxdWVzdD4+IGRvR2V0S2V5KEV4Y2VwdGlvbk9yPElEQktleVJhbmdlRGF0YT4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
Y3BwCmluZGV4IGExMDMwOTFlNTdlZTZiMWE4NjRhN2M4YjFjOGU0OGFlMDNlMTBlMWMuLjA4NjRj
YTRhN2VlYTgyZDgxMTdlMWYxMGRmOWVhODllMGUzN2U1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTU1LDYgKzU1
LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChJREJPYmplY3RTdG9yZSk7CiAKK1VuaXF1ZVJlZjxJREJPYmplY3RTdG9yZT4gSURCT2JqZWN0
U3RvcmU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJP
YmplY3RTdG9yZUluZm8mIGluZm8sIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWVSZWY8SURCT2JqZWN0U3RvcmU+KGNvbnRleHQsIGlu
Zm8sIHRyYW5zYWN0aW9uKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKIElEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8s
IElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29u
dGV4dCkKICAgICAsIG1faW5mbyhpbmZvKQpAQCAtNjIsOCArNjksNiBAQCBJREJPYmplY3RTdG9y
ZTo6SURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
SURCT2JqZWN0UwogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKIHsKICAgICBBU1NF
UlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX3RyYW5zYWN0aW9uLmRh
dGFiYXNlKCkub3JpZ2luVGhyZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQog
CiBJREJPYmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKCkKQEAgLTUyMCwxMSArNTI1LDExIEBA
IEV4Y2VwdGlvbk9yPFJlZjxJREJJbmRleD4+IElEQk9iamVjdFN0b3JlOjppbmRleChjb25zdCBT
dHJpbmcmIGluZGV4TmFtZSkKICAgICBpZiAoIWluZm8pCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb3RGb3VuZEVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2luZGV4JyBvbiAnSURCT2Jq
ZWN0U3RvcmUnOiBUaGUgc3BlY2lmaWVkIGluZGV4IHdhcyBub3QgZm91bmQuIl9zIH07CiAKLSAg
ICBhdXRvIGluZGV4ID0gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgKmluZm8sICp0aGlzKTsKKyAgICBhdXRvIGluZGV4ID0gSURCSW5kZXg6OmNyZWF0ZSgq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOwogCi0gICAgUmVmPElEQklu
ZGV4PiByZWZlcmVuY2VkSW5kZXggeyAqaW5kZXggfTsKKyAgICBSZWY8SURCSW5kZXg+IHJlZmVy
ZW5jZWRJbmRleCB7IGluZGV4IH07CiAKLSAgICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChpbmRl
eE5hbWUsIFdURk1vdmUoaW5kZXgpKTsKKyAgICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChpbmRl
eE5hbWUsIGluZGV4Lm1vdmVUb1VuaXF1ZVB0cigpKTsKIAogICAgIHJldHVybiByZWZlcmVuY2Vk
SW5kZXg7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuaAppbmRleCAzNmFiMzg0NTNiNmE1YjZmYTU2M2I4ZDc3NzY1Mzc0ZjY1NzA3NTcz
Li41NTVmN2ExOGQ3OWM0ZTI5NTUxZjQ0YmM4YmVmY2RlNTZmOWZiOGVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZUluZm8uaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVl
UmVmLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ2FsbEZyYW1lOwpAQCAtNTgsOCArNTks
OSBAQCBlbnVtIGNsYXNzIE9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSA6IHVpbnQ4X3Q7CiAKIGNs
YXNzIElEQk9iamVjdFN0b3JlIGZpbmFsIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRChJREJPYmplY3RTdG9yZSk7CisgICAgZnJpZW5kIFVuaXF1
ZVJlZjxJREJPYmplY3RTdG9yZT4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2ND
aGVjazxJREJPYmplY3RTdG9yZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9i
amVjdFN0b3JlSW5mbyYsIElEQlRyYW5zYWN0aW9uJj4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIElEQlRyYW5zYWN0aW9uJik7CiBwdWJsaWM6Ci0g
ICAgSURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9iamVj
dFN0b3JlSW5mbyYsIElEQlRyYW5zYWN0aW9uJik7CisgICAgc3RhdGljIFVuaXF1ZVJlZjxJREJP
YmplY3RTdG9yZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJPYmpl
Y3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOwogICAgIH5JREJPYmplY3RTdG9yZSgpOwog
CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3Q7CkBAIC0xMTMsNiArMTE1LDggQEAgcHVi
bGljOgogICAgIHZvaWQgcmVuYW1lUmVmZXJlbmNlZEluZGV4KElEQkluZGV4JiwgY29uc3QgU3Ry
aW5nJiBuZXdOYW1lKTsKIAogcHJpdmF0ZToKKyAgICBJREJPYmplY3RTdG9yZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgSURCVHJhbnNhY3Rpb24m
KTsKKwogICAgIGVudW0gY2xhc3MgSW5saW5lS2V5Q2hlY2sgeyBQZXJmb3JtLCBEb05vdFBlcmZv
cm0gfTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IHB1dE9yQWRkKEpTQzo6SlNH
bG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxJREJLZXk+LCBJbmRleGVkREI6Ok9i
amVjdFN0b3JlT3ZlcndyaXRlTW9kZSwgSW5saW5lS2V5Q2hlY2ssIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYgPSBudWxscHRyKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVz
dD4+IGRvQ291bnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDIzODY0
NDA4ZTAyZmE3YzU3OWNkOWY1MDFkMzcyZTA3OTM0ODc1ZTUuLjBlNGQ4MDk4NTdhNGRhZWIwMzcw
NDgwNDJhZDRjNmVjNjhjNjVmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC00NiwxMiArNDYsMTYgQEAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQk9wZW5EQlJlcXVlc3QpOwogCiBSZWY8SURCT3Bl
bkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlRGVsZXRlUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYg
Y29ubmVjdGlvblByb3h5LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRl
bnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0KGNv
bnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCAwLCBJbmRleGVkREI6
OlJlcXVlc3RUeXBlOjpEZWxldGUpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcg
SURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRp
ZmllciwgMCwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6RGVsZXRlKSk7CisgICAgcmVzdWx0LT5z
dXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBSZWY8SURCT3BlbkRC
UmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlT3BlblJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5l
Y3Rpb25Qcm94eSwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBkYXRhYmFzZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IHZlcnNpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCT3Bl
bkRCUmVxdWVzdChjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRpZmllciwg
dmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6T3BlbikpOworICAgIGF1dG8gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94
eSwgZGF0YWJhc2VJZGVudGlmaWVyLCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpP
cGVuKSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0
OwogfQogICAgIAogSURCT3BlbkRCUmVxdWVzdDo6SURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29u
bmVjdGlvblByb3h5LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRp
ZmllciwgdWludDY0X3QgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSByZXF1ZXN0VHlw
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
aW5kZXggZTJlMTJmY2ZiMzg2ZDBkYzgyYjM3ZmM0NWIxZjQ1YzcxMzcxYzMxMy4uNGUwNjhiN2I5
ZjQ2M2UxOGFkMjk5ZTM0YTk1OWVkZTMxYzZhZjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTU3LDI3ICs1NywzNyBAQCBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCUmVxdWVzdCk7CiAKIFJlZjxJREJSZXF1ZXN0PiBJ
REJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2Jq
ZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9yZSwg
dHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVl
c3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0
PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURC
Q3Vyc29yJiBjdXJzb3IsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGN1cnNvciwgdHJhbnNhY3Rpb24p
KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwg
Y3Vyc29yLCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwgSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElE
QlJlcXVlc3QoY29udGV4dCwgaW5kZXgsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1ZXN0
ID0gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCB0cmFuc2FjdGlvbikp
OworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0Owog
fQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlT2JqZWN0U3RvcmVHZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3Jl
LCBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZSB0eXBlLCBJREJUcmFuc2FjdGlvbiYg
dHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250
ZXh0LCBvYmplY3RTdG9yZSwgdHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3Qg
PSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHR5cGUsIHRy
YW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJu
IHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdl
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIEluZGV4
ZWREQjo6SW5kZXhSZWNvcmRUeXBlIHJlcXVlc3RlZFJlY29yZFR5cGUsIElEQlRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNv
bnRleHQsIGluZGV4LCByZXF1ZXN0ZWRSZWNvcmRUeXBlLCB0cmFuc2FjdGlvbikpOworICAgIGF1
dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBpbmRleCwgcmVx
dWVzdGVkUmVjb3JkVHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZO
ZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogSURCUmVxdWVzdDo6SURCUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rp
b25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBJbmRleGVkREI6OlJlcXVlc3RUeXBlIHJlcXVlc3RU
eXBlKQpAQCAtODcsNyArOTcsNiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvbgogICAgICwgbV9j
b25uZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQogICAgICwgbV9yZXF1ZXN0VHlwZShyZXF1
ZXN0VHlwZSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCUmVxdWVzdDo6SURC
UmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYg
b2JqZWN0U3RvcmUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKQEAgLTk4LDcgKzEwNyw2
IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0CiAgICAgLCBtX3NvdXJjZSgmb2JqZWN0U3RvcmUp
CiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eSh0cmFuc2FjdGlvbi5kYXRhYmFzZSgpLmNvbm5lY3Rp
b25Qcm94eSgpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJSZXF1ZXN0OjpJ
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1cnNvciYgY3Vy
c29yLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC0xMDksOCArMTE3LDYgQEAgSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJD
dXJzb3ImIGN1cnNvciwgSURCVHIKICAgICAsIG1fcGVuZGluZ0N1cnNvcigmY3Vyc29yKQogICAg
ICwgbV9jb25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJhc2UoKS5jb25uZWN0aW9uUHJv
eHkoKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLQogICAgIFdURjo6c3dpdGNoT24oY3Vy
c29yLnNvdXJjZSgpLAogICAgICAgICBbdGhpc10gKGNvbnN0IGF1dG8mIHZhbHVlKSB7IHRoaXMt
Pm1fc291cmNlID0gSURCUmVxdWVzdDo6U291cmNlIHsgdmFsdWUgfTsgfQogICAgICk7CkBAIC0x
MjYsNyArMTMyLDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIElEQlRyYW4KICAgICAsIG1fc291cmNlKCZp
bmRleCkKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29u
bmVjdGlvblByb3h5KCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJlcXVl
c3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0
U3RvcmUmIG9iamVjdFN0b3JlLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZSB0eXBl
LCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC0xMzgsNyArMTQzLDYgQEAgSURCUmVx
dWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmpl
Y3RTdG9yZSYgb2JqZWN0U3QKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRh
dGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCiAgICAgLCBtX3JlcXVlc3RlZE9iamVjdFN0b3Jl
UmVjb3JkVHlwZSh0eXBlKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJSZXF1
ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4
JiBpbmRleCwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgcmVxdWVzdGVkUmVjb3JkVHlwZSwg
SURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGE0YWFjNWE2NmE0YjVmNDRi
M2MyN2Y3MTlhYTdiYzk0YTYzZmFiOGQuLjNlZTgyNTI0MjNhMzRmNGMwMzVlZDk0NmI1MDQwZjVl
Y2JkMjkwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHAKQEAgLTY1LDEyICs2NSwxNiBAQCBzdGQ6OmF0b21pYzx1bnNpZ25l
ZD4gSURCVHJhbnNhY3Rpb246Om51bWJlck9mSURCVHJhbnNhY3Rpb25zIHsgMCB9OwogCiBSZWY8
SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoSURCRGF0YWJhc2UmIGRhdGFi
YXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSURCVHJhbnNhY3Rpb24oZGF0YWJhc2UsIGluZm8sIG51bGxwdHIpKTsKKyAgICBh
dXRvIHRyYW5zYWN0aW9uID0gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwg
aW5mbywgbnVsbHB0cikpOworICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICByZXR1cm4gdHJhbnNhY3Rpb247CiB9CiAKIFJlZjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNh
Y3Rpb246OmNyZWF0ZShJREJEYXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IElEQlRyYW5zYWN0aW9u
SW5mbyYgaW5mbywgSURCT3BlbkRCUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwgaW5mbywgJnJlcXVlc3QpKTsKKyAg
ICBhdXRvIHRyYW5zYWN0aW9uID0gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFz
ZSwgaW5mbywgJnJlcXVlc3QpKTsKKyAgICB0cmFuc2FjdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7
CisgICAgcmV0dXJuIHRyYW5zYWN0aW9uOwogfQogCiBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNh
Y3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGlu
Zm8sIElEQk9wZW5EQlJlcXVlc3QqIHJlcXVlc3QpCkBAIC0xMDIsOCArMTA2LDYgQEAgSURCVHJh
bnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgSURC
VHJhbnNhY3Rpb25JbmZvJgogCiAgICAgICAgIGVzdGFibGlzaE9uU2VydmVyKCk7CiAgICAgfQot
Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlRyYW5zYWN0aW9uOjp+SURCVHJhbnNh
Y3Rpb24oKQpAQCAtMTc1LDExICsxNzcsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0
b3JlPj4gSURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWMKICAg
ICBpZiAoIWluZm8gfHwgKCFmb3VuZCAmJiAhaXNWZXJzaW9uQ2hhbmdlKCkpKQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdvYmpl
Y3RTdG9yZScgb24gJ0lEQlRyYW5zYWN0aW9uJzogVGhlIHNwZWNpZmllZCBvYmplY3Qgc3RvcmUg
d2FzIG5vdCBmb3VuZC4iX3MgfTsKIAotICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBtYWtlVW5pcXVl
PElEQk9iamVjdFN0b3JlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMp
OwotICAgIGF1dG8qIHJhd09iamVjdFN0b3JlID0gb2JqZWN0U3RvcmUuZ2V0KCk7Ci0gICAgbV9y
ZWZlcmVuY2VkT2JqZWN0U3RvcmVzLnNldChvYmplY3RTdG9yZU5hbWUsIFdURk1vdmUob2JqZWN0
U3RvcmUpKTsKKyAgICBhdXRvIG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZSgq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOworICAgIFJlZiBvYmplY3RT
dG9yZVJlZiB7IG9iamVjdFN0b3JlLmdldCgpIH07CisgICAgbV9yZWZlcmVuY2VkT2JqZWN0U3Rv
cmVzLnNldChvYmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlLm1vdmVUb1VuaXF1ZVB0cigpKTsK
IAotICAgIHJldHVybiBSZWY8SURCT2JqZWN0U3RvcmU+KCpyYXdPYmplY3RTdG9yZSk7CisgICAg
cmV0dXJuIG9iamVjdFN0b3JlUmVmOwogfQogCiAKQEAgLTY1OSw5ICs2NjEsOSBAQCBSZWY8SURC
T2JqZWN0U3RvcmU+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJP
YmplY3RTdG9yZUluZm8mCiAKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZWZlcmVuY2VkT2JqZWN0
U3RvcmVMb2NrIH07CiAKLSAgICBhdXRvIG9iamVjdFN0b3JlID0gbWFrZVVuaXF1ZTxJREJPYmpl
Y3RTdG9yZT4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5mbywgKnRoaXMpOwotICAgIGF1
dG8qIHJhd09iamVjdFN0b3JlID0gb2JqZWN0U3RvcmUuZ2V0KCk7Ci0gICAgbV9yZWZlcmVuY2Vk
T2JqZWN0U3RvcmVzLnNldChpbmZvLm5hbWUoKSwgV1RGTW92ZShvYmplY3RTdG9yZSkpOworICAg
IGF1dG8gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGluZm8sICp0aGlzKTsKKyAgICBSZWYgb2JqZWN0U3RvcmVSZWYgeyBvYmpl
Y3RTdG9yZS5nZXQoKSB9OworICAgIG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jlcy5zZXQoaW5mby5u
YW1lKCksIG9iamVjdFN0b3JlLm1vdmVUb1VuaXF1ZVB0cigpKTsKIAogICAgIExPRyhJbmRleGVk
REJPcGVyYXRpb25zLCAiSURCIGNyZWF0ZSBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uOiAlcyIsIGlu
Zm8uY29uZGVuc2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHNjaGVkdWxl
T3BlcmF0aW9uKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsOjpjcmVhdGUoKnRo
aXMsIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGNvbnN0IGF1dG8mIHJlc3VsdCkg
ewpAQCAtNjcwLDcgKzY3Miw3IEBAIFJlZjxJREJPYmplY3RTdG9yZT4gSURCVHJhbnNhY3Rpb246
OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYKICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+Y3JlYXRlT2JqZWN0U3RvcmVPblNlcnZlcihvcGVyYXRpb24sIGluZm8pOwog
ICAgIH0pLCBJc1dyaXRlT3BlcmF0aW9uOjpZZXMpOwogCi0gICAgcmV0dXJuICpyYXdPYmplY3RT
dG9yZTsKKyAgICByZXR1cm4gb2JqZWN0U3RvcmVSZWY7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rp
b246OmNyZWF0ZU9iamVjdFN0b3JlT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJh
dGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCkBAIC03NDcs
NyArNzQ5LDggQEAgc3RkOjp1bmlxdWVfcHRyPElEQkluZGV4PiBJREJUcmFuc2FjdGlvbjo6Y3Jl
YXRlSW5kZXgoSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3IKICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+Y3JlYXRlSW5kZXhPblNlcnZlcihvcGVyYXRpb24sIGluZm8pOwogICAgIH0pLCBJc1dyaXRl
T3BlcmF0aW9uOjpZZXMpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SURCSW5kZXg+KCpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sIG9iamVjdFN0b3JlKTsKKyAgICBhdXRvIGluZGV4
ID0gSURCSW5kZXg6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbmZvLCBvYmpl
Y3RTdG9yZSk7CisgICAgcmV0dXJuIGluZGV4Lm1vdmVUb1VuaXF1ZVB0cigpOwogfQogCiB2b2lk
IElEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleE9uU2VydmVyKElEQkNsaWVudDo6VHJhbnNhY3Rp
b25PcGVyYXRpb24mIG9wZXJhdGlvbiwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447270</attachid>
            <date>2021-12-15 12:22:10 -0800</date>
            <delta_ts>2021-12-16 05:17:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211215212209.patch</filename>
            <type>text/plain</type>
            <size>20780</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI3OWEzYmRkYTJlMmM1
YWFiYWRjNDQ2ODY5ZjY1OWUwNTA4OWJkZi4uYjllYTEwNTJjOTEyYzg1M2UxYjIyMmRlMzY4N2E0
MDkzM2Y2MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAyIHdoZXJlIHdlIGNvbnZlcnQgdGhlIElEQiBjb2RlIHRvIHVzZSBzdXNwZW5kSWZOZWVkZWQo
KSBvbmx5IHdpdGhpbiBjcmVhdGUoKSBtZXRob2RzLiBUaGlzIHJlcXVpcmVkCisgICAgICAgIGFk
ZGluZyBzdWNoIG1ldGhvZHMgYW5kIG1ha2luZyB0aGUgY29uc3RydWN0b3IgcHJpdmF0ZSBmb3Ig
SURCSW5kZXggYW5kIElEQk9iamVjdFN0b3JlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVu
REJSZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9w
ZW5EQlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFu
c2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6CisKIDIwMjEt
MTItMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSB0byBzdGFydCBhIHJlYWx0aW1lIG91dGdvaW5nIHNvdXJjZSBpbiBjYXNlIGl0IGlzIHRh
a2VuIHRvIGFub3RoZXIgc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5
MTExN2JhODM2Yy4uNjUyYjI3NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApA
QCAtNDgsNyArNDgsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2Up
OwogCiBSZWY8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rp
b25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3Vs
dERhdGEpKTsKKyAgICBhdXRvIGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShj
b250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3Vz
cGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6
SURCRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYg
cmVzdWx0RGF0YSkKQEAgLTU5LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAg
ICAsIG1fZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklE
QkRhdGFiYXNlOjpJREJEYXRhYmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lv
biAlIiBQUkl1NjQgIiBjb25uZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgp
LnV0ZjgoKS5kYXRhKCksIG1faW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRl
bnRpZmllciwgdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9u
UHJveHktPnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThm
N2FhNzc0ZjJmZjE1YzA5YTdlNDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAw
M2ZhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2
LDcgKzM2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb25SZXF1ZXN0KTsKIAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0
PiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0
aW9uUHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rp
b25Qcm94eSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlv
blByb3h5LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJl
cXVlc3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRh
YmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3QoU2NyaXB0RXhlY3V0aQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsK
ICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5U
aHJlYWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElE
QkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAxNjdkMzgwNGVmOTBkMDcxNzcx
OGUzZDE5ZGUwMjg3MWViYjllYmUwLi5jNjEwZDNkYjhjZTVmMWQ1ODBmNDAxN2Q5M2U3NWZhZTY0
NDdkMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
Y3BwCkBAIC00Miw2ICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSURCSW5kZXgpOwogCitVbmlxdWVSZWY8SURCSW5kZXg+IElEQklu
ZGV4OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCSW5k
ZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCit7CisgICAgYXV0byBy
ZXN1bHQgPSBtYWtlVW5pcXVlUmVmPElEQkluZGV4Pihjb250ZXh0LCBpbmZvLCBvYmplY3RTdG9y
ZSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiBJREJJbmRleDo6SURCSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgSURCSW5kZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2luZm8oaW5mbykKQEAgLTQ5
LDggKzU2LDYgQEAgSURCSW5kZXg6OklEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgSUQKICAgICAsIG1fb2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmUpCiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRM
b2NhbERhdGEobV9vYmplY3RTdG9yZS50cmFuc2FjdGlvbigpLmRhdGFiYXNlKCkub3JpZ2luVGhy
ZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJJbmRleDo6fklEQklu
ZGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4
IDdmOGI2ODE5OTFiM2Y1YzA3OTI1MjUxMDhlN2EwOWMxYTAyNjEyOWEuLmY1M2EzODJhZDk4MDNh
ZThlNWI2YWUxZDFmOTI0M2Y2ZmI5NGQ3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXguaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIklEQkluZGV4
SW5mby5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNz
IENhbGxGcmFtZTsKQEAgLTQyLDggKzQzLDkgQEAgc3RydWN0IElEQktleVJhbmdlRGF0YTsKIAog
Y2xhc3MgSURCSW5kZXggZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKElEQkluZGV4KTsKKyAgICBmcmllbmQgVW5pcXVlUmVmPElEQklu
ZGV4PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPElEQkluZGV4PihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3Rv
cmUmKTsKIHB1YmxpYzoKLSAgICBJREJJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUmKTsKKyAgICBzdGF0aWMgVW5pcXVlUmVm
PElEQkluZGV4PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkluZGV4
SW5mbyYsIElEQk9iamVjdFN0b3JlJik7CiAKICAgICB2aXJ0dWFsIH5JREJJbmRleCgpOwogCkBA
IC04NSw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkKiBvYmplY3RTdG9yZUFzT3BhcXVlUm9v
dCgpIHsgcmV0dXJuICZtX29iamVjdFN0b3JlOyB9CiAKIHByaXZhdGU6CisgICAgSURCSW5kZXgo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQkluZGV4SW5mbyYsIElEQk9iamVjdFN0
b3JlJik7CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGRvQ291bnQoY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJik7CiAgICAgRXhjZXB0aW9uT3I8UmVmPElEQlJlcXVlc3Q+PiBkb0dl
dChFeGNlcHRpb25PcjxJREJLZXlSYW5nZURhdGE+KTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURC
UmVxdWVzdD4+IGRvR2V0S2V5KEV4Y2VwdGlvbk9yPElEQktleVJhbmdlRGF0YT4pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmlu
ZGV4IGExMDMwOTFlNTdlZTZiMWE4NjRhN2M4YjFjOGU0OGFlMDNlMTBlMWMuLjA4NjRjYTRhN2Vl
YTgyZDgxMTdlMWYxMGRmOWVhODllMGUzN2U1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTU1LDYgKzU1LDEzIEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJREJP
YmplY3RTdG9yZSk7CiAKK1VuaXF1ZVJlZjxJREJPYmplY3RTdG9yZT4gSURCT2JqZWN0U3RvcmU6
OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJPYmplY3RT
dG9yZUluZm8mIGluZm8sIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKK3sKKyAgICBhdXRv
IHJlc3VsdCA9IG1ha2VVbmlxdWVSZWY8SURCT2JqZWN0U3RvcmU+KGNvbnRleHQsIGluZm8sIHRy
YW5zYWN0aW9uKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKIElEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8sIElEQlRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
ICAgICAsIG1faW5mbyhpbmZvKQpAQCAtNjIsOCArNjksNiBAQCBJREJPYmplY3RTdG9yZTo6SURC
T2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCT2Jq
ZWN0UwogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKIHsKICAgICBBU1NFUlQoY2Fu
Q3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShtX3RyYW5zYWN0aW9uLmRhdGFiYXNl
KCkub3JpZ2luVGhyZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJP
YmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKCkKQEAgLTUyMCwxMSArNTI1LDExIEBAIEV4Y2Vw
dGlvbk9yPFJlZjxJREJJbmRleD4+IElEQk9iamVjdFN0b3JlOjppbmRleChjb25zdCBTdHJpbmcm
IGluZGV4TmFtZSkKICAgICBpZiAoIWluZm8pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RGb3VuZEVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2luZGV4JyBvbiAnSURCT2JqZWN0U3Rv
cmUnOiBUaGUgc3BlY2lmaWVkIGluZGV4IHdhcyBub3QgZm91bmQuIl9zIH07CiAKLSAgICBhdXRv
IGluZGV4ID0gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
KmluZm8sICp0aGlzKTsKKyAgICBhdXRvIGluZGV4ID0gSURCSW5kZXg6OmNyZWF0ZSgqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOwogCi0gICAgUmVmPElEQkluZGV4PiBy
ZWZlcmVuY2VkSW5kZXggeyAqaW5kZXggfTsKKyAgICBSZWY8SURCSW5kZXg+IHJlZmVyZW5jZWRJ
bmRleCB7IGluZGV4IH07CiAKLSAgICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChpbmRleE5hbWUs
IFdURk1vdmUoaW5kZXgpKTsKKyAgICBtX3JlZmVyZW5jZWRJbmRleGVzLnNldChpbmRleE5hbWUs
IGluZGV4Lm1vdmVUb1VuaXF1ZVB0cigpKTsKIAogICAgIHJldHVybiByZWZlcmVuY2VkSW5kZXg7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuaAppbmRleCAzNmFiMzg0NTNiNmE1YjZmYTU2M2I4ZDc3NzY1Mzc0ZjY1NzA3NTczLi42Y2Ey
NmNmMzU2MjVkNGE4Zjc3MWYwY2Q0OGQzZjkwODU4N2Y5MDY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZUluZm8uaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ2FsbEZyYW1lOwpAQCAtNTgsOCArNTksOSBAQCBl
bnVtIGNsYXNzIE9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSA6IHVpbnQ4X3Q7CiAKIGNsYXNzIElE
Qk9iamVjdFN0b3JlIGZpbmFsIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChJREJPYmplY3RTdG9yZSk7CisgICAgZnJpZW5kIFVuaXF1ZVJlZjxJ
REJPYmplY3RTdG9yZT4gV1RGOjptYWtlVW5pcXVlUmVmV2l0aG91dEZhc3RNYWxsb2NDaGVjazxJ
REJPYmplY3RTdG9yZT4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9iamVjdFN0
b3JlSW5mbyYsIElEQlRyYW5zYWN0aW9uJik7CiBwdWJsaWM6Ci0gICAgSURCT2JqZWN0U3RvcmUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIElEQlRy
YW5zYWN0aW9uJik7CisgICAgc3RhdGljIFVuaXF1ZVJlZjxJREJPYmplY3RTdG9yZT4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBJREJU
cmFuc2FjdGlvbiYpOwogICAgIH5JREJPYmplY3RTdG9yZSgpOwogCiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3Q7CkBAIC0xMTMsNiArMTE1LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVu
YW1lUmVmZXJlbmNlZEluZGV4KElEQkluZGV4JiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKTsKIAog
cHJpdmF0ZToKKyAgICBJREJPYmplY3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgSURCVHJhbnNhY3Rpb24mKTsKKwogICAgIGVudW0gY2xh
c3MgSW5saW5lS2V5Q2hlY2sgeyBQZXJmb3JtLCBEb05vdFBlcmZvcm0gfTsKICAgICBFeGNlcHRp
b25PcjxSZWY8SURCUmVxdWVzdD4+IHB1dE9yQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6
OkpTVmFsdWUsIFJlZlB0cjxJREJLZXk+LCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRl
TW9kZSwgSW5saW5lS2V5Q2hlY2ssIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgPSBu
dWxscHRyKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGRvQ291bnQoY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDIzODY0NDA4ZTAyZmE3YzU3OWNkOWY1
MDFkMzcyZTA3OTM0ODc1ZTUuLjBlNGQ4MDk4NTdhNGRhZWIwMzcwNDgwNDJhZDRjNmVjNjhjNjVm
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5E
QlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9w
ZW5EQlJlcXVlc3QuY3BwCkBAIC00NiwxMiArNDYsMTYgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKElEQk9wZW5EQlJlcXVlc3QpOwogCiBSZWY8SURCT3BlbkRCUmVxdWVzdD4gSURCT3Bl
bkRCUmVxdWVzdDo6Y3JlYXRlRGVsZXRlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBj
b25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllcikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Q
cm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCAwLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpEZWxl
dGUpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgSURCT3BlbkRCUmVxdWVzdChj
b250ZXh0LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRpZmllciwgMCwgSW5kZXhlZERC
OjpSZXF1ZXN0VHlwZTo6RGVsZXRlKSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsK
KyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBSZWY8SURCT3BlbkRCUmVxdWVzdD4gSURCT3BlbkRC
UmVxdWVzdDo6Y3JlYXRlT3BlblJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3Qg
SURCRGF0YWJhc2VJZGVudGlmaWVyJiBkYXRhYmFzZUlkZW50aWZpZXIsIHVpbnQ2NF90IHZlcnNp
b24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0
LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRpZmllciwgdmVyc2lvbiwgSW5kZXhlZERC
OjpSZXF1ZXN0VHlwZTo6T3BlbikpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBJ
REJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgZGF0YWJhc2VJZGVudGlm
aWVyLCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RUeXBlOjpPcGVuKSk7CisgICAgcmVzdWx0
LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogICAgIAogSURCT3Bl
bkRCUmVxdWVzdDo6SURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25z
dCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllciwgdWludDY0X3QgdmVy
c2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggZTJlMTJmY2ZiMzg2
ZDBkYzgyYjM3ZmM0NWIxZjQ1YzcxMzcxYzMxMy4uNGUwNjhiN2I5ZjQ2M2UxOGFkMjk5ZTM0YTk1
OWVkZTMxYzZhZjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHAKQEAgLTU3LDI3ICs1NywzNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoSURCUmVxdWVzdCk7CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0
b3JlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9yZSwgdHJhbnNhY3Rpb24pKTsKKyAg
ICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2JqZWN0
U3RvcmUsIHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7Cisg
ICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ3Vyc29yJiBjdXJzb3IsIElE
QlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJ
REJSZXF1ZXN0KGNvbnRleHQsIGN1cnNvciwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVl
c3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgY3Vyc29yLCB0cmFuc2FjdGlv
bikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0
OwogfQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwgSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwg
aW5kZXgsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBJ
REJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1
c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8SURCUmVxdWVz
dD4gSURCUmVxdWVzdDo6Y3JlYXRlT2JqZWN0U3RvcmVHZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJbmRleGVkREI6Ok9iamVj
dFN0b3JlUmVjb3JkVHlwZSB0eXBlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9yZSwg
dHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElE
QlJlcXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHR5cGUsIHRyYW5zYWN0aW9uKSk7CisgICAg
cmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJl
ZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIEluZGV4ZWREQjo6SW5kZXhSZWNvcmRU
eXBlIHJlcXVlc3RlZFJlY29yZFR5cGUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCByZXF1
ZXN0ZWRSZWNvcmRUeXBlLCB0cmFuc2FjdGlvbikpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0
UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBpbmRleCwgcmVxdWVzdGVkUmVjb3JkVHlwZSwg
dHJhbnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gcmVxdWVzdDsKIH0KIAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlv
blByb3h5LCBJbmRleGVkREI6OlJlcXVlc3RUeXBlIHJlcXVlc3RUeXBlKQpAQCAtODcsNyArOTcs
NiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvbgogICAgICwgbV9jb25uZWN0aW9uUHJveHkoY29u
bmVjdGlvblByb3h5KQogICAgICwgbV9yZXF1ZXN0VHlwZShyZXF1ZXN0VHlwZSkKIHsKLSAgICBz
dXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIElEQlRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKQEAgLTk4LDcgKzEwNyw2IEBAIElEQlJlcXVlc3Q6OklE
QlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUm
IG9iamVjdFN0CiAgICAgLCBtX3NvdXJjZSgmb2JqZWN0U3RvcmUpCiAgICAgLCBtX2Nvbm5lY3Rp
b25Qcm94eSh0cmFuc2FjdGlvbi5kYXRhYmFzZSgpLmNvbm5lY3Rpb25Qcm94eSgpKQogewotICAg
IHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1cnNvciYgY3Vyc29yLCBJREJUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24pCkBAIC0xMDksOCArMTE3LDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDdXJzb3ImIGN1cnNvciwgSURC
VHIKICAgICAsIG1fcGVuZGluZ0N1cnNvcigmY3Vyc29yKQogICAgICwgbV9jb25uZWN0aW9uUHJv
eHkodHJhbnNhY3Rpb24uZGF0YWJhc2UoKS5jb25uZWN0aW9uUHJveHkoKSkKIHsKLSAgICBzdXNw
ZW5kSWZOZWVkZWQoKTsKLQogICAgIFdURjo6c3dpdGNoT24oY3Vyc29yLnNvdXJjZSgpLAogICAg
ICAgICBbdGhpc10gKGNvbnN0IGF1dG8mIHZhbHVlKSB7IHRoaXMtPm1fc291cmNlID0gSURCUmVx
dWVzdDo6U291cmNlIHsgdmFsdWUgfTsgfQogICAgICk7CkBAIC0xMjYsNyArMTMyLDYgQEAgSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJ
bmRleCYgaW5kZXgsIElEQlRyYW4KICAgICAsIG1fc291cmNlKCZpbmRleCkKICAgICAsIG1fY29u
bmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCiB7
Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3Jl
LCBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZSB0eXBlLCBJREJUcmFuc2FjdGlvbiYg
dHJhbnNhY3Rpb24pCkBAIC0xMzgsNyArMTQzLDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3QK
ICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlv
blByb3h5KCkpCiAgICAgLCBtX3JlcXVlc3RlZE9iamVjdFN0b3JlUmVjb3JkVHlwZSh0eXBlKQog
ewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwgSW5kZXhlZERC
OjpJbmRleFJlY29yZFR5cGUgcmVxdWVzdGVkUmVjb3JkVHlwZSwgSURCVHJhbnNhY3Rpb24mIHRy
YW5zYWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwCmluZGV4IGE0YWFjNWE2NmE0YjVmNDRiM2MyN2Y3MTlhYTdiYzk0YTYz
ZmFiOGQuLjNlZTgyNTI0MjNhMzRmNGMwMzVlZDk0NmI1MDQwZjVlY2JkMjkwOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAK
QEAgLTY1LDEyICs2NSwxNiBAQCBzdGQ6OmF0b21pYzx1bnNpZ25lZD4gSURCVHJhbnNhY3Rpb246
Om51bWJlck9mSURCVHJhbnNhY3Rpb25zIHsgMCB9OwogCiBSZWY8SURCVHJhbnNhY3Rpb24+IElE
QlRyYW5zYWN0aW9uOjpjcmVhdGUoSURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJUcmFu
c2FjdGlvbkluZm8mIGluZm8pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCVHJhbnNh
Y3Rpb24oZGF0YWJhc2UsIGluZm8sIG51bGxwdHIpKTsKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0g
YWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwgaW5mbywgbnVsbHB0cikpOwor
ICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gdHJhbnNhY3Rp
b247CiB9CiAKIFJlZjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZShJREJE
YXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbywgSURCT3Bl
bkRCUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJUcmFu
c2FjdGlvbihkYXRhYmFzZSwgaW5mbywgJnJlcXVlc3QpKTsKKyAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwgaW5mbywgJnJlcXVlc3Qp
KTsKKyAgICB0cmFuc2FjdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHRyYW5z
YWN0aW9uOwogfQogCiBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oSURCRGF0YWJhc2Um
IGRhdGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8sIElEQk9wZW5EQlJlcXVl
c3QqIHJlcXVlc3QpCkBAIC0xMDIsOCArMTA2LDYgQEAgSURCVHJhbnNhY3Rpb246OklEQlRyYW5z
YWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJgog
CiAgICAgICAgIGVzdGFibGlzaE9uU2VydmVyKCk7CiAgICAgfQotCi0gICAgc3VzcGVuZElmTmVl
ZGVkKCk7CiB9CiAKIElEQlRyYW5zYWN0aW9uOjp+SURCVHJhbnNhY3Rpb24oKQpAQCAtMTc1LDEx
ICsxNzcsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVjdFN0b3JlPj4gSURCVHJhbnNhY3Rp
b246Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWMKICAgICBpZiAoIWluZm8gfHwgKCFm
b3VuZCAmJiAhaXNWZXJzaW9uQ2hhbmdlKCkpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm90Rm91bmRFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdvYmplY3RTdG9yZScgb24gJ0lEQlRy
YW5zYWN0aW9uJzogVGhlIHNwZWNpZmllZCBvYmplY3Qgc3RvcmUgd2FzIG5vdCBmb3VuZC4iX3Mg
fTsKIAotICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBtYWtlVW5pcXVlPElEQk9iamVjdFN0b3JlPigq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOwotICAgIGF1dG8qIHJhd09i
amVjdFN0b3JlID0gb2JqZWN0U3RvcmUuZ2V0KCk7Ci0gICAgbV9yZWZlcmVuY2VkT2JqZWN0U3Rv
cmVzLnNldChvYmplY3RTdG9yZU5hbWUsIFdURk1vdmUob2JqZWN0U3RvcmUpKTsKKyAgICBhdXRv
IG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCAqaW5mbywgKnRoaXMpOworICAgIFJlZiBvYmplY3RTdG9yZVJlZiB7IG9iamVjdFN0
b3JlLmdldCgpIH07CisgICAgbV9yZWZlcmVuY2VkT2JqZWN0U3RvcmVzLnNldChvYmplY3RTdG9y
ZU5hbWUsIG9iamVjdFN0b3JlLm1vdmVUb1VuaXF1ZVB0cigpKTsKIAotICAgIHJldHVybiBSZWY8
SURCT2JqZWN0U3RvcmU+KCpyYXdPYmplY3RTdG9yZSk7CisgICAgcmV0dXJuIG9iamVjdFN0b3Jl
UmVmOwogfQogCiAKQEAgLTY1OSw5ICs2NjEsOSBAQCBSZWY8SURCT2JqZWN0U3RvcmU+IElEQlRy
YW5zYWN0aW9uOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJPYmplY3RTdG9yZUluZm8mCiAK
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZWZlcmVuY2VkT2JqZWN0U3RvcmVMb2NrIH07CiAKLSAg
ICBhdXRvIG9iamVjdFN0b3JlID0gbWFrZVVuaXF1ZTxJREJPYmplY3RTdG9yZT4oKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgaW5mbywgKnRoaXMpOwotICAgIGF1dG8qIHJhd09iamVjdFN0b3Jl
ID0gb2JqZWN0U3RvcmUuZ2V0KCk7Ci0gICAgbV9yZWZlcmVuY2VkT2JqZWN0U3RvcmVzLnNldChp
bmZvLm5hbWUoKSwgV1RGTW92ZShvYmplY3RTdG9yZSkpOworICAgIGF1dG8gb2JqZWN0U3RvcmUg
PSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8s
ICp0aGlzKTsKKyAgICBSZWYgb2JqZWN0U3RvcmVSZWYgeyBvYmplY3RTdG9yZS5nZXQoKSB9Owor
ICAgIG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jlcy5zZXQoaW5mby5uYW1lKCksIG9iamVjdFN0b3Jl
Lm1vdmVUb1VuaXF1ZVB0cigpKTsKIAogICAgIExPRyhJbmRleGVkREJPcGVyYXRpb25zLCAiSURC
IGNyZWF0ZSBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uOiAlcyIsIGluZm8uY29uZGVuc2VkTG9nZ2lu
Z1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHNjaGVkdWxlT3BlcmF0aW9uKElEQkNsaWVu
dDo6VHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsOjpjcmVhdGUoKnRoaXMsIFtwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfV0gKGNvbnN0IGF1dG8mIHJlc3VsdCkgewpAQCAtNjcwLDcgKzY3Miw3
IEBAIFJlZjxJREJPYmplY3RTdG9yZT4gSURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3Jl
KGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYKICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y3JlYXRl
T2JqZWN0U3RvcmVPblNlcnZlcihvcGVyYXRpb24sIGluZm8pOwogICAgIH0pLCBJc1dyaXRlT3Bl
cmF0aW9uOjpZZXMpOwogCi0gICAgcmV0dXJuICpyYXdPYmplY3RTdG9yZTsKKyAgICByZXR1cm4g
b2JqZWN0U3RvcmVSZWY7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0
b3JlT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBj
b25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCkBAIC03NDcsNyArNzQ5LDggQEAgc3RkOjp1
bmlxdWVfcHRyPElEQkluZGV4PiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlSW5kZXgoSURCT2JqZWN0
U3RvcmUmIG9iamVjdFN0b3IKICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y3JlYXRlSW5kZXhPblNl
cnZlcihvcGVyYXRpb24sIGluZm8pOwogICAgIH0pLCBJc1dyaXRlT3BlcmF0aW9uOjpZZXMpOwog
Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SURCSW5kZXg+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIGluZm8sIG9iamVjdFN0b3JlKTsKKyAgICBhdXRvIGluZGV4ID0gSURCSW5kZXg6OmNyZWF0
ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbmZvLCBvYmplY3RTdG9yZSk7CisgICAgcmV0
dXJuIGluZGV4Lm1vdmVUb1VuaXF1ZVB0cigpOwogfQogCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpj
cmVhdGVJbmRleE9uU2VydmVyKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJh
dGlvbiwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447279</attachid>
            <date>2021-12-15 12:46:44 -0800</date>
            <delta_ts>2021-12-15 22:21:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233945-20211215214643.patch</filename>
            <type>text/plain</type>
            <size>20802</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI3OWEzYmRkYTJlMmM1
YWFiYWRjNDQ2ODY5ZjY1OWUwNTA4OWJkZi4uMmU3NTU2MzhkN2FmODg4NGQzOWZhNjM4NTQyNTUx
YTg1ZDY2NDI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RlcCAy
IHdoZXJlIHdlIGNvbnZlcnQgdGhlIElEQiBjb2RlIHRvIHVzZSBzdXNwZW5kSWZOZWVkZWQoKSBv
bmx5IHdpdGhpbiBjcmVhdGUoKSBtZXRob2RzLiBUaGlzIHJlcXVpcmVkCisgICAgICAgIGFkZGlu
ZyBzdWNoIG1ldGhvZHMgYW5kIG1ha2luZyB0aGUgY29uc3RydWN0b3IgcHJpdmF0ZSBmb3IgSURC
SW5kZXggYW5kIElEQk9iamVjdFN0b3JlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6
OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJS
ZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6CisKIDIwMjEtMTIt
MTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3Vy
ZSB0byBzdGFydCBhIHJlYWx0aW1lIG91dGdvaW5nIHNvdXJjZSBpbiBjYXNlIGl0IGlzIHRha2Vu
IHRvIGFub3RoZXIgc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5MTEx
N2JhODM2Yy4uNjUyYjI3NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAt
NDgsNyArNDgsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2UpOwog
CiBSZWY8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Q
cm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERh
dGEpKTsKKyAgICBhdXRvIGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250
ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3VzcGVu
ZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6SURC
RGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVz
dWx0RGF0YSkKQEAgLTU5LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAgICAs
IG1fZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRh
dGFiYXNlOjpJREJEYXRhYmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lvbiAl
IiBQUkl1NjQgIiBjb25uZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgpLnV0
ZjgoKS5kYXRhKCksIG1faW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9uUHJv
eHktPnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThmN2Fh
Nzc0ZjJmZjE1YzA5YTdlNDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAwM2Zh
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2LDcg
KzM2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0KTsKIAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Q
cm94eSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblBy
b3h5LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJv
eHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Qo
U2NyaXB0RXhlY3V0aQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAg
ICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJl
YWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAxNjdkMzgwNGVmOTBkMDcxNzcxOGUz
ZDE5ZGUwMjg3MWViYjllYmUwLi5jNjEwZDNkYjhjZTVmMWQ1ODBmNDAxN2Q5M2U3NWZhZTY0NDdk
MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3Bw
CkBAIC00Miw2ICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoSURCSW5kZXgpOwogCitVbmlxdWVSZWY8SURCSW5kZXg+IElEQkluZGV4
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCSW5kZXhJ
bmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCit7CisgICAgYXV0byByZXN1
bHQgPSBtYWtlVW5pcXVlUmVmPElEQkluZGV4Pihjb250ZXh0LCBpbmZvLCBvYmplY3RTdG9yZSk7
CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiBJREJJbmRleDo6SURCSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgSURCSW5kZXhJbmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCiAgICAg
OiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2luZm8oaW5mbykKQEAgLTQ5LDgg
KzU2LDYgQEAgSURCSW5kZXg6OklEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbywgSUQKICAgICAsIG1fb2JqZWN0U3RvcmUob2Jq
ZWN0U3RvcmUpCiB7CiAgICAgQVNTRVJUKGNhbkN1cnJlbnRUaHJlYWRBY2Nlc3NUaHJlYWRMb2Nh
bERhdGEobV9vYmplY3RTdG9yZS50cmFuc2FjdGlvbigpLmRhdGFiYXNlKCkub3JpZ2luVGhyZWFk
KCkpKTsKLQotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJJbmRleDo6fklEQkluZGV4
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4IDdm
OGI2ODE5OTFiM2Y1YzA3OTI1MjUxMDhlN2EwOWMxYTAyNjEyOWEuLjIyMzBkNzczMzg3ZGM4NmZh
ZGZlODg3MWI4NTQxMGEyNTEyNGNjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXguaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIklEQkluZGV4SW5m
by5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIENh
bGxGcmFtZTsKQEAgLTQyLDggKzQzLDkgQEAgc3RydWN0IElEQktleVJhbmdlRGF0YTsKIAogY2xh
c3MgSURCSW5kZXggZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKElEQkluZGV4KTsKKyAgICBmcmllbmQgVW5pcXVlUmVmPElEQkluZGV4
PiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPElEQkluZGV4PihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SURCSW5kZXhJbmZv
JiwgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmUmKTsKIHB1YmxpYzoKLSAgICBJREJJbmRleChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUm
KTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPElEQkluZGV4PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IElEQkluZGV4SW5mbyYsIElEQk9iamVjdFN0b3JlJik7CiAKICAgICB2
aXJ0dWFsIH5JREJJbmRleCgpOwogCkBAIC04NSw2ICs4Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lk
KiBvYmplY3RTdG9yZUFzT3BhcXVlUm9vdCgpIHsgcmV0dXJuICZtX29iamVjdFN0b3JlOyB9CiAK
IHByaXZhdGU6CisgICAgSURCSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElE
QkluZGV4SW5mbyYsIElEQk9iamVjdFN0b3JlJik7CisKICAgICBFeGNlcHRpb25PcjxSZWY8SURC
UmVxdWVzdD4+IGRvQ291bnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgRXhjZXB0aW9u
T3I8UmVmPElEQlJlcXVlc3Q+PiBkb0dldChFeGNlcHRpb25PcjxJREJLZXlSYW5nZURhdGE+KTsK
ICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IGRvR2V0S2V5KEV4Y2VwdGlvbk9yPElE
QktleVJhbmdlRGF0YT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGExMDMwOTFlNTdlZTZiMWE4NjRhN2M4YjFjOGU0
OGFlMDNlMTBlMWMuLmRkY2JiNTA2NjE4NzExZjM1ZDAzODBkNjA2MzdkMWQ0ODE5YWMzZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHAKQEAgLTU1LDYgKzU1LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChJREJPYmplY3RTdG9yZSk7CiAKK1VuaXF1ZVJlZjxJREJPYmpl
Y3RTdG9yZT4gSURCT2JqZWN0U3RvcmU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8sIElEQlRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWVSZWY8SURCT2JqZWN0
U3RvcmU+KGNvbnRleHQsIGluZm8sIHRyYW5zYWN0aW9uKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIElEQk9iamVjdFN0b3JlOjpJREJP
YmplY3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJPYmpl
Y3RTdG9yZUluZm8mIGluZm8sIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICA6IEFj
dGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1faW5mbyhpbmZvKQpAQCAtNjIsOCArNjks
NiBAQCBJREJPYmplY3RTdG9yZTo6SURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgY29uc3QgSURCT2JqZWN0UwogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2Fj
dGlvbikKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0
YShtX3RyYW5zYWN0aW9uLmRhdGFiYXNlKCkub3JpZ2luVGhyZWFkKCkpKTsKLQotICAgIHN1c3Bl
bmRJZk5lZWRlZCgpOwogfQogCiBJREJPYmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKCkKQEAg
LTUyMCwxMSArNTI1LDExIEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJJbmRleD4+IElEQk9iamVjdFN0
b3JlOjppbmRleChjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkKICAgICBpZiAoIWluZm8pCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUg
J2luZGV4JyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgc3BlY2lmaWVkIGluZGV4IHdhcyBub3Qg
Zm91bmQuIl9zIH07CiAKLSAgICBhdXRvIGluZGV4ID0gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKmluZm8sICp0aGlzKTsKKyAgICBhdXRvIGluZGV4ID0g
SURCSW5kZXg6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMp
OwogCi0gICAgUmVmPElEQkluZGV4PiByZWZlcmVuY2VkSW5kZXggeyAqaW5kZXggfTsKKyAgICBS
ZWYgcmVmZXJlbmNlZEluZGV4IHsgaW5kZXguZ2V0KCkgfTsKIAotICAgIG1fcmVmZXJlbmNlZElu
ZGV4ZXMuc2V0KGluZGV4TmFtZSwgV1RGTW92ZShpbmRleCkpOworICAgIG1fcmVmZXJlbmNlZElu
ZGV4ZXMuc2V0KGluZGV4TmFtZSwgaW5kZXgubW92ZVRvVW5pcXVlUHRyKCkpOwogCiAgICAgcmV0
dXJuIHJlZmVyZW5jZWRJbmRleDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDM2YWIzODQ1M2I2YTViNmZhNTYzYjhkNzc3
NjUzNzRmNjU3MDc1NzMuLjdlNjE1OGYwZTQ5ZjMxNzliNTNmY2ZjNmI5MWNlMmJmMWE1ZTZlNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlSW5mby5oIgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1
ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDYWxsRnJhbWU7
CkBAIC01OCw4ICs1OSw5IEBAIGVudW0gY2xhc3MgT2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIDog
dWludDhfdDsKIAogY2xhc3MgSURCT2JqZWN0U3RvcmUgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElEQk9iamVjdFN0b3JlKTsKKyAg
ICBmcmllbmQgVW5pcXVlUmVmPElEQk9iamVjdFN0b3JlPiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRo
b3V0RmFzdE1hbGxvY0NoZWNrPElEQk9iamVjdFN0b3JlPihXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbmZvJiwgV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb24mKTsKIHB1YmxpYzoKLSAgICBJREJPYmplY3RTdG9yZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgSURCVHJhbnNhY3Rpb24m
KTsKKyAgICBzdGF0aWMgVW5pcXVlUmVmPElEQk9iamVjdFN0b3JlPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIElEQlRyYW5zYWN0aW9u
Jik7CiAgICAgfklEQk9iamVjdFN0b3JlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdDsKQEAgLTExMyw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW5hbWVSZWZlcmVu
Y2VkSW5kZXgoSURCSW5kZXgmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogCiBwcml2YXRlOgor
ICAgIElEQk9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJPYmpl
Y3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOworCiAgICAgZW51bSBjbGFzcyBJbmxpbmVL
ZXlDaGVjayB7IFBlcmZvcm0sIERvTm90UGVyZm9ybSB9OwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJ
REJSZXF1ZXN0Pj4gcHV0T3JBZGQoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSwg
UmVmUHRyPElEQktleT4sIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlLCBJbmxp
bmVLZXlDaGVjaywgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiA9IG51bGxwdHIpOwog
ICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZG9Db3VudChjb25zdCBJREJLZXlSYW5n
ZURhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T3BlbkRCUmVxdWVzdC5jcHAKaW5kZXggMjM4NjQ0MDhlMDJmYTdjNTc5Y2Q5ZjUwMWQzNzJlMDc5
MzQ4NzVlNS4uMGU0ZDgwOTg1N2E0ZGFlYjAzNzA0ODA0MmFkNGM2ZWM2OGM2NWY0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVz
dC5jcHAKQEAgLTQ2LDEyICs0NiwxNiBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURC
T3BlbkRCUmVxdWVzdCk7CiAKIFJlZjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0
OjpjcmVhdGVEZWxldGVSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IElEQkRh
dGFiYXNlSWRlbnRpZmllciYgZGF0YWJhc2VJZGVudGlmaWVyKQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQk9wZW5EQlJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5LCBkYXRh
YmFzZUlkZW50aWZpZXIsIDAsIEluZGV4ZWREQjo6UmVxdWVzdFR5cGU6OkRlbGV0ZSkpOworICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIGNv
bm5lY3Rpb25Qcm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCAwLCBJbmRleGVkREI6OlJlcXVlc3RU
eXBlOjpEZWxldGUpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKIFJlZjxJREJPcGVuREJSZXF1ZXN0PiBJREJPcGVuREJSZXF1ZXN0Ojpj
cmVhdGVPcGVuUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBJREJEYXRhYmFz
ZUlkZW50aWZpZXImIGRhdGFiYXNlSWRlbnRpZmllciwgdWludDY0X3QgdmVyc2lvbikKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rp
b25Qcm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RU
eXBlOjpPcGVuKSk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IElEQk9wZW5EQlJl
cXVlc3QoY29udGV4dCwgY29ubmVjdGlvblByb3h5LCBkYXRhYmFzZUlkZW50aWZpZXIsIHZlcnNp
b24sIEluZGV4ZWREQjo6UmVxdWVzdFR5cGU6Ok9wZW4pKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAgICAgCiBJREJPcGVuREJSZXF1ZXN0
OjpJREJPcGVuREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIGNvbnN0IElEQkRhdGFi
YXNlSWRlbnRpZmllciYgZGF0YWJhc2VJZGVudGlmaWVyLCB1aW50NjRfdCB2ZXJzaW9uLCBJbmRl
eGVkREI6OlJlcXVlc3RUeXBlIHJlcXVlc3RUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAppbmRleCBlMmUxMmZjZmIzODZkMGRjODJiMzdm
YzQ1YjFmNDVjNzEzNzFjMzEzLi40ZTA2OGI3YjlmNDYzZTE4YWQyOTllMzRhOTU5ZWRlMzFjNmFm
M2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcApAQCAtNTcsMjcgKzU3LDM3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJREJS
ZXF1ZXN0KTsKIAogUmVmPElEQlJlcXVlc3Q+IElEQlJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIElEQlRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJS
ZXF1ZXN0KGNvbnRleHQsIG9iamVjdFN0b3JlLCB0cmFuc2FjdGlvbikpOworICAgIGF1dG8gcmVx
dWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9yZSwgdHJh
bnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4g
cmVxdWVzdDsKIH0KIAogUmVmPElEQlJlcXVlc3Q+IElEQlJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDdXJzb3ImIGN1cnNvciwgSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3Qo
Y29udGV4dCwgY3Vyc29yLCB0cmFuc2FjdGlvbikpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0
UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBjdXJzb3IsIHRyYW5zYWN0aW9uKSk7CisgICAg
cmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJl
ZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgSURCSW5kZXgmIGluZGV4LCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBpbmRleCwgdHJh
bnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3Qo
Y29udGV4dCwgaW5kZXgsIHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1
ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVSZWNv
cmRUeXBlIHR5cGUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIG9iamVjdFN0b3JlLCB0eXBlLCB0cmFu
c2FjdGlvbikpOworICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChj
b250ZXh0LCBvYmplY3RTdG9yZSwgdHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5z
dXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUmVmPElEQlJlcXVl
c3Q+IElEQlJlcXVlc3Q6OmNyZWF0ZUluZGV4R2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIElEQkluZGV4JiBpbmRleCwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgcmVxdWVz
dGVkUmVjb3JkVHlwZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgaW5kZXgsIHJlcXVlc3RlZFJlY29y
ZFR5cGUsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1ZXN0ID0gYWRvcHRSZWYoKm5ldyBJ
REJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCByZXF1ZXN0ZWRSZWNvcmRUeXBlLCB0cmFuc2FjdGlv
bikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0
OwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJveHksIElu
ZGV4ZWREQjo6UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUpCkBAIC04Nyw3ICs5Nyw2IEBAIElEQlJl
cXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xp
ZW50OjpJREJDb25uZWN0aW9uCiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eShjb25uZWN0aW9uUHJv
eHkpCiAgICAgLCBtX3JlcXVlc3RUeXBlKHJlcXVlc3RUeXBlKQogewotICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQogCiBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uKQpAQCAtOTgsNyArMTA3LDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3QK
ICAgICAsIG1fc291cmNlKCZvYmplY3RTdG9yZSkKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRy
YW5zYWN0aW9uLmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCiB7Ci0gICAgc3VzcGVuZElm
TmVlZGVkKCk7CiB9CiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgSURCQ3Vyc29yJiBjdXJzb3IsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbikKQEAgLTEwOSw4ICsxMTcsNiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1cnNvciYgY3Vyc29yLCBJREJUcgogICAgICwg
bV9wZW5kaW5nQ3Vyc29yKCZjdXJzb3IpCiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eSh0cmFuc2Fj
dGlvbi5kYXRhYmFzZSgpLmNvbm5lY3Rpb25Qcm94eSgpKQogewotICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwotCiAgICAgV1RGOjpzd2l0Y2hPbihjdXJzb3Iuc291cmNlKCksCiAgICAgICAgIFt0aGlz
XSAoY29uc3QgYXV0byYgdmFsdWUpIHsgdGhpcy0+bV9zb3VyY2UgPSBJREJSZXF1ZXN0OjpTb3Vy
Y2UgeyB2YWx1ZSB9OyB9CiAgICAgKTsKQEAgLTEyNiw3ICsxMzIsNiBAQCBJREJSZXF1ZXN0OjpJ
REJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4JiBpbmRl
eCwgSURCVHJhbgogICAgICwgbV9zb3VyY2UoJmluZGV4KQogICAgICwgbV9jb25uZWN0aW9uUHJv
eHkodHJhbnNhY3Rpb24uZGF0YWJhc2UoKS5jb25uZWN0aW9uUHJveHkoKSkKIHsKLSAgICBzdXNw
ZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIEluZGV4ZWRE
Qjo6T2JqZWN0U3RvcmVSZWNvcmRUeXBlIHR5cGUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
bikKQEAgLTEzOCw3ICsxNDMsNiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdAogICAgICwgbV9j
b25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJhc2UoKS5jb25uZWN0aW9uUHJveHkoKSkK
ICAgICAsIG1fcmVxdWVzdGVkT2JqZWN0U3RvcmVSZWNvcmRUeXBlKHR5cGUpCiB7Ci0gICAgc3Vz
cGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgSURCSW5kZXgmIGluZGV4LCBJbmRleGVkREI6OkluZGV4UmVj
b3JkVHlwZSByZXF1ZXN0ZWRSZWNvcmRUeXBlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHAKaW5kZXggYTRhYWM1YTY2YTRiNWY0NGIzYzI3ZjcxOWFhN2JjOTRhNjNmYWI4ZC4uNjdk
M2JhNGM3OTgzMTExMjc5MzFlMjk1Mjg0ODRlNjZlY2QzNGNmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtNjUsMTIg
KzY1LDE2IEBAIHN0ZDo6YXRvbWljPHVuc2lnbmVkPiBJREJUcmFuc2FjdGlvbjo6bnVtYmVyT2ZJ
REJUcmFuc2FjdGlvbnMgeyAwIH07CiAKIFJlZjxJREJUcmFuc2FjdGlvbj4gSURCVHJhbnNhY3Rp
b246OmNyZWF0ZShJREJEYXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5m
byYgaW5mbykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRh
YmFzZSwgaW5mbywgbnVsbHB0cikpOworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBhZG9wdFJlZigq
bmV3IElEQlRyYW5zYWN0aW9uKGRhdGFiYXNlLCBpbmZvLCBudWxscHRyKSk7CisgICAgdHJhbnNh
Y3Rpb24tPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiB0cmFuc2FjdGlvbjsKIH0KIAog
UmVmPElEQlRyYW5zYWN0aW9uPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlKElEQkRhdGFiYXNlJiBk
YXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvLCBJREJPcGVuREJSZXF1ZXN0
JiByZXF1ZXN0KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQlRyYW5zYWN0aW9uKGRh
dGFiYXNlLCBpbmZvLCAmcmVxdWVzdCkpOworICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBhZG9wdFJl
ZigqbmV3IElEQlRyYW5zYWN0aW9uKGRhdGFiYXNlLCBpbmZvLCAmcmVxdWVzdCkpOworICAgIHRy
YW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gdHJhbnNhY3Rpb247CiB9
CiAKIElEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2FjdGlvbihJREJEYXRhYmFzZSYgZGF0YWJhc2Us
IGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYgaW5mbywgSURCT3BlbkRCUmVxdWVzdCogcmVxdWVz
dCkKQEAgLTEwMiw4ICsxMDYsNiBAQCBJREJUcmFuc2FjdGlvbjo6SURCVHJhbnNhY3Rpb24oSURC
RGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mCiAKICAgICAgICAg
ZXN0YWJsaXNoT25TZXJ2ZXIoKTsKICAgICB9Ci0KLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0K
IAogSURCVHJhbnNhY3Rpb246On5JREJUcmFuc2FjdGlvbigpCkBAIC0xNzUsMTEgKzE3NywxMSBA
QCBFeGNlcHRpb25PcjxSZWY8SURCT2JqZWN0U3RvcmU+PiBJREJUcmFuc2FjdGlvbjo6b2JqZWN0
U3RvcmUoY29uc3QgU3RyaW5nJiBvYmplYwogICAgIGlmICghaW5mbyB8fCAoIWZvdW5kICYmICFp
c1ZlcnNpb25DaGFuZ2UoKSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVy
cm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ29iamVjdFN0b3JlJyBvbiAnSURCVHJhbnNhY3Rpb24n
OiBUaGUgc3BlY2lmaWVkIG9iamVjdCBzdG9yZSB3YXMgbm90IGZvdW5kLiJfcyB9OwogCi0gICAg
YXV0byBvYmplY3RTdG9yZSA9IG1ha2VVbmlxdWU8SURCT2JqZWN0U3RvcmU+KCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksICppbmZvLCAqdGhpcyk7Ci0gICAgYXV0byogcmF3T2JqZWN0U3RvcmUg
PSBvYmplY3RTdG9yZS5nZXQoKTsKLSAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KG9i
amVjdFN0b3JlTmFtZSwgV1RGTW92ZShvYmplY3RTdG9yZSkpOworICAgIGF1dG8gb2JqZWN0U3Rv
cmUgPSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICpp
bmZvLCAqdGhpcyk7CisgICAgUmVmIG9iamVjdFN0b3JlUmVmIHsgb2JqZWN0U3RvcmUuZ2V0KCkg
fTsKKyAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KG9iamVjdFN0b3JlTmFtZSwgb2Jq
ZWN0U3RvcmUubW92ZVRvVW5pcXVlUHRyKCkpOwogCi0gICAgcmV0dXJuIFJlZjxJREJPYmplY3RT
dG9yZT4oKnJhd09iamVjdFN0b3JlKTsKKyAgICByZXR1cm4gb2JqZWN0U3RvcmVSZWY7CiB9CiAK
IApAQCAtNjU5LDkgKzY2MSw5IEBAIFJlZjxJREJPYmplY3RTdG9yZT4gSURCVHJhbnNhY3Rpb246
OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYKIAogICAgIExvY2tl
ciBsb2NrZXIgeyBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZUxvY2sgfTsKIAotICAgIGF1dG8gb2Jq
ZWN0U3RvcmUgPSBtYWtlVW5pcXVlPElEQk9iamVjdFN0b3JlPigqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBpbmZvLCAqdGhpcyk7Ci0gICAgYXV0byogcmF3T2JqZWN0U3RvcmUgPSBvYmplY3RT
dG9yZS5nZXQoKTsKLSAgICBtX3JlZmVyZW5jZWRPYmplY3RTdG9yZXMuc2V0KGluZm8ubmFtZSgp
LCBXVEZNb3ZlKG9iamVjdFN0b3JlKSk7CisgICAgYXV0byBvYmplY3RTdG9yZSA9IElEQk9iamVj
dFN0b3JlOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5mbywgKnRoaXMpOwor
ICAgIFJlZiBvYmplY3RTdG9yZVJlZiB7IG9iamVjdFN0b3JlLmdldCgpIH07CisgICAgbV9yZWZl
cmVuY2VkT2JqZWN0U3RvcmVzLnNldChpbmZvLm5hbWUoKSwgb2JqZWN0U3RvcmUubW92ZVRvVW5p
cXVlUHRyKCkpOwogCiAgICAgTE9HKEluZGV4ZWREQk9wZXJhdGlvbnMsICJJREIgY3JlYXRlIG9i
amVjdCBzdG9yZSBvcGVyYXRpb246ICVzIiwgaW5mby5jb25kZW5zZWRMb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgc2NoZWR1bGVPcGVyYXRpb24oSURCQ2xpZW50OjpUcmFuc2Fj
dGlvbk9wZXJhdGlvbkltcGw6OmNyZWF0ZSgqdGhpcywgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9XSAoY29uc3QgYXV0byYgcmVzdWx0KSB7CkBAIC02NzAsNyArNjcyLDcgQEAgUmVmPElE
Qk9iamVjdFN0b3JlPiBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURC
T2JqZWN0U3RvcmVJbmZvJgogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jcmVhdGVPYmplY3RTdG9y
ZU9uU2VydmVyKG9wZXJhdGlvbiwgaW5mbyk7CiAgICAgfSksIElzV3JpdGVPcGVyYXRpb246Olll
cyk7CiAKLSAgICByZXR1cm4gKnJhd09iamVjdFN0b3JlOworICAgIHJldHVybiBvYmplY3RTdG9y
ZVJlZjsKIH0KIAogdm9pZCBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3RvcmVPblNlcnZl
cihJREJDbGllbnQ6OlRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQk9i
amVjdFN0b3JlSW5mbyYgaW5mbykKQEAgLTc0Nyw3ICs3NDksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
SURCSW5kZXg+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleChJREJPYmplY3RTdG9yZSYgb2Jq
ZWN0U3RvcgogICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jcmVhdGVJbmRleE9uU2VydmVyKG9wZXJh
dGlvbiwgaW5mbyk7CiAgICAgfSksIElzV3JpdGVPcGVyYXRpb246Olllcyk7CiAKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5mbywg
b2JqZWN0U3RvcmUpOworICAgIHJldHVybiBJREJJbmRleDo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGluZm8sIG9iamVjdFN0b3JlKS5tb3ZlVG9VbmlxdWVQdHIoKTsKIH0KIAog
dm9pZCBJREJUcmFuc2FjdGlvbjo6Y3JlYXRlSW5kZXhPblNlcnZlcihJREJDbGllbnQ6OlRyYW5z
YWN0aW9uT3BlcmF0aW9uJiBvcGVyYXRpb24sIGNvbnN0IElEQkluZGV4SW5mbyYgaW5mbykK
</data>
<flag name="commit-queue"
          id="472882"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447327</attachid>
            <date>2021-12-15 22:21:15 -0800</date>
            <delta_ts>2021-12-16 05:17:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233945-20211216072114.patch</filename>
            <type>text/plain</type>
            <size>20434</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzI3OWEzYmRkYTJlMmM1
YWFiYWRjNDQ2ODY5ZjY1OWUwNTA4OWJkZi4uZmIwODVlMjQ5MTJjZGExMDNiZDAxOWQ0Njc0YzUx
ZTUxOWFkZjkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTE2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgU3RlcCAy
IHdoZXJlIHdlIGNvbnZlcnQgdGhlIElEQiBjb2RlIHRvIHVzZSBzdXNwZW5kSWZOZWVkZWQoKSBv
bmx5IHdpdGhpbiBjcmVhdGUoKSBtZXRob2RzLiBUaGlzIHJlcXVpcmVkCisgICAgICAgIGFkZGlu
ZyBzdWNoIG1ldGhvZHMgYW5kIG1ha2luZyB0aGUgY29uc3RydWN0b3IgcHJpdmF0ZSBmb3IgSURC
SW5kZXggYW5kIElEQk9iamVjdFN0b3JlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6SURCRGF0YWJhc2UpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Q6
OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpJREJJbmRleCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJS
ZXF1ZXN0OjpjcmVhdGVEZWxldGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9wZW5E
QlJlcXVlc3Q6OmNyZWF0ZU9wZW5SZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVPYmplY3RTdG9yZUdldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpjcmVhdGVJbmRleEdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpJREJUcmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6b2JqZWN0U3RvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uOjpjcmVhdGVJbmRleCk6CisKIDIwMjEtMTIt
MTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3Vy
ZSB0byBzdGFydCBhIHJlYWx0aW1lIG91dGdvaW5nIHNvdXJjZSBpbiBjYXNlIGl0IGlzIHRha2Vu
IHRvIGFub3RoZXIgc2VuZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAKaW5kZXggMDkzNGJjYzAwZDk4ZGYzNjc4OTlmYWE2N2QwYzk5MTEx
N2JhODM2Yy4uNjUyYjI3NmYwYzY2MTQxYjg2MWI1ZjgwOTRiYTVlNTE0NzNhYzQ2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAt
NDgsNyArNDgsOSBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCRGF0YWJhc2UpOwog
CiBSZWY8SURCRGF0YWJhc2U+IElEQkRhdGFiYXNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Q
cm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERh
dGEpKTsKKyAgICBhdXRvIGRhdGFiYXNlID0gYWRvcHRSZWYoKm5ldyBJREJEYXRhYmFzZShjb250
ZXh0LCBjb25uZWN0aW9uUHJveHksIHJlc3VsdERhdGEpKTsKKyAgICBkYXRhYmFzZS0+c3VzcGVu
ZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGRhdGFiYXNlOwogfQogCiBJREJEYXRhYmFzZTo6SURC
RGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJD
b25uZWN0aW9uUHJveHkmIGNvbm5lY3Rpb25Qcm94eSwgY29uc3QgSURCUmVzdWx0RGF0YSYgcmVz
dWx0RGF0YSkKQEAgLTU5LDcgKzYxLDYgQEAgSURCRGF0YWJhc2U6OklEQkRhdGFiYXNlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGkKICAgICAs
IG1fZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkRh
dGFiYXNlOjpJREJEYXRhYmFzZSAtIENyZWF0aW5nIGRhdGFiYXNlICVzIHdpdGggdmVyc2lvbiAl
IiBQUkl1NjQgIiBjb25uZWN0aW9uICUiIFBSSXU2NCAiICglcCkiLCBtX2luZm8ubmFtZSgpLnV0
ZjgoKS5kYXRhKCksIG1faW5mby52ZXJzaW9uKCksIG1fZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRp
ZmllciwgdGhpcyk7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9jb25uZWN0aW9uUHJv
eHktPnJlZ2lzdGVyRGF0YWJhc2VDb25uZWN0aW9uKCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCmluZGV4IGIxNGQ2YzJlNDhlNWJiMzBkZThmN2Fh
Nzc0ZjJmZjE1YzA5YTdlNDkuLjI1MDMwNGU5ZWE1YzE5MGNiZmYwNmIxZjAwYzU3MTJjYzAwM2Zh
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdC5jcHAKQEAgLTM2LDcg
KzM2LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQkRhdGFiYXNlTmFtZUFuZFZl
cnNpb25SZXF1ZXN0KTsKIAogUmVmPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0PiBJ
REJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9u
UHJveHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Q
cm94eSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QoY29udGV4dCwgY29ubmVjdGlvblBy
b3h5LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVl
c3Q6OklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb25SZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5JiBjb25uZWN0aW9uUHJv
eHksIEluZm9DYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtNDYsOCArNDgsNiBAQCBJREJEYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uUmVxdWVzdDo6SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3Qo
U2NyaXB0RXhlY3V0aQogICAgICwgbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKIHsKICAg
ICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YShvcmlnaW5UaHJl
YWQoKSkpOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2VO
YW1lQW5kVmVyc2lvblJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPElEQkRh
dGFiYXNlTmFtZUFuZFZlcnNpb24+PiYmIGRhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAppbmRleCAxNjdkMzgwNGVmOTBkMDcxNzcxOGUz
ZDE5ZGUwMjg3MWViYjllYmUwLi4yMmQyZDAzODkxMjcwOThiYTljNjY1MDAyODhlMTk0MjE2OGEw
MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3Bw
CkBAIC00Miw2ICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoSURCSW5kZXgpOwogCitVbmlxdWVSZWY8SURCSW5kZXg+IElEQkluZGV4
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgSURCSW5kZXhJ
bmZvJiBpbmZvLCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUpCit7CisgICAgYXV0byByZXN1
bHQgPSBVbmlxdWVSZWYoKm5ldyBJREJJbmRleChjb250ZXh0LCBpbmZvLCBvYmplY3RTdG9yZSkp
OworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwogSURCSW5kZXg6OklEQkluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IElEQkluZGV4SW5mbyYgaW5mbywgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlKQogICAg
IDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9pbmZvKGluZm8pCkBAIC00OSw4
ICs1Niw2IEBAIElEQkluZGV4OjpJREJJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBJREJJbmRleEluZm8mIGluZm8sIElECiAgICAgLCBtX29iamVjdFN0b3JlKG9i
amVjdFN0b3JlKQogewogICAgIEFTU0VSVChjYW5DdXJyZW50VGhyZWFkQWNjZXNzVGhyZWFkTG9j
YWxEYXRhKG1fb2JqZWN0U3RvcmUudHJhbnNhY3Rpb24oKS5kYXRhYmFzZSgpLm9yaWdpblRocmVh
ZCgpKSk7Ci0KLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCSW5kZXg6On5JREJJbmRl
eCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaAppbmRleCA3
ZjhiNjgxOTkxYjNmNWMwNzkyNTI1MTA4ZTdhMDljMWEwMjYxMjlhLi4xMWViYWIwNzQ0ZmQyOTU0
YWY4MzZmMWYxZjJlMGEwYmZkMjdmNWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJREJJbmRleElu
Zm8uaCIKICNpbmNsdWRlICJJREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBD
YWxsRnJhbWU7CkBAIC00Myw3ICs0NCw3IEBAIHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CiBjbGFz
cyBJREJJbmRleCBmaW5hbCA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSURCSW5kZXgpOwogcHVibGljOgotICAgIElEQkluZGV4KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJJbmRleEluZm8mLCBJREJPYmplY3RTdG9yZSYpOwor
ICAgIHN0YXRpYyBVbmlxdWVSZWY8SURCSW5kZXg+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgSURCSW5kZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUmKTsKIAogICAgIHZpcnR1
YWwgfklEQkluZGV4KCk7CiAKQEAgLTg1LDYgKzg2LDggQEAgcHVibGljOgogICAgIHZvaWQqIG9i
amVjdFN0b3JlQXNPcGFxdWVSb290KCkgeyByZXR1cm4gJm1fb2JqZWN0U3RvcmU7IH0KIAogcHJp
dmF0ZToKKyAgICBJREJJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCSW5k
ZXhJbmZvJiwgSURCT2JqZWN0U3RvcmUmKTsKKwogICAgIEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1
ZXN0Pj4gZG9Db3VudChjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKICAgICBFeGNlcHRpb25PcjxS
ZWY8SURCUmVxdWVzdD4+IGRvR2V0KEV4Y2VwdGlvbk9yPElEQktleVJhbmdlRGF0YT4pOwogICAg
IEV4Y2VwdGlvbk9yPFJlZjxJREJSZXF1ZXN0Pj4gZG9HZXRLZXkoRXhjZXB0aW9uT3I8SURCS2V5
UmFuZ2VEYXRhPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHAKaW5kZXggYTEwMzA5MWU1N2VlNmIxYTg2NGE3YzhiMWM4ZTQ4YWUw
M2UxMGUxYy4uZWRkYmU4YmUxZTMxMTA4NzFjMzc3MTE4NGEyZjk1YmE3ZmI4MDJmZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNw
cApAQCAtNTUsNiArNTUsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKElEQk9iamVjdFN0b3JlKTsKIAorVW5pcXVlUmVmPElEQk9iamVjdFN0
b3JlPiBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgaW5mbywgSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQoreworICAgIGF1dG8gcmVzdWx0ID0gVW5pcXVlUmVmKCpuZXcgSURCT2JqZWN0U3Rv
cmUoY29udGV4dCwgaW5mbywgdHJhbnNhY3Rpb24pKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5l
ZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIElEQk9iamVjdFN0b3JlOjpJREJPYmpl
Y3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBJREJPYmplY3RT
dG9yZUluZm8mIGluZm8sIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICA6IEFjdGl2
ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1faW5mbyhpbmZvKQpAQCAtNjIsOCArNjksNiBA
QCBJREJPYmplY3RTdG9yZTo6SURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgSURCT2JqZWN0UwogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlv
bikKIHsKICAgICBBU1NFUlQoY2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YSht
X3RyYW5zYWN0aW9uLmRhdGFiYXNlKCkub3JpZ2luVGhyZWFkKCkpKTsKLQotICAgIHN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBJREJPYmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKCkKQEAgLTUy
MCwxMSArNTI1LDExIEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJJbmRleD4+IElEQk9iamVjdFN0b3Jl
OjppbmRleChjb25zdCBTdHJpbmcmIGluZGV4TmFtZSkKICAgICBpZiAoIWluZm8pCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2lu
ZGV4JyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgc3BlY2lmaWVkIGluZGV4IHdhcyBub3QgZm91
bmQuIl9zIH07CiAKLSAgICBhdXRvIGluZGV4ID0gbWFrZVVuaXF1ZTxJREJJbmRleD4oKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgKmluZm8sICp0aGlzKTsKKyAgICBhdXRvIGluZGV4ID0gSURC
SW5kZXg6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOwog
Ci0gICAgUmVmPElEQkluZGV4PiByZWZlcmVuY2VkSW5kZXggeyAqaW5kZXggfTsKKyAgICBSZWYg
cmVmZXJlbmNlZEluZGV4IHsgaW5kZXguZ2V0KCkgfTsKIAotICAgIG1fcmVmZXJlbmNlZEluZGV4
ZXMuc2V0KGluZGV4TmFtZSwgV1RGTW92ZShpbmRleCkpOworICAgIG1fcmVmZXJlbmNlZEluZGV4
ZXMuc2V0KGluZGV4TmFtZSwgaW5kZXgubW92ZVRvVW5pcXVlUHRyKCkpOwogCiAgICAgcmV0dXJu
IHJlZmVyZW5jZWRJbmRleDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDM2YWIzODQ1M2I2YTViNmZhNTYzYjhkNzc3NjUz
NzRmNjU3MDc1NzMuLjk2NzFkN2M5YzE4OGViY2ExYzZlN2UzZDNmZjEwMzg5ZGJhZGZjM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlSW5mby5oIgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9VbmlxdWVSZWYuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDYWxsRnJhbWU7CkBA
IC01OSw3ICs2MCw3IEBAIGVudW0gY2xhc3MgT2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlIDogdWlu
dDhfdDsKIGNsYXNzIElEQk9iamVjdFN0b3JlIGZpbmFsIDogcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChJREJPYmplY3RTdG9yZSk7CiBwdWJsaWM6
Ci0gICAgSURCT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IElEQk9i
amVjdFN0b3JlSW5mbyYsIElEQlRyYW5zYWN0aW9uJik7CisgICAgc3RhdGljIFVuaXF1ZVJlZjxJ
REJPYmplY3RTdG9yZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBJREJP
YmplY3RTdG9yZUluZm8mLCBJREJUcmFuc2FjdGlvbiYpOwogICAgIH5JREJPYmplY3RTdG9yZSgp
OwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3Q7CkBAIC0xMTMsNiArMTE0LDggQEAg
cHVibGljOgogICAgIHZvaWQgcmVuYW1lUmVmZXJlbmNlZEluZGV4KElEQkluZGV4JiwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lKTsKIAogcHJpdmF0ZToKKyAgICBJREJPYmplY3RTdG9yZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgSURCVHJhbnNhY3Rp
b24mKTsKKwogICAgIGVudW0gY2xhc3MgSW5saW5lS2V5Q2hlY2sgeyBQZXJmb3JtLCBEb05vdFBl
cmZvcm0gfTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVxdWVzdD4+IHB1dE9yQWRkKEpTQzo6
SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxJREJLZXk+LCBJbmRleGVkREI6
Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSwgSW5saW5lS2V5Q2hlY2ssIFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYgPSBudWxscHRyKTsKICAgICBFeGNlcHRpb25PcjxSZWY8SURCUmVx
dWVzdD4+IGRvQ291bnQoY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDIz
ODY0NDA4ZTAyZmE3YzU3OWNkOWY1MDFkMzcyZTA3OTM0ODc1ZTUuLjBlNGQ4MDk4NTdhNGRhZWIw
MzcwNDgwNDJhZDRjNmVjNjhjNjVmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC00NiwxMiArNDYsMTYgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElEQk9wZW5EQlJlcXVlc3QpOwogCiBSZWY8SURC
T3BlbkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlRGVsZXRlUmVxdWVzdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94
eSYgY29ubmVjdGlvblByb3h5LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNl
SWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0
KGNvbnRleHQsIGNvbm5lY3Rpb25Qcm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCAwLCBJbmRleGVk
REI6OlJlcXVlc3RUeXBlOjpEZWxldGUpKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgSURCT3BlbkRCUmVxdWVzdChjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRl
bnRpZmllciwgMCwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6RGVsZXRlKSk7CisgICAgcmVzdWx0
LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBSZWY8SURCT3Bl
bkRCUmVxdWVzdD4gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlT3BlblJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkmIGNv
bm5lY3Rpb25Qcm94eSwgY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJiBkYXRhYmFzZUlkZW50
aWZpZXIsIHVpbnQ2NF90IHZlcnNpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURC
T3BlbkRCUmVxdWVzdChjb250ZXh0LCBjb25uZWN0aW9uUHJveHksIGRhdGFiYXNlSWRlbnRpZmll
ciwgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZTo6T3BlbikpOworICAgIGF1dG8gcmVz
dWx0ID0gYWRvcHRSZWYoKm5ldyBJREJPcGVuREJSZXF1ZXN0KGNvbnRleHQsIGNvbm5lY3Rpb25Q
cm94eSwgZGF0YWJhc2VJZGVudGlmaWVyLCB2ZXJzaW9uLCBJbmRleGVkREI6OlJlcXVlc3RUeXBl
OjpPcGVuKSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogICAgIAogSURCT3BlbkRCUmVxdWVzdDo6SURCT3BlbkRCUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSYg
Y29ubmVjdGlvblByb3h5LCBjb25zdCBJREJEYXRhYmFzZUlkZW50aWZpZXImIGRhdGFiYXNlSWRl
bnRpZmllciwgdWludDY0X3QgdmVyc2lvbiwgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSByZXF1ZXN0
VHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKaW5kZXggZTJlMTJmY2ZiMzg2ZDBkYzgyYjM3ZmM0NWIxZjQ1YzcxMzcxYzMxMy4uNGUwNjhi
N2I5ZjQ2M2UxOGFkMjk5ZTM0YTk1OWVkZTMxYzZhZjNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTU3LDI3ICs1NywzNyBAQCBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSURCUmVxdWVzdCk7CiAKIFJlZjxJREJSZXF1ZXN0
PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURC
T2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBvYmplY3RTdG9y
ZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJl
cXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1
ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SURCQ3Vyc29yJiBjdXJzb3IsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGN1cnNvciwgdHJhbnNhY3Rp
b24pKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4
dCwgY3Vyc29yLCB0cmFuc2FjdGlvbikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgp
OworICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkluZGV4JiBpbmRleCwg
SURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IElEQlJlcXVlc3QoY29udGV4dCwgaW5kZXgsIHRyYW5zYWN0aW9uKSk7CisgICAgYXV0byByZXF1
ZXN0ID0gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0KGNvbnRleHQsIGluZGV4LCB0cmFuc2FjdGlv
bikpOworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0
OwogfQogCiBSZWY8SURCUmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlT2JqZWN0U3RvcmVHZXQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0
b3JlLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZSB0eXBlLCBJREJUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChj
b250ZXh0LCBvYmplY3RTdG9yZSwgdHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBhdXRvIHJlcXVl
c3QgPSBhZG9wdFJlZigqbmV3IElEQlJlcXVlc3QoY29udGV4dCwgb2JqZWN0U3RvcmUsIHR5cGUs
IHRyYW5zYWN0aW9uKSk7CisgICAgcmVxdWVzdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0
dXJuIHJlcXVlc3Q7CiB9CiAKIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGVJbmRl
eEdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIElu
ZGV4ZWREQjo6SW5kZXhSZWNvcmRUeXBlIHJlcXVlc3RlZFJlY29yZFR5cGUsIElEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJSZXF1ZXN0
KGNvbnRleHQsIGluZGV4LCByZXF1ZXN0ZWRSZWNvcmRUeXBlLCB0cmFuc2FjdGlvbikpOworICAg
IGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgSURCUmVxdWVzdChjb250ZXh0LCBpbmRleCwg
cmVxdWVzdGVkUmVjb3JkVHlwZSwgdHJhbnNhY3Rpb24pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5k
SWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogSURCUmVxdWVzdDo6SURCUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSYgY29ubmVjdGlvblByb3h5LCBJbmRleGVkREI6OlJlcXVlc3RUeXBlIHJlcXVl
c3RUeXBlKQpAQCAtODcsNyArOTcsNiBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkNsaWVudDo6SURCQ29ubmVjdGlvbgogICAgICwg
bV9jb25uZWN0aW9uUHJveHkoY29ubmVjdGlvblByb3h5KQogICAgICwgbV9yZXF1ZXN0VHlwZShy
ZXF1ZXN0VHlwZSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogSURCUmVxdWVzdDo6
SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9y
ZSYgb2JqZWN0U3RvcmUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKQEAgLTk4LDcgKzEw
Nyw2IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0CiAgICAgLCBtX3NvdXJjZSgmb2JqZWN0U3Rv
cmUpCiAgICAgLCBtX2Nvbm5lY3Rpb25Qcm94eSh0cmFuc2FjdGlvbi5kYXRhYmFzZSgpLmNvbm5l
Y3Rpb25Qcm94eSgpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJSZXF1ZXN0
OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQkN1cnNvciYg
Y3Vyc29yLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC0xMDksOCArMTE3LDYgQEAg
SURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJ
REJDdXJzb3ImIGN1cnNvciwgSURCVHIKICAgICAsIG1fcGVuZGluZ0N1cnNvcigmY3Vyc29yKQog
ICAgICwgbV9jb25uZWN0aW9uUHJveHkodHJhbnNhY3Rpb24uZGF0YWJhc2UoKS5jb25uZWN0aW9u
UHJveHkoKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLQogICAgIFdURjo6c3dpdGNoT24o
Y3Vyc29yLnNvdXJjZSgpLAogICAgICAgICBbdGhpc10gKGNvbnN0IGF1dG8mIHZhbHVlKSB7IHRo
aXMtPm1fc291cmNlID0gSURCUmVxdWVzdDo6U291cmNlIHsgdmFsdWUgfTsgfQogICAgICk7CkBA
IC0xMjYsNyArMTMyLDYgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBJREJJbmRleCYgaW5kZXgsIElEQlRyYW4KICAgICAsIG1fc291cmNl
KCZpbmRleCkKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9uLmRhdGFiYXNlKCku
Y29ubmVjdGlvblByb3h5KCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlJl
cXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2Jq
ZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlUmVjb3JkVHlwZSB0
eXBlLCBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCkBAIC0xMzgsNyArMTQzLDYgQEAgSURC
UmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJP
YmplY3RTdG9yZSYgb2JqZWN0U3QKICAgICAsIG1fY29ubmVjdGlvblByb3h5KHRyYW5zYWN0aW9u
LmRhdGFiYXNlKCkuY29ubmVjdGlvblByb3h5KCkpCiAgICAgLCBtX3JlcXVlc3RlZE9iamVjdFN0
b3JlUmVjb3JkVHlwZSh0eXBlKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBJREJS
ZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQklu
ZGV4JiBpbmRleCwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5cGUgcmVxdWVzdGVkUmVjb3JkVHlw
ZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4IGE0YWFjNWE2NmE0YjVm
NDRiM2MyN2Y3MTlhYTdiYzk0YTYzZmFiOGQuLjY3ZDNiYTRjNzk4MzExMTI3OTMxZTI5NTI4NDg0
ZTY2ZWNkMzRjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTY1LDEyICs2NSwxNiBAQCBzdGQ6OmF0b21pYzx1bnNp
Z25lZD4gSURCVHJhbnNhY3Rpb246Om51bWJlck9mSURCVHJhbnNhY3Rpb25zIHsgMCB9OwogCiBS
ZWY8SURCVHJhbnNhY3Rpb24+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGUoSURCRGF0YWJhc2UmIGRh
dGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSURCVHJhbnNhY3Rpb24oZGF0YWJhc2UsIGluZm8sIG51bGxwdHIpKTsKKyAg
ICBhdXRvIHRyYW5zYWN0aW9uID0gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFz
ZSwgaW5mbywgbnVsbHB0cikpOworICAgIHRyYW5zYWN0aW9uLT5zdXNwZW5kSWZOZWVkZWQoKTsK
KyAgICByZXR1cm4gdHJhbnNhY3Rpb247CiB9CiAKIFJlZjxJREJUcmFuc2FjdGlvbj4gSURCVHJh
bnNhY3Rpb246OmNyZWF0ZShJREJEYXRhYmFzZSYgZGF0YWJhc2UsIGNvbnN0IElEQlRyYW5zYWN0
aW9uSW5mbyYgaW5mbywgSURCT3BlbkRCUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRhYmFzZSwgaW5mbywgJnJlcXVlc3QpKTsK
KyAgICBhdXRvIHRyYW5zYWN0aW9uID0gYWRvcHRSZWYoKm5ldyBJREJUcmFuc2FjdGlvbihkYXRh
YmFzZSwgaW5mbywgJnJlcXVlc3QpKTsKKyAgICB0cmFuc2FjdGlvbi0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIHRyYW5zYWN0aW9uOwogfQogCiBJREJUcmFuc2FjdGlvbjo6SURCVHJh
bnNhY3Rpb24oSURCRGF0YWJhc2UmIGRhdGFiYXNlLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
IGluZm8sIElEQk9wZW5EQlJlcXVlc3QqIHJlcXVlc3QpCkBAIC0xMDIsOCArMTA2LDYgQEAgSURC
VHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9uKElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3Qg
SURCVHJhbnNhY3Rpb25JbmZvJgogCiAgICAgICAgIGVzdGFibGlzaE9uU2VydmVyKCk7CiAgICAg
fQotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIElEQlRyYW5zYWN0aW9uOjp+SURCVHJh
bnNhY3Rpb24oKQpAQCAtMTc1LDExICsxNzcsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPElEQk9iamVj
dFN0b3JlPj4gSURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWMK
ICAgICBpZiAoIWluZm8gfHwgKCFmb3VuZCAmJiAhaXNWZXJzaW9uQ2hhbmdlKCkpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdv
YmplY3RTdG9yZScgb24gJ0lEQlRyYW5zYWN0aW9uJzogVGhlIHNwZWNpZmllZCBvYmplY3Qgc3Rv
cmUgd2FzIG5vdCBmb3VuZC4iX3MgfTsKIAotICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBtYWtlVW5p
cXVlPElEQk9iamVjdFN0b3JlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRo
aXMpOwotICAgIGF1dG8qIHJhd09iamVjdFN0b3JlID0gb2JqZWN0U3RvcmUuZ2V0KCk7Ci0gICAg
bV9yZWZlcmVuY2VkT2JqZWN0U3RvcmVzLnNldChvYmplY3RTdG9yZU5hbWUsIFdURk1vdmUob2Jq
ZWN0U3RvcmUpKTsKKyAgICBhdXRvIG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNyZWF0
ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqaW5mbywgKnRoaXMpOworICAgIFJlZiBvYmpl
Y3RTdG9yZVJlZiB7IG9iamVjdFN0b3JlLmdldCgpIH07CisgICAgbV9yZWZlcmVuY2VkT2JqZWN0
U3RvcmVzLnNldChvYmplY3RTdG9yZU5hbWUsIG9iamVjdFN0b3JlLm1vdmVUb1VuaXF1ZVB0cigp
KTsKIAotICAgIHJldHVybiBSZWY8SURCT2JqZWN0U3RvcmU+KCpyYXdPYmplY3RTdG9yZSk7Cisg
ICAgcmV0dXJuIG9iamVjdFN0b3JlUmVmOwogfQogCiAKQEAgLTY1OSw5ICs2NjEsOSBAQCBSZWY8
SURCT2JqZWN0U3RvcmU+IElEQlRyYW5zYWN0aW9uOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJ
REJPYmplY3RTdG9yZUluZm8mCiAKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9yZWZlcmVuY2VkT2Jq
ZWN0U3RvcmVMb2NrIH07CiAKLSAgICBhdXRvIG9iamVjdFN0b3JlID0gbWFrZVVuaXF1ZTxJREJP
YmplY3RTdG9yZT4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgaW5mbywgKnRoaXMpOwotICAg
IGF1dG8qIHJhd09iamVjdFN0b3JlID0gb2JqZWN0U3RvcmUuZ2V0KCk7Ci0gICAgbV9yZWZlcmVu
Y2VkT2JqZWN0U3RvcmVzLnNldChpbmZvLm5hbWUoKSwgV1RGTW92ZShvYmplY3RTdG9yZSkpOwor
ICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKCpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCksIGluZm8sICp0aGlzKTsKKyAgICBSZWYgb2JqZWN0U3RvcmVSZWYgeyBv
YmplY3RTdG9yZS5nZXQoKSB9OworICAgIG1fcmVmZXJlbmNlZE9iamVjdFN0b3Jlcy5zZXQoaW5m
by5uYW1lKCksIG9iamVjdFN0b3JlLm1vdmVUb1VuaXF1ZVB0cigpKTsKIAogICAgIExPRyhJbmRl
eGVkREJPcGVyYXRpb25zLCAiSURCIGNyZWF0ZSBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uOiAlcyIs
IGluZm8uY29uZGVuc2VkTG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHNjaGVk
dWxlT3BlcmF0aW9uKElEQkNsaWVudDo6VHJhbnNhY3Rpb25PcGVyYXRpb25JbXBsOjpjcmVhdGUo
KnRoaXMsIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGNvbnN0IGF1dG8mIHJlc3Vs
dCkgewpAQCAtNjcwLDcgKzY3Miw3IEBAIFJlZjxJREJPYmplY3RTdG9yZT4gSURCVHJhbnNhY3Rp
b246OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYKICAgICAgICAg
cHJvdGVjdGVkVGhpcy0+Y3JlYXRlT2JqZWN0U3RvcmVPblNlcnZlcihvcGVyYXRpb24sIGluZm8p
OwogICAgIH0pLCBJc1dyaXRlT3BlcmF0aW9uOjpZZXMpOwogCi0gICAgcmV0dXJuICpyYXdPYmpl
Y3RTdG9yZTsKKyAgICByZXR1cm4gb2JqZWN0U3RvcmVSZWY7CiB9CiAKIHZvaWQgSURCVHJhbnNh
Y3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlT25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9w
ZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGluZm8pCkBAIC03
NDcsNyArNzQ5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPElEQkluZGV4PiBJREJUcmFuc2FjdGlvbjo6
Y3JlYXRlSW5kZXgoSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3IKICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+Y3JlYXRlSW5kZXhPblNlcnZlcihvcGVyYXRpb24sIGluZm8pOwogICAgIH0pLCBJc1dy
aXRlT3BlcmF0aW9uOjpZZXMpOwogCi0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SURCSW5kZXg+KCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGluZm8sIG9iamVjdFN0b3JlKTsKKyAgICByZXR1cm4g
SURCSW5kZXg6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBpbmZvLCBvYmplY3RT
dG9yZSkubW92ZVRvVW5pcXVlUHRyKCk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmNyZWF0
ZUluZGV4T25TZXJ2ZXIoSURCQ2xpZW50OjpUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9u
LCBjb25zdCBJREJJbmRleEluZm8mIGluZm8pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447346</attachid>
            <date>2021-12-16 05:17:46 -0800</date>
            <delta_ts>2021-12-16 06:20:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211216141745.patch</filename>
            <type>text/plain</type>
            <size>46162</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE2ZTBjNjVjOTNhYmRl
YzhhMzE3MDk5NzU4MDc2ZmJhNjgwMTI4MS4uNTU1OTM2OTY4NjgxYWEwY2Y2YjA2YmU2MWY5OWFj
ZmI1YjczZmI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDIxLTEyLTE2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAzIHdoZXJlIHdlIGNvbnZlcnQgYWxsIHJlbWFpbmluZyBjYWxscyB0byBzdXNwZW5kSWZOZWVk
ZWQoKSBpbiBjb25zdHJ1Y3RvcnMgdG8gYmUgaW4gY3JlYXRlKCkgbWV0aG9kcy4KKyAgICAgICAg
VGhpcyByZXF1aXJlZCBhZGRpbmcgc3VjaCBhIG1ldGhvZCB0byBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyLiBUaGlzIHdhcyB0aGUgZmluYWwgc3RlcCwgYWZ0ZXIgdGhpcyBwYXRjaCwKKyAgICAgICAg
dGhlcmUgc2hvdWxkIGJlIG5vIHVzZSBvZiBzdXNwZW5kSWZOZWVkZWQoKSBsZWZ0IGFueXdoZXJl
IGluIGNvbnN0cnVjdG9ycy4KKworICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRGlyZWN0b3J5RW50cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVj
dG9yeUVudHJ5OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRGlyZWN0b3J5RW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5
c3RlbUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1FbnRyeTo6RmlsZVN5
c3RlbUVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1FbnRyeTo6aW5pdGlhbGl6
ZSk6CisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5oOgorICAg
ICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93
bmVyOjpGZXRjaEJvZHlPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6
aW5pdGlhbGl6ZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oOgor
ICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVz
dDo6Y2xvbmUpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmg6CisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVzcG9uc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNl
OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpyZWRpcmVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpmZXRjaCk6CisgICAgICAgICogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyTGlz
dDo6U291cmNlQnVmZmVyTGlzdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXJMaXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmlj
ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENE
VE1GU2VuZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNlbmRlcjo6UlRD
RFRNRlNlbmRlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVy
Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ0R0bHNUcmFuc3BvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSVENEdGxzVHJhbnNwb3J0OjpSVENEdGxzVHJhbnNwb3J0KToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENJ
Y2VUcmFuc3BvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6
OlJUQ0ljZVRyYW5zcG9ydCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VU
cmFuc3BvcnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6Y3JlYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3Jl
YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFu
c3BvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2N0cFRyYW5zcG9ydDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1NjdHBUcmFuc3BvcnQ6OlJUQ1NjdHBUcmFuc3BvcnQpOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5oOgorICAgICAg
ICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBheW1lbnRSZXNwb25zZTo6ZmluaXNoQ29uc3RydWN0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjppbml0aWFsaXplKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnN0YW50U291cmNlTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9zY2ls
bGF0b3JOb2RlOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlQ29udGV4dDo6RGF0YWJh
c2VDb250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OmRhdGFiYXNlQ29udGV4
dCk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAgICAgICogcGFnZS9OYXZp
Z2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJhc2U6OnNlcnZpY2VX
b3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5oOgorCiAyMDIxLTEyLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5v
dCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNw
cAppbmRleCBlNGQzMDkxZGRhZjVlNGQwN2NmZmZmNzFhNTNkN2I2YTJlNWJmNGJkLi4wNmQzMmEy
MTIwOGJjMDZiODZmMDk5YjQ3YTc0MGMyZDM0MDk3YjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVu
dHJ5LmNwcApAQCAtMzgsNiArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitSZWY8
RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5PiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01GaWxlU3lzdGVtJiBmaWxlc3lz
dGVtLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkoY29udGV4dCwgZmlsZXN5c3RlbSwg
dmlydHVhbFBhdGgpKTsKKyAgICByZXN1bHQtPmluaXRpYWxpemUoKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCiBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk6OkZpbGVTeXN0ZW1EaXJlY3RvcnlF
bnRyeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01GaWxlU3lzdGVtJiBmaWxl
c3lzdGVtLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKQogICAgIDogRmlsZVN5c3RlbUVudHJ5
KGNvbnRleHQsIGZpbGVzeXN0ZW0sIHZpcnR1YWxQYXRoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRy
eS5oCmluZGV4IDk3NjQ4YzRiMjg5ZjUyMzkxYzk2MTU3YWZhZTk2ZWFjYzcyMWYyMzEuLmM4ZDE4
YzI2YmViM2RhNjI1YWM5YWQ2MDA3NjVmNTI1N2NhZWMyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVu
dHJ5LmgKQEAgLTM2LDEwICszNiw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAK
IGNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeSBmaW5hbCA6IHB1YmxpYyBGaWxlU3lzdGVt
RW50cnkgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRE9NRmlsZVN5c3RlbSYg
ZmlsZXN5c3RlbSwgY29uc3QgU3RyaW5nJiB2aXJ0dWFsUGF0aCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeShjb250ZXh0LCBmaWxl
c3lzdGVtLCB2aXJ0dWFsUGF0aCkpOwotICAgIH0KKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBET01GaWxlU3lz
dGVtJiwgY29uc3QgU3RyaW5nJik7CiAKICAgICBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeVJlYWRl
cj4gY3JlYXRlUmVhZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcAppbmRl
eCBkYzk4N2FkYWE4NDY1MmNhZDVjNzU1ZmM0MWIzOWI0MDg5NDFjYTdmLi45NjFhOTg0ZjQ4NTQ1
ZDY3OWFmMTZkZWI5YTJjODIyZjM4ZDMxZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcApAQCAtNDcsMTEgKzQ3LDE1
IEBAIEZpbGVTeXN0ZW1FbnRyeTo6RmlsZVN5c3RlbUVudHJ5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIERPTUZpbGVTeXN0ZW0mCiAgICAgLCBtX25hbWUoRmlsZVN5c3RlbTo6cGF0
aEZpbGVOYW1lKHZpcnR1YWxQYXRoKSkKICAgICAsIG1fdmlydHVhbFBhdGgodmlydHVhbFBhdGgp
CiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIEZpbGVTeXN0ZW1FbnRyeTo6fkZpbGVT
eXN0ZW1FbnRyeSgpID0gZGVmYXVsdDsKIAordm9pZCBGaWxlU3lzdGVtRW50cnk6OmluaXRpYWxp
emUoKQoreworICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQorCiBET01GaWxlU3lzdGVtJiBGaWxl
U3lzdGVtRW50cnk6OmZpbGVzeXN0ZW0oKSBjb25zdAogewogICAgIHJldHVybiBtX2ZpbGVzeXN0
ZW0uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RmlsZVN5c3RlbUVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmls
ZVN5c3RlbUVudHJ5LmgKaW5kZXggYWYyOGNlMDlkZTYxM2MwYWFhOTg0NGRiYzE1ZDljMzNlZTMy
MTRiMC4uODljMmUzZTA0NjMyNzYyNzJmNzAyNzViZmM3YzA0NWFmY2FkOTBjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuaApA
QCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBGaWxlU3lzdGVtRW50
cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIERPTUZpbGVTeXN0ZW0mLCBjb25zdCBTdHJpbmcm
IHZpcnR1YWxQYXRoKTsKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAppbmRleCA4MTBiYzIz
NWVlMWMwNjMxZWRkYTI5ZDVmMDhlZWVmOTM5ZTdkMTYwLi5mNDhkOWZjMjU1YTFhMmIxMWJmY2Nh
ZTQ0NDk1MmY1MjNkNTQ5MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
dHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCkBAIC0zNiw2ICszNiwxMyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1JlZjxGaWxlU3lzdGVtRmlsZUVudHJ5PiBGaWxl
U3lzdGVtRmlsZUVudHJ5OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
RE9NRmlsZVN5c3RlbSYgZmlsZXN5c3RlbSwgY29uc3QgU3RyaW5nJiB2aXJ0dWFsUGF0aCkKK3sK
KyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbUZpbGVFbnRyeShjb250
ZXh0LCBmaWxlc3lzdGVtLCB2aXJ0dWFsUGF0aCkpOworICAgIHJlc3VsdC0+aW5pdGlhbGl6ZSgp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIEZpbGVTeXN0ZW1GaWxlRW50cnk6OkZpbGVTeXN0
ZW1GaWxlRW50cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRE9NRmlsZVN5c3Rl
bSYgZmlsZXN5c3RlbSwgY29uc3QgU3RyaW5nJiB2aXJ0dWFsUGF0aCkKICAgICA6IEZpbGVTeXN0
ZW1FbnRyeShjb250ZXh0LCBmaWxlc3lzdGVtLCB2aXJ0dWFsUGF0aCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5o
CmluZGV4IGFiOTZlMDIxNDBiYzNjZjg5NTZjNmRlYmFhNzQ0YzE4ZGMyYzIzMTUuLjAzODgwMzkx
NDdhZTc5YjExYjY4Y2E0YjY1ODVkYzk5NDE4Y2ZiNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaApAQCAtMzUs
MTAgKzM1LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgRmlsZVN5
c3RlbUZpbGVFbnRyeSBmaW5hbCA6IHB1YmxpYyBGaWxlU3lzdGVtRW50cnkgewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVFbnRyeT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIERPTUZpbGVTeXN0ZW0mIGZpbGVzeXN0ZW0sIGNvbnN0IFN0cmlu
ZyYgdmlydHVhbFBhdGgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxl
U3lzdGVtRmlsZUVudHJ5KGNvbnRleHQsIGZpbGVzeXN0ZW0sIHZpcnR1YWxQYXRoKSk7Ci0gICAg
fQorICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUZpbGVFbnRyeT4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBET01GaWxlU3lzdGVtJiwgY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lk
IGZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxGaWxlQ2FsbGJhY2s+JiYsIFJlZlB0
cjxFcnJvckNhbGxiYWNrPiYmID0gbnVsbHB0cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKaW5kZXggODg0YzhiODc4MzkxOTkwYzM3NzVj
MjFjODNjMDExMTNjYzA4MWE1Yy4uYzIxNjUxMDEzOWIxMzhmYjFhY2Q1ODA4YjRhYWQwZmVjZjFl
YTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlP
d25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25l
ci5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgRmV0Y2hCb2R5T3duZXI6OkZldGNoQm9keU93bmVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmUKICAgICAsIG1f
Ym9keShXVEZNb3ZlKGJvZHkpKQogICAgICwgbV9oZWFkZXJzKFdURk1vdmUoaGVhZGVycykpCiB7
Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIEZldGNoQm9keU93bmVyOjp+RmV0Y2hCb2R5
T3duZXIoKQpAQCAtNTUsNiArNTQsMTEgQEAgRmV0Y2hCb2R5T3duZXI6On5GZXRjaEJvZHlPd25l
cigpCiAgICAgICAgIG1fcmVhZGFibGVTdHJlYW1Tb3VyY2UtPmRldGFjaCgpOwogfQogCit2b2lk
IEZldGNoQm9keU93bmVyOjppbml0aWFsaXplKCkKK3sKKyAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
K30KKwogdm9pZCBGZXRjaEJvZHlPd25lcjo6c3RvcCgpCiB7CiAgICAgbV9yZWFkYWJsZVN0cmVh
bVNvdXJjZSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keU93bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keU93bmVyLmgKaW5kZXggOWUxMDJjYzEyNzQzNzQ3NGYzZmNjMTY5Yzc1OTRjNWJlYWU0MDU3
Ny4uZmIwNzkzZTNlOWUwZDU1NWM0NzU4OWY0ZmY2Y2NlYTJhYTg1MzdlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaApAQCAtNDIsNyArNDIsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZldGNoQm9keU93bmVyIDogcHVibGljIFJl
ZkNvdW50ZWQ8RmV0Y2hCb2R5T3duZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8RmV0Y2hCb2R5T3duZXI+IHsKIHB1YmxpYzoKLSAgICBGZXRjaEJvZHlP
d25lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYs
IFJlZjxGZXRjaEhlYWRlcnM+JiYpOwogICAgIH5GZXRjaEJvZHlPd25lcigpOwogCiAgICAgYm9v
bCBib2R5VXNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzRGlzdHVyYmVkKCk7IH0KQEAgLTczLDYgKzcy
LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50VHlwZTsgfQogCiBwcm90ZWN0ZWQ6CisgICAgRmV0Y2hCb2R5T3duZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmLCBSZWY8
RmV0Y2hIZWFkZXJzPiYmKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCiAgICAgY29uc3Qg
RmV0Y2hCb2R5JiBib2R5KCkgY29uc3QgeyByZXR1cm4gKm1fYm9keTsgfQogICAgIEZldGNoQm9k
eSYgYm9keSgpIHsgcmV0dXJuICptX2JvZHk7IH0KICAgICBib29sIGlzQm9keU51bGwoKSBjb25z
dCB7IHJldHVybiAhbV9ib2R5OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoUmVxdWVzdC5jcHAKaW5kZXggOTA2MWY1MTM3Yzg4YTVjOGY1NDBhMTE5OGYzODZiNTBiMjVk
N2E2MS4uMmJlYTdmY2YxZGIyY2E0MzVlMjAxZmQ5OTFmOTg3MDgzNmJjYjYyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcApAQCAtMjc1LDYgKzI3
NSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEZldGNoUmVxdWVzdDo6c2V0Qm9keShGZXRjaFJlcXVl
c3QmIHJlcXVlc3QpCiBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSW5mbyYmIGlucHV0LCBJ
bml0JiYgaW5pdCkKIHsKICAgICBhdXRvIHJlcXVlc3QgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVx
dWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVh
ZGVyczo6R3VhcmQ6OlJlcXVlc3QpLCB7IH0sIHsgfSwgeyB9KSk7CisgICAgcmVxdWVzdC0+aW5p
dGlhbGl6ZSgpOwogCiAgICAgaWYgKHN0ZDo6aG9sZHNfYWx0ZXJuYXRpdmU8U3RyaW5nPihpbnB1
dCkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSByZXF1ZXN0LT5pbml0aWFsaXplV2l0aChzdGQ6
OmdldDxTdHJpbmc+KGlucHV0KSwgV1RGTW92ZShpbml0KSk7CkBAIC0yODksNiArMjkwLDEzIEBA
IEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKK1JlZjxG
ZXRjaFJlcXVlc3Q+IEZldGNoUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRjaEhlYWRl
cnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYg
b3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpCit7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJl
ZigqbmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKGhlYWRl
cnMpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHJlZmVycmVy
KSkpOworICAgIHJlc3VsdC0+aW5pdGlhbGl6ZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
IFN0cmluZyBGZXRjaFJlcXVlc3Q6OnJlZmVycmVyKCkgY29uc3QKIHsKICAgICBpZiAobV9yZWZl
cnJlciA9PSAibm8tcmVmZXJyZXIiKQpAQCAtMzI0LDYgKzMzMiw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNsb25lKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRlCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCb2R5IGlz
IGRpc3R1cmJlZCBvciBsb2NrZWQiX3MgfTsKIAogICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKG1faGVhZGVycy5nZXQoKSksIFJlc291cmNlUmVxdWVzdCB7IG1fcmVxdWVzdCB9LCBGZXRj
aE9wdGlvbnMgeyBtX29wdGlvbnMgfSwgU3RyaW5nIHsgbV9yZWZlcnJlciB9KSk7CisgICAgY2xv
bmUtPmluaXRpYWxpemUoKTsKICAgICBjbG9uZS0+Y2xvbmVCb2R5KCp0aGlzKTsKICAgICBjbG9u
ZS0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKG1fbmF2aWdhdGlvblByZWxvYWRJZGVu
dGlmaWVyKTsKICAgICBjbG9uZS0+bV9zaWduYWwtPnNpZ25hbEZvbGxvdyhtX3NpZ25hbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaAppbmRleCA4NjA5OWQ5
M2Q1NzAxNmY4YWJjN2FhYzc5YTE5ZjVjYWY5MzgyOTQ2Li4yMDZjNzY5OTBjMDZlNGJiYTIyYjVh
NWM3MjNkZjQ2MDcwNTYwNmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXF1ZXN0LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZGlyZWN0
ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8
RmV0Y2hSZXF1ZXN0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJbmZvJiYsIElu
aXQmJik7Ci0gICAgc3RhdGljIFJlZjxGZXRjaFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBSZWY8
RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNo
T3B0aW9ucyYmIG9wdGlvbnMsIFN0cmluZyYmIHJlZmVycmVyKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdChjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMp
LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHJlZmVycmVyKSkp
OyB9CisgICAgc3RhdGljIFJlZjxGZXRjaFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jiwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYs
IFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJiwgU3RyaW5nJiYpOwogCiAgICAgY29u
c3QgU3RyaW5nJiBtZXRob2QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3QuaHR0cE1ldGhvZCgp
OyB9CiAgICAgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCmluZGV4IGM4MTA4MmY1OTQ1YWJk
ZmVlNDQyOTc3YmUyNTkzODViYzIyZGIzOTEuLjc5YzQ4ZjEzNzBlNzQ1YTU1NTdhYTVhNzg3MzY1
Y2Q3MmE1Nzg2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
c3BvbnNlLmNwcApAQCAtNTUsNiArNTUsNyBAQCBSZWY8RmV0Y2hSZXNwb25zZT4gRmV0Y2hSZXNw
b25zZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6bwogICAg
IGF1dG8gaGVhZGVycyA9IGlzT3BhcXVlID8gRmV0Y2hIZWFkZXJzOjpjcmVhdGUoZ3VhcmQpIDog
RmV0Y2hIZWFkZXJzOjpjcmVhdGUoZ3VhcmQsIEhUVFBIZWFkZXJNYXAgeyByZXNwb25zZS5odHRw
SGVhZGVyRmllbGRzKCkgfSk7CiAKICAgICBhdXRvIGZldGNoUmVzcG9uc2UgPSBhZG9wdFJlZigq
bmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwgV1RGTW92ZShib2R5KSwgV1RGTW92ZShoZWFkZXJz
KSwgV1RGTW92ZShyZXNwb25zZSkpKTsKKyAgICBmZXRjaFJlc3BvbnNlLT5pbml0aWFsaXplKCk7
CiAgICAgZmV0Y2hSZXNwb25zZS0+dXBkYXRlQ29udGVudFR5cGUoKTsKICAgICBpZiAoIWlzU3lu
dGhldGljKQogICAgICAgICBmZXRjaFJlc3BvbnNlLT5tX2ZpbHRlcmVkUmVzcG9uc2UgPSBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6ZmlsdGVyKGZldGNoUmVzcG9uc2UtPm1faW50ZXJuYWxSZXNwb25z
ZSwgUmVzb3VyY2VSZXNwb25zZTo6UGVyZm9ybUV4cG9zZUFsbEhlYWRlcnNDaGVjazo6WWVzKTsK
QEAgLTEyNyw2ICsxMjgsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNo
UmVzcG9uc2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogICAgIAogICAgIC8v
IDEyLiBSZXR1cm4gci4KICAgICBhdXRvIHIgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2Uo
Y29udGV4dCwgV1RGTW92ZShleHRyYWN0ZWRCb2R5KSwgV1RGTW92ZShoZWFkZXJzKSwgeyB9KSk7
CisgICAgci0+aW5pdGlhbGl6ZSgpOwogCiAgICAgci0+bV9jb250ZW50VHlwZSA9IGNvbnRlbnRU
eXBlOwogICAgIGF1dG8gbWltZVR5cGUgPSBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNv
bnRlbnRUeXBlKTsKQEAgLTE0Miw2ICsxNDQsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNw
b25zZT4+IEZldGNoUmVzcG9uc2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwog
UmVmPEZldGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6OmVycm9yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpCiB7CiAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0
Y2hSZXNwb25zZShjb250ZXh0LCB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVy
czo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOworICAgIHJlc3BvbnNlLT5pbml0aWFsaXplKCk7
CiAgICAgcmVzcG9uc2UtPm1faW50ZXJuYWxSZXNwb25zZS5zZXRUeXBlKFR5cGU6OkVycm9yKTsK
ICAgICByZXR1cm4gcmVzcG9uc2U7CiB9CkBAIC0xNTcsNiArMTYwLDcgQEAgRXhjZXB0aW9uT3I8
UmVmPEZldGNoUmVzcG9uc2U+PiBGZXRjaFJlc3BvbnNlOjpyZWRpcmVjdChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JgogICAgIGlmICghUmVzb3VyY2VSZXNwb25zZTo6aXNSZWRpcmVjdGlvblN0YXR1
c0NvZGUoc3RhdHVzKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsIG1h
a2VTdHJpbmcoIlN0YXR1cyBjb2RlICIsIHN0YXR1cywgImlzIG5vdCBhIHJlZGlyZWN0aW9uIHN0
YXR1cyBjb2RlIikgfTsKICAgICBhdXRvIHJlZGlyZWN0UmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3
IEZldGNoUmVzcG9uc2UoY29udGV4dCwgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhl
YWRlcnM6Okd1YXJkOjpJbW11dGFibGUpLCB7IH0pKTsKKyAgICByZWRpcmVjdFJlc3BvbnNlLT5p
bml0aWFsaXplKCk7CiAgICAgcmVkaXJlY3RSZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNDb2RlKHN0YXR1cyk7CiAgICAgcmVkaXJlY3RSZXNwb25zZS0+bV9pbnRlcm5h
bFJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24sIHJl
cXVlc3RVUkwuc3RyaW5nKCkpOwogICAgIHJlZGlyZWN0UmVzcG9uc2UtPm1faGVhZGVycy0+ZmFz
dFNldChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24sIHJlcXVlc3RVUkwuc3RyaW5nKCkpOwpAQCAt
MjUxLDYgKzI1NSw3IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0CiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsRmV0Y2goY29udGV4dCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKSk7
CiAKICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKGNvbnRl
eHQsIEZldGNoQm9keSB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3Vh
cmQ6OkltbXV0YWJsZSksIHsgfSkpOworICAgIHJlc3BvbnNlLT5pbml0aWFsaXplKCk7CiAKICAg
ICByZXNwb25zZS0+Ym9keSgpLmNvbnN1bWVyKCkuc2V0QXNMb2FkaW5nKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAppbmRleCBjOTdkYTlhY2E5NTYwYzFhNjkz
Zjg4MjY2Y2Q5ZTYwNGExOTNhNGMwLi4zNDJmODA4YWYzMjUyNjliNzhhZTcwMWYyNGRjM2ExODAz
NmQ1ZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCkBAIC0z
OCw3ICszOCw5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlKTsKIAogUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShjb250ZXh0LCBXVEZNb3Zl
KG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgYXV0byByZXN1
bHQgPSBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoY29udGV4dCwgV1RG
TW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgIHJlc3Vs
dC0+aW5pdGlhbGl6ZSgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggOGYxZmI1ZmRlNzFhMzlhNmZh
MjdhNjYxZjZmZmNkMzE1NjQ5MzExMi4uOGJmMGI5MGJiOWVlZWUwYTQxN2JkMWY3NjY3NzUzYTY1
MWIzYjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC00MSw3ICs0MSw5
IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiAK
IFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3Rl
bUZpbGVIYW5kbGUoY29udGV4dCwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkpOworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVt
RmlsZUhhbmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pKSk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAppbmRleCBiNWM1Yjk1YjQyZTdi
OTVlOGQxMWRkOTZmYzdiNjhlY2M0ZjA1MWYxLi5mMzAxMTZmMDlmZDliOTBkMWEyMzczOTA1Yjcz
ZDkwODQwYzYxZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCkBAIC00MSwxMSArNDEsMTUg
QEAgRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtSGEKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiB7Ci0gICAgc3VzcGVu
ZElmTmVlZGVkKCk7CiB9CiAKIEZpbGVTeXN0ZW1IYW5kbGU6On5GaWxlU3lzdGVtSGFuZGxlKCkg
PSBkZWZhdWx0OwogCit2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmluaXRpYWxpemUoKQoreworICAg
IHN1c3BlbmRJZk5lZWRlZCgpOworfQorCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVu
dHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xl
YW4+JiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5oCmluZGV4IGJmMjgwNTAwOTAzZjdhNTY4OGNlOWRhZWE4ODU4MjYyOTY4MjQ5OTguLjY0
ODA2NTZjZWFmM2Y5ODcwNDIyN2YyN2JhNGRkZDA2NTNiYTM3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaApAQCAtNTcsNiArNTcsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgRmlsZVN5c3RlbUhhbmRsZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgS2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogICAg
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQogCisgICAgdm9pZCBpbml0aWFsaXplKCk7CisKIHByaXZhdGU6CiAg
ICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFt
ZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKaW5kZXggNzY1MGI1YjNhY2Y4YzY5ZWZlNmUy
N2RiZGE1ZTQyYTU1M2FhOTk3My4uOTgzOGMyMDJiZTc1ZTA4MGExN2RiNjBmM2VjYjgwYmYwODJl
NzBkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXJMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L1NvdXJjZUJ1ZmZlckxpc3QuY3BwCkBAIC00MiwxMCArNDIsMTYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU291cmNlQnVmZmVyTGlzdCk7CiAK
K1JlZjxTb3VyY2VCdWZmZXJMaXN0PiBTb3VyY2VCdWZmZXJMaXN0OjpjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgU291cmNlQnVmZmVyTGlzdChjb250ZXh0KSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBTb3VyY2VCdWZmZXJMaXN0OjpTb3VyY2VC
dWZmZXJMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBBY3RpdmVE
T01PYmplY3QoY29udGV4dCkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogU291cmNl
QnVmZmVyTGlzdDo6flNvdXJjZUJ1ZmZlckxpc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAppbmRleCBiN2VhYmM2NGY1
MDIyNzEwYzZjZWEzZDZlMGU0ZGU4NDRhM2RmYzE1Li5mYzZlMDczYWI5MGU3NmQxODE1Zjg4OTZi
NmY2NjA5NmRmMmZkZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaApAQCAtNDQsMTAgKzQ0LDcgQEAgY2xhc3MgU291
cmNlQnVmZmVyOwogY2xhc3MgU291cmNlQnVmZmVyTGlzdCBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNvdXJjZUJ1ZmZlckxpc3Q+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTb3Vy
Y2VCdWZmZXJMaXN0KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNvdXJjZUJ1ZmZlckxpc3Q+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU291cmNlQnVmZmVyTGlzdChjb250ZXh0KSk7Ci0gICAgfQor
ICAgIHN0YXRpYyBSZWY8U291cmNlQnVmZmVyTGlzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKICAgICB2aXJ0dWFsIH5Tb3VyY2VCdWZmZXJMaXN0KCk7CiAKICAgICB1bnNpZ25l
ZCBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlzdC5zaXplKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAppbmRl
eCBlZjIxYjEyZGYzMDhiODBmMjEyOTc0MDMzYTRiODgwYzlhZmMwMjE1Li43MTVlZjZiNGY0ZDFi
YTA2MGFlZjc2YTMxMDRhOTZlMTU2NWY1OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCkBAIC01OSw4ICs1OSw2IEBAIGlu
bGluZSBNZWRpYURldmljZXM6Ok1lZGlhRGV2aWNlcyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAg
LCBtX2V2ZW50TmFtZXMoZXZlbnROYW1lcygpKQogICAgICwgbV9ncm91cElkSGFzaFNhbHQoY3Jl
YXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotCiAg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhRGV2aWNlczo6RGlzcGxh
eUNhcHR1cmVTdXJmYWNlVHlwZTo6TW9uaXRvcikgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6TW9uaXRvciksICJN
ZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6Ok1vbml0b3IgaXMgbm90IGVx
dWFsIHRvIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpN
b25pdG9yIGFzIGV4cGVjdGVkIik7CiAgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXpl
X3Q+KE1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6V2luZG93KSA9PSBz
dGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1
cmZhY2VUeXBlOjpXaW5kb3cpLCAiTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VU
eXBlOjpXaW5kb3cgaXMgbm90IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1
cmZhY2VUeXBlOjpXaW5kb3cgYXMgZXhwZWN0ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHNpemVfdD4oTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpB
cHBsaWNhdGlvbikgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24pLCAiTWVkaWFEZXZpY2VzOjpE
aXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpBcHBsaWNhdGlvbiBpcyBub3QgUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6OkFwcGxpY2F0aW9uIGFzIGV4cGVj
dGVkIik7CkBAIC04MSw3ICs3OSw5IEBAIHZvaWQgTWVkaWFEZXZpY2VzOjpzdG9wKCkKIAogUmVm
PE1lZGlhRGV2aWNlcz4gTWVkaWFEZXZpY2VzOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhRGV2aWNlcyhkb2N1bWVudCkpOworICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBNZWRpYURldmljZXMoZG9jdW1lbnQpKTsKKyAg
ICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIERv
Y3VtZW50KiBNZWRpYURldmljZXM6OmRvY3VtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCmluZGV4IDAwYjIw
YTY0YTdhZmJjYTE3NWQzZGVkMGEzZWNiMjlmYzRiNzlkZTIuLmIxNzdjNDczMjI4YTk3M2Y4OWU5
ZGRlNGY2ZjY1ZjUwNmVhOGE5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcApAQCAtNDIsNiArNDIsMTMgQEAgc3RhdGlj
IGNvbnN0IHNpemVfdCBtaW5Ub25lRHVyYXRpb25NcyA9IDQwOwogc3RhdGljIGNvbnN0IHNpemVf
dCBtYXhUb25lRHVyYXRpb25NcyA9IDYwMDA7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkludGVy
VG9uZUdhcE1zID0gMzA7CiAKK1JlZjxSVENEVE1GU2VuZGVyPiBSVENEVE1GU2VuZGVyOjpjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUlRDUnRwU2VuZGVyJiBzZW5kZXIs
IHN0ZDo6dW5pcXVlX3B0cjxSVENEVE1GU2VuZGVyQmFja2VuZD4mJiBiYWNrZW5kKQoreworICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKiBuZXcgUlRDRFRNRlNlbmRlcihjb250ZXh0LCBzZW5k
ZXIsIFdURk1vdmUoYmFja2VuZCkpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFJUQ0RUTUZTZW5kZXI6OlJUQ0RUTUZTZW5kZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUlRDUnRwU2VuZGVyJiBzZW5kZXIsIHN0ZDo6
dW5pcXVlX3B0cjxSVENEVE1GU2VuZGVyQmFja2VuZD4mJiBiYWNrZW5kKQogICAgIDogQWN0aXZl
RE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV90b25lVGltZXIoKnRoaXMsICZSVENEVE1GU2Vu
ZGVyOjp0b25lVGltZXJGaXJlZCkKQEAgLTUxLDggKzU4LDYgQEAgUlRDRFRNRlNlbmRlcjo6UlRD
RFRNRlNlbmRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSVENSdHBTZW5kZXIm
IHNlbmQKICAgICBtX2JhY2tlbmQtPm9uVG9uZVBsYXllZChbdGhpc10oY29uc3QgU3RyaW5nJikg
ewogICAgICAgICBvblRvbmVQbGF5ZWQoKTsKICAgICB9KTsKLQotICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwogfQogCiBSVENEVE1GU2VuZGVyOjp+UlRDRFRNRlNlbmRlcigpID0gZGVmYXVsdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmgK
aW5kZXggNThiNmI3MjI0YzA2MGFjZTY4YmU1NzQyYzZhYWEzYWI4YjZiMGFlNC4uNTEyNWQ2MTRk
MGI0NDM0MTIxNTUxNzAzNmZhZmM1N2U4ODIxNWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmgKQEAgLTQyLDcgKzQyLDcgQEAg
Y2xhc3MgUlRDUnRwU2VuZGVyOwogY2xhc3MgUlRDRFRNRlNlbmRlciBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ0RUTUZTZW5kZXI+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChS
VENEVE1GU2VuZGVyKTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ0RUTUZTZW5kZXI+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSVENSdHBTZW5kZXImIHNlbmRl
ciwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJCYWNrZW5kPiYmIGJhY2tlbmQpIHsgcmV0
dXJuIGFkb3B0UmVmKCogbmV3IFJUQ0RUTUZTZW5kZXIoY29udGV4dCwgc2VuZGVyLCBXVEZNb3Zl
KGJhY2tlbmQpKSk7IH0KKyAgICBzdGF0aWMgUmVmPFJUQ0RUTUZTZW5kZXI+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgUlRDUnRwU2VuZGVyJiwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RU
TUZTZW5kZXJCYWNrZW5kPiYmKTsKICAgICB2aXJ0dWFsIH5SVENEVE1GU2VuZGVyKCk7CiAKICAg
ICBib29sIGNhbkluc2VydERUTUYoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuY3BwCmluZGV4IDU5NGRiZjg2
OGI3Njk4OGQ0NjhmZThjYzA5MGM0MDk1NDY0YWIzOWUuLmI3OGQ0M2U3ODcwOTM1Y2U5MTllM2I3
ZmM4Y2ExMGMwYjQwODA3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmNwcApAQCAtNDIsMTIgKzQyLDE4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJUQ0R0bHNU
cmFuc3BvcnQpOwogCitSZWY8UlRDRHRsc1RyYW5zcG9ydD4gUlRDRHRsc1RyYW5zcG9ydDo6Y3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJlZjxSVENEdGxzVHJh
bnNwb3J0QmFja2VuZD4mJiBiYWNrZW5kLCBSZWY8UlRDSWNlVHJhbnNwb3J0PiYmIGljZVRyYW5z
cG9ydCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUlRDRHRsc1RyYW5zcG9y
dChjb250ZXh0LCBXVEZNb3ZlKGJhY2tlbmQpLCBXVEZNb3ZlKGljZVRyYW5zcG9ydCkpKTsKKyAg
ICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFJU
Q0R0bHNUcmFuc3BvcnQ6OlJUQ0R0bHNUcmFuc3BvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgVW5pcXVlUmVmPFJUQ0R0bHNUcmFuc3BvcnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJl
ZjxSVENJY2VUcmFuc3BvcnQ+JiYgaWNlVHJhbnNwb3J0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0
KCZjb250ZXh0KQogICAgICwgbV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCiAgICAgLCBtX2lj
ZVRyYW5zcG9ydChXVEZNb3ZlKGljZVRyYW5zcG9ydCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVk
KCk7CiAgICAgbV9iYWNrZW5kLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmgK
aW5kZXggMmQ0MjdkMDNkOTc2NGMwM2RhOGEwZDI3ZTM3MWQxY2MxNDJlNDFlYS4uMGU1MDIxMTdl
ODRmODBmMThkYTQ1MmQ4MmMwYWYzNzJiNjc4M2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmgKQEAgLTQyLDcgKzQy
LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFJUQ0R0bHNUcmFuc3Bv
cnQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENEdGxzVHJhbnNwb3J0PiwgcHVibGljIEFj
dGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBS
VENEdGxzVHJhbnNwb3J0QmFja2VuZDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKFJUQ0R0bHNUcmFuc3BvcnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UlRDRHRsc1Ry
YW5zcG9ydD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJl
ZjxSVENEdGxzVHJhbnNwb3J0QmFja2VuZD4mJiBiYWNrZW5kLCBSZWY8UlRDSWNlVHJhbnNwb3J0
PiYmIGljZVRyYW5zcG9ydCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENEdGxzVHJhbnNwb3J0
KGNvbnRleHQsIFdURk1vdmUoYmFja2VuZCksIFdURk1vdmUoaWNlVHJhbnNwb3J0KSkpOyB9Cisg
ICAgc3RhdGljIFJlZjxSVENEdGxzVHJhbnNwb3J0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFVuaXF1ZVJlZjxSVENEdGxzVHJhbnNwb3J0QmFja2VuZD4mJiwgUmVmPFJUQ0ljZVRy
YW5zcG9ydD4mJik7CiAgICAgflJUQ0R0bHNUcmFuc3BvcnQoKTsKIAogICAgIHVzaW5nIFJlZkNv
dW50ZWQ8UlRDRHRsc1RyYW5zcG9ydD46OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmNwcAppbmRleCA4ZGRhZWJiZDFj
ODZhMDZkOTBmNmQ1NWJlNTAxYmIzOTEzZTU0NDQ2Li41N2NmMTM5ZjJlMDAyMzgxMTgxOWNiMGMy
MjBkN2QwZmYyNWYwNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuY3BwCkBAIC0zNywxMiArMzcsMTggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUlRDSWNlVHJhbnNw
b3J0KTsKIAorUmVmPFJUQ0ljZVRyYW5zcG9ydD4gUlRDSWNlVHJhbnNwb3J0OjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ0ljZVRyYW5zcG9ydEJh
Y2tlbmQ+JiYgYmFja2VuZCwgUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCit7CisgICAg
YXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFJUQ0ljZVRyYW5zcG9ydChjb250ZXh0LCBXVEZN
b3ZlKGJhY2tlbmQpLCBjb25uZWN0aW9uKSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQo
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBSVENJY2VUcmFuc3BvcnQ6OlJUQ0ljZVRyYW5z
cG9ydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDSWNlVHJh
bnNwb3J0QmFja2VuZD4mJiBiYWNrZW5kLCBSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikK
ICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fYmFja2VuZChXVEZNb3Zl
KGJhY2tlbmQpKQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiB7Ci0gICAgc3VzcGVu
ZElmTmVlZGVkKCk7CiAgICAgbV9iYWNrZW5kLT5yZWdpc3RlckNsaWVudCgqdGhpcyk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJh
bnNwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5z
cG9ydC5oCmluZGV4IDI4MjZkMzNiZTViODJkYjU0MTBlMTdlZTBmMjNhNTNlOGY4ZTllZjguLjAy
ODFjN2JiNjI3ZThhZTNlYmY2YTNiOWNmYzJmZTdmOTNmZGE1OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaApAQCAtNDks
MTAgKzQ5LDcgQEAgY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CiBjbGFzcyBSVENJY2VUcmFuc3Bv
cnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VUcmFuc3BvcnQ+LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFJUQ0ljZVRy
YW5zcG9ydEJhY2tlbmQ6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSVENJ
Y2VUcmFuc3BvcnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UlRDSWNlVHJhbnNwb3J0PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ0ljZVRy
YW5zcG9ydEJhY2tlbmQ+JiYgYmFja2VuZCwgUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24p
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENJY2VUcmFuc3BvcnQoY29u
dGV4dCwgV1RGTW92ZShiYWNrZW5kKSwgY29ubmVjdGlvbikpOwotICAgIH0KKyAgICBzdGF0aWMg
UmVmPFJUQ0ljZVRyYW5zcG9ydD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVbmlx
dWVSZWY8UlRDSWNlVHJhbnNwb3J0QmFja2VuZD4mJiwgUlRDUGVlckNvbm5lY3Rpb24mKTsKICAg
ICB+UlRDSWNlVHJhbnNwb3J0KCk7CiAKICAgICBSVENJY2VUcmFuc3BvcnRTdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNwb3J0U3RhdGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNw
cAppbmRleCA4MzQyMDcwY2FjYmZjMjQzNjllY2EzMTFmMWQzODY0ODRjOWJhMjI5Li4xYWZhZDM0
MTY2YmQ1OWYxZTRiMTc4M2Y3NTA3YmNmN2I4ZWU1ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0u
Y3BwCkBAIC01MCwxMiArNTAsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKTsKIAorUmVmPFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybT4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRpb25zKQoreworICAgIGF1dG8gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oY29udGV4dCwgb3B0aW9ucykp
OworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRpb25zKQogICAgIDogQWN0aXZlRE9N
T2JqZWN0KCZjb250ZXh0KQogICAgICwgbV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6Y3JlYXRlKG9wdGlvbnMuY29tcGF0aWJpbGl0eU1vZGUpKQogewotICAgIHN1c3BlbmRJ
Zk5lZWRlZCgpOwotCiAgICAgbV90cmFuc2Zvcm1lci0+c2V0SXNFbmNyeXB0aW5nKG9wdGlvbnMu
cm9sZSA9PSBSb2xlOjpFbmNyeXB0KTsKICAgICBtX3RyYW5zZm9ybWVyLT5zZXRBdXRoZW50aWNh
dGlvblNpemUob3B0aW9ucy5hdXRoZW50aWNhdGlvblNpemUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmgKaW5kZXggNmQxN2IwZmE4Zjc0ZDQ4NjQxNGY3MzM2MzY0ZDFkYWM2ZjMzMWM2Yi4uNWYxZjEx
MWUzOTRlMTRmYzFkMTcyNmU4YjY2YjBmMjA0NzY4ZmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5o
CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICAgICAgQ29tcGF0aWJpbGl0eU1vZGUgY29t
cGF0aWJpbGl0eU1vZGUgeyBDb21wYXRpYmlsaXR5TW9kZTo6Tm9uZSB9OwogICAgIH07CiAKLSAg
ICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIE9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oY29udGV4dCwgb3B0aW9ucykpOyB9CisgICAgc3RhdGlj
IFJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgT3B0aW9ucyk7CiAgICAgflJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgpOwogCiAgICAgdm9pZCBz
ZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tleSYsIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+LCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFuc3BvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTY3RwVHJhbnNwb3J0LmNwcAppbmRleCAyZDM2YjE3NmNlOTY2
OTVhMTBmYWYwZDBlYWIyMTg1YjE1YjViMGU5Li4yNzg5MDNiMjJiYjM1MzljM2ZmYjUyNzk0Njcz
YjkxMTE2NGIxMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1NjdHBUcmFuc3BvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5jcHAKQEAgLTM4LDEyICszOCwxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSVENTY3RwVHJhbnNw
b3J0KTsKIAorUmVmPFJUQ1NjdHBUcmFuc3BvcnQ+IFJUQ1NjdHBUcmFuc3BvcnQ6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDU2N0cFRyYW5zcG9y
dEJhY2tlbmQ+JiYgYmFja2VuZCwgUmVmPFJUQ0R0bHNUcmFuc3BvcnQ+JiYgdHJhbnNwb3J0KQor
eworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBSVENTY3RwVHJhbnNwb3J0KGNvbnRl
eHQsIFdURk1vdmUoYmFja2VuZCksIFdURk1vdmUodHJhbnNwb3J0KSkpOworICAgIHJlc3VsdC0+
c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogUlRDU2N0cFRyYW5z
cG9ydDo6UlRDU2N0cFRyYW5zcG9ydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBV
bmlxdWVSZWY8UlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ+JiYgYmFja2VuZCwgUmVmPFJUQ0R0bHNU
cmFuc3BvcnQgPiYmIHRyYW5zcG9ydCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
ICAgICAsIG1fYmFja2VuZChXVEZNb3ZlKGJhY2tlbmQpKQogICAgICwgbV90cmFuc3BvcnQoV1RG
TW92ZSh0cmFuc3BvcnQpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG1fYmFja2Vu
ZC0+cmVnaXN0ZXJDbGllbnQoKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFuc3BvcnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5oCmluZGV4IDdiMDA0ZjVmMDNj
MzdmZjJjNjRmNGRjNGYyNTVhNTJhN2FkNzgxNWUuLmVjMzc0NWI5N2ExYTMxOTkzZjVmODIyMGI1
NjJmZjE4MmM2ZjUxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFJUQ0R0
bHNUcmFuc3BvcnQ7CiBjbGFzcyBSVENTY3RwVHJhbnNwb3J0IGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8UlRDU2N0cFRyYW5zcG9ydD4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgUlRDU2N0cFRyYW5zcG9ydEJhY2tlbmQ6
OkNsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSVENTY3RwVHJhbnNwb3J0KTsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1NjdHBUcmFuc3BvcnQ+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDU2N0cFRyYW5zcG9ydEJhY2tl
bmQ+JiYgYmFja2VuZCwgUmVmPFJUQ0R0bHNUcmFuc3BvcnQ+JiYgdHJhbnNwb3J0KSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFJUQ1NjdHBUcmFuc3BvcnQoY29udGV4dCwgV1RGTW92ZShiYWNrZW5k
KSwgV1RGTW92ZSh0cmFuc3BvcnQpKSk7IH0KKyAgICBzdGF0aWMgUmVmPFJUQ1NjdHBUcmFuc3Bv
cnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVW5pcXVlUmVmPFJUQ1NjdHBUcmFu
c3BvcnRCYWNrZW5kPiYmLCBSZWY8UlRDRHRsc1RyYW5zcG9ydD4mJik7CiAgICAgflJUQ1NjdHBU
cmFuc3BvcnQoKTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UlRDU2N0cFRyYW5zcG9ydD46OnJl
ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlc3BvbnNlLmNwcAppbmRleCBiMjcxODg2MDZhY2Q3M2ZhNmE4ZTljOWRjYTYwZTg1
MTRmNDFlMGU5Li4yMWNkYzIxNTVlZTFhODczYmQyZmQzM2RlMDQxNTJmMjAzZDQ4ZmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNw
b25zZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50UmVzcG9uc2UuY3BwCkBAIC00MiwxMyArNDIsMTMgQEAgUGF5bWVudFJlc3BvbnNlOjpQYXlt
ZW50UmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGF5bWVudFJlcXVl
c3QKICAgICA6IEFjdGl2ZURPTU9iamVjdCB7IGNvbnRleHQgfQogICAgICwgbV9yZXF1ZXN0IHsg
cmVxdWVzdCB9CiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgUGF5bWVudFJl
c3BvbnNlOjpmaW5pc2hDb25zdHJ1Y3Rpb24oKQogewogICAgIEFTU0VSVCghaGFzUGVuZGluZ0Fj
dGl2aXR5KCkpOwogICAgIG1fcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgq
dGhpcyk7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIFBheW1lbnRSZXNwb25zZTo6flBh
eW1lbnRSZXNwb25zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggMjc1YmQyMTE0ZWM0MjFiODMx
ZGU5OWYwNDVjOGZkYzBlYjIwOGRhOC4uNzAwOTJlNGE2ZDVkMWJjYWFiMzA0MTQ5NjAyNjRkOTRk
OTA0NWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcApAQCAtNjUsNiArNjUsNyBAQCBzdGF0aWMgZmxv
YXQgY29tcHV0ZVNhbXBsZVVzaW5nTGluZWFySW50ZXJwb2xhdGlvbihjb25zdCBmbG9hdCogc291
cmNlLCB1bnNpZ25lZAogRXhjZXB0aW9uT3I8UmVmPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4+IEF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIEF1
ZGlvQnVmZmVyU291cmNlT3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAgICAgYXV0byBub2RlID0gYWRv
cHRSZWYoKm5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCkpOworICAgIG5vZGUtPmlu
aXRpYWxpemUoKTsKIAogICAgIG5vZGUtPnNldEJ1ZmZlckZvckJpbmRpbmdzKFdURk1vdmUob3B0
aW9ucy5idWZmZXIpKTsKICAgICBub2RlLT5kZXR1bmUoKS5zZXRWYWx1ZShvcHRpb25zLmRldHVu
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXggODYxMTI2YTg0MTlhYjIyY2E0OWNhYzEx
YmMwOWFhOWQyYWVjMDI0Ni4uMjVkNzUzM2UwZWJhYjY3MTg5YzFjYmZiYmMxMDUxN2E2N2E5Njgz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtNTAsNiArNTAsMTAgQEAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZSk7CiBBdWRpb1NjaGVk
dWxlZFNvdXJjZU5vZGU6OkF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXh0LCBOb2RlVHlwZSB0eXBlKQogICAgIDogQXVkaW9Ob2RlKGNvbnRleHQsIHR5cGUp
CiAgICAgLCBBY3RpdmVET01PYmplY3QoY29udGV4dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
Cit7Cit9CisKK3ZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjppbml0aWFsaXplKCkKIHsK
ICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCmluZGV4IDY4MDhk
MDJiNzU3ODAwZTgxODI5YTU5MDk3NDM1ZjQzNDdlNWNiZjAuLmM2NWUyOGQ2ZTI2YTgxZmZjNWRi
Y2MyMDIwZTQzMTZkNmRlOGVjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaApAQCAtNTIsOCArNTIs
NiBAQCBwdWJsaWM6CiAgICAgICAgIFBMQVlJTkdfU1RBVEUgPSAyLAogICAgICAgICBGSU5JU0hF
RF9TVEFURSA9IDMKICAgICB9OwotICAgIAotICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZShC
YXNlQXVkaW9Db250ZXh0JiwgTm9kZVR5cGUpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3Rh
cnRMYXRlcihkb3VibGUgd2hlbik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RvcExhdGVyKGRv
dWJsZSB3aGVuKTsKQEAgLTYzLDYgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0Zpbmlz
aGVkKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5YmFja1N0YXRlID09IEZJTklTSEVEX1NUQVRFOyB9
CiAKIHByb3RlY3RlZDoKKyAgICBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoQmFzZUF1ZGlvQ29u
dGV4dCYsIE5vZGVUeXBlKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCiAgICAgLy8gR2V0
IGZyYW1lIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCB0aW1lIHF1YW50dW0uCiAgICAgLy8g
V2UgaGFuZGxlIHRoZSB0cmFuc2l0aW9uIGludG8gUExBWUlOR19TVEFURSBhbmQgRklOSVNIRURf
U1RBVEUgaGVyZSwKICAgICAvLyB6ZXJvaW5nIG91dCBwb3J0aW9ucyBvZiB0aGUgb3V0cHV0QnVz
IHdoaWNoIGFyZSBvdXRzaWRlIHRoZSByYW5nZSBvZiBzdGFydEZyYW1lIGFuZCBlbmRGcmFtZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3Vy
Y2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29uc3RhbnRTb3Vy
Y2VOb2RlLmNwcAppbmRleCA3NGRkYTM3NDgxMDYwZWRjYWY0ODBhMzc1OGEwNjg3NWQ5NDVkNTVm
Li43MDExMDc0MmJlNmU5OTBlOGUwMGExNTMzNzgzYThjNmE1NzA3ZWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db25zdGFudFNvdXJjZU5vZGUuY3Bw
CkBAIC00MSw3ICs0MSw5IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChDb25zdGFudFNv
dXJjZU5vZGUpOwogCiBFeGNlcHRpb25PcjxSZWY8Q29uc3RhbnRTb3VyY2VOb2RlPj4gQ29uc3Rh
bnRTb3VyY2VOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgY29uc3QgQ29u
c3RhbnRTb3VyY2VPcHRpb25zJiBvcHRpb25zKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0LCBvcHRpb25zLm9mZnNldCkpOworICAgIGF1dG8g
bm9kZSA9IGFkb3B0UmVmKCpuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQsIG9wdGlvbnMu
b2Zmc2V0KSk7CisgICAgbm9kZS0+aW5pdGlhbGl6ZSgpOworICAgIHJldHVybiBub2RlOwogfQog
CiBDb25zdGFudFNvdXJjZU5vZGU6OkNvbnN0YW50U291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXh0LCBmbG9hdCBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IDljNmFlZDEyMDMxZTJlYmFjZTVmNDQx
MjUyZTg0NTBjMWU5YmE3MTguLmY1YjUwODE3OTViZmIwOGFkYjI3MjgwMmJjZDc4ZWEwN2U3MzNh
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRv
ck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRv
ck5vZGUuY3BwCkBAIC02NCw3ICs2NCw4IEBAIEV4Y2VwdGlvbk9yPFJlZjxPc2NpbGxhdG9yTm9k
ZT4+IE9zY2lsbGF0b3JOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk11c3QgcHJvdmlkZSBw
ZXJpb2RpY1dhdmUgd2hlbiB1c2luZyBjdXN0b20gdHlwZS4iX3MgfTsKICAgICAKICAgICBhdXRv
IG9zY2lsbGF0b3IgPSBhZG9wdFJlZigqbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRleHQsIG9wdGlv
bnMpKTsKLSAgICAKKyAgICBvc2NpbGxhdG9yLT5pbml0aWFsaXplKCk7CisKICAgICBhdXRvIHJl
c3VsdCA9IG9zY2lsbGF0b3ItPmhhbmRsZUF1ZGlvTm9kZU9wdGlvbnMob3B0aW9ucywgeyAyLCBD
aGFubmVsQ291bnRNb2RlOjpNYXgsIENoYW5uZWxJbnRlcnByZXRhdGlvbjo6U3BlYWtlcnMgfSk7
CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKaW5kZXggMTcwODQ0MTY4NDM0YzRhNzMyNGQ3
YzgyNzFlN2JkMjRkZmY1MjEzYy4uZmUxODFiYTkzZmI0ZWZkYzk0MWNjOTVmMzYzNmM2MGViZmY4
YTZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZUNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VDb250ZXh0LmNwcApAQCAtOTcsOSArOTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBEYXRhYmFzZUNvbnRleHQ6OkRhdGFiYXNlQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCiB7Ci0gICAgLy8gQWN0aXZlRE9NT2JqZWN0
IGV4cGVjdHMgdGhpcyB0byBiZSBjYWxsZWQgdG8gc2V0IGludGVybmFsIGZsYWdzLgotICAgIHN1
c3BlbmRJZk5lZWRlZCgpOwotCiAgICAgQVNTRVJUKCFkb2N1bWVudC5kYXRhYmFzZUNvbnRleHQo
KSk7CiAgICAgZG9jdW1lbnQuc2V0RGF0YWJhc2VDb250ZXh0KHRoaXMpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3Bw
CmluZGV4IDlhZjAyM2EyMGQyM2IwNWI3YzhlZTQ5NDY1NTdhYjU2YzIyMjIzMzguLjVjY2IwOTQy
MDdlZDA3ZjExMTEwOTgzMDJmYWQzYmZkZmU3ZGZmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTEwMiw3
ICsxMDIsOSBAQCBSZWY8RGF0YWJhc2VDb250ZXh0PiBEYXRhYmFzZU1hbmFnZXI6OmRhdGFiYXNl
Q29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKGF1dG8gZGF0YWJhc2VDb250
ZXh0ID0gZG9jdW1lbnQuZGF0YWJhc2VDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiAqZGF0YWJh
c2VDb250ZXh0OwotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGFiYXNlQ29udGV4dChkb2N1
bWVudCkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgRGF0YWJhc2VDb250ZXh0
KGRvY3VtZW50KSk7CisgICAgY29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJu
IGNvbnRleHQ7CiB9CiAKICNpZiBMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1h
cC5jcHAKaW5kZXggYjg4NmI3NzA0YTE0ZGY1Njc3YTRkMTZiY2JjZTU4OWQwYTUyM2VlYi4uNTQw
M2ExMTEzNjljZWQ5MDc0ZDNlODRkOTU1MmU1N2U0Yjg0YjQwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUJpdG1hcC5jcHAKQEAgLTY1NSw2ICs2NTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmFjdGl2ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGF1dG8gcGVuZGluZ0ltYWdlQml0bWFwID0gbmV3IFBl
bmRpbmdJbWFnZUJpdG1hcChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBXVEZNb3ZlKGJsb2IpLCBX
VEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHJlY3QpLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICAg
ICAgcGVuZGluZ0ltYWdlQml0bWFwLT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICAgICAgcGVuZGlu
Z0ltYWdlQml0bWFwLT5zdGFydChzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICB9CiAKQEAg
LTY2OCw3ICs2NjksNiBAQCBwcml2YXRlOgogICAgICAgICAsIG1fcHJvbWlzZShXVEZNb3ZlKHBy
b21pc2UpKQogICAgICAgICAsIG1fY3JlYXRlSW1hZ2VCaXRtYXBUaW1lcigmc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgKnRoaXMsICZQZW5kaW5nSW1hZ2VCaXRtYXA6OmNyZWF0ZUltYWdlQml0bWFw
QW5kUmVzb2x2ZVByb21pc2UpCiAgICAgewotICAgICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKICAg
ICAgICAgbV9jcmVhdGVJbWFnZUJpdG1hcFRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKaW5kZXggY2QyYzI1ZjBlNzI0MmVm
MTYwMjQxNmE0Nzk2N2IzYTczYjEzYTU4YS4uNmY1YTVkYzMyOWQwNzM5N2FkODBmYzEwZjdkNzAx
MGI2MGJmZTYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC0xNjMs
NyArMTYzLDcgQEAgU2VydmljZVdvcmtlckNvbnRhaW5lciYgTmF2aWdhdG9yQmFzZTo6c2Vydmlj
ZVdvcmtlcigpCiB7CiAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSk7CiAgICAgaWYgKCFtX3NlcnZpY2VXb3Jr
ZXJDb250YWluZXIpCi0gICAgICAgIG1fc2VydmljZVdvcmtlckNvbnRhaW5lciA9IG1ha2VVbmlx
dWU8U2VydmljZVdvcmtlckNvbnRhaW5lcj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhp
cyk7CisgICAgICAgIG1fc2VydmljZVdvcmtlckNvbnRhaW5lciA9IFNlcnZpY2VXb3JrZXJDb250
YWluZXI6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzKS5tb3ZlVG9Vbmlx
dWVQdHIoKTsKICAgICByZXR1cm4gKm1fc2VydmljZVdvcmtlckNvbnRhaW5lcjsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwCmluZGV4IDg5NDYxNDA5NmYyMjk1MGQ2MTE5YTRhNzk2NzMzMmVlYzdlNjI1
MDIuLjA5OWZkZWU0NmIyZGEwN2UxZGRmOGUxODI4Y2Y2YWQwMjExMmFmZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5jcHAKQEAgLTc1LDEyICs3NSwxNyBAQCBzdGF0aWMgaW5saW5lIFNXQ2xpZW50Q29ubmVj
dGlvbiYgbWFpblRocmVhZENvbm5lY3Rpb24oKQogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoU2VydmljZVdvcmtlckNvbnRhaW5lcik7CiAKK1VuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyPiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgTmF2aWdhdG9yQmFzZSYgbmF2aWdhdG9yKQoreworICAgIGF1dG8gcmVz
dWx0ID0gVW5pcXVlUmVmKCpuZXcgU2VydmljZVdvcmtlckNvbnRhaW5lcihjb250ZXh0LCBuYXZp
Z2F0b3IpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OlNlcnZpY2VXb3JrZXJDb250YWluZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTmF2aWdhdG9yQmFzZSYgbmF2aWdhdG9y
KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX25hdmlnYXRvcihuYXZp
Z2F0b3IpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0gICAgCiAgICAgLy8gV2Ugc2hvdWxk
IHF1ZXVlIG1lc3NhZ2VzIHVudGlsIHRoZSBET01Db250ZW50TG9hZGVkIGV2ZW50IGhhcyBmaXJl
ZCBvciBzdGFydE1lc3NhZ2VzKCkgaGFzIGJlZW4gY2FsbGVkLgogICAgIGlmIChpczxEb2N1bWVu
dD4oY29udGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5wYXJzaW5nKCkpCiAg
ICAgICAgIG1fc2hvdWxkRGVmZXJNZXNzYWdlRXZlbnRzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmlu
ZGV4IGE5YmJiZDgwYmQ0MWI5NDVkNGI4MTM4NGEyYzQyMzhjZjhlNDdhZTMuLjgzNDNkZDIyZTZl
NWQ4NDNmY2ExMTIwZGM5MGU5YjAyYTJkYjhkMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNDEsNiAr
NDEsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmgiCiAj
aW5jbHVkZSAiV29ya2VyVHlwZS5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTcsNyAr
NTgsOCBAQCBjbGFzcyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGZpbmFsIDogcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBYwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFNlcnZpY2VXb3JrZXJDb250YWluZXIpOwogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2Vy
dmljZVdvcmtlckNvbnRhaW5lcik7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlckNvbnRhaW5l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTmF2aWdhdG9yQmFzZSYpOworICAgIHN0YXRpYyBV
bmlxdWVSZWY8U2VydmljZVdvcmtlckNvbnRhaW5lcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBOYXZpZ2F0b3JCYXNlJik7CisKICAgICB+U2VydmljZVdvcmtlckNvbnRhaW5lcigp
OwogCiAgICAgU2VydmljZVdvcmtlciogY29udHJvbGxlcigpIGNvbnN0OwpAQCAtMTA2LDYgKzEw
OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIE5hdmlnYXRpb25QcmVsb2FkU3RhdGVQcm9t
aXNlJiYpOwogCiBwcml2YXRlOgorICAgIFNlcnZpY2VXb3JrZXJDb250YWluZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIE5hdmlnYXRvckJhc2UmKTsKKwogICAgIGJvb2wgYWRkRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBj
b25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYgPSB7IH0pIGZpbmFsOwogCiAgICAgdm9pZCBz
Y2hlZHVsZUpvYihzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckpvYj4mJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447349</attachid>
            <date>2021-12-16 06:20:23 -0800</date>
            <delta_ts>2021-12-17 04:11:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211216152021.patch</filename>
            <type>text/plain</type>
            <size>41481</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE2ZTBjNjVjOTNhYmRl
YzhhMzE3MDk5NzU4MDc2ZmJhNjgwMTI4MS4uNmFlZTM5MTY3Yzc2YmQ1MzgwNzBhYjUxMjUxNDY2
NTJlYTBlY2E1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTE2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAzIHdoZXJlIHdlIGNvbnZlcnQgYWxtb3N0IGFsbCByZW1haW5pbmcgY2FsbHMgdG8gc3VzcGVu
ZElmTmVlZGVkKCkgaW4gY29uc3RydWN0b3JzIHRvIGJlIGluIGNyZWF0ZSgpIG1ldGhvZHMuCisg
ICAgICAgIFRoaXMgcmVxdWlyZWQgYWRkaW5nIHN1Y2ggYSBtZXRob2QgdG8gU2VydmljZVdvcmtl
ckNvbnRhaW5lci4gVGhlIGZpbmFsIGNhbGwgbGVmdCBpcyBpbiB0aGUgQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlCisgICAgICAgIGNvbnN0cnVjdG9yLCBidXQgYW4gZWFybGllciB2ZXJzaW9uIG9m
IHRoaXMgcGF0Y2ggZmFpbGVkIGEgbG90IG9mIHdlYmF1ZGlvIHRlc3RzIG9uIEVXUyBzbyBJIHN1
c3BlY3QgbXkgYXR0ZW1wdGVkIGZpeAorICAgICAgICB3YXMgd3JvbmcuCisKKyAgICAgICAgKiBN
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeTo6Y3JlYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg6CisgICAgICAgICog
TW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtRW50cnk6OkZpbGVTeXN0ZW1FbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtRW50cnk6OmluaXRpYWxpemUpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5
c3RlbUZpbGVFbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUVudHJ5
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVu
dHJ5Lmg6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaEJvZHlPd25lcjo6RmV0Y2hCb2R5T3duZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNsb25lKToKKyAgICAgICAgKiBNb2R1bGVzL2Zl
dGNoL0ZldGNoUmVxdWVzdC5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25z
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6ZXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXNwb25zZTo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6
ZmV0Y2gpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVT
eXN0ZW1IYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aW5pdGlh
bGl6ZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyTGlzdDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
RGV2aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNlbmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ0RUTUZTZW5kZXI6OlJUQ0RUTUZTZW5kZXIpOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRHRsc1RyYW5zcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENEdGxzVHJhbnNw
b3J0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDRHRsc1RyYW5zcG9ydDo6UlRDRHRs
c1RyYW5zcG9ydCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNw
b3J0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpSVENJY2VUcmFuc3BvcnQpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0Lmg6CisgICAgICAgIChXZWJDb3JlOjpS
VENJY2VUcmFuc3BvcnQ6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0Zy
YW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmg6CisgICAgICAgIChXZWJDb3JlOjpS
VENSdHBTRnJhbWVUcmFuc2Zvcm06OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTY3RwVHJhbnNwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1NjdHBUcmFuc3BvcnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTY3RwVHJhbnNw
b3J0OjpSVENTY3RwVHJhbnNwb3J0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1NjdHBUcmFuc3BvcnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVzcG9uc2U6OmZpbmlz
aENvbnN0cnVjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VDb250ZXh0OjpEYXRhYmFzZUNv
bnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlTWFuYWdlcjo6ZGF0YWJhc2VDb250ZXh0KToK
KyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKiBwYWdlL05hdmlnYXRv
ckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6c2VydmljZVdvcmtl
cik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OlNlcnZpY2VXb3JrZXJDb250
YWluZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
Lmg6CisKIDIwMjEtMTItMTUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdXNwZW5kSWZOZWVkZWQoKSBzaG91bGQgbm90IGJl
IGNhbGxlZCB3aXRoaW4gY29uc3RydWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCmlu
ZGV4IGU0ZDMwOTFkZGFmNWU0ZDA3Y2ZmZmY3MWE1M2Q3YjZhMmU1YmY0YmQuLjA2ZDMyYTIxMjA4
YmMwNmI4NmYwOTliNDdhNzQwYzJkMzQwOTdiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
Y3BwCkBAIC0zOCw2ICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1JlZjxGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnk+IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeTo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTUZpbGVTeXN0ZW0mIGZpbGVzeXN0ZW0s
IGNvbnN0IFN0cmluZyYgdmlydHVhbFBhdGgpCit7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJl
ZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeShjb250ZXh0LCBmaWxlc3lzdGVtLCB2aXJ0
dWFsUGF0aCkpOworICAgIHJlc3VsdC0+aW5pdGlhbGl6ZSgpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeTo6RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTUZpbGVTeXN0ZW0mIGZpbGVzeXN0
ZW0sIGNvbnN0IFN0cmluZyYgdmlydHVhbFBhdGgpCiAgICAgOiBGaWxlU3lzdGVtRW50cnkoY29u
dGV4dCwgZmlsZXN5c3RlbSwgdmlydHVhbFBhdGgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmgK
aW5kZXggOTc2NDhjNGIyODlmNTIzOTFjOTYxNTdhZmFlOTZlYWNjNzIxZjIzMS4uYzhkMThjMjZi
ZWIzZGE2MjVhYzlhZDYwMDc2NWY1MjU3Y2FlYzJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnku
aApAQCAtMzYsMTAgKzM2LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xh
c3MgRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5IGZpbmFsIDogcHVibGljIEZpbGVTeXN0ZW1FbnRy
eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01GaWxlU3lzdGVtJiBmaWxl
c3lzdGVtLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KGNvbnRleHQsIGZpbGVzeXN0
ZW0sIHZpcnR1YWxQYXRoKSk7Ci0gICAgfQorICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbURpcmVj
dG9yeUVudHJ5PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIERPTUZpbGVTeXN0ZW0m
LCBjb25zdCBTdHJpbmcmKTsKIAogICAgIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyPiBj
cmVhdGVSZWFkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuY3BwCmluZGV4IGRj
OTg3YWRhYTg0NjUyY2FkNWM3NTVmYzQxYjM5YjQwODk0MWNhN2YuLjk2MWE5ODRmNDg1NDVkNjc5
YWYxNmRlYjlhMmM4MjJmMzhkMzFkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRW50cnkuY3BwCkBAIC00NywxMSArNDcsMTUgQEAg
RmlsZVN5c3RlbUVudHJ5OjpGaWxlU3lzdGVtRW50cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgRE9NRmlsZVN5c3RlbSYKICAgICAsIG1fbmFtZShGaWxlU3lzdGVtOjpwYXRoRmls
ZU5hbWUodmlydHVhbFBhdGgpKQogICAgICwgbV92aXJ0dWFsUGF0aCh2aXJ0dWFsUGF0aCkKIHsK
LSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogRmlsZVN5c3RlbUVudHJ5Ojp+RmlsZVN5c3Rl
bUVudHJ5KCkgPSBkZWZhdWx0OwogCit2b2lkIEZpbGVTeXN0ZW1FbnRyeTo6aW5pdGlhbGl6ZSgp
Cit7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7Cit9CisKIERPTUZpbGVTeXN0ZW0mIEZpbGVTeXN0
ZW1FbnRyeTo6ZmlsZXN5c3RlbSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZmlsZXN5c3RlbS5n
ZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxl
U3lzdGVtRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRW50cnkuaAppbmRleCBhZjI4Y2UwOWRlNjEzYzBhYWE5ODQ0ZGJjMTVkOWMzM2VlMzIxNGIw
Li44OWMyZTNlMDQ2MzI3NjI3MmY3MDI3NWJmYzdjMDQ1YWZjYWQ5MGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5oCkBAIC01
Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEZpbGVTeXN0ZW1FbnRyeShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRE9NRmlsZVN5c3RlbSYsIGNvbnN0IFN0cmluZyYgdmly
dHVhbFBhdGgpOworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwogICAgIERvY3VtZW50KiBkb2N1bWVu
dCgpIGNvbnN0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCmluZGV4IDgxMGJjMjM1ZWUx
YzA2MzFlZGRhMjlkNWYwOGVlZWY5MzllN2QxNjAuLmY0OGQ5ZmMyNTVhMWEyYjExYmZjY2FlNDQ0
OTUyZjUyM2Q1NDkyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmll
c2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5jcHAKQEAgLTM2LDYgKzM2LDEzIEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUmVmPEZpbGVTeXN0ZW1GaWxlRW50cnk+IEZpbGVTeXN0
ZW1GaWxlRW50cnk6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01G
aWxlU3lzdGVtJiBmaWxlc3lzdGVtLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKQoreworICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUVudHJ5KGNvbnRleHQs
IGZpbGVzeXN0ZW0sIHZpcnR1YWxQYXRoKSk7CisgICAgcmVzdWx0LT5pbml0aWFsaXplKCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwogRmlsZVN5c3RlbUZpbGVFbnRyeTo6RmlsZVN5c3RlbUZp
bGVFbnRyeShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01GaWxlU3lzdGVtJiBm
aWxlc3lzdGVtLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKQogICAgIDogRmlsZVN5c3RlbUVu
dHJ5KGNvbnRleHQsIGZpbGVzeXN0ZW0sIHZpcnR1YWxQYXRoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmgKaW5k
ZXggYWI5NmUwMjE0MGJjM2NmODk1NmM2ZGViYWE3NDRjMThkYzJjMjMxNS4uMDM4ODAzOTE0N2Fl
NzliMTFiNjhjYTRiNjU4NWRjOTk0MThjZmI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5oCkBAIC0zNSwxMCAr
MzUsNyBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBGaWxlU3lzdGVt
RmlsZUVudHJ5IGZpbmFsIDogcHVibGljIEZpbGVTeXN0ZW1FbnRyeSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUVudHJ5PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgRE9NRmlsZVN5c3RlbSYgZmlsZXN5c3RlbSwgY29uc3QgU3RyaW5nJiB2
aXJ0dWFsUGF0aCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0
ZW1GaWxlRW50cnkoY29udGV4dCwgZmlsZXN5c3RlbSwgdmlydHVhbFBhdGgpKTsKLSAgICB9Cisg
ICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUVudHJ5PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIERPTUZpbGVTeXN0ZW0mLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHZvaWQgZmls
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPEZpbGVDYWxsYmFjaz4mJiwgUmVmUHRyPEVy
cm9yQ2FsbGJhY2s+JiYgPSBudWxscHRyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAppbmRleCA4ODRjOGI4NzgzOTE5OTBjMzc3NWMyMWM4
M2MwMTExM2NjMDgxYTVjLi5jMjE2NTEwMTM5YjEzOGZiMWFjZDU4MDhiNGFhZDBmZWNmMWVhN2U0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNw
cApAQCAtNDYsNyArNDYsNiBAQCBGZXRjaEJvZHlPd25lcjo6RmV0Y2hCb2R5T3duZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvcHRpb25hbDxGZQogICAgICwgbV9ib2R5
KFdURk1vdmUoYm9keSkpCiAgICAgLCBtX2hlYWRlcnMoV1RGTW92ZShoZWFkZXJzKSkKIHsKLSAg
ICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogRmV0Y2hCb2R5T3duZXI6On5GZXRjaEJvZHlPd25l
cigpCkBAIC01NSw2ICs1NCwxMSBAQCBGZXRjaEJvZHlPd25lcjo6fkZldGNoQm9keU93bmVyKCkK
ICAgICAgICAgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZS0+ZGV0YWNoKCk7CiB9CiAKK3ZvaWQgRmV0
Y2hCb2R5T3duZXI6OmluaXRpYWxpemUoKQoreworICAgIHN1c3BlbmRJZk5lZWRlZCgpOworfQor
CiB2b2lkIEZldGNoQm9keU93bmVyOjpzdG9wKCkKIHsKICAgICBtX3JlYWRhYmxlU3RyZWFtU291
cmNlID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5T3duZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
T3duZXIuaAppbmRleCA5ZTEwMmNjMTI3NDM3NDc0ZjNmY2MxNjljNzU5NGM1YmVhZTQwNTc3Li5m
YjA3OTNlM2U5ZTBkNTU1YzQ3NTg5ZjRmZjZjY2VhMmFhODUzN2U2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCkBAIC00Miw3ICs0Miw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmV0Y2hCb2R5T3duZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxGZXRjaEJvZHlPd25lcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxGZXRjaEJvZHlPd25lcj4gewogcHVibGljOgotICAgIEZldGNoQm9keU93bmVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVm
PEZldGNoSGVhZGVycz4mJik7CiAgICAgfkZldGNoQm9keU93bmVyKCk7CiAKICAgICBib29sIGJv
ZHlVc2VkKCkgY29uc3QgeyByZXR1cm4gaXNEaXN0dXJiZWQoKTsgfQpAQCAtNzMsNiArNzIsMTAg
QEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnRUeXBlOyB9CiAKIHByb3RlY3RlZDoKKyAgICBGZXRjaEJvZHlPd25lcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Jiwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYsIFJlZjxGZXRj
aEhlYWRlcnM+JiYpOworCisgICAgdm9pZCBpbml0aWFsaXplKCk7CisKICAgICBjb25zdCBGZXRj
aEJvZHkmIGJvZHkoKSBjb25zdCB7IHJldHVybiAqbV9ib2R5OyB9CiAgICAgRmV0Y2hCb2R5JiBi
b2R5KCkgeyByZXR1cm4gKm1fYm9keTsgfQogICAgIGJvb2wgaXNCb2R5TnVsbCgpIGNvbnN0IHsg
cmV0dXJuICFtX2JvZHk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXF1ZXN0LmNwcAppbmRleCA5MDYxZjUxMzdjODhhNWM4ZjU0MGExMTk4ZjM4NmI1MGIyNWQ3YTYx
Li4yYmVhN2ZjZjFkYjJjYTQzNWUyMDFmZDk5MWY5ODcwODM2YmNiNjIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCkBAIC0yNzUsNiArMjc1LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0OjpzZXRCb2R5KEZldGNoUmVxdWVzdCYg
cmVxdWVzdCkKIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJbmZvJiYgaW5wdXQsIEluaXQm
JiBpbml0KQogewogICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0
KGNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJz
OjpHdWFyZDo6UmVxdWVzdCksIHsgfSwgeyB9LCB7IH0pKTsKKyAgICByZXF1ZXN0LT5pbml0aWFs
aXplKCk7CiAKICAgICBpZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxTdHJpbmc+KGlucHV0KSkg
ewogICAgICAgICBhdXRvIHJlc3VsdCA9IHJlcXVlc3QtPmluaXRpYWxpemVXaXRoKHN0ZDo6Z2V0
PFN0cmluZz4oaW5wdXQpLCBXVEZNb3ZlKGluaXQpKTsKQEAgLTI4OSw2ICsyOTAsMTMgQEAgRXhj
ZXB0aW9uT3I8UmVmPEZldGNoUmVxdWVzdD4+IEZldGNoUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnQKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAorUmVmPEZldGNo
UmVxdWVzdD4gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgc3RkOjpvcHRpb25hbDxGZXRjaEJvZHk+JiYgYm9keSwgUmVmPEZldGNoSGVhZGVycz4m
JiBoZWFkZXJzLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRp
b25zLCBTdHJpbmcmJiByZWZlcnJlcikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpu
ZXcgRmV0Y2hSZXF1ZXN0KGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycyks
IFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocmVmZXJyZXIpKSk7
CisgICAgcmVzdWx0LT5pbml0aWFsaXplKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogU3Ry
aW5nIEZldGNoUmVxdWVzdDo6cmVmZXJyZXIoKSBjb25zdAogewogICAgIGlmIChtX3JlZmVycmVy
ID09ICJuby1yZWZlcnJlciIpCkBAIC0zMjQsNiArMzMyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPEZl
dGNoUmVxdWVzdD4+IEZldGNoUmVxdWVzdDo6Y2xvbmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGUKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJvZHkgaXMgZGlz
dHVyYmVkIG9yIGxvY2tlZCJfcyB9OwogCiAgICAgYXV0byBjbG9uZSA9IGFkb3B0UmVmKCpuZXcg
RmV0Y2hSZXF1ZXN0KGNvbnRleHQsIHN0ZDo6bnVsbG9wdCwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUo
bV9oZWFkZXJzLmdldCgpKSwgUmVzb3VyY2VSZXF1ZXN0IHsgbV9yZXF1ZXN0IH0sIEZldGNoT3B0
aW9ucyB7IG1fb3B0aW9ucyB9LCBTdHJpbmcgeyBtX3JlZmVycmVyIH0pKTsKKyAgICBjbG9uZS0+
aW5pdGlhbGl6ZSgpOwogICAgIGNsb25lLT5jbG9uZUJvZHkoKnRoaXMpOwogICAgIGNsb25lLT5z
ZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIobV9uYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZp
ZXIpOwogICAgIGNsb25lLT5tX3NpZ25hbC0+c2lnbmFsRm9sbG93KG1fc2lnbmFsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCmluZGV4IDg2MDk5ZDkzZDU3
MDE2ZjhhYmM3YWFjNzlhMTlmNWNhZjkzODI5NDYuLjIwNmM3Njk5MGMwNmU0YmJhMjJiNWE1Yzcy
M2RmNDYwNzA1NjA2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
cXVlc3QuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVkaXJlY3QgPSBG
ZXRjaE9wdGlvbnM6OlJlZGlyZWN0OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxGZXRj
aFJlcXVlc3Q+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEluZm8mJiwgSW5pdCYm
KTsKLSAgICBzdGF0aWMgUmVmPEZldGNoUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJlZjxGZXRj
aEhlYWRlcnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRp
b25zJiYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RmV0Y2hSZXF1ZXN0KGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVycyksIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocmVmZXJyZXIpKSk7IH0K
KyAgICBzdGF0aWMgUmVmPEZldGNoUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBTdHJpbmcmJik7CiAKICAgICBjb25zdCBT
dHJpbmcmIG1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC5odHRwTWV0aG9kKCk7IH0K
ICAgICBjb25zdCBTdHJpbmcmIHVybFN0cmluZygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggYzgxMDgyZjU5NDVhYmRmZWU0
NDI5NzdiZTI1OTM4NWJjMjJkYjM5MS4uNzljNDhmMTM3MGU3NDVhNTU1N2FhNWE3ODczNjVjZDcy
YTU3ODYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
c3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuY3BwCkBAIC01NSw2ICs1NSw3IEBAIFJlZjxGZXRjaFJlc3BvbnNlPiBGZXRjaFJlc3BvbnNl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgc3RkOjpvCiAgICAgYXV0
byBoZWFkZXJzID0gaXNPcGFxdWUgPyBGZXRjaEhlYWRlcnM6OmNyZWF0ZShndWFyZCkgOiBGZXRj
aEhlYWRlcnM6OmNyZWF0ZShndWFyZCwgSFRUUEhlYWRlck1hcCB7IHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZHMoKSB9KTsKIAogICAgIGF1dG8gZmV0Y2hSZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcg
RmV0Y2hSZXNwb25zZShjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMpLCBX
VEZNb3ZlKHJlc3BvbnNlKSkpOworICAgIGZldGNoUmVzcG9uc2UtPmluaXRpYWxpemUoKTsKICAg
ICBmZXRjaFJlc3BvbnNlLT51cGRhdGVDb250ZW50VHlwZSgpOwogICAgIGlmICghaXNTeW50aGV0
aWMpCiAgICAgICAgIGZldGNoUmVzcG9uc2UtPm1fZmlsdGVyZWRSZXNwb25zZSA9IFJlc291cmNl
UmVzcG9uc2VCYXNlOjpmaWx0ZXIoZmV0Y2hSZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLCBS
ZXNvdXJjZVJlc3BvbnNlOjpQZXJmb3JtRXhwb3NlQWxsSGVhZGVyc0NoZWNrOjpZZXMpOwpAQCAt
MTI3LDYgKzEyOCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gRmV0Y2hSZXNw
b25zZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvCiAgICAgCiAgICAgLy8gMTIu
IFJldHVybiByLgogICAgIGF1dG8gciA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250
ZXh0LCBXVEZNb3ZlKGV4dHJhY3RlZEJvZHkpLCBXVEZNb3ZlKGhlYWRlcnMpLCB7IH0pKTsKKyAg
ICByLT5pbml0aWFsaXplKCk7CiAKICAgICByLT5tX2NvbnRlbnRUeXBlID0gY29udGVudFR5cGU7
CiAgICAgYXV0byBtaW1lVHlwZSA9IGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVu
dFR5cGUpOwpAQCAtMTQyLDYgKzE0NCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNl
Pj4gRmV0Y2hSZXNwb25zZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvCiBSZWY8
RmV0Y2hSZXNwb25zZT4gRmV0Y2hSZXNwb25zZTo6ZXJyb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKIHsKICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJl
c3BvbnNlKGNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpH
dWFyZDo6SW1tdXRhYmxlKSwgeyB9KSk7CisgICAgcmVzcG9uc2UtPmluaXRpYWxpemUoKTsKICAg
ICByZXNwb25zZS0+bV9pbnRlcm5hbFJlc3BvbnNlLnNldFR5cGUoVHlwZTo6RXJyb3IpOwogICAg
IHJldHVybiByZXNwb25zZTsKIH0KQEAgLTE1Nyw2ICsxNjAsNyBAQCBFeGNlcHRpb25PcjxSZWY8
RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVzcG9uc2U6OnJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmCiAgICAgaWYgKCFSZXNvdXJjZVJlc3BvbnNlOjppc1JlZGlyZWN0aW9uU3RhdHVzQ29k
ZShzdGF0dXMpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgbWFrZVN0
cmluZygiU3RhdHVzIGNvZGUgIiwgc3RhdHVzLCAiaXMgbm90IGEgcmVkaXJlY3Rpb24gc3RhdHVz
IGNvZGUiKSB9OwogICAgIGF1dG8gcmVkaXJlY3RSZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0
Y2hSZXNwb25zZShjb250ZXh0LCB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVy
czo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOworICAgIHJlZGlyZWN0UmVzcG9uc2UtPmluaXRp
YWxpemUoKTsKICAgICByZWRpcmVjdFJlc3BvbnNlLT5tX2ludGVybmFsUmVzcG9uc2Uuc2V0SFRU
UFN0YXR1c0NvZGUoc3RhdHVzKTsKICAgICByZWRpcmVjdFJlc3BvbnNlLT5tX2ludGVybmFsUmVz
cG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbiwgcmVxdWVz
dFVSTC5zdHJpbmcoKSk7CiAgICAgcmVkaXJlY3RSZXNwb25zZS0+bV9oZWFkZXJzLT5mYXN0U2V0
KEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbiwgcmVxdWVzdFVSTC5zdHJpbmcoKSk7CkBAIC0yNTEs
NiArMjU1LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QKICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxGZXRjaChjb250ZXh0LCByZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKIAog
ICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UoY29udGV4dCwg
RmV0Y2hCb2R5IHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6
SW1tdXRhYmxlKSwgeyB9KSk7CisgICAgcmVzcG9uc2UtPmluaXRpYWxpemUoKTsKIAogICAgIHJl
c3BvbnNlLT5ib2R5KCkuY29uc3VtZXIoKS5zZXRBc0xvYWRpbmcoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmluZGV4IGM5N2RhOWFjYTk1NjBjMWE2OTNmODgy
NjZjZDllNjA0YTE5M2E0YzAuLjM0MmY4MDhhZjMyNTI2OWI3OGFlNzAxZjI0ZGMzYTE4MDM2ZDVm
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTM4LDcg
KzM4LDkgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUpOwogCiBSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmlu
ZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFt
ZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICBhdXRvIHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShjb250ZXh0LCBXVEZNb3Zl
KG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgcmVzdWx0LT5p
bml0aWFsaXplKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCA4ZjFmYjVmZGU3MWEzOWE2ZmEyN2E2
NjFmNmZmY2QzMTU2NDkzMTEyLi44YmYwYjkwYmI5ZWVlZTBhNDE3YmQxZjc2Njc3NTNhNjUxYjNi
NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTQxLDcgKzQxLDkgQEAg
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKIAogUmVm
PEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmls
ZUhhbmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5l
Y3Rpb24pKSk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxl
SGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVj
dGlvbikpKTsKKyAgICByZXN1bHQtPmluaXRpYWxpemUoKTsKKyAgICByZXR1cm4gcmVzdWx0Owog
fQogCiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IGI1YzViOTViNDJlN2I5NWU4
ZDExZGQ5NmZjN2I2OGVjYzRmMDUxZjEuLmYzMDExNmYwOWZkOWI5MGQxYTIzNzM5MDViNzNkOTA4
NDBjNjFlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTQxLDExICs0MSwxNSBAQCBG
aWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIEZpbGVTeXN0ZW1IYQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAg
ICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKLSAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKIH0KIAogRmlsZVN5c3RlbUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUoKSA9IGRl
ZmF1bHQ7CiAKK3ZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aW5pdGlhbGl6ZSgpCit7CisgICAgc3Vz
cGVuZElmTmVlZGVkKCk7Cit9CisKIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnko
RmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4m
JiBwcm9taXNlKSBjb25zdAogewogICAgIGlmIChpc0Nsb3NlZCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmgKaW5kZXggYmYyODA1MDA5MDNmN2E1Njg4Y2U5ZGFlYTg4NTgyNjI5NjgyNDk5OC4uNjQ4MDY1
NmNlYWYzZjk4NzA0MjI3ZjI3YmE0ZGRkMDY1M2JhMzdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
CkBAIC01Nyw2ICs1Nyw4IEBAIHByb3RlY3RlZDoKICAgICBGaWxlU3lzdGVtSGFuZGxlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBLaW5kLCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0
aW9uLmdldCgpOyB9CiAKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKwogcHJpdmF0ZToKICAgICAv
LyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAppbmRleCA3NjUwYjViM2FjZjhjNjllZmU2ZTI3ZGJk
YTVlNDJhNTUzYWE5OTczLi45ODM4YzIwMmJlNzVlMDgwYTE3ZGI2MGYzZWNiODBiZjA4MmU3MGRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyTGlzdC5jcHAKQEAgLTQyLDEwICs0MiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTb3VyY2VCdWZmZXJMaXN0KTsKIAorUmVm
PFNvdXJjZUJ1ZmZlckxpc3Q+IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBT
b3VyY2VCdWZmZXJMaXN0KGNvbnRleHQpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1ZmZl
ckxpc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9i
amVjdChjb250ZXh0KQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBTb3VyY2VCdWZm
ZXJMaXN0Ojp+U291cmNlQnVmZmVyTGlzdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGI3ZWFiYzY0ZjUwMjI3
MTBjNmNlYTNkNmUwZTRkZTg0NGEzZGZjMTUuLmZjNmUwNzNhYjkwZTc2ZDE4MTVmODg5NmI2ZjY2
MDk2ZGYyZmRkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyTGlzdC5oCkBAIC00NCwxMCArNDQsNyBAQCBjbGFzcyBTb3VyY2VC
dWZmZXI7CiBjbGFzcyBTb3VyY2VCdWZmZXJMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8
U291cmNlQnVmZmVyTGlzdD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNvdXJjZUJ1
ZmZlckxpc3QpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U291cmNlQnVmZmVyTGlzdD4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQpKTsKLSAgICB9CisgICAg
c3RhdGljIFJlZjxTb3VyY2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwogICAgIHZpcnR1YWwgflNvdXJjZUJ1ZmZlckxpc3QoKTsKIAogICAgIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IGVm
MjFiMTJkZjMwOGI4MGYyMTI5NzQwMzNhNGI4ODBjOWFmYzAyMTUuLjcxNWVmNmI0ZjRkMWJhMDYw
YWVmNzZhMzEwNGE5NmUxNTY1ZjU4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTU5LDggKzU5LDYgQEAgaW5saW5l
IE1lZGlhRGV2aWNlczo6TWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAsIG1f
ZXZlbnROYW1lcyhldmVudE5hbWVzKCkpCiAgICAgLCBtX2dyb3VwSWRIYXNoU2FsdChjcmVhdGVD
YW5vbmljYWxVVUlEU3RyaW5nKCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0KICAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2Fw
dHVyZVN1cmZhY2VUeXBlOjpNb25pdG9yKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpNb25pdG9yKSwgIk1lZGlh
RGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6TW9uaXRvciBpcyBub3QgZXF1YWwg
dG8gUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6Ok1vbml0
b3IgYXMgZXhwZWN0ZWQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4o
TWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpXaW5kb3cpID09IHN0YXRp
Y19jYXN0PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFj
ZVR5cGU6OldpbmRvdyksICJNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6
OldpbmRvdyBpcyBub3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFj
ZVR5cGU6OldpbmRvdyBhcyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OkFwcGxp
Y2F0aW9uKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5n
czo6RGlzcGxheVN1cmZhY2VUeXBlOjpBcHBsaWNhdGlvbiksICJNZWRpYURldmljZXM6OkRpc3Bs
YXlDYXB0dXJlU3VyZmFjZVR5cGU6OkFwcGxpY2F0aW9uIGlzIG5vdCBSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24gYXMgZXhwZWN0ZWQi
KTsKQEAgLTgxLDcgKzc5LDkgQEAgdm9pZCBNZWRpYURldmljZXM6OnN0b3AoKQogCiBSZWY8TWVk
aWFEZXZpY2VzPiBNZWRpYURldmljZXM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFEZXZpY2VzKGRvY3VtZW50KSk7CisgICAgYXV0
byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IE1lZGlhRGV2aWNlcyhkb2N1bWVudCkpOworICAgIHJl
c3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogRG9jdW1l
bnQqIE1lZGlhRGV2aWNlczo6ZG9jdW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKaW5kZXggMDBiMjBhNjRh
N2FmYmNhMTc1ZDNkZWQwYTNlY2IyOWZjNGI3OWRlMi4uYjE3N2M0NzMyMjhhOTczZjg5ZTlkZGU0
ZjZmNjVmNTA2ZWE4YTlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCkBAIC00Miw2ICs0MiwxMyBAQCBzdGF0aWMgY29u
c3Qgc2l6ZV90IG1pblRvbmVEdXJhdGlvbk1zID0gNDA7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1h
eFRvbmVEdXJhdGlvbk1zID0gNjAwMDsKIHN0YXRpYyBjb25zdCBzaXplX3QgbWluSW50ZXJUb25l
R2FwTXMgPSAzMDsKIAorUmVmPFJUQ0RUTUZTZW5kZXI+IFJUQ0RUTUZTZW5kZXI6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSVENSdHBTZW5kZXImIHNlbmRlciwgc3Rk
Ojp1bmlxdWVfcHRyPFJUQ0RUTUZTZW5kZXJCYWNrZW5kPiYmIGJhY2tlbmQpCit7CisgICAgYXV0
byByZXN1bHQgPSBhZG9wdFJlZigqIG5ldyBSVENEVE1GU2VuZGVyKGNvbnRleHQsIHNlbmRlciwg
V1RGTW92ZShiYWNrZW5kKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKwogUlRDRFRNRlNlbmRlcjo6UlRDRFRNRlNlbmRlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSVENSdHBTZW5kZXImIHNlbmRlciwgc3RkOjp1bmlx
dWVfcHRyPFJUQ0RUTUZTZW5kZXJCYWNrZW5kPiYmIGJhY2tlbmQpCiAgICAgOiBBY3RpdmVET01P
YmplY3QoJmNvbnRleHQpCiAgICAgLCBtX3RvbmVUaW1lcigqdGhpcywgJlJUQ0RUTUZTZW5kZXI6
OnRvbmVUaW1lckZpcmVkKQpAQCAtNTEsOCArNTgsNiBAQCBSVENEVE1GU2VuZGVyOjpSVENEVE1G
U2VuZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJUQ1J0cFNlbmRlciYgc2Vu
ZAogICAgIG1fYmFja2VuZC0+b25Ub25lUGxheWVkKFt0aGlzXShjb25zdCBTdHJpbmcmKSB7CiAg
ICAgICAgIG9uVG9uZVBsYXllZCgpOwogICAgIH0pOwotCi0gICAgc3VzcGVuZElmTmVlZGVkKCk7
CiB9CiAKIFJUQ0RUTUZTZW5kZXI6On5SVENEVE1GU2VuZGVyKCkgPSBkZWZhdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaAppbmRl
eCA1OGI2YjcyMjRjMDYwYWNlNjhiZTU3NDJjNmFhYTNhYjhiNmIwYWU0Li41MTI1ZDYxNGQwYjQ0
MzQxMjE1NTE3MDM2ZmFmYzU3ZTg4MjE1ZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFz
cyBSVENSdHBTZW5kZXI7CiBjbGFzcyBSVENEVE1GU2VuZGVyIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8UlRDRFRNRlNlbmRlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJUQ0RU
TUZTZW5kZXIpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UlRDRFRNRlNlbmRlcj4gY3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UlRDRFRNRlNlbmRlckJhY2tlbmQ+JiYgYmFja2VuZCkgeyByZXR1cm4g
YWRvcHRSZWYoKiBuZXcgUlRDRFRNRlNlbmRlcihjb250ZXh0LCBzZW5kZXIsIFdURk1vdmUoYmFj
a2VuZCkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRFRNRlNlbmRlcj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBSVENSdHBTZW5kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRFRNRlNl
bmRlckJhY2tlbmQ+JiYpOwogICAgIHZpcnR1YWwgflJUQ0RUTUZTZW5kZXIoKTsKIAogICAgIGJv
b2wgY2FuSW5zZXJ0RFRNRigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5jcHAKaW5kZXggNTk0ZGJmODY4Yjc2
OTg4ZDQ2OGZlOGNjMDkwYzQwOTU0NjRhYjM5ZS4uYjc4ZDQzZTc4NzA5MzVjZTkxOWUzYjdmYzhj
YTEwYzBiNDA4MDc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENEdGxzVHJhbnNwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuY3BwCkBAIC00MiwxMiArNDIsMTggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUlRDRHRsc1RyYW5z
cG9ydCk7CiAKK1JlZjxSVENEdGxzVHJhbnNwb3J0PiBSVENEdGxzVHJhbnNwb3J0OjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ0R0bHNUcmFuc3Bv
cnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJlZjxSVENJY2VUcmFuc3BvcnQ+JiYgaWNlVHJhbnNwb3J0
KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBSVENEdGxzVHJhbnNwb3J0KGNv
bnRleHQsIFdURk1vdmUoYmFja2VuZCksIFdURk1vdmUoaWNlVHJhbnNwb3J0KSkpOworICAgIHJl
c3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogUlRDRHRs
c1RyYW5zcG9ydDo6UlRDRHRsc1RyYW5zcG9ydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBVbmlxdWVSZWY8UlRDRHRsc1RyYW5zcG9ydEJhY2tlbmQ+JiYgYmFja2VuZCwgUmVmPFJU
Q0ljZVRyYW5zcG9ydD4mJiBpY2VUcmFuc3BvcnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNv
bnRleHQpCiAgICAgLCBtX2JhY2tlbmQoV1RGTW92ZShiYWNrZW5kKSkKICAgICAsIG1faWNlVHJh
bnNwb3J0KFdURk1vdmUoaWNlVHJhbnNwb3J0KSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
ICAgICBtX2JhY2tlbmQtPnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuaAppbmRl
eCAyZDQyN2QwM2Q5NzY0YzAzZGE4YTBkMjdlMzcxZDFjYzE0MmU0MWVhLi4wZTUwMjExN2U4NGY4
MGYxOGRhNDUyZDgyYzBhZjM3MmI2NzgzZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuaApAQCAtNDIsNyArNDIsNyBA
QCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgUlRDRHRsc1RyYW5zcG9ydCBm
aW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0R0bHNUcmFuc3BvcnQ+LCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIFJUQ0R0
bHNUcmFuc3BvcnRCYWNrZW5kOjpDbGllbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
UlRDRHRsc1RyYW5zcG9ydCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENEdGxzVHJhbnNw
b3J0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJU
Q0R0bHNUcmFuc3BvcnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJlZjxSVENJY2VUcmFuc3BvcnQ+JiYg
aWNlVHJhbnNwb3J0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0R0bHNUcmFuc3BvcnQoY29u
dGV4dCwgV1RGTW92ZShiYWNrZW5kKSwgV1RGTW92ZShpY2VUcmFuc3BvcnQpKSk7IH0KKyAgICBz
dGF0aWMgUmVmPFJUQ0R0bHNUcmFuc3BvcnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgVW5pcXVlUmVmPFJUQ0R0bHNUcmFuc3BvcnRCYWNrZW5kPiYmLCBSZWY8UlRDSWNlVHJhbnNw
b3J0PiYmKTsKICAgICB+UlRDRHRsc1RyYW5zcG9ydCgpOwogCiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxSVENEdGxzVHJhbnNwb3J0Pjo6cmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuY3BwCmluZGV4IDhkZGFlYmJkMWM4NmEw
NmQ5MGY2ZDU1YmU1MDFiYjM5MTNlNTQ0NDYuLjU3Y2YxMzlmMmUwMDIzODExODE5Y2IwYzIyMGQ3
ZDBmZjI1ZjA2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDSWNlVHJhbnNwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5jcHAKQEAgLTM3LDEyICszNywxOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSVENJY2VUcmFuc3BvcnQp
OwogCitSZWY8UlRDSWNlVHJhbnNwb3J0PiBSVENJY2VUcmFuc3BvcnQ6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDSWNlVHJhbnNwb3J0QmFja2Vu
ZD4mJiBiYWNrZW5kLCBSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBhdXRv
IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUlRDSWNlVHJhbnNwb3J0KGNvbnRleHQsIFdURk1vdmUo
YmFja2VuZCksIGNvbm5lY3Rpb24pKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFJUQ0ljZVRyYW5zcG9ydDo6UlRDSWNlVHJhbnNwb3J0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJlZjxSVENJY2VUcmFuc3Bv
cnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAg
IDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAgICwgbV9iYWNrZW5kKFdURk1vdmUoYmFj
a2VuZCkpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKIHsKLSAgICBzdXNwZW5kSWZO
ZWVkZWQoKTsKICAgICBtX2JhY2tlbmQtPnJlZ2lzdGVyQ2xpZW50KCp0aGlzKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3Bv
cnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0
LmgKaW5kZXggMjgyNmQzM2JlNWI4MmRiNTQxMGUxN2VlMGYyM2E1M2U4ZjhlOWVmOC4uMDI4MWM3
YmI2MjdlOGFlM2ViZjZhM2I5Y2ZjMmZlN2Y5M2ZkYTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oCkBAIC00OSwxMCAr
NDksNyBAQCBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbjsKIGNsYXNzIFJUQ0ljZVRyYW5zcG9ydCA6
IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0ljZVRyYW5zcG9ydD4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgUlRDSWNlVHJhbnNw
b3J0QmFja2VuZDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJUQ0ljZVRy
YW5zcG9ydCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENJY2VUcmFuc3BvcnQ+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDSWNlVHJhbnNw
b3J0QmFja2VuZD4mJiBiYWNrZW5kLCBSVENQZWVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0ljZVRyYW5zcG9ydChjb250ZXh0
LCBXVEZNb3ZlKGJhY2tlbmQpLCBjb25uZWN0aW9uKSk7Ci0gICAgfQorICAgIHN0YXRpYyBSZWY8
UlRDSWNlVHJhbnNwb3J0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFVuaXF1ZVJl
ZjxSVENJY2VUcmFuc3BvcnRCYWNrZW5kPiYmLCBSVENQZWVyQ29ubmVjdGlvbiYpOwogICAgIH5S
VENJY2VUcmFuc3BvcnQoKTsKIAogICAgIFJUQ0ljZVRyYW5zcG9ydFN0YXRlIHN0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV90cmFuc3BvcnRTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCmlu
ZGV4IDgzNDIwNzBjYWNiZmMyNDM2OWVjYTMxMWYxZDM4NjQ4NGM5YmEyMjkuLjFhZmFkMzQxNjZi
ZDU5ZjFlNGIxNzgzZjc1MDdiY2Y3YjhlZTVlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAK
QEAgLTUwLDEyICs1MCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19B
TExPQ0FURURfSU1QTChSVENSdHBTRnJhbWVUcmFuc2Zvcm0pOwogCitSZWY8UlRDUnRwU0ZyYW1l
VHJhbnNmb3JtPiBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMpCit7CisgICAgYXV0byByZXN1bHQgPSBh
ZG9wdFJlZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybShjb250ZXh0LCBvcHRpb25zKSk7Cisg
ICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBS
VENSdHBTRnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMpCiAgICAgOiBBY3RpdmVET01PYmpl
Y3QoJmNvbnRleHQpCiAgICAgLCBtX3RyYW5zZm9ybWVyKFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
OjpjcmVhdGUob3B0aW9ucy5jb21wYXRpYmlsaXR5TW9kZSkpCiB7Ci0gICAgc3VzcGVuZElmTmVl
ZGVkKCk7Ci0KICAgICBtX3RyYW5zZm9ybWVyLT5zZXRJc0VuY3J5cHRpbmcob3B0aW9ucy5yb2xl
ID09IFJvbGU6OkVuY3J5cHQpOwogICAgIG1fdHJhbnNmb3JtZXItPnNldEF1dGhlbnRpY2F0aW9u
U2l6ZShvcHRpb25zLmF1dGhlbnRpY2F0aW9uU2l6ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaApp
bmRleCA2ZDE3YjBmYThmNzRkNDg2NDE0ZjczMzYzNjRkMWRhYzZmMzMxYzZiLi41ZjFmMTExZTM5
NGUxNGZjMWQxNzI2ZThiNjZiMGYyMDQ3NjhmZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgICAgICBDb21wYXRpYmlsaXR5TW9kZSBjb21wYXRp
YmlsaXR5TW9kZSB7IENvbXBhdGliaWxpdHlNb2RlOjpOb25lIH07CiAgICAgfTsKIAotICAgIHN0
YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRpb25zKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybShjb250ZXh0LCBvcHRpb25zKSk7IH0KKyAgICBzdGF0aWMgUmVm
PFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBP
cHRpb25zKTsKICAgICB+UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCk7CiAKICAgICB2b2lkIHNldEVu
Y3J5cHRpb25LZXkoQ3J5cHRvS2V5Jiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4sIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFuc3BvcnQuY3BwCmluZGV4IDJkMzZiMTc2Y2U5NjY5NWEx
MGZhZjBkMGVhYjIxODViMTViNWIwZTkuLjI3ODkwM2IyMmJiMzUzOWMzZmZiNTI3OTQ2NzNiOTEx
MTY0YjExNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDU2N0cFRyYW5zcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTY3RwVHJhbnNwb3J0LmNwcApAQCAtMzgsMTIgKzM4LDE4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJUQ1NjdHBUcmFuc3BvcnQp
OwogCitSZWY8UlRDU2N0cFRyYW5zcG9ydD4gUlRDU2N0cFRyYW5zcG9ydDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJlZjxSVENTY3RwVHJhbnNwb3J0QmFj
a2VuZD4mJiBiYWNrZW5kLCBSZWY8UlRDRHRsc1RyYW5zcG9ydD4mJiB0cmFuc3BvcnQpCit7Cisg
ICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IFJUQ1NjdHBUcmFuc3BvcnQoY29udGV4dCwg
V1RGTW92ZShiYWNrZW5kKSwgV1RGTW92ZSh0cmFuc3BvcnQpKSk7CisgICAgcmVzdWx0LT5zdXNw
ZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBSVENTY3RwVHJhbnNwb3J0
OjpSVENTY3RwVHJhbnNwb3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1
ZVJlZjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4mJiBiYWNrZW5kLCBSZWY8UlRDRHRsc1RyYW5z
cG9ydCA+JiYgdHJhbnNwb3J0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQogICAg
ICwgbV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCiAgICAgLCBtX3RyYW5zcG9ydChXVEZNb3Zl
KHRyYW5zcG9ydCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbV9iYWNrZW5kLT5y
ZWdpc3RlckNsaWVudCgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2N0cFRyYW5zcG9ydC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTY3RwVHJhbnNwb3J0LmgKaW5kZXggN2IwMDRmNWYwM2MzN2Zm
MmM2NGY0ZGM0ZjI1NWE1MmE3YWQ3ODE1ZS4uZWMzNzQ1Yjk3YTFhMzE5OTNmNWY4MjIwYjU2MmZm
MTgyYzZmNTExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTY3RwVHJhbnNwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTY3RwVHJhbnNwb3J0LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgUlRDRHRsc1Ry
YW5zcG9ydDsKIGNsYXNzIFJUQ1NjdHBUcmFuc3BvcnQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENTY3RwVHJhbnNwb3J0PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBSVENTY3RwVHJhbnNwb3J0QmFja2VuZDo6Q2xp
ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJUQ1NjdHBUcmFuc3BvcnQpOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8UlRDU2N0cFRyYW5zcG9ydD4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJlZjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4m
JiBiYWNrZW5kLCBSZWY8UlRDRHRsc1RyYW5zcG9ydD4mJiB0cmFuc3BvcnQpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUlRDU2N0cFRyYW5zcG9ydChjb250ZXh0LCBXVEZNb3ZlKGJhY2tlbmQpLCBX
VEZNb3ZlKHRyYW5zcG9ydCkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDU2N0cFRyYW5zcG9ydD4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVbmlxdWVSZWY8UlRDU2N0cFRyYW5zcG9y
dEJhY2tlbmQ+JiYsIFJlZjxSVENEdGxzVHJhbnNwb3J0PiYmKTsKICAgICB+UlRDU2N0cFRyYW5z
cG9ydCgpOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENTY3RwVHJhbnNwb3J0Pjo6cmVmOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50UmVzcG9uc2UuY3BwCmluZGV4IGIyNzE4ODYwNmFjZDczZmE2YThlOWM5ZGNhNjBlODUxNGY0
MWUwZTkuLjIxY2RjMjE1NWVlMWE4NzNiZDJmZDMzZGUwNDE1MmYyMDNkNDhmYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRS
ZXNwb25zZS5jcHAKQEAgLTQyLDEzICs0MiwxMyBAQCBQYXltZW50UmVzcG9uc2U6OlBheW1lbnRS
ZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXltZW50UmVxdWVzdAog
ICAgIDogQWN0aXZlRE9NT2JqZWN0IHsgY29udGV4dCB9CiAgICAgLCBtX3JlcXVlc3QgeyByZXF1
ZXN0IH0KIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBQYXltZW50UmVzcG9u
c2U6OmZpbmlzaENvbnN0cnVjdGlvbigpCiB7CiAgICAgQVNTRVJUKCFoYXNQZW5kaW5nQWN0aXZp
dHkoKSk7CiAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlz
KTsKKyAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogUGF5bWVudFJlc3BvbnNlOjp+UGF5bWVu
dFJlc3BvbnNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCAxNzA4NDQxNjg0MzRjNGE3MzI0ZDdjODI3MWU3
YmQyNGRmZjUyMTNjLi5mZTE4MWJhOTNmYjRlZmRjOTQxY2M5NWYzNjM2YzYwZWJmZjhhNmMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZUNvbnRleHQuY3BwCkBAIC05Nyw5ICs5Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIERhdGFi
YXNlQ29udGV4dDo6RGF0YWJhc2VDb250ZXh0KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEFj
dGl2ZURPTU9iamVjdChkb2N1bWVudCkKIHsKLSAgICAvLyBBY3RpdmVET01PYmplY3QgZXhwZWN0
cyB0aGlzIHRvIGJlIGNhbGxlZCB0byBzZXQgaW50ZXJuYWwgZmxhZ3MuCi0gICAgc3VzcGVuZElm
TmVlZGVkKCk7Ci0KICAgICBBU1NFUlQoIWRvY3VtZW50LmRhdGFiYXNlQ29udGV4dCgpKTsKICAg
ICBkb2N1bWVudC5zZXREYXRhYmFzZUNvbnRleHQodGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXgg
OWFmMDIzYTIwZDIzYjA1YjdjOGVlNDk0NjU1N2FiNTZjMjIyMjMzOC4uNWNjYjA5NDIwN2VkMDdm
MTExMTA5ODMwMmZhZDNiZmRmZTdkZmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcApAQCAtMTAyLDcgKzEwMiw5
IEBAIFJlZjxEYXRhYmFzZUNvbnRleHQ+IERhdGFiYXNlTWFuYWdlcjo6ZGF0YWJhc2VDb250ZXh0
KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoYXV0byBkYXRhYmFzZUNvbnRleHQgPSBk
b2N1bWVudC5kYXRhYmFzZUNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuICpkYXRhYmFzZUNvbnRl
eHQ7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0YWJhc2VDb250ZXh0KGRvY3VtZW50KSk7
CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEYXRhYmFzZUNvbnRleHQoZG9jdW1l
bnQpKTsKKyAgICBjb250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gY29udGV4
dDsKIH0KIAogI2lmIExPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApp
bmRleCBiODg2Yjc3MDRhMTRkZjU2NzdhNGQxNmJjYmNlNTg5ZDBhNTIzZWViLi41NDAzYTExMTM2
OWNlZDkwNzRkM2U4NGQ5NTUyZTU3ZTRiODRiNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0
bWFwLmNwcApAQCAtNjU1LDYgKzY1NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuYWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgYXV0byBwZW5kaW5nSW1hZ2VCaXRtYXAgPSBuZXcgUGVuZGluZ0lt
YWdlQml0bWFwKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFdURk1vdmUoYmxvYiksIFdURk1vdmUo
b3B0aW9ucyksIFdURk1vdmUocmVjdCksIFdURk1vdmUocHJvbWlzZSkpOworICAgICAgICBwZW5k
aW5nSW1hZ2VCaXRtYXAtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgICAgICBwZW5kaW5nSW1hZ2VC
aXRtYXAtPnN0YXJ0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIH0KIApAQCAtNjY4LDcg
KzY2OSw2IEBAIHByaXZhdGU6CiAgICAgICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkp
CiAgICAgICAgICwgbV9jcmVhdGVJbWFnZUJpdG1hcFRpbWVyKCZzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCAqdGhpcywgJlBlbmRpbmdJbWFnZUJpdG1hcDo6Y3JlYXRlSW1hZ2VCaXRtYXBBbmRSZXNv
bHZlUHJvbWlzZSkKICAgICB7Ci0gICAgICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogICAgICAgICBt
X2NyZWF0ZUltYWdlQml0bWFwVGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRleCBjZDJjMjVmMGU3MjQyZWYxNjAyNDE2
YTQ3OTY3YjNhNzNiMTNhNThhLi42ZjVhNWRjMzI5ZDA3Mzk3YWQ4MGZjMTBmN2Q3MDEwYjYwYmZl
NjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKQEAgLTE2Myw3ICsxNjMs
NyBAQCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyJiBOYXZpZ2F0b3JCYXNlOjpzZXJ2aWNlV29ya2Vy
KCkKIHsKICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpKTsKICAgICBpZiAoIW1fc2VydmljZVdvcmtlckNvbnRh
aW5lcikKLSAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ29udGFpbmVyID0gbWFrZVVuaXF1ZTxTZXJ2
aWNlV29ya2VyQ29udGFpbmVyPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzKTsKKyAg
ICAgICAgbV9zZXJ2aWNlV29ya2VyQ29udGFpbmVyID0gU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMpLm1vdmVUb1VuaXF1ZVB0cigp
OwogICAgIHJldHVybiAqbV9zZXJ2aWNlV29ya2VyQ29udGFpbmVyOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5jcHAKaW5kZXggODk0NjE0MDk2ZjIyOTUwZDYxMTlhNGE3OTY3MzMyZWVjN2U2MjUwMi4uMDk5
ZmRlZTQ2YjJkYTA3ZTFkZGY4ZTE4MjhjZjZhZDAyMTEyYWZkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cApAQCAtNzUsMTIgKzc1LDE3IEBAIHN0YXRpYyBpbmxpbmUgU1dDbGllbnRDb25uZWN0aW9uJiBt
YWluVGhyZWFkQ29ubmVjdGlvbigpCiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChTZXJ2
aWNlV29ya2VyQ29udGFpbmVyKTsKIAorVW5pcXVlUmVmPFNlcnZpY2VXb3JrZXJDb250YWluZXI+
IFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBOYXZpZ2F0b3JCYXNlJiBuYXZpZ2F0b3IpCit7CisgICAgYXV0byByZXN1bHQgPSBV
bmlxdWVSZWYoKm5ldyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyKGNvbnRleHQsIG5hdmlnYXRvcikp
OworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6U2VydmljZVdvcmtlckNvbnRhaW5lcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOYXZpZ2F0b3JCYXNlJiBuYXZpZ2F0b3IpCiAgICAg
OiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKICAgICAsIG1fbmF2aWdhdG9yKG5hdmlnYXRvcikK
IHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLSAgICAKICAgICAvLyBXZSBzaG91bGQgcXVldWUg
bWVzc2FnZXMgdW50aWwgdGhlIERPTUNvbnRlbnRMb2FkZWQgZXZlbnQgaGFzIGZpcmVkIG9yIHN0
YXJ0TWVzc2FnZXMoKSBoYXMgYmVlbiBjYWxsZWQuCiAgICAgaWYgKGlzPERvY3VtZW50Pihjb250
ZXh0KSAmJiBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpLnBhcnNpbmcoKSkKICAgICAgICAg
bV9zaG91bGREZWZlck1lc3NhZ2VFdmVudHMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggYTli
YmJkODBiZDQxYjk0NWQ0YjgxMzg0YTJjNDIzOGNmOGU0N2FlMy4uODM0M2RkMjJlNmU1ZDg0M2Zj
YTExMjBkYzkwZTliMDJhMmRiOGQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRl
ICJXb3JrZXJUeXBlLmgiCiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0
Zi9VbmlxdWVSZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Nyw3ICs1OCw4IEBA
IGNsYXNzIFNlcnZpY2VXb3JrZXJDb250YWluZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YSwgcHVibGljIEFjCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Vydmlj
ZVdvcmtlckNvbnRhaW5lcik7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTZXJ2aWNlV29y
a2VyQ29udGFpbmVyKTsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyQ29udGFpbmVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBOYXZpZ2F0b3JCYXNlJik7CisgICAgc3RhdGljIFVuaXF1ZVJl
ZjxTZXJ2aWNlV29ya2VyQ29udGFpbmVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IE5hdmlnYXRvckJhc2UmKTsKKwogICAgIH5TZXJ2aWNlV29ya2VyQ29udGFpbmVyKCk7CiAKICAg
ICBTZXJ2aWNlV29ya2VyKiBjb250cm9sbGVyKCkgY29uc3Q7CkBAIC0xMDYsNiArMTA4LDggQEAg
cHVibGljOgogICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgTmF2aWdhdGlvblByZWxvYWRTdGF0ZVByb21pc2UmJik7
CiAKIHByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckNvbnRhaW5lcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgTmF2aWdhdG9yQmFzZSYpOworCiAgICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNv
bnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFk
ZEV2ZW50TGlzdGVuZXJPcHRpb25zJiA9IHsgfSkgZmluYWw7CiAKICAgICB2b2lkIHNjaGVkdWxl
Sm9iKHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VySm9iPiYmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447437</attachid>
            <date>2021-12-17 00:10:12 -0800</date>
            <delta_ts>2021-12-17 04:11:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233945-20211217091011.patch</filename>
            <type>text/plain</type>
            <size>39751</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE2ZTBjNjVjOTNhYmRl
YzhhMzE3MDk5NzU4MDc2ZmJhNjgwMTI4MS4uOGI2ODg0MDAyNTQ4YjIxYTJhYWNlZjFiZjhmMTZj
NGI5M2JmMmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDIxLTEyLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCAzIHdoZXJlIHdlIGNvbnZlcnQgYWxtb3N0IGFsbCByZW1haW5pbmcgY2FsbHMgdG8gc3VzcGVu
ZElmTmVlZGVkKCkgaW4gY29uc3RydWN0b3JzIHRvIGJlIGluIGNyZWF0ZSgpIG1ldGhvZHMuCisg
ICAgICAgIFRoaXMgcmVxdWlyZWQgYWRkaW5nIHN1Y2ggYSBtZXRob2QgdG8gU2VydmljZVdvcmtl
ckNvbnRhaW5lci4gVGhlIGZpbmFsIGNhbGwgbGVmdCBpcyBpbiB0aGUgQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlCisgICAgICAgIGNvbnN0cnVjdG9yLCBidXQgYW4gZWFybGllciB2ZXJzaW9uIG9m
IHRoaXMgcGF0Y2ggZmFpbGVkIGEgbG90IG9mIHdlYmF1ZGlvIHRlc3RzIG9uIEVXUyBzbyBJIHN1
c3BlY3QgbXkgYXR0ZW1wdGVkIGZpeAorICAgICAgICB3YXMgd3JvbmcuCisKKyAgICAgICAgKiBN
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeTo6Y3JlYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5Lmg6CisgICAgICAgICog
TW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtRW50cnk6OkZpbGVTeXN0ZW1FbnRyeSk6CisgICAgICAgICogTW9kdWxlcy9l
bnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyeS5oOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1G
aWxlRW50cnk6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0
ZW1GaWxlRW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpGZXRjaEJvZHlPd25lcik6Cisg
ICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oOgorICAgICAgICAqIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y2xvbmUpOgorICAg
ICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjplcnJvcik6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpyZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaFJlc3BvbnNlOjpmZXRjaCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
TGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJj
ZUJ1ZmZlckxpc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
TGlzdC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6TWVkaWFEZXZpY2VzKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhRGV2aWNlczo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRFRNRlNlbmRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RUTUZTZW5kZXI6OlJUQ0RUTUZTZW5k
ZXIpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSVENEdGxzVHJhbnNwb3J0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDRHRsc1RyYW5zcG9ydDo6UlRDRHRsc1RyYW5zcG9ydCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEdGxzVHJhbnNwb3J0Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENJY2VUcmFuc3BvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNw
b3J0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpSVENJY2VU
cmFuc3BvcnQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zv
cm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmNyZWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTY3RwVHJhbnNwb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1NjdHBUcmFuc3BvcnQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSVENTY3RwVHJhbnNwb3J0OjpSVENTY3RwVHJhbnNwb3J0KToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFuc3BvcnQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYXltZW50UmVzcG9uc2U6OmZpbmlzaENvbnN0cnVjdGlvbik6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VDb250ZXh0OjpEYXRhYmFzZUNvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlTWFu
YWdlcjo6ZGF0YWJhc2VDb250ZXh0KToKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmNwcDoK
KyAgICAgICAgKiBwYWdlL05hdmlnYXRvckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF2
aWdhdG9yQmFzZTo6c2VydmljZVdvcmtlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckNvbnRhaW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250
YWluZXI6OlNlcnZpY2VXb3JrZXJDb250YWluZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisKIDIwMjEtMTItMTUgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdXNwZW5k
SWZOZWVkZWQoKSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoaW4gY29uc3RydWN0b3JzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVj
dG9yeUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lz
dGVtRGlyZWN0b3J5RW50cnkuY3BwCmluZGV4IGU0ZDMwOTFkZGFmNWU0ZDA3Y2ZmZmY3MWE1M2Q3
YjZhMmU1YmY0YmQuLjYwYjAxYTNlYjYwMzQ0YmFiNTE5OTM3NmViODRkMmM2NGM4OWI0OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9G
aWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuY3BwCkBAIC0zOCw2ICszOCwxMyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK1JlZjxGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk+IEZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERP
TUZpbGVTeXN0ZW0mIGZpbGVzeXN0ZW0sIGNvbnN0IFN0cmluZyYgdmlydHVhbFBhdGgpCit7Cisg
ICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeShj
b250ZXh0LCBmaWxlc3lzdGVtLCB2aXJ0dWFsUGF0aCkpOworICAgIHJlc3VsdC0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogRmlsZVN5c3RlbURpcmVjdG9yeUVu
dHJ5OjpGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgRE9NRmlsZVN5c3RlbSYgZmlsZXN5c3RlbSwgY29uc3QgU3RyaW5nJiB2aXJ0dWFsUGF0
aCkKICAgICA6IEZpbGVTeXN0ZW1FbnRyeShjb250ZXh0LCBmaWxlc3lzdGVtLCB2aXJ0dWFsUGF0
aCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaAppbmRleCA5NzY0OGM0YjI4OWY1MjM5MWM5NjE1
N2FmYWU5NmVhY2M3MjFmMjMxLi5jOGQxOGMyNmJlYjNkYTYyNWFjOWFkNjAwNzY1ZjUyNTdjYWVj
MmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5
c3RlbURpcmVjdG9yeUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVz
YXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oCkBAIC0zNiwxMCArMzYsNyBAQCBjbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkg
ZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUVudHJ5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIERPTUZpbGVTeXN0ZW0mIGZpbGVzeXN0ZW0sIGNvbnN0IFN0cmluZyYgdmlydHVh
bFBhdGgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkoY29udGV4dCwgZmlsZXN5c3RlbSwgdmlydHVhbFBhdGgpKTsKLSAgICB9Cisg
ICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgRE9NRmlsZVN5c3RlbSYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgUmVm
PEZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXI+IGNyZWF0ZVJlYWRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRW50cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBp
L0ZpbGVTeXN0ZW1FbnRyeS5jcHAKaW5kZXggZGM5ODdhZGFhODQ2NTJjYWQ1Yzc1NWZjNDFiMzli
NDA4OTQxY2E3Zi4uNjRmYWRhNjQ2ZGE3ZDdhMjVmOTI0NmExYTliMmQ2MjFiNmFiYWYzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1F
bnRyeS5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgRmlsZVN5c3RlbUVudHJ5OjpGaWxlU3lzdGVtRW50
cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRE9NRmlsZVN5c3RlbSYKICAgICAs
IG1fbmFtZShGaWxlU3lzdGVtOjpwYXRoRmlsZU5hbWUodmlydHVhbFBhdGgpKQogICAgICwgbV92
aXJ0dWFsUGF0aCh2aXJ0dWFsUGF0aCkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAog
RmlsZVN5c3RlbUVudHJ5Ojp+RmlsZVN5c3RlbUVudHJ5KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50
cnkuY3BwCmluZGV4IDgxMGJjMjM1ZWUxYzA2MzFlZGRhMjlkNWYwOGVlZWY5MzllN2QxNjAuLmNk
MGQzMGE5Nzk4NWJjMWRiODQ2ZTMzM2VlOGI4YmQ5ZDBjOTIxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5j
cHAKQEAgLTM2LDYgKzM2LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUmVmPEZpbGVT
eXN0ZW1GaWxlRW50cnk+IEZpbGVTeXN0ZW1GaWxlRW50cnk6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBET01GaWxlU3lzdGVtJiBmaWxlc3lzdGVtLCBjb25zdCBTdHJp
bmcmIHZpcnR1YWxQYXRoKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBGaWxl
U3lzdGVtRmlsZUVudHJ5KGNvbnRleHQsIGZpbGVzeXN0ZW0sIHZpcnR1YWxQYXRoKSk7CisgICAg
cmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBGaWxl
U3lzdGVtRmlsZUVudHJ5OjpGaWxlU3lzdGVtRmlsZUVudHJ5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIERPTUZpbGVTeXN0ZW0mIGZpbGVzeXN0ZW0sIGNvbnN0IFN0cmluZyYgdmly
dHVhbFBhdGgpCiAgICAgOiBGaWxlU3lzdGVtRW50cnkoY29udGV4dCwgZmlsZXN5c3RlbSwgdmly
dHVhbFBhdGgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNh
cGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVz
YXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaAppbmRleCBhYjk2ZTAyMTQwYmMzY2Y4OTU2YzZkZWJh
YTc0NGMxOGRjMmMyMzE1Li4wMzg4MDM5MTQ3YWU3OWIxMWI2OGNhNGI2NTg1ZGM5OTQxOGNmYjc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3Rl
bUZpbGVFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxl
U3lzdGVtRmlsZUVudHJ5LmgKQEAgLTM1LDEwICszNSw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiAKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlRW50cnkgZmluYWwgOiBwdWJsaWMgRmls
ZVN5c3RlbUVudHJ5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlRW50
cnk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01GaWxlU3lzdGVt
JiBmaWxlc3lzdGVtLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbUZpbGVFbnRyeShjb250ZXh0LCBmaWxlc3lz
dGVtLCB2aXJ0dWFsUGF0aCkpOwotICAgIH0KKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxl
RW50cnk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRE9NRmlsZVN5c3RlbSYsIGNv
bnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBmaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBS
ZWY8RmlsZUNhbGxiYWNrPiYmLCBSZWZQdHI8RXJyb3JDYWxsYmFjaz4mJiA9IG51bGxwdHIpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCmlu
ZGV4IDg4NGM4Yjg3ODM5MTk5MGMzNzc1YzIxYzgzYzAxMTEzY2MwODFhNWMuLmE2MzMxMDhiNTQ3
NzgzOTNmYzU0NzUwMDMyYTlhMmU4NmFkZTdmY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuY3BwCkBAIC00Niw3ICs0Niw2IEBAIEZldGNoQm9k
eU93bmVyOjpGZXRjaEJvZHlPd25lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBz
dGQ6Om9wdGlvbmFsPEZlCiAgICAgLCBtX2JvZHkoV1RGTW92ZShib2R5KSkKICAgICAsIG1faGVh
ZGVycyhXVEZNb3ZlKGhlYWRlcnMpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBG
ZXRjaEJvZHlPd25lcjo6fkZldGNoQm9keU93bmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIuaAppbmRleCA5ZTEwMmNjMTI3NDM3NDc0ZjNmY2MxNjlj
NzU5NGM1YmVhZTQwNTc3Li41Y2E3ZTM5NmM0MjI3MDE5MzU2YjA4MDZlNGVlZGJlOTVlOTI4ZjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCkBA
IC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmV0Y2hCb2R5T3du
ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGZXRjaEJvZHlPd25lcj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGZXRjaEJvZHlPd25lcj4gewogcHVibGljOgot
ICAgIEZldGNoQm9keU93bmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFs
PEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJik7CiAgICAgfkZldGNoQm9keU93bmVy
KCk7CiAKICAgICBib29sIGJvZHlVc2VkKCkgY29uc3QgeyByZXR1cm4gaXNEaXN0dXJiZWQoKTsg
fQpAQCAtNzMsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudFR5cGU7IH0KIAogcHJvdGVjdGVkOgorICAgIEZl
dGNoQm9keU93bmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNo
Qm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4mJik7CisKICAgICBjb25zdCBGZXRjaEJvZHkmIGJv
ZHkoKSBjb25zdCB7IHJldHVybiAqbV9ib2R5OyB9CiAgICAgRmV0Y2hCb2R5JiBib2R5KCkgeyBy
ZXR1cm4gKm1fYm9keTsgfQogICAgIGJvb2wgaXNCb2R5TnVsbCgpIGNvbnN0IHsgcmV0dXJuICFt
X2JvZHk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNw
cAppbmRleCA5MDYxZjUxMzdjODhhNWM4ZjU0MGExMTk4ZjM4NmI1MGIyNWQ3YTYxLi5jNzZmNmM4
YmZhYmIxYTYwYzk2NTI3MTQxMzA4ZjEzNTI5OGQyOThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCkBAIC0yNzUsNiArMjc1LDcgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gRmV0Y2hSZXF1ZXN0OjpzZXRCb2R5KEZldGNoUmVxdWVzdCYgcmVxdWVzdCkK
IEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJbmZvJiYgaW5wdXQsIEluaXQmJiBpbml0KQog
ewogICAgIGF1dG8gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KGNvbnRleHQs
IHN0ZDo6bnVsbG9wdCwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6
UmVxdWVzdCksIHsgfSwgeyB9LCB7IH0pKTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQo
KTsKIAogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFN0cmluZz4oaW5wdXQpKSB7CiAg
ICAgICAgIGF1dG8gcmVzdWx0ID0gcmVxdWVzdC0+aW5pdGlhbGl6ZVdpdGgoc3RkOjpnZXQ8U3Ry
aW5nPihpbnB1dCksIFdURk1vdmUoaW5pdCkpOwpAQCAtMjg5LDYgKzI5MCwxMyBAQCBFeGNlcHRp
b25PcjxSZWY8RmV0Y2hSZXF1ZXN0Pj4gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udAogICAgIHJldHVybiByZXF1ZXN0OwogfQogCitSZWY8RmV0Y2hSZXF1
ZXN0PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhl
YWRlcnMsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMs
IFN0cmluZyYmIHJlZmVycmVyKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBG
ZXRjaFJlcXVlc3QoY29udGV4dCwgV1RGTW92ZShib2R5KSwgV1RGTW92ZShoZWFkZXJzKSwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShyZWZlcnJlcikpKTsKKyAg
ICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFN0
cmluZyBGZXRjaFJlcXVlc3Q6OnJlZmVycmVyKCkgY29uc3QKIHsKICAgICBpZiAobV9yZWZlcnJl
ciA9PSAibm8tcmVmZXJyZXIiKQpAQCAtMzI0LDYgKzMzMiw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxG
ZXRjaFJlcXVlc3Q+PiBGZXRjaFJlcXVlc3Q6OmNsb25lKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRlCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCb2R5IGlzIGRp
c3R1cmJlZCBvciBsb2NrZWQiX3MgfTsKIAogICAgIGF1dG8gY2xvbmUgPSBhZG9wdFJlZigqbmV3
IEZldGNoUmVxdWVzdChjb250ZXh0LCBzdGQ6Om51bGxvcHQsIEZldGNoSGVhZGVyczo6Y3JlYXRl
KG1faGVhZGVycy5nZXQoKSksIFJlc291cmNlUmVxdWVzdCB7IG1fcmVxdWVzdCB9LCBGZXRjaE9w
dGlvbnMgeyBtX29wdGlvbnMgfSwgU3RyaW5nIHsgbV9yZWZlcnJlciB9KSk7CisgICAgY2xvbmUt
PnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIGNsb25lLT5jbG9uZUJvZHkoKnRoaXMpOwogICAgIGNs
b25lLT5zZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIobV9uYXZpZ2F0aW9uUHJlbG9hZElk
ZW50aWZpZXIpOwogICAgIGNsb25lLT5tX3NpZ25hbC0+c2lnbmFsRm9sbG93KG1fc2lnbmFsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCmluZGV4IDg2MDk5
ZDkzZDU3MDE2ZjhhYmM3YWFjNzlhMTlmNWNhZjkzODI5NDYuLmY0OTA1ZDgxMTNlNTJmMjZlYTkz
MDVlNWY1YjZiMTQ4NGQ4M2Y0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlcXVlc3QuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVkaXJl
Y3QgPSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxGZXRjaFJlcXVlc3Q+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEluZm8mJiwg
SW5pdCYmKTsKLSAgICBzdGF0aWMgUmVmPEZldGNoUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIHN0ZDo6b3B0aW9uYWw8RmV0Y2hCb2R5PiYmIGJvZHksIFJl
ZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0
Y2hPcHRpb25zJiYgb3B0aW9ucywgU3RyaW5nJiYgcmVmZXJyZXIpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRmV0Y2hSZXF1ZXN0KGNvbnRleHQsIFdURk1vdmUoYm9keSksIFdURk1vdmUoaGVhZGVy
cyksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocmVmZXJyZXIp
KSk7IH0KKyAgICBzdGF0aWMgUmVmPEZldGNoUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4mJiwgUmVmPEZldGNoSGVhZGVycz4m
JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmLCBTdHJpbmcmJiByZWZlcnJlcik7
CiAKICAgICBjb25zdCBTdHJpbmcmIG1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC5o
dHRwTWV0aG9kKCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHVybFN0cmluZygpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggYzgx
MDgyZjU5NDVhYmRmZWU0NDI5NzdiZTI1OTM4NWJjMjJkYjM5MS4uMGU3YjAwNWU4OWEzZDE3NDBi
MWNmOWFkZmY4YjRmMmYyZmM0M2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC01NSw2ICs1NSw3IEBAIFJlZjxGZXRjaFJlc3BvbnNl
PiBGZXRjaFJlc3BvbnNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
c3RkOjpvCiAgICAgYXV0byBoZWFkZXJzID0gaXNPcGFxdWUgPyBGZXRjaEhlYWRlcnM6OmNyZWF0
ZShndWFyZCkgOiBGZXRjaEhlYWRlcnM6OmNyZWF0ZShndWFyZCwgSFRUUEhlYWRlck1hcCB7IHJl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKSB9KTsKIAogICAgIGF1dG8gZmV0Y2hSZXNwb25zZSA9
IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCBXVEZNb3ZlKGJvZHkpLCBXVEZN
b3ZlKGhlYWRlcnMpLCBXVEZNb3ZlKHJlc3BvbnNlKSkpOworICAgIGZldGNoUmVzcG9uc2UtPnN1
c3BlbmRJZk5lZWRlZCgpOwogICAgIGZldGNoUmVzcG9uc2UtPnVwZGF0ZUNvbnRlbnRUeXBlKCk7
CiAgICAgaWYgKCFpc1N5bnRoZXRpYykKICAgICAgICAgZmV0Y2hSZXNwb25zZS0+bV9maWx0ZXJl
ZFJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZUJhc2U6OmZpbHRlcihmZXRjaFJlc3BvbnNlLT5t
X2ludGVybmFsUmVzcG9uc2UsIFJlc291cmNlUmVzcG9uc2U6OlBlcmZvcm1FeHBvc2VBbGxIZWFk
ZXJzQ2hlY2s6Olllcyk7CkBAIC0xMjcsNiArMTI4LDcgQEAgRXhjZXB0aW9uT3I8UmVmPEZldGNo
UmVzcG9uc2U+PiBGZXRjaFJlc3BvbnNlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y28KICAgICAKICAgICAvLyAxMi4gUmV0dXJuIHIuCiAgICAgYXV0byByID0gYWRvcHRSZWYoKm5l
dyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIFdURk1vdmUoZXh0cmFjdGVkQm9keSksIFdURk1vdmUo
aGVhZGVycyksIHsgfSkpOworICAgIHItPnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAgci0+bV9j
b250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOwogICAgIGF1dG8gbWltZVR5cGUgPSBleHRyYWN0TUlN
RVR5cGVGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKTsKQEAgLTE0Miw2ICsxNDQsNyBAQCBFeGNl
cHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVzcG9uc2U6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjbwogUmVmPEZldGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6OmVy
cm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgYXV0byByZXNwb25z
ZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCB7IH0sIEZldGNoSGVhZGVy
czo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOworICAgIHJl
c3BvbnNlLT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXNwb25zZS0+bV9pbnRlcm5hbFJlc3Bv
bnNlLnNldFR5cGUoVHlwZTo6RXJyb3IpOwogICAgIHJldHVybiByZXNwb25zZTsKIH0KQEAgLTE1
Nyw2ICsxNjAsNyBAQCBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IEZldGNoUmVzcG9u
c2U6OnJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmCiAgICAgaWYgKCFSZXNvdXJjZVJl
c3BvbnNlOjppc1JlZGlyZWN0aW9uU3RhdHVzQ29kZShzdGF0dXMpKQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgbWFrZVN0cmluZygiU3RhdHVzIGNvZGUgIiwgc3RhdHVz
LCAiaXMgbm90IGEgcmVkaXJlY3Rpb24gc3RhdHVzIGNvZGUiKSB9OwogICAgIGF1dG8gcmVkaXJl
Y3RSZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCB7IH0sIEZl
dGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkp
OworICAgIHJlZGlyZWN0UmVzcG9uc2UtPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIHJlZGlyZWN0
UmVzcG9uc2UtPm1faW50ZXJuYWxSZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShzdGF0dXMpOwog
ICAgIHJlZGlyZWN0UmVzcG9uc2UtPm1faW50ZXJuYWxSZXNwb25zZS5zZXRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkxvY2F0aW9uLCByZXF1ZXN0VVJMLnN0cmluZygpKTsKICAgICBy
ZWRpcmVjdFJlc3BvbnNlLT5tX2hlYWRlcnMtPmZhc3RTZXQoSFRUUEhlYWRlck5hbWU6OkxvY2F0
aW9uLCByZXF1ZXN0VVJMLnN0cmluZygpKTsKQEAgLTI1MSw2ICsyNTUsNyBAQCB2b2lkIEZldGNo
UmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVx
dWVzdCYgcmVxdWVzdAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEZldGNoKGNv
bnRleHQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpOwogCiAgICAgYXV0byByZXNwb25zZSA9IGFk
b3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShjb250ZXh0LCBGZXRjaEJvZHkgeyB9LCBGZXRjaEhl
YWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpLCB7IH0pKTsKKyAg
ICByZXNwb25zZS0+c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICByZXNwb25zZS0+Ym9keSgpLmNv
bnN1bWVyKCkuc2V0QXNMb2FkaW5nKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmNwcAppbmRleCBjOTdkYTlhY2E5NTYwYzFhNjkzZjg4MjY2Y2Q5ZTYwNGExOTNhNGMw
Li4yYjU3ZWNjMTM0MTg4NjY3YWM1NDQyMzE4YWU4ZDk1ZmYwNjNmN2RmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCkBAIC0zOCw3ICszOCw5IEBAIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKTsKIAogUmVmPEZp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IEZp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoY29udGV4dCwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmll
ciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Rmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1GaWxlSGFuZGxlLmNwcAppbmRleCA4ZjFmYjVmZGU3MWEzOWE2ZmEyN2E2NjFmNmZmY2QzMTU2
NDkzMTEyLi43ZDY1ZDNmZTNlYWFjOWE2MTcwZWU2NmQ5MDk3N2Y2ZjUxNTk2YTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTQxLDcgKzQxLDkgQEAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKIAogUmVmPEZpbGVTeXN0ZW1G
aWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlv
bikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRmlsZUhhbmRsZShjb250
ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7Cisg
ICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKGNvbnRl
eHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAg
ICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIEZp
bGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXggYjVjNWI5NWI0MmU3Yjk1ZThkMTFkZDk2
ZmM3YjY4ZWNjNGYwNTFmMS4uZTgxZDI0ODhhYzY4NTUxMzE4MzBkOWU4ODI3MzZkMTE0MDA0MzI1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAtNDEsNyArNDEsNiBAQCBGaWxlU3lzdGVt
SGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEZpbGVTeXN0ZW1IYQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
IH0KIAogRmlsZVN5c3RlbUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUoKSA9IGRlZmF1bHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZl
ckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXJMaXN0LmNwcAppbmRleCA3NjUwYjViM2FjZjhjNjllZmU2ZTI3ZGJkYTVlNDJhNTUzYWE5OTcz
Li45ODM4YzIwMmJlNzVlMDgwYTE3ZGI2MGYzZWNiODBiZjA4MmU3MGRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5j
cHAKQEAgLTQyLDEwICs0MiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChTb3VyY2VCdWZmZXJMaXN0KTsKIAorUmVmPFNvdXJjZUJ1ZmZlckxp
c3Q+IFNvdXJjZUJ1ZmZlckxpc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBTb3VyY2VCdWZmZXJMaXN0
KGNvbnRleHQpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKIFNvdXJjZUJ1ZmZlckxpc3Q6OlNvdXJjZUJ1ZmZlckxpc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQog
ewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBTb3VyY2VCdWZmZXJMaXN0Ojp+U291cmNl
QnVmZmVyTGlzdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyTGlzdC5oCmluZGV4IGI3ZWFiYzY0ZjUwMjI3MTBjNmNlYTNkNmUwZTRk
ZTg0NGEzZGZjMTUuLmZjNmUwNzNhYjkwZTc2ZDE4MTVmODg5NmI2ZjY2MDk2ZGYyZmRkZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyTGlzdC5oCkBAIC00NCwxMCArNDQsNyBAQCBjbGFzcyBTb3VyY2VCdWZmZXI7CiBjbGFzcyBT
b3VyY2VCdWZmZXJMaXN0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyTGlz
dD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2Jq
ZWN0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNvdXJjZUJ1ZmZlckxpc3QpOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8U291cmNlQnVmZmVyTGlzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTb3VyY2VCdWZmZXJMaXN0KGNvbnRleHQpKTsKLSAgICB9CisgICAgc3RhdGljIFJlZjxTb3Vy
Y2VCdWZmZXJMaXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogICAgIHZpcnR1
YWwgflNvdXJjZUJ1ZmZlckxpc3QoKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9saXN0LnNpemUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCmluZGV4IGVmMjFiMTJkZjMwOGI4MGYy
MTI5NzQwMzNhNGI4ODBjOWFmYzAyMTUuLjcxNWVmNmI0ZjRkMWJhMDYwYWVmNzZhMzEwNGE5NmUx
NTY1ZjU4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKQEAgLTU5LDggKzU5LDYgQEAgaW5saW5lIE1lZGlhRGV2aWNlczo6
TWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAsIG1fZXZlbnROYW1lcyhldmVu
dE5hbWVzKCkpCiAgICAgLCBtX2dyb3VwSWRIYXNoU2FsdChjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0KICAgICBzdGF0aWNfYXNzZXJ0KHN0
YXRpY19jYXN0PHNpemVfdD4oTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBl
OjpNb25pdG9yKSA9PSBzdGF0aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpNb25pdG9yKSwgIk1lZGlhRGV2aWNlczo6RGlzcGxh
eUNhcHR1cmVTdXJmYWNlVHlwZTo6TW9uaXRvciBpcyBub3QgZXF1YWwgdG8gUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6Ok1vbml0b3IgYXMgZXhwZWN0ZWQi
KTsKICAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oTWVkaWFEZXZpY2VzOjpE
aXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpXaW5kb3cpID09IHN0YXRpY19jYXN0PHNpemVfdD4o
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6OldpbmRvdyks
ICJNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OldpbmRvdyBpcyBub3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6OldpbmRvdyBh
cyBleHBlY3RlZCIpOwogICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRp
YURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OkFwcGxpY2F0aW9uKSA9PSBzdGF0
aWNfY2FzdDxzaXplX3Q+KFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZh
Y2VUeXBlOjpBcHBsaWNhdGlvbiksICJNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFj
ZVR5cGU6OkFwcGxpY2F0aW9uIGlzIG5vdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRp
c3BsYXlTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24gYXMgZXhwZWN0ZWQiKTsKQEAgLTgxLDcgKzc5
LDkgQEAgdm9pZCBNZWRpYURldmljZXM6OnN0b3AoKQogCiBSZWY8TWVkaWFEZXZpY2VzPiBNZWRp
YURldmljZXM6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTWVkaWFEZXZpY2VzKGRvY3VtZW50KSk7CisgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IE1lZGlhRGV2aWNlcyhkb2N1bWVudCkpOworICAgIHJlc3VsdC0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogRG9jdW1lbnQqIE1lZGlhRGV2aWNl
czo6ZG9jdW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRFRNRlNlbmRlci5jcHAKaW5kZXggMDBiMjBhNjRhN2FmYmNhMTc1ZDNkZWQw
YTNlY2IyOWZjNGI3OWRlMi4uYWM2NmM1ZWFjMzc4YzI5NzYzYWU0MjM1NWZjYjM3ZWIyZjQxYjVj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1G
U2VuZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuY3BwCkBAIC00Miw2ICs0MiwxMyBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pblRv
bmVEdXJhdGlvbk1zID0gNDA7CiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heFRvbmVEdXJhdGlvbk1z
ID0gNjAwMDsKIHN0YXRpYyBjb25zdCBzaXplX3QgbWluSW50ZXJUb25lR2FwTXMgPSAzMDsKIAor
UmVmPFJUQ0RUTUZTZW5kZXI+IFJUQ0RUTUZTZW5kZXI6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBSVENSdHBTZW5kZXImIHNlbmRlciwgc3RkOjp1bmlxdWVfcHRyPFJU
Q0RUTUZTZW5kZXJCYWNrZW5kPiYmIGJhY2tlbmQpCit7CisgICAgYXV0byByZXN1bHQgPSBhZG9w
dFJlZigqbmV3IFJUQ0RUTUZTZW5kZXIoY29udGV4dCwgc2VuZGVyLCBXVEZNb3ZlKGJhY2tlbmQp
KSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiBSVENEVE1GU2VuZGVyOjpSVENEVE1GU2VuZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFJUQ1J0cFNlbmRlciYgc2VuZGVyLCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRFRNRlNl
bmRlckJhY2tlbmQ+JiYgYmFja2VuZCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkK
ICAgICAsIG1fdG9uZVRpbWVyKCp0aGlzLCAmUlRDRFRNRlNlbmRlcjo6dG9uZVRpbWVyRmlyZWQp
CkBAIC01MSw4ICs1OCw2IEBAIFJUQ0RUTUZTZW5kZXI6OlJUQ0RUTUZTZW5kZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgUlRDUnRwU2VuZGVyJiBzZW5kCiAgICAgbV9iYWNrZW5k
LT5vblRvbmVQbGF5ZWQoW3RoaXNdKGNvbnN0IFN0cmluZyYpIHsKICAgICAgICAgb25Ub25lUGxh
eWVkKCk7CiAgICAgfSk7Ci0KLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogUlRDRFRNRlNl
bmRlcjo6flJUQ0RUTUZTZW5kZXIoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCmluZGV4IDU4YjZiNzIyNGMwNjBh
Y2U2OGJlNTc0MmM2YWFhM2FiOGI2YjBhZTQuLjUxMjVkNjE0ZDBiNDQzNDEyMTU1MTcwMzZmYWZj
NTdlODgyMTVkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFJUQ1J0cFNlbmRlcjsK
IGNsYXNzIFJUQ0RUTUZTZW5kZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENEVE1GU2Vu
ZGVyPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01P
YmplY3QgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUlRDRFRNRlNlbmRlcik7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSVENEVE1GU2VuZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgUlRDUnRwU2VuZGVyJiBzZW5kZXIsIHN0ZDo6dW5pcXVlX3B0cjxS
VENEVE1GU2VuZGVyQmFja2VuZD4mJiBiYWNrZW5kKSB7IHJldHVybiBhZG9wdFJlZigqIG5ldyBS
VENEVE1GU2VuZGVyKGNvbnRleHQsIHNlbmRlciwgV1RGTW92ZShiYWNrZW5kKSkpOyB9CisgICAg
c3RhdGljIFJlZjxSVENEVE1GU2VuZGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IFJUQ1J0cFNlbmRlciYsIHN0ZDo6dW5pcXVlX3B0cjxSVENEVE1GU2VuZGVyQmFja2VuZD4mJik7
CiAgICAgdmlydHVhbCB+UlRDRFRNRlNlbmRlcigpOwogCiAgICAgYm9vbCBjYW5JbnNlcnREVE1G
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0R0bHNUcmFuc3BvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENEdGxzVHJhbnNwb3J0LmNwcAppbmRleCA1OTRkYmY4NjhiNzY5ODhkNDY4ZmU4Y2MwOTBj
NDA5NTQ2NGFiMzllLi5iNzhkNDNlNzg3MDkzNWNlOTE5ZTNiN2ZjOGNhMTBjMGI0MDgwNzgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFu
c3BvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRHRs
c1RyYW5zcG9ydC5jcHAKQEAgLTQyLDEyICs0MiwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSVENEdGxzVHJhbnNwb3J0KTsKIAorUmVmPFJU
Q0R0bHNUcmFuc3BvcnQ+IFJUQ0R0bHNUcmFuc3BvcnQ6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDRHRsc1RyYW5zcG9ydEJhY2tlbmQ+JiYgYmFj
a2VuZCwgUmVmPFJUQ0ljZVRyYW5zcG9ydD4mJiBpY2VUcmFuc3BvcnQpCit7CisgICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IFJUQ0R0bHNUcmFuc3BvcnQoY29udGV4dCwgV1RGTW92ZShi
YWNrZW5kKSwgV1RGTW92ZShpY2VUcmFuc3BvcnQpKSk7CisgICAgcmVzdWx0LT5zdXNwZW5kSWZO
ZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBSVENEdGxzVHJhbnNwb3J0OjpSVENE
dGxzVHJhbnNwb3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJlZjxS
VENEdGxzVHJhbnNwb3J0QmFja2VuZD4mJiBiYWNrZW5kLCBSZWY8UlRDSWNlVHJhbnNwb3J0PiYm
IGljZVRyYW5zcG9ydCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1f
YmFja2VuZChXVEZNb3ZlKGJhY2tlbmQpKQogICAgICwgbV9pY2VUcmFuc3BvcnQoV1RGTW92ZShp
Y2VUcmFuc3BvcnQpKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG1fYmFja2VuZC0+
cmVnaXN0ZXJDbGllbnQoKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0R0bHNUcmFuc3BvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5oCmluZGV4IDJkNDI3ZDAzZDk3NjRj
MDNkYThhMGQyN2UzNzFkMWNjMTQyZTQxZWEuLjBlNTAyMTE3ZTg0ZjgwZjE4ZGE0NTJkODJjMGFm
MzcyYjY3ODNlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRHRsc1RyYW5zcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRHRsc1RyYW5zcG9ydC5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBSVENEdGxzVHJhbnNwb3J0IGZpbmFsIDogcHVibGljIFJl
ZkNvdW50ZWQ8UlRDRHRsc1RyYW5zcG9ydD4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgUlRDRHRsc1RyYW5zcG9ydEJhY2tl
bmQ6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSVENEdGxzVHJhbnNwb3J0
KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ0R0bHNUcmFuc3BvcnQ+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBVbmlxdWVSZWY8UlRDRHRsc1RyYW5zcG9ydEJh
Y2tlbmQ+JiYgYmFja2VuZCwgUmVmPFJUQ0ljZVRyYW5zcG9ydD4mJiBpY2VUcmFuc3BvcnQpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRHRsc1RyYW5zcG9ydChjb250ZXh0LCBXVEZNb3ZlKGJh
Y2tlbmQpLCBXVEZNb3ZlKGljZVRyYW5zcG9ydCkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRHRs
c1RyYW5zcG9ydD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBVbmlxdWVSZWY8UlRD
RHRsc1RyYW5zcG9ydEJhY2tlbmQ+JiYsIFJlZjxSVENJY2VUcmFuc3BvcnQ+JiYpOwogICAgIH5S
VENEdGxzVHJhbnNwb3J0KCk7CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ0R0bHNUcmFuc3Bv
cnQ+OjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0ljZVRyYW5zcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0ljZVRyYW5zcG9ydC5jcHAKaW5kZXggOGRkYWViYmQxYzg2YTA2ZDkwZjZkNTViZTUwMWJi
MzkxM2U1NDQ0Ni4uNTdjZjEzOWYyZTAwMjM4MTE4MTljYjBjMjIwZDdkMGZmMjVmMDY5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3Bv
cnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJh
bnNwb3J0LmNwcApAQCAtMzcsMTIgKzM3LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJUQ0ljZVRyYW5zcG9ydCk7CiAKK1JlZjxSVENJY2VU
cmFuc3BvcnQ+IFJUQ0ljZVRyYW5zcG9ydDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFVuaXF1ZVJlZjxSVENJY2VUcmFuc3BvcnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJU
Q1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRS
ZWYoKm5ldyBSVENJY2VUcmFuc3BvcnQoY29udGV4dCwgV1RGTW92ZShiYWNrZW5kKSwgY29ubmVj
dGlvbikpOworICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogUlRDSWNlVHJhbnNwb3J0OjpSVENJY2VUcmFuc3BvcnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ0ljZVRyYW5zcG9ydEJhY2tlbmQ+JiYgYmFj
a2VuZCwgUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgOiBBY3RpdmVET01PYmpl
Y3QoJmNvbnRleHQpCiAgICAgLCBtX2JhY2tlbmQoV1RGTW92ZShiYWNrZW5kKSkKICAgICAsIG1f
Y29ubmVjdGlvbihjb25uZWN0aW9uKQogewotICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG1f
YmFja2VuZC0+cmVnaXN0ZXJDbGllbnQoKnRoaXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaAppbmRleCAyODI2ZDMz
YmU1YjgyZGI1NDEwZTE3ZWUwZjIzYTUzZThmOGU5ZWY4Li4wMjgxYzdiYjYyN2U4YWUzZWJmNmEz
YjljZmMyZmU3ZjkzZmRhNTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmgKQEAgLTQ5LDEwICs0OSw3IEBAIGNsYXNzIFJU
Q1BlZXJDb25uZWN0aW9uOwogY2xhc3MgUlRDSWNlVHJhbnNwb3J0IDogcHVibGljIFJlZkNvdW50
ZWQ8UlRDSWNlVHJhbnNwb3J0PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBSVENJY2VUcmFuc3BvcnRCYWNrZW5kOjpDbGll
bnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoUlRDSWNlVHJhbnNwb3J0KTsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFJUQ0ljZVRyYW5zcG9ydD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFVuaXF1ZVJlZjxSVENJY2VUcmFuc3BvcnRCYWNrZW5kPiYmIGJh
Y2tlbmQsIFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUlRDSWNlVHJhbnNwb3J0KGNvbnRleHQsIFdURk1vdmUoYmFja2Vu
ZCksIGNvbm5lY3Rpb24pKTsKLSAgICB9CisgICAgc3RhdGljIFJlZjxSVENJY2VUcmFuc3BvcnQ+
IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgVW5pcXVlUmVmPFJUQ0ljZVRyYW5zcG9y
dEJhY2tlbmQ+JiYsIFJUQ1BlZXJDb25uZWN0aW9uJik7CiAgICAgflJUQ0ljZVRyYW5zcG9ydCgp
OwogCiAgICAgUlRDSWNlVHJhbnNwb3J0U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3Ry
YW5zcG9ydFN0YXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKaW5kZXggODM0MjA3MGNhY2Jm
YzI0MzY5ZWNhMzExZjFkMzg2NDg0YzliYTIyOS4uMWFmYWQzNDE2NmJkNTlmMWU0YjE3ODNmNzUw
N2JjZjdiOGVlNWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcApAQCAtNTAsMTIgKzUwLDE3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybSk7CiAKK1JlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+IFJUQ1J0
cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtKGNvbnRleHQsIG9wdGlvbnMpKTsKKyAgICByZXN1bHQtPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFJUQ1J0cFNGcmFtZVRyYW5z
Zm9ybTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIE9wdGlvbnMgb3B0aW9ucykKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAg
ICAsIG1fdHJhbnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZShvcHRpb25z
LmNvbXBhdGliaWxpdHlNb2RlKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLQogICAgIG1f
dHJhbnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhvcHRpb25zLnJvbGUgPT0gUm9sZTo6RW5jcnlw
dCk7CiAgICAgbV90cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRpb25TaXplKG9wdGlvbnMuYXV0
aGVudGljYXRpb25TaXplKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oCmluZGV4IDZkMTdiMGZhOGY3
NGQ0ODY0MTRmNzMzNjM2NGQxZGFjNmYzMzFjNmIuLjVmMWYxMTFlMzk0ZTE0ZmMxZDE3MjZlOGI2
NmIwZjIwNDc2OGZkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgICAgIENvbXBhdGliaWxpdHlNb2RlIGNvbXBhdGliaWxpdHlNb2RlIHsgQ29t
cGF0aWJpbGl0eU1vZGU6Ok5vbmUgfTsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxSVENSdHBT
RnJhbWVUcmFuc2Zvcm0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBP
cHRpb25zIG9wdGlvbnMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtKGNvbnRleHQsIG9wdGlvbnMpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE9wdGlvbnMpOwogICAgIH5S
VENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKIAogICAgIHZvaWQgc2V0RW5jcnlwdGlvbktleShDcnlw
dG9LZXkmLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
Y3RwVHJhbnNwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2N0cFRyYW5zcG9ydC5jcHAKaW5kZXggMmQzNmIxNzZjZTk2Njk1YTEwZmFmMGQwZWFiMjE4NWIx
NWI1YjBlOS4uMjc4OTAzYjIyYmIzNTM5YzNmZmI1Mjc5NDY3M2I5MTExNjRiMTE3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTY3RwVHJhbnNwb3J0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFu
c3BvcnQuY3BwCkBAIC0zOCwxMiArMzgsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUlRDU2N0cFRyYW5zcG9ydCk7CiAKK1JlZjxSVENTY3Rw
VHJhbnNwb3J0PiBSVENTY3RwVHJhbnNwb3J0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmIGJhY2tlbmQs
IFJlZjxSVENEdGxzVHJhbnNwb3J0PiYmIHRyYW5zcG9ydCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9
IGFkb3B0UmVmKCpuZXcgUlRDU2N0cFRyYW5zcG9ydChjb250ZXh0LCBXVEZNb3ZlKGJhY2tlbmQp
LCBXVEZNb3ZlKHRyYW5zcG9ydCkpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKIFJUQ1NjdHBUcmFuc3BvcnQ6OlJUQ1NjdHBUcmFuc3Bv
cnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVW5pcXVlUmVmPFJUQ1NjdHBUcmFu
c3BvcnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJlZjxSVENEdGxzVHJhbnNwb3J0ID4mJiB0cmFuc3Bv
cnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBtX2JhY2tlbmQoV1RG
TW92ZShiYWNrZW5kKSkKICAgICAsIG1fdHJhbnNwb3J0KFdURk1vdmUodHJhbnNwb3J0KSkKIHsK
LSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKICAgICBtX2JhY2tlbmQtPnJlZ2lzdGVyQ2xpZW50KCp0
aGlzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTY3RwVHJhbnNwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1NjdHBUcmFuc3BvcnQuaAppbmRleCA3YjAwNGY1ZjAzYzM3ZmYyYzY0ZjRkYzRmMjU1YTUy
YTdhZDc4MTVlLi5lYzM3NDViOTdhMWEzMTk5M2Y1ZjgyMjBiNTYyZmYxODJjNmY1MTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFuc3Bv
cnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1NjdHBUcmFu
c3BvcnQuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBSVENEdGxzVHJhbnNwb3J0OwogY2xhc3Mg
UlRDU2N0cFRyYW5zcG9ydCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1NjdHBUcmFuc3Bv
cnQ+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSwgcHVibGljIFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kOjpDbGllbnQgewogICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoUlRDU2N0cFRyYW5zcG9ydCk7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxSVENTY3RwVHJhbnNwb3J0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgVW5pcXVlUmVmPFJUQ1NjdHBUcmFuc3BvcnRCYWNrZW5kPiYmIGJhY2tlbmQsIFJlZjxS
VENEdGxzVHJhbnNwb3J0PiYmIHRyYW5zcG9ydCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENT
Y3RwVHJhbnNwb3J0KGNvbnRleHQsIFdURk1vdmUoYmFja2VuZCksIFdURk1vdmUodHJhbnNwb3J0
KSkpOyB9CisgICAgc3RhdGljIFJlZjxSVENTY3RwVHJhbnNwb3J0PiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFVuaXF1ZVJlZjxSVENTY3RwVHJhbnNwb3J0QmFja2VuZD4mJiwgUmVm
PFJUQ0R0bHNUcmFuc3BvcnQ+JiYpOwogICAgIH5SVENTY3RwVHJhbnNwb3J0KCk7CiAKICAgICB1
c2luZyBSZWZDb3VudGVkPFJUQ1NjdHBUcmFuc3BvcnQ+OjpyZWY7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAK
aW5kZXggYjI3MTg4NjA2YWNkNzNmYTZhOGU5YzlkY2E2MGU4NTE0ZjQxZTBlOS4uMjFjZGMyMTU1
ZWUxYTg3M2JkMmZkMzNkZTA0MTUyZjIwM2Q0OGZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcApAQCAt
NDIsMTMgKzQyLDEzIEBAIFBheW1lbnRSZXNwb25zZTo6UGF5bWVudFJlc3BvbnNlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBheW1lbnRSZXF1ZXN0CiAgICAgOiBBY3RpdmVET01P
YmplY3QgeyBjb250ZXh0IH0KICAgICAsIG1fcmVxdWVzdCB7IHJlcXVlc3QgfQogewotICAgIHN1
c3BlbmRJZk5lZWRlZCgpOwogfQogCiB2b2lkIFBheW1lbnRSZXNwb25zZTo6ZmluaXNoQ29uc3Ry
dWN0aW9uKCkKIHsKICAgICBBU1NFUlQoIWhhc1BlbmRpbmdBY3Rpdml0eSgpKTsKICAgICBtX3Bl
bmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOworICAgIHN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBQYXltZW50UmVzcG9uc2U6On5QYXltZW50UmVzcG9uc2UoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRl
eHQuY3BwCmluZGV4IDE3MDg0NDE2ODQzNGM0YTczMjRkN2M4MjcxZTdiZDI0ZGZmNTIxM2MuLmZl
MTgxYmE5M2ZiNGVmZGM5NDFjYzk1ZjM2MzZjNjBlYmZmOGE2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKQEAg
LTk3LDkgKzk3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRGF0YWJhc2VDb250ZXh0OjpEYXRh
YmFzZUNvbnRleHQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRv
Y3VtZW50KQogewotICAgIC8vIEFjdGl2ZURPTU9iamVjdCBleHBlY3RzIHRoaXMgdG8gYmUgY2Fs
bGVkIHRvIHNldCBpbnRlcm5hbCBmbGFncy4KLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLQogICAg
IEFTU0VSVCghZG9jdW1lbnQuZGF0YWJhc2VDb250ZXh0KCkpOwogICAgIGRvY3VtZW50LnNldERh
dGFiYXNlQ29udGV4dCh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA5YWYwMjNhMjBkMjNiMDVi
N2M4ZWU0OTQ2NTU3YWI1NmMyMjIyMzM4Li41Y2NiMDk0MjA3ZWQwN2YxMTExMDk4MzAyZmFkM2Jm
ZGZlN2RmZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC0xMDIsNyArMTAyLDkgQEAgUmVmPERhdGFiYXNl
Q29udGV4dD4gRGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFzZUNvbnRleHQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIGlmIChhdXRvIGRhdGFiYXNlQ29udGV4dCA9IGRvY3VtZW50LmRhdGFiYXNl
Q29udGV4dCgpKQogICAgICAgICByZXR1cm4gKmRhdGFiYXNlQ29udGV4dDsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEYXRhYmFzZUNvbnRleHQoZG9jdW1lbnQpKTsKKyAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFJlZigqbmV3IERhdGFiYXNlQ29udGV4dChkb2N1bWVudCkpOworICAgIGNvbnRl
eHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiBjb250ZXh0OwogfQogCiAjaWYgTE9H
X0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IGI4ODZiNzcwNGEx
NGRmNTY3N2E0ZDE2YmNiY2U1ODlkMGE1MjNlZWIuLjU0MDNhMTExMzY5Y2VkOTA3NGQzZTg0ZDk1
NTJlNTdlNGI4NGI0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRt
YXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC02NTUs
NiArNjU1LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5h
Y3RpdmVET01PYmplY3RzQXJlU3RvcHBlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBhdXRvIHBlbmRpbmdJbWFnZUJpdG1hcCA9IG5ldyBQZW5kaW5nSW1hZ2VCaXRtYXAoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwgV1RGTW92ZShibG9iKSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92
ZShyZWN0KSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgICAgIHBlbmRpbmdJbWFnZUJpdG1hcC0+
c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgICAgIHBlbmRpbmdJbWFnZUJpdG1hcC0+c3RhcnQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgfQogCkBAIC02NjgsNyArNjY5LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKICAgICAgICAgLCBtX2Ny
ZWF0ZUltYWdlQml0bWFwVGltZXIoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsICp0aGlzLCAmUGVu
ZGluZ0ltYWdlQml0bWFwOjpjcmVhdGVJbWFnZUJpdG1hcEFuZFJlc29sdmVQcm9taXNlKQogICAg
IHsKLSAgICAgICAgc3VzcGVuZElmTmVlZGVkKCk7CiAgICAgICAgIG1fY3JlYXRlSW1hZ2VCaXRt
YXBUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvckJhc2UuY3BwCmluZGV4IGNkMmMyNWYwZTcyNDJlZjE2MDI0MTZhNDc5NjdiM2E3M2IxM2E1
OGEuLjYwN2Q4NWU0MzRjYmQyY2FhNjZhNDQ5MWE0NmQ3NjhkMTZmOGMwMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHd0
Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUg
PHd0Zi9OdW1iZXJPZkNvcmVzLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgT1MoTElOVVgpCkBAIC0xNjMsNyArMTY0
LDcgQEAgU2VydmljZVdvcmtlckNvbnRhaW5lciYgTmF2aWdhdG9yQmFzZTo6c2VydmljZVdvcmtl
cigpCiB7CiAgICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSk7CiAgICAgaWYgKCFtX3NlcnZpY2VXb3JrZXJDb250
YWluZXIpCi0gICAgICAgIG1fc2VydmljZVdvcmtlckNvbnRhaW5lciA9IG1ha2VVbmlxdWU8U2Vy
dmljZVdvcmtlckNvbnRhaW5lcj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcyk7Cisg
ICAgICAgIG1fc2VydmljZVdvcmtlckNvbnRhaW5lciA9IFNlcnZpY2VXb3JrZXJDb250YWluZXI6
OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzKS5tb3ZlVG9VbmlxdWVQdHIo
KTsKICAgICByZXR1cm4gKm1fc2VydmljZVdvcmtlckNvbnRhaW5lcjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwCmluZGV4IDg5NDYxNDA5NmYyMjk1MGQ2MTE5YTRhNzk2NzMzMmVlYzdlNjI1MDIuLjA5
OWZkZWU0NmIyZGEwN2UxZGRmOGUxODI4Y2Y2YWQwMjExMmFmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTc1LDEyICs3NSwxNyBAQCBzdGF0aWMgaW5saW5lIFNXQ2xpZW50Q29ubmVjdGlvbiYg
bWFpblRocmVhZENvbm5lY3Rpb24oKQogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2Vy
dmljZVdvcmtlckNvbnRhaW5lcik7CiAKK1VuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyQ29udGFpbmVy
PiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgTmF2aWdhdG9yQmFzZSYgbmF2aWdhdG9yKQoreworICAgIGF1dG8gcmVzdWx0ID0g
VW5pcXVlUmVmKCpuZXcgU2VydmljZVdvcmtlckNvbnRhaW5lcihjb250ZXh0LCBuYXZpZ2F0b3Ip
KTsKKyAgICByZXN1bHQtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OlNlcnZpY2VXb3JrZXJDb250YWluZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTmF2aWdhdG9yQmFzZSYgbmF2aWdhdG9yKQogICAg
IDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX25hdmlnYXRvcihuYXZpZ2F0b3Ip
CiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0gICAgCiAgICAgLy8gV2Ugc2hvdWxkIHF1ZXVl
IG1lc3NhZ2VzIHVudGlsIHRoZSBET01Db250ZW50TG9hZGVkIGV2ZW50IGhhcyBmaXJlZCBvciBz
dGFydE1lc3NhZ2VzKCkgaGFzIGJlZW4gY2FsbGVkLgogICAgIGlmIChpczxEb2N1bWVudD4oY29u
dGV4dCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5wYXJzaW5nKCkpCiAgICAgICAg
IG1fc2hvdWxkRGVmZXJNZXNzYWdlRXZlbnRzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IGE5
YmJiZDgwYmQ0MWI5NDVkNGI4MTM4NGEyYzQyMzhjZjhlNDdhZTMuLmQ5ZDc0NThkNWQxODZkZDNk
ZDViYzhjZTZiYTQ3MjFhYzFlNjEyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIldvcmtlclR5cGUuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTcsNyArNTgsOCBAQCBjbGFzcyBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyIGZpbmFsIDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBBYwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlcnZpY2VXb3JrZXJDb250YWluZXIpOwog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoU2VydmljZVdvcmtlckNvbnRhaW5lcik7CiBwdWJs
aWM6Ci0gICAgU2VydmljZVdvcmtlckNvbnRhaW5lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
TmF2aWdhdG9yQmFzZSYpOworICAgIHN0YXRpYyBVbmlxdWVSZWY8U2VydmljZVdvcmtlckNvbnRh
aW5lcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOYXZpZ2F0b3JCYXNlJik7CisK
ICAgICB+U2VydmljZVdvcmtlckNvbnRhaW5lcigpOwogCiAgICAgU2VydmljZVdvcmtlciogY29u
dHJvbGxlcigpIGNvbnN0OwpAQCAtMTA2LDYgKzEwOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGdl
dE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIE5hdmlnYXRpb25QcmVsb2FkU3RhdGVQcm9taXNlJiYpOwogCiBwcml2YXRlOgorICAgIFNl
cnZpY2VXb3JrZXJDb250YWluZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE5hdmlnYXRvckJh
c2UmKTsKKwogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVu
dFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9u
cyYgPSB7IH0pIGZpbmFsOwogCiAgICAgdm9pZCBzY2hlZHVsZUpvYihzdGQ6OnVuaXF1ZV9wdHI8
U2VydmljZVdvcmtlckpvYj4mJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447447</attachid>
            <date>2021-12-17 04:11:52 -0800</date>
            <delta_ts>2021-12-17 04:23:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211217131151.patch</filename>
            <type>text/plain</type>
            <size>5750</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmNTc4OTdmZDVkOTQx
ZTYxYjRjYzYxMzU4YjEyNzQwZGE3NWUzYS4uZDViOWQ0YWY2NmM3MWJjNDFiMDdkMTdkODZjZjFm
MGRlNzJjNDNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEyLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCA0IHdoZXJlIHdlIGNvbnZlcnQgdGhlIG9ubHkgcmVtYWluaW5nIGNhbGwgdG8gc3VzcGVuZElm
TmVlZGVkKCkgaW4gYSBjb25zdHJ1Y3RvciwgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLAorICAg
ICAgICB0byBiZSBpbiBjcmVhdGUoKSBtZXRob2RzLCBpbiB0aGlzIGNhc2UgQXVkaW9TY2hlZHVs
ZWRTb3VyY2VOb2RlIHN1YmNsYXNzZXMuIFRoaXMgd2FzIHRoZSBmaW5hbCBzdGVwLCBhbGwgMTQ1
CisgICAgICAgIGNhbGxzIHRvIEFjdGl2ZURPTU9iamVjdDo6c3VzcGVuZElmTmVlZGVkKCkgaGF2
ZSBiZWVuIGF1ZGl0ZWQgdG8gbm90IGJlIG1hZGUgd2l0aGluIGEgY29uc3RydWN0b3IuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5v
ZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Db25zdGFudFNvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc3RhbnRTb3VyY2VOb2RlOjpjcmVhdGUpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
T3NjaWxsYXRvck5vZGU6OmNyZWF0ZSk6CisKIDIwMjEtMTItMTcgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdXNwZW5kSWZO
ZWVkZWQoKSBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoaW4gY29uc3RydWN0b3JzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5jcHAKaW5kZXggMjc1YmQyMTE0ZWM0MjFiODMxZGU5OWYwNDVjOGZkYzBlYjIwOGRhOC4u
MzViOGM4MTg3NmE3NjAyNjhhYjkyNTUzOWRmMjUyZjEzZTIyZTc4YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmNwcApAQCAtNjUsNiArNjUsNyBAQCBzdGF0aWMgZmxvYXQgY29tcHV0ZVNhbXBsZVVzaW5nTGlu
ZWFySW50ZXJwb2xhdGlvbihjb25zdCBmbG9hdCogc291cmNlLCB1bnNpZ25lZAogRXhjZXB0aW9u
T3I8UmVmPEF1ZGlvQnVmZmVyU291cmNlTm9kZT4+IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6Y3Jl
YXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIEF1ZGlvQnVmZmVyU291cmNlT3B0aW9ucyYm
IG9wdGlvbnMpCiB7CiAgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5ldyBBdWRpb0J1ZmZlclNv
dXJjZU5vZGUoY29udGV4dCkpOworICAgIG5vZGUtPnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAg
bm9kZS0+c2V0QnVmZmVyRm9yQmluZGluZ3MoV1RGTW92ZShvcHRpb25zLmJ1ZmZlcikpOwogICAg
IG5vZGUtPmRldHVuZSgpLnNldFZhbHVlKG9wdGlvbnMuZGV0dW5lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VO
b2RlLmNwcAppbmRleCA4NjExMjZhODQxOWFiMjJjYTQ5Y2FjMTFiYzA5YWE5ZDJhZWMwMjQ2Li4y
MjI4NGEwMTdkZWRmODMzNWUwNjhlYTRkNzZkZTI2ZTI2ZmZhMWZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJj
ZU5vZGUuY3BwCkBAIC01MSw3ICs1MSw2IEBAIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6QXVk
aW9TY2hlZHVsZWRTb3VyY2VOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIE5vCiAgICAg
OiBBdWRpb05vZGUoY29udGV4dCwgdHlwZSkKICAgICAsIEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKIHsKLSAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0K
IAogdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnVwZGF0ZVNjaGVkdWxpbmdJbmZvKHNp
emVfdCBxdWFudHVtRnJhbWVTaXplLCBBdWRpb0J1cyYgb3V0cHV0QnVzLCBzaXplX3QmIHF1YW50
dW1GcmFtZU9mZnNldCwgc2l6ZV90JiBub25TaWxlbnRGcmFtZXNUb1Byb2Nlc3MsIGRvdWJsZSYg
c3RhcnRGcmFtZU9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCmluZGV4IDY4MDhkMDJiNzU3ODAw
ZTgxODI5YTU5MDk3NDM1ZjQzNDdlNWNiZjAuLjM0NTUwODdkZjI3YTRhZTQ1YWJlZGQ1ZDRkYTQ3
NTMwMjBkM2M0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaApAQCAtNTIsOCArNTIsNiBAQCBwdWJs
aWM6CiAgICAgICAgIFBMQVlJTkdfU1RBVEUgPSAyLAogICAgICAgICBGSU5JU0hFRF9TVEFURSA9
IDMKICAgICB9OwotICAgIAotICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZShCYXNlQXVkaW9D
b250ZXh0JiwgTm9kZVR5cGUpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRMYXRlcihk
b3VibGUgd2hlbik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RvcExhdGVyKGRvdWJsZSB3aGVu
KTsKQEAgLTYzLDYgKzYxLDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzRmluaXNoZWQoKSBjb25z
dCB7IHJldHVybiBtX3BsYXliYWNrU3RhdGUgPT0gRklOSVNIRURfU1RBVEU7IH0KIAogcHJvdGVj
dGVkOgorICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgTm9k
ZVR5cGUpOworCiAgICAgLy8gR2V0IGZyYW1lIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCB0
aW1lIHF1YW50dW0uCiAgICAgLy8gV2UgaGFuZGxlIHRoZSB0cmFuc2l0aW9uIGludG8gUExBWUlO
R19TVEFURSBhbmQgRklOSVNIRURfU1RBVEUgaGVyZSwKICAgICAvLyB6ZXJvaW5nIG91dCBwb3J0
aW9ucyBvZiB0aGUgb3V0cHV0QnVzIHdoaWNoIGFyZSBvdXRzaWRlIHRoZSByYW5nZSBvZiBzdGFy
dEZyYW1lIGFuZCBlbmRGcmFtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQ29uc3RhbnRTb3VyY2VOb2RlLmNwcAppbmRleCA3NGRkYTM3NDgxMDYwZWRjYWY0
ODBhMzc1OGEwNjg3NWQ5NDVkNTVmLi4zY2RmYTk4NDQ2ODE3NjNlNDhkOGRmNjNhOWMxNjFlY2Zk
NTg2ZTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnN0
YW50U291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9D
b25zdGFudFNvdXJjZU5vZGUuY3BwCkBAIC00MSw3ICs0MSw5IEBAIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChDb25zdGFudFNvdXJjZU5vZGUpOwogCiBFeGNlcHRpb25PcjxSZWY8Q29uc3Rh
bnRTb3VyY2VOb2RlPj4gQ29uc3RhbnRTb3VyY2VOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4
dCYgY29udGV4dCwgY29uc3QgQ29uc3RhbnRTb3VyY2VPcHRpb25zJiBvcHRpb25zKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0LCBvcHRpb25z
Lm9mZnNldCkpOworICAgIGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcgQ29uc3RhbnRTb3VyY2VO
b2RlKGNvbnRleHQsIG9wdGlvbnMub2Zmc2V0KSk7CisgICAgbm9kZS0+c3VzcGVuZElmTmVlZGVk
KCk7CisgICAgcmV0dXJuIG5vZGU7CiB9CiAKIENvbnN0YW50U291cmNlTm9kZTo6Q29uc3RhbnRT
b3VyY2VOb2RlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IG9mZnNldCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKaW5k
ZXggOWM2YWVkMTIwMzFlMmViYWNlNWY0NDEyNTJlODQ1MGMxZTliYTcxOC4uYjk3MTI3YTFiZGFl
MzFmYTc0OGFmMWQ0NGQyYjE5NTBmMzRmZWM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKQEAgLTY0LDcgKzY0LDggQEAgRXhj
ZXB0aW9uT3I8UmVmPE9zY2lsbGF0b3JOb2RlPj4gT3NjaWxsYXRvck5vZGU6OmNyZWF0ZShCYXNl
QXVkaW9Db250ZXh0JiBjb250ZXgKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiTXVzdCBwcm92aWRlIHBlcmlvZGljV2F2ZSB3aGVuIHVzaW5nIGN1c3RvbSB0
eXBlLiJfcyB9OwogICAgIAogICAgIGF1dG8gb3NjaWxsYXRvciA9IGFkb3B0UmVmKCpuZXcgT3Nj
aWxsYXRvck5vZGUoY29udGV4dCwgb3B0aW9ucykpOwotICAgIAorICAgIG9zY2lsbGF0b3ItPnN1
c3BlbmRJZk5lZWRlZCgpOworCiAgICAgYXV0byByZXN1bHQgPSBvc2NpbGxhdG9yLT5oYW5kbGVB
dWRpb05vZGVPcHRpb25zKG9wdGlvbnMsIHsgMiwgQ2hhbm5lbENvdW50TW9kZTo6TWF4LCBDaGFu
bmVsSW50ZXJwcmV0YXRpb246OlNwZWFrZXJzIH0pOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447448</attachid>
            <date>2021-12-17 04:23:53 -0800</date>
            <delta_ts>2021-12-17 07:53:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233945-20211217132351.patch</filename>
            <type>text/plain</type>
            <size>7220</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmNTc4OTdmZDVkOTQx
ZTYxYjRjYzYxMzU4YjEyNzQwZGE3NWUzYS4uODU5NWFlODJmMTg3ZTg3YzFhNDI2MGJlODYzZGM5
ZjJmNWIwYjNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTEyLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIEFjdGl2ZURPTU9iamVj
dDo6c3VzcGVuZElmTmVlZGVkKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0aGluIGNvbnN0cnVj
dG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
OTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rl
cCA0IHdoZXJlIHdlIGNvbnZlcnQgdGhlIG9ubHkgcmVtYWluaW5nIGNhbGwgdG8gc3VzcGVuZElm
TmVlZGVkKCkgaW4gYSBjb25zdHJ1Y3RvciwgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLAorICAg
ICAgICB0byBiZSBpbiBjcmVhdGUoKSBtZXRob2RzLCBpbiB0aGlzIGNhc2UgQXVkaW9TY2hlZHVs
ZWRTb3VyY2VOb2RlIHN1YmNsYXNzZXMuIFRoaXMgd2FzIHRoZSBmaW5hbCBzdGVwLCBhbGwgMTQ1
CisgICAgICAgIGNhbGxzIHRvIEFjdGl2ZURPTU9iamVjdDo6c3VzcGVuZElmTmVlZGVkKCkgaGF2
ZSBiZWVuIGF1ZGl0ZWQgdG8gbm90IGJlIG1hZGUgd2l0aGluIGEgY29uc3RydWN0b3IuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OkF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb25zdGFudFNvdXJjZU5vZGU6OmNyZWF0ZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPc2Np
bGxhdG9yTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0
b3JOb2RlLmg6CisKIDIwMjEtMTItMTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0OjpzdXNwZW5kSWZOZWVkZWQoKSBzaG91bGQg
bm90IGJlIGNhbGxlZCB3aXRoaW4gY29uc3RydWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXgg
Mjc1YmQyMTE0ZWM0MjFiODMxZGU5OWYwNDVjOGZkYzBlYjIwOGRhOC4uMzViOGM4MTg3NmE3NjAy
NjhhYjkyNTUzOWRmMjUyZjEzZTIyZTc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcApAQCAtNjUsNiAr
NjUsNyBAQCBzdGF0aWMgZmxvYXQgY29tcHV0ZVNhbXBsZVVzaW5nTGluZWFySW50ZXJwb2xhdGlv
bihjb25zdCBmbG9hdCogc291cmNlLCB1bnNpZ25lZAogRXhjZXB0aW9uT3I8UmVmPEF1ZGlvQnVm
ZmVyU291cmNlTm9kZT4+IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0Nv
bnRleHQmIGNvbnRleHQsIEF1ZGlvQnVmZmVyU291cmNlT3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAg
ICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4
dCkpOworICAgIG5vZGUtPnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAgbm9kZS0+c2V0QnVmZmVy
Rm9yQmluZGluZ3MoV1RGTW92ZShvcHRpb25zLmJ1ZmZlcikpOwogICAgIG5vZGUtPmRldHVuZSgp
LnNldFZhbHVlKG9wdGlvbnMuZGV0dW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCmluZGV4IDVhZGU3OTJiZDNi
ZWVjNGFkYzMxMjc3MDAwZGIzMDU3ZmVlYjU5NjUuLjZlZTFmODNiZTZiZGVmZWJlMWRjMTg3MWJh
MjdlYTkwNDBjOTNmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaApAQCAtODIsMTAgKzgyLDkgQEAgcHVibGlj
OgogCiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJBdWRpb0J1ZmZlclNvdXJjZU5vZGUiOyB9CiAKLXByb3RlY3RlZDoKLSAgICBl
eHBsaWNpdCBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYpOwotCiBwcml2
YXRlOgorICAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0Jik7CisKICAg
ICBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgZG91Ymxl
IGxhdGVuY3lUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5jcHAKaW5kZXggODYxMTI2YTg0MTlhYjIyY2E0OWNhYzExYmMwOWFhOWQyYWVjMDI0Ni4u
MjIyODRhMDE3ZGVkZjgzMzVlMDY4ZWE0ZDc2ZGUyNmUyNmZmYTFmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3Vy
Y2VOb2RlLmNwcApAQCAtNTEsNyArNTEsNiBAQCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OkF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBObwogICAg
IDogQXVkaW9Ob2RlKGNvbnRleHQsIHR5cGUpCiAgICAgLCBBY3RpdmVET01PYmplY3QoY29udGV4
dC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiB7Ci0gICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9
CiAKIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjp1cGRhdGVTY2hlZHVsaW5nSW5mbyhz
aXplX3QgcXVhbnR1bUZyYW1lU2l6ZSwgQXVkaW9CdXMmIG91dHB1dEJ1cywgc2l6ZV90JiBxdWFu
dHVtRnJhbWVPZmZzZXQsIHNpemVfdCYgbm9uU2lsZW50RnJhbWVzVG9Qcm9jZXNzLCBkb3VibGUm
IHN0YXJ0RnJhbWVPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaAppbmRleCA2ODA4ZDAyYjc1Nzgw
MGU4MTgyOWE1OTA5NzQzNWY0MzQ3ZTVjYmYwLi4zNDU1MDg3ZGYyN2E0YWU0NWFiZWRkNWQ0ZGE0
NzUzMDIwZDNjNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKQEAgLTUyLDggKzUyLDYgQEAgcHVi
bGljOgogICAgICAgICBQTEFZSU5HX1NUQVRFID0gMiwKICAgICAgICAgRklOSVNIRURfU1RBVEUg
PSAzCiAgICAgfTsKLSAgICAKLSAgICBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoQmFzZUF1ZGlv
Q29udGV4dCYsIE5vZGVUeXBlKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0YXJ0TGF0ZXIo
ZG91YmxlIHdoZW4pOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHN0b3BMYXRlcihkb3VibGUgd2hl
bik7CkBAIC02Myw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0ZpbmlzaGVkKCkgY29u
c3QgeyByZXR1cm4gbV9wbGF5YmFja1N0YXRlID09IEZJTklTSEVEX1NUQVRFOyB9CiAKIHByb3Rl
Y3RlZDoKKyAgICBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIE5v
ZGVUeXBlKTsKKwogICAgIC8vIEdldCBmcmFtZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGN1cnJlbnQg
dGltZSBxdWFudHVtLgogICAgIC8vIFdlIGhhbmRsZSB0aGUgdHJhbnNpdGlvbiBpbnRvIFBMQVlJ
TkdfU1RBVEUgYW5kIEZJTklTSEVEX1NUQVRFIGhlcmUsCiAgICAgLy8gemVyb2luZyBvdXQgcG9y
dGlvbnMgb2YgdGhlIG91dHB1dEJ1cyB3aGljaCBhcmUgb3V0c2lkZSB0aGUgcmFuZ2Ugb2Ygc3Rh
cnRGcmFtZSBhbmQgZW5kRnJhbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnN0YW50U291cmNlTm9kZS5jcHAKaW5kZXggNzRkZGEzNzQ4MTA2MGVkY2Fm
NDgwYTM3NThhMDY4NzVkOTQ1ZDU1Zi4uM2NkZmE5ODQ0NjgxNzYzZTQ4ZDhkZjYzYTljMTYxZWNm
ZDU4NmU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db25z
dGFudFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
Q29uc3RhbnRTb3VyY2VOb2RlLmNwcApAQCAtNDEsNyArNDEsOSBAQCBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoQ29uc3RhbnRTb3VyY2VOb2RlKTsKIAogRXhjZXB0aW9uT3I8UmVmPENvbnN0
YW50U291cmNlTm9kZT4+IENvbnN0YW50U291cmNlTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IENvbnN0YW50U291cmNlT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCwgb3B0aW9u
cy5vZmZzZXQpKTsKKyAgICBhdXRvIG5vZGUgPSBhZG9wdFJlZigqbmV3IENvbnN0YW50U291cmNl
Tm9kZShjb250ZXh0LCBvcHRpb25zLm9mZnNldCkpOworICAgIG5vZGUtPnN1c3BlbmRJZk5lZWRl
ZCgpOworICAgIHJldHVybiBub2RlOwogfQogCiBDb25zdGFudFNvdXJjZU5vZGU6OkNvbnN0YW50
U291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBvZmZzZXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmlu
ZGV4IDljNmFlZDEyMDMxZTJlYmFjZTVmNDQxMjUyZTg0NTBjMWU5YmE3MTguLmI5NzEyN2ExYmRh
ZTMxZmE3NDhhZjFkNDRkMmIxOTUwZjM0ZmVjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC02NCw3ICs2NCw4IEBAIEV4
Y2VwdGlvbk9yPFJlZjxPc2NpbGxhdG9yTm9kZT4+IE9zY2lsbGF0b3JOb2RlOjpjcmVhdGUoQmFz
ZUF1ZGlvQ29udGV4dCYgY29udGV4CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIk11c3QgcHJvdmlkZSBwZXJpb2RpY1dhdmUgd2hlbiB1c2luZyBjdXN0b20g
dHlwZS4iX3MgfTsKICAgICAKICAgICBhdXRvIG9zY2lsbGF0b3IgPSBhZG9wdFJlZigqbmV3IE9z
Y2lsbGF0b3JOb2RlKGNvbnRleHQsIG9wdGlvbnMpKTsKLSAgICAKKyAgICBvc2NpbGxhdG9yLT5z
dXNwZW5kSWZOZWVkZWQoKTsKKwogICAgIGF1dG8gcmVzdWx0ID0gb3NjaWxsYXRvci0+aGFuZGxl
QXVkaW9Ob2RlT3B0aW9ucyhvcHRpb25zLCB7IDIsIENoYW5uZWxDb3VudE1vZGU6Ok1heCwgQ2hh
bm5lbEludGVycHJldGF0aW9uOjpTcGVha2VycyB9KTsKICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaAppbmRleCBh
NjQ2MzVkMzI2Y2Y4NGUwYjU4NTVmZmEwOGYyOTI3NmI1ZWZmNjc1Li4yZDg4OTQwMmUzOWRiOGJl
MDgxYjVmYWRlZWQ5MmUyODk4M2I5N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oCkBAIC01MiwxMCArNTIsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldFBlcmlvZGljV2F2ZShQZXJpb2RpY1dhdmUmKTsKIAotcHJvdGVjdGVkOgot
ICAgIGV4cGxpY2l0IE9zY2lsbGF0b3JOb2RlKEJhc2VBdWRpb0NvbnRleHQmLCBjb25zdCBPc2Np
bGxhdG9yT3B0aW9ucyYgPSB7IH0pOwotCiBwcml2YXRlOgorICAgIE9zY2lsbGF0b3JOb2RlKEJh
c2VBdWRpb0NvbnRleHQmLCBjb25zdCBPc2NpbGxhdG9yT3B0aW9ucyYgPSB7IH0pOworCiAgICAg
dm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwogCiAgICAgZG91Ymxl
IHRhaWxUaW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>