<?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>178534</bug_id>
          
          <creation_ts>2017-10-19 12:32:24 -0700</creation_ts>
          <short_desc>Add initial implementation for serviceWorker.postMessage()</short_desc>
          <delta_ts>2017-11-15 13:02:03 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174541</see_also>
          <bug_file_loc>https://w3c.github.io/ServiceWorker/#service-worker-postmessage</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>178475</dependson>
    
    <dependson>178491</dependson>
    
    <dependson>178552</dependson>
          <blocked>178794</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1362257</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-19 12:32:24 -0700</bug_when>
    <thetext>Add initial implementation for serviceWorker.postMessage():
- https://w3c.github.io/ServiceWorker/#service-worker-postmessage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362345</commentid>
    <comment_count>1</comment_count>
      <attachid>324289</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-19 14:30:05 -0700</bug_when>
    <thetext>Created attachment 324289
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362406</commentid>
    <comment_count>2</comment_count>
      <attachid>324303</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-19 15:46:14 -0700</bug_when>
    <thetext>Created attachment 324303
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363296</commentid>
    <comment_count>3</comment_count>
      <attachid>324560</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 09:21:21 -0700</bug_when>
    <thetext>Created attachment 324560
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363346</commentid>
    <comment_count>4</comment_count>
      <attachid>324573</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 11:31:06 -0700</bug_when>
    <thetext>Created attachment 324573
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363419</commentid>
    <comment_count>5</comment_count>
      <attachid>324594</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 14:56:51 -0700</bug_when>
    <thetext>Created attachment 324594
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363422</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-23 14:59:14 -0700</bug_when>
    <thetext>Attachment 324594 did not pass style-queue:


ERROR: Source/WebCore/workers/service/ServiceWorker.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363469</commentid>
    <comment_count>7</comment_count>
      <attachid>324614</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 16:54:51 -0700</bug_when>
    <thetext>Created attachment 324614
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363531</commentid>
    <comment_count>8</comment_count>
      <attachid>324630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 20:01:35 -0700</bug_when>
    <thetext>Created attachment 324630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363533</commentid>
    <comment_count>9</comment_count>
      <attachid>324631</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 20:08:26 -0700</bug_when>
    <thetext>Created attachment 324631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363554</commentid>
    <comment_count>10</comment_count>
      <attachid>324634</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 21:11:43 -0700</bug_when>
    <thetext>Created attachment 324634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363556</commentid>
    <comment_count>11</comment_count>
      <attachid>324636</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 21:14:33 -0700</bug_when>
    <thetext>Created attachment 324636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363562</commentid>
    <comment_count>12</comment_count>
      <attachid>324639</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-23 21:28:46 -0700</bug_when>
    <thetext>Created attachment 324639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363813</commentid>
    <comment_count>13</comment_count>
      <attachid>324702</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 12:45:33 -0700</bug_when>
    <thetext>Created attachment 324702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363818</commentid>
    <comment_count>14</comment_count>
      <attachid>324639</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 12:54:12 -0700</bug_when>
    <thetext>Comment on attachment 324639
Patch

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        * bindings/js/JSExtendableMessageEvent.cpp: Copied from Source/WebCore/workers/service/ServiceWorker.cpp.

Probably added, not copied.

&gt; Source/WebCore/bindings/js/JSExtendableMessageEventCustom.cpp:54
&gt; +    return result;

Is there a way to share some code with JSMessageEvent::data?

&gt; Source/WebCore/dom/ScriptExecutionContext.h:114
&gt; +    virtual String origin() const = 0;

Why not using a SecurityOrigin&amp;/SecurityOrigin*?

&gt; Source/WebCore/workers/service/ExtendableMessageEvent.h:57
&gt; +        Vector&lt;RefPtr&lt;MessagePort&gt;&gt; ports;

Would it be difficult to have a Vector&lt;Ref&lt;MessagePort&gt;&gt; instead?

&gt; Source/WebCore/workers/service/ServiceWorker.cpp:68
&gt; +    if (!scriptExecutionContext())

I am not sure we can get both a valid ExecState and a null scriptExecutionContext.
If so, I would add it as a first check.

Can we get a ScriptExecutionContext&amp; as first parameter and get an ExecState from it?
Maybe add an ASSERT.

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:84
&gt; +        m_controller = ServiceWorker::create(*context, context-&gt;selectedServiceWorkerIdentifier());

Can we get a controller whose identifier is not context selectedServiceWorkerIdentifier?

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:109
&gt; +        serviceWorkerGlobalScope.dispatchEvent(ExtendableMessageEvent::create(WTFMove(ports), WTFMove(message), sourceOrigin));

I guess sourceOrigin might be different from the origin of the service worker, like in the case of data URL iframes.
If I am wrong, we might not even need to pass the origin.
If the origin cannot be any random origin, maybe we should assert somehow that this is in a restricted set.
I probably need to read the spec.

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.h:43
&gt; +using MessagePortChannelArray = Vector&lt;std::unique_ptr&lt;MessagePortChannel&gt;, 1&gt;;

Should probably be UniqueRef if possible.

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.h:56
&gt; +    WEBCORE_EXPORT void postMessageToServiceWorkerGlobalScope(Ref&lt;SerializedScriptValue&gt;&amp;&amp;, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp;, const String&amp; sourceOrigin);

Here as well.

&gt; Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.cpp:76
&gt; +    auto* workerThread = m_workerThreadMap.get(serviceWorkerIdentifier);

Should we protect for a serviceWorkerIdentifier being zero?
Even more valid for startFetch above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363855</commentid>
    <comment_count>15</comment_count>
      <attachid>324639</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 13:29:17 -0700</bug_when>
    <thetext>Comment on attachment 324639
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSExtendableMessageEventCustom.cpp:54
&gt;&gt; +    return result;
&gt; 
&gt; Is there a way to share some code with JSMessageEvent::data?

I&apos;ll see what I can do.

&gt;&gt; Source/WebCore/dom/ScriptExecutionContext.h:114
&gt;&gt; +    virtual String origin() const = 0;
&gt; 
&gt; Why not using a SecurityOrigin&amp;/SecurityOrigin*?

This is a pre-existing method on Document / WorkerGlobalScope is is used for the self.origin Web API. This is why it currently returns a String. Also note that I need the origin as a String currently since it is used to populate the messageEvent.source attribute.

&gt;&gt; Source/WebCore/workers/service/ExtendableMessageEvent.h:57
&gt;&gt; +        Vector&lt;RefPtr&lt;MessagePort&gt;&gt; ports;
&gt; 
&gt; Would it be difficult to have a Vector&lt;Ref&lt;MessagePort&gt;&gt; instead?

Yes. This is a long-standing issue with our bindings converters.

&gt;&gt; Source/WebCore/workers/service/ServiceWorker.cpp:68
&gt;&gt; +    if (!scriptExecutionContext())
&gt; 
&gt; I am not sure we can get both a valid ExecState and a null scriptExecutionContext.
&gt; If so, I would add it as a first check.
&gt; 
&gt; Can we get a ScriptExecutionContext&amp; as first parameter and get an ExecState from it?
&gt; Maybe add an ASSERT.

Ok.

&gt;&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:84
&gt;&gt; +        m_controller = ServiceWorker::create(*context, context-&gt;selectedServiceWorkerIdentifier());
&gt; 
&gt; Can we get a controller whose identifier is not context selectedServiceWorkerIdentifier?

I think this ways:
1. Register service worker A
2. Access container.controller
3. Register service worker B
4. Access container.controller

&gt;&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:109
&gt;&gt; +        serviceWorkerGlobalScope.dispatchEvent(ExtendableMessageEvent::create(WTFMove(ports), WTFMove(message), sourceOrigin));
&gt; 
&gt; I guess sourceOrigin might be different from the origin of the service worker, like in the case of data URL iframes.
&gt; If I am wrong, we might not even need to pass the origin.
&gt; If the origin cannot be any random origin, maybe we should assert somehow that this is in a restricted set.
&gt; I probably need to read the spec.

No, the source origin is not necessarily the same as the worker&apos;s origin. It is the origin of the calling script.

&gt;&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.h:43
&gt;&gt; +using MessagePortChannelArray = Vector&lt;std::unique_ptr&lt;MessagePortChannel&gt;, 1&gt;;
&gt; 
&gt; Should probably be UniqueRef if possible.

This is a pre-existing WebCore type. I am merely forward declaring.

&gt;&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.h:56
&gt;&gt; +    WEBCORE_EXPORT void postMessageToServiceWorkerGlobalScope(Ref&lt;SerializedScriptValue&gt;&amp;&amp;, std::unique_ptr&lt;MessagePortChannelArray&gt;&amp;&amp;, const String&amp; sourceOrigin);
&gt; 
&gt; Here as well.

No, as mentioned in an earlier patch, channels can be null.

&gt;&gt; Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.cpp:76
&gt;&gt; +    auto* workerThread = m_workerThreadMap.get(serviceWorkerIdentifier);
&gt; 
&gt; Should we protect for a serviceWorkerIdentifier being zero?
&gt; Even more valid for startFetch above.

It would hit an assertion in HashMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363857</commentid>
    <comment_count>16</comment_count>
      <attachid>324713</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 13:29:45 -0700</bug_when>
    <thetext>Created attachment 324713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363900</commentid>
    <comment_count>17</comment_count>
      <attachid>324713</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 14:22:59 -0700</bug_when>
    <thetext>Comment on attachment 324713
Patch

Clearing flags on attachment: 324713

Committed r223922: &lt;https://trac.webkit.org/changeset/223922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363901</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-24 14:23:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372319</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:02:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568649&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324289</attachid>
            <date>2017-10-19 14:30:05 -0700</date>
            <delta_ts>2017-10-19 15:46:14 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178534_ServiceWorker_postMessage_wip.patch</filename>
            <type>text/plain</type>
            <size>21976</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCA2MGVkNmY4MzY5Ni4u
NmMzMmQwYjgxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKQEAg
LTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBSZXR1cm5zIHRo
ZSBlbnRhbmdsZWQgcG9ydCBpZiBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChzZWUgTWVzc2FnZVBv
cnQ6OmxvY2FsbHlFbnRhbmdsZWRQb3J0KCkgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAgIE1l
c3NhZ2VQb3J0KiBsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CiAKLSAgICAgICAgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOworICAgICAgICBXRUJDT1JF
X0VYUE9SVCB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fY2hhbm5lbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA2NmQ3M2Jl
ODc0MC4uYTU4MjU1MjhjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTI4LDEwICsyOCw0NSBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTV0Ns
aWVudENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
clByb3ZpZGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBv
c3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNDOjpKU09iamVjdD4+JiYpCitTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29ya2VyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBt
X2lkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7Cit9CisKK0V4Y2VwdGlvbk9y
PHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+PiYmIHRyYW5zZmVyKQoreworICAgIGlmICh0aGlzLT5zdGF0ZSgpID09IFN0YXRlOjpSZWR1
bmRhbnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVND
SUlMaXRlcmFsKCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyByZWR1bmRhbnQiKSB9OworCisgICAg
Ly8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggc2Vydmlj
ZVdvcmtlciBhcyB0aGUgYXJndW1lbnQuCisKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4gcG9ydHM7CisgICAgYXV0byBtZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVh
dGUoc3RhdGUsIG1lc3NhZ2VWYWx1ZSwgV1RGTW92ZSh0cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxp
emF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UpOworICAgIGlmIChtZXNzYWdlLmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gbWVzc2FnZS5yZWxlYXNlRXhjZXB0aW9uKCk7CisK
KyAgICAvLyBEaXNlbnRhbmdsZSB0aGUgcG9ydCBpbiBwcmVwYXJhdGlvbiBmb3Igc2VuZGluZyBp
dCB0byB0aGUgcmVtb3RlIGNvbnRleHQuCisgICAgYXV0byBjaGFubmVscyA9IE1lc3NhZ2VQb3J0
OjpkaXNlbnRhbmdsZVBvcnRzKFdURk1vdmUocG9ydHMpKTsKKyAgICBpZiAoY2hhbm5lbHMuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVscy5yZWxlYXNlRXhjZXB0aW9uKCk7
CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29y
a2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lv
bihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBzZW5kaW5nIHRoZSBjaGFubmVscy4KKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArNzcsNyBA
QCBjb25zdCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZp
Y2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAog
RXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdApAQCAtNTIsNyArODcsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29y
a2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0
MGUxMmRlMWIyMy4uNjIyZWQ5MzZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAKQEAg
LTM5LDkgKzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNs
YXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8
U2VydmljZVdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0LCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpOworICAgIH0KKwogICAgIHZpcnR1YWwgflNlcnZpY2VXb3JrZXIoKSA9IGRlZmF1bHQ7CiAK
ICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKQEAgLTU3LDEzICs2MiwxNyBAQCBwdWJsaWM6CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNW
YWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwogCisg
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQor
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcnZpY2VXb3JrZXIoRnJhbWUmKTsKKyAgICBTZXJ2
aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IGRlcmVmKCk7IH0KKworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uNTZkNTZj
N2Y4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJT
Y29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgpAQCAtNzQsNyArNzUsMTQgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKIAogU2Vydmlj
ZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdv
cmtlcklkZW50aWZpZXIoKSkgeworICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKCFtX2NvbnRyb2xsZXIgfHwgbV9j
b250cm9sbGVyLT5pZGVudGlmaWVyKCkgIT0gY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcigpKQorICAgICAgICBtX2NvbnRyb2xsZXIgPSBTZXJ2aWNlV29ya2VyOjpjcmVh
dGUoKmNvbnRleHQsIGNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSk7
CisgICAgcmV0dXJuIG1fY29udHJvbGxlci5nZXQoKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVS
TCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTVmNTZkMWZlZTIuLmFlNmRhMWJlNzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRo
cmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcAppbmRleCBjMTM0YTVmMzA3MC4uMzlmZmU3NjczZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCkBAIC02MCw2ICs2MCwxMSBAQCBFdmVudFRhcmdldEludGVyZmFjZSBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAg
ICByZXR1cm4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OwogfQogCitTZXJ2aWNlV29ya2VyVGhyZWFkJiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRo
cmVhZCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihX
b3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggZGM0MGM2ZjM0OTguLjcyYzBlZjI3YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01Nyw2
ICs1Nyw4IEBAIHB1YmxpYzoKIAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJl
YWQoKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSos
IFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02Nyw0ICs2OSw5IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsgcmV0dXJuIGlzPFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3du
Y2FzdDxXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuaXNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpX
b3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IGY1M2QwMWRhZjIyLi4yYWM4NWU4YmJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJN
ZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5Lmgi
CkBAIC05MSw2ICs5MiwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9v
cCgpCiAgICAgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKTsKIH0KIAordm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2sgdGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdU
Rk1vdmUobWVzc2FnZSldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxl
IHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0byBwb3J0cyA9IE1l
c3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92
ZShjaGFubmVscykpOworICAgICAgICAvLyBGSVhNRTogU2hvdWxkIGJlIGFuIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuCisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2
ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2Up
KSk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS53b3JrZXJPYmpl
Y3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkpOworICAgIH0pOworICAgIHJ1bkxvb3AoKS5w
b3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmlu
ZGV4IDhkYmE0ODk4ODkzLi41Y2QxZDZlNzlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApA
QCAtMzQsOSArMzQsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgTWVzc2FnZVBvcnRDaGFubmVsOwor
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiBz
dHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCit1c2luZyBNZXNzYWdlUG9ydENoYW5u
ZWxBcnJheSA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsPiwgMT47
CisKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkLCBwdWJs
aWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U2VydmljZVdvcmtlclRocmVhZD4gewogcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8U2VydmljZVdvcmtlclRo
cmVhZD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAK
ICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVy
biBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmKTsKKwogcHJv
dGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNz
aW9uSUQpIGZpbmFsOwogICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCA5YzhhMTcwZjEyZC4uODdiMGI2ODRiYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5l
Y3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJl
c291cmNlRXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25EYXRhOwogc3Ry
dWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZvaWQgZmluaXNo
ZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVk
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAxMGNjYmE1MmYzOS4uM2Y3ODQ0MjQwYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC05OSw2ICs5OSwx
MSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRj
aElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpYwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydEZldGNoSW5TZXJ2aWNlV29ya2VyKGlkZW50aWZpZXIo
KSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0
aW9ucykpOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
VmVjdG9yPHVpbnQ4X3Q+JiYgbWVzc2FnZSkKK3sKKyAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShpZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2Up
KSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZSh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewogICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0
Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBh
ZTNhMjVkM2NlZi4uODdiYTY2ZjRmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmgKQEAgLTY0LDYgKzY0LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRjaCh1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9w
dGlvbnMmKTsKIAorICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgVmVjdG9yPHVpbnQ4X3Q+JiYgbWVz
c2FnZSk7CisKICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgY29udGV4dCBXZWJQcm9jZXNzCiAg
ICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBmM2RiM2I5MGRhZS4uZDE0NGQ0MzIyMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gewog
ICAgIEZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJGZXRjaFJlc3VsdCByZXN1bHQpCiAKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IGlkZW50
aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zKQor
ICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiBtZXNzYWdlKQogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAK
aW5kZXggNDM3MTM5MjQyMzguLjJlNGQ5ZGQyOWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFu
YWdlci5jcHAKQEAgLTMxLDggKzMxLDEwIEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4K
ICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC05
Miw2ICs5NCwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRj
aCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcgogICAgIG1fY29ubmVjdGlvblRv
U3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRGYWlsRmV0
Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciksIDApOwogfQog
Cit2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiYmIG1lc3NhZ2Up
Cit7CisgICAgYXV0byogd29ya2VyVGhyZWFkID0gbV93b3JrZXJUaHJlYWRNYXAuZ2V0KHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAgICBX
VEZMb2dBbHdheXMoIkNvdWxkIG5vdCBmaW5kIHNlcnZpY2Ugd29ya2VyIHRocmVhZCB3aXRoIGdp
dmVuIGlkZW50aWZpZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHdvcmtlclRo
cmVhZC0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmFkb3B0KFdURk1vdmUobWVzc2FnZSkpLCBudWxscHRyKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXIuaAppbmRleCA0OGI2OTEwYTc2MS4uZjU1ZTAxM2U1MWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1Nl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyQ29udGV4dCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJik7
CiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnMmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8dWludDhfdD4mJiBtZXNzYWdlKTsKIAogcHJpdmF0ZToK
ICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYmIxZTFjYzlhOTUuLmZiMThiMDA5ZjZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJTV09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckZldGNoUmVz
dWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oPgogCkBAIC02
Niw2ICs2NywxMSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdT
Y3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0YwogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1
bHQpKTsKIH0KIAordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc2NyaXB0VmFsdWUpCit7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3JpcHRWYWx1ZS0+ZGF0YSgpKSk7
Cit9CisKIGJvb2wgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpoYXNTZXJ2aWNlV29ya2VyUmVnaXN0
ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewogICAg
IHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
CmluZGV4IDkxYjlmOGM2MjRjLi43OGQ4MTk3MGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTU2
LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hG
ZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21X
ZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCAxZjdiMjA0MDM3Ni4uZDMzM2RiOTA0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE2NjUsNiArMTY2NSwxNCBAQCB2b2lkIFdlYlByb2Nl
c3M6OnN0YXJ0RmV0Y2hJblNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsCiAgICAgbV9zZXJ2aWNlV29ya2VyTWFuYWdlci0+c3RhcnRGZXRjaChzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgcmVxdWVzdCwgb3B0aW9ucyk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90
PiYmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyLT5wb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdlKSk7Cit9CisKICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4
IGZlZTE0MzYyNmI3Li45ZDAxYTdmNWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCkBAIC0zMDIsNiArMzAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFdvcmtlckNv
bnRleHRDb25uZWN0aW9uKCk7CiAgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXJDb250ZXh0KHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGEmKTsKICAgICB2b2lkIHN0YXJ0RmV0Y2hJblNlcnZpY2VXb3JrZXIo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRp
ZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOworICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFZlY3Rv
cjx1aW50OF90PiYmIG1lc3NhZ2UpOwogI2VuZGlmCiAKICAgICB2b2lkIHJlbGVhc2VQYWdlQ2Fj
aGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggZmE1NDcyYzEyMjkuLjE0MDlmM2U5OTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTE4LDUgKzExOCw2IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEdldFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uKCkKICAgICBTdGFydFNlcnZpY2VXb3JrZXJDb250ZXh0KHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNv
bnRleHREYXRhIGNvbnRleHREYXRhKQogICAgIFN0YXJ0RmV0Y2hJblNlcnZpY2VXb3JrZXIodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmll
ciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisgICAg
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFZlY3Rv
cjx1aW50OF90PiBtZXNzYWdlKQogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324303</attachid>
            <date>2017-10-19 15:46:14 -0700</date>
            <delta_ts>2017-10-23 09:21:21 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178534_ServiceWorker_postMessage_wip.patch</filename>
            <type>text/plain</type>
            <size>22271</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCA2MGVkNmY4MzY5Ni4u
NmMzMmQwYjgxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKQEAg
LTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBSZXR1cm5zIHRo
ZSBlbnRhbmdsZWQgcG9ydCBpZiBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChzZWUgTWVzc2FnZVBv
cnQ6OmxvY2FsbHlFbnRhbmdsZWRQb3J0KCkgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAgIE1l
c3NhZ2VQb3J0KiBsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CiAKLSAgICAgICAgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOworICAgICAgICBXRUJDT1JF
X0VYUE9SVCB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fY2hhbm5lbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA2NmQ3M2Jl
ODc0MC4uYTU4MjU1MjhjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTI4LDEwICsyOCw0NSBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTV0Ns
aWVudENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
clByb3ZpZGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBv
c3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNDOjpKU09iamVjdD4+JiYpCitTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29ya2VyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBt
X2lkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7Cit9CisKK0V4Y2VwdGlvbk9y
PHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+PiYmIHRyYW5zZmVyKQoreworICAgIGlmICh0aGlzLT5zdGF0ZSgpID09IFN0YXRlOjpSZWR1
bmRhbnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVND
SUlMaXRlcmFsKCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyByZWR1bmRhbnQiKSB9OworCisgICAg
Ly8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggc2Vydmlj
ZVdvcmtlciBhcyB0aGUgYXJndW1lbnQuCisKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4gcG9ydHM7CisgICAgYXV0byBtZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVh
dGUoc3RhdGUsIG1lc3NhZ2VWYWx1ZSwgV1RGTW92ZSh0cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxp
emF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UpOworICAgIGlmIChtZXNzYWdlLmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gbWVzc2FnZS5yZWxlYXNlRXhjZXB0aW9uKCk7CisK
KyAgICAvLyBEaXNlbnRhbmdsZSB0aGUgcG9ydCBpbiBwcmVwYXJhdGlvbiBmb3Igc2VuZGluZyBp
dCB0byB0aGUgcmVtb3RlIGNvbnRleHQuCisgICAgYXV0byBjaGFubmVscyA9IE1lc3NhZ2VQb3J0
OjpkaXNlbnRhbmdsZVBvcnRzKFdURk1vdmUocG9ydHMpKTsKKyAgICBpZiAoY2hhbm5lbHMuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVscy5yZWxlYXNlRXhjZXB0aW9uKCk7
CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29y
a2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lv
bihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBzZW5kaW5nIHRoZSBjaGFubmVscy4KKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArNzcsNyBA
QCBjb25zdCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZp
Y2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAog
RXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdApAQCAtNTIsNyArODcsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29y
a2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0
MGUxMmRlMWIyMy4uNjIyZWQ5MzZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAKQEAg
LTM5LDkgKzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNs
YXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8
U2VydmljZVdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0LCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpOworICAgIH0KKwogICAgIHZpcnR1YWwgflNlcnZpY2VXb3JrZXIoKSA9IGRlZmF1bHQ7CiAK
ICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKQEAgLTU3LDEzICs2MiwxNyBAQCBwdWJsaWM6CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNW
YWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwogCisg
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQor
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcnZpY2VXb3JrZXIoRnJhbWUmKTsKKyAgICBTZXJ2
aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IGRlcmVmKCk7IH0KKworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uNTZkNTZj
N2Y4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJT
Y29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgpAQCAtNzQsNyArNzUsMTQgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKIAogU2Vydmlj
ZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdv
cmtlcklkZW50aWZpZXIoKSkgeworICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKCFtX2NvbnRyb2xsZXIgfHwgbV9j
b250cm9sbGVyLT5pZGVudGlmaWVyKCkgIT0gY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcigpKQorICAgICAgICBtX2NvbnRyb2xsZXIgPSBTZXJ2aWNlV29ya2VyOjpjcmVh
dGUoKmNvbnRleHQsIGNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSk7
CisgICAgcmV0dXJuIG1fY29udHJvbGxlci5nZXQoKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVS
TCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTVmNTZkMWZlZTIuLmFlNmRhMWJlNzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRo
cmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcAppbmRleCBjMTM0YTVmMzA3MC4uMzlmZmU3NjczZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCkBAIC02MCw2ICs2MCwxMSBAQCBFdmVudFRhcmdldEludGVyZmFjZSBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAg
ICByZXR1cm4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OwogfQogCitTZXJ2aWNlV29ya2VyVGhyZWFkJiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRo
cmVhZCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihX
b3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggZGM0MGM2ZjM0OTguLjcyYzBlZjI3YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01Nyw2
ICs1Nyw4IEBAIHB1YmxpYzoKIAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJl
YWQoKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSos
IFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02Nyw0ICs2OSw5IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsgcmV0dXJuIGlzPFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3du
Y2FzdDxXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuaXNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpX
b3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IGY1M2QwMWRhZjIyLi4yYWM4NWU4YmJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJN
ZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5Lmgi
CkBAIC05MSw2ICs5MiwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9v
cCgpCiAgICAgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKTsKIH0KIAordm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2sgdGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdU
Rk1vdmUobWVzc2FnZSldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxl
IHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0byBwb3J0cyA9IE1l
c3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92
ZShjaGFubmVscykpOworICAgICAgICAvLyBGSVhNRTogU2hvdWxkIGJlIGFuIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuCisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2
ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2Up
KSk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS53b3JrZXJPYmpl
Y3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkpOworICAgIH0pOworICAgIHJ1bkxvb3AoKS5w
b3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmlu
ZGV4IDhkYmE0ODk4ODkzLi41Y2QxZDZlNzlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApA
QCAtMzQsOSArMzQsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgTWVzc2FnZVBvcnRDaGFubmVsOwor
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiBz
dHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCit1c2luZyBNZXNzYWdlUG9ydENoYW5u
ZWxBcnJheSA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsPiwgMT47
CisKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkLCBwdWJs
aWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U2VydmljZVdvcmtlclRocmVhZD4gewogcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8U2VydmljZVdvcmtlclRo
cmVhZD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAK
ICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVy
biBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmKTsKKwogcHJv
dGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNz
aW9uSUQpIGZpbmFsOwogICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCA5YzhhMTcwZjEyZC4uODdiMGI2ODRiYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5l
Y3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJl
c291cmNlRXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25EYXRhOwogc3Ry
dWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZvaWQgZmluaXNo
ZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVk
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAxMGNjYmE1MmYzOS4uMTVkNWRkZmZjNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC05OSw2ICs5OSwx
MSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRj
aElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpYwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydEZldGNoSW5TZXJ2aWNlV29ya2VyKGlkZW50aWZpZXIo
KSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0
aW9ucykpOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlKQoreworICAgIHNlbmRUb0NvbnRleHRQ
cm9jZXNzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1lc3NhZ2Up
KTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiB7CiAgICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSB9LCBmZXRj
aElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IGFl
M2EyNWQzY2VmLi45MTU4NTQ1Yjk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaApAQCAtNjQsNiArNjQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0
aW9ucyYpOwogCisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIG1lc3NhZ2UpOworCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJv
Y2VzcwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZjNkYjNiOTBkYWUuLjRhODA2
MGE0ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uIHsKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogCiAgICAgU3RhcnRGZXRjaCh1aW50NjRf
dCBpZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0
aW9ucykKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIuY3BwCmluZGV4IDQzNzEzOTI0MjM4Li4yYWI0YjVkNmRhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dE1hbmFnZXIuY3BwCkBAIC0yOCwxMSArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFu
bmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFBBTDsKQEAgLTkyLDYgKzk1LDE4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyOjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyCiAgICAg
bV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nl
c3M6OkRpZEZhaWxGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlm
aWVyKSwgMCk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBtZXNzYWdlKQoreworICAgIGF1dG8qIHdvcmtlclRocmVhZCA9IG1fd29y
a2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgaWYgKCF3b3Jr
ZXJUaHJlYWQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgZmluZCBzZXJ2aWNl
IHdvcmtlciB0aHJlYWQgd2l0aCBnaXZlbiBpZGVudGlmaWVyIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdmFsaWQgTWVzc2FnZVBvcnRD
aGFubmVscy4KKyAgICB3b3JrZXJUaHJlYWQtPnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwg
bnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKaW5kZXggNDhiNjkx
MGE3NjEuLjg4MWEzZThiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaApAQCAtNDgs
NiArNDgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJik7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBtZXNzYWdlKTsKIAogcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYmIx
ZTFjYzlhOTUuLmI5ZTJlNjM4ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI4LDEyICsy
OCwxNCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2guaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViU1dPcmlnaW5UYWJsZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VydmljZVdvcmtlckpvYkRhdGEuaD4KIApAQCAtNjYsNiArNjgsMTEgQEAgdm9pZCBXZWJT
V0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckZldGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246
OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIHNjcmlwdFZhbHVlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVj
dGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9KSk7
Cit9CisKIGJvb2wgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpoYXNTZXJ2aWNlV29ya2VyUmVnaXN0
ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewogICAg
IHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
CmluZGV4IDkxYjlmOGM2MjRjLi43OGQ4MTk3MGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTU2
LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hG
ZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21X
ZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCAxZjdiMjA0MDM3Ni4uZjFkYTIyNjRhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE2NjUsNiArMTY2NSwxNCBAQCB2b2lkIFdlYlByb2Nl
c3M6OnN0YXJ0RmV0Y2hJblNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsCiAgICAgbV9zZXJ2aWNlV29ya2VyTWFuYWdlci0+c3RhcnRGZXRjaChzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgcmVxdWVzdCwgb3B0aW9ucyk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fc2VydmljZVdvcmtlck1hbmFnZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fc2VydmljZVdvcmtlck1hbmFnZXItPnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlKTsKK30KKwogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXgg
ZmVlMTQzNjI2YjcuLjBiZjUyZjM0NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTMwMiw2ICszMDIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0V29ya2VyQ29u
dGV4dENvbm5lY3Rpb24oKTsKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaEluU2VydmljZVdvcmtlcih1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJik7CisgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlKTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNl
UGFnZUNhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IGZhNTQ3MmMxMjI5Li40Nzk4MjhiYjRmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTExOCw1ICsxMTgs
NiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBHZXRXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvbigpCiAgICAgU3RhcnRTZXJ2aWNlV29ya2VyQ29udGV4dCh1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSkKICAgICBTdGFydEZldGNoSW5TZXJ2aWNlV29y
a2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25z
KQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324560</attachid>
            <date>2017-10-23 09:21:21 -0700</date>
            <delta_ts>2017-10-23 11:31:06 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178534_ServiceWorker_postMessage_wip.patch</filename>
            <type>text/plain</type>
            <size>20768</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBkZGQ3OWFhMTdmNi4u
YTA5NjI4YzYwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKQEAg
LTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBSZXR1cm5zIHRo
ZSBlbnRhbmdsZWQgcG9ydCBpZiBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChzZWUgTWVzc2FnZVBv
cnQ6OmxvY2FsbHlFbnRhbmdsZWRQb3J0KCkgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAgIE1l
c3NhZ2VQb3J0KiBsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CiAKLSAgICAgICAgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOworICAgICAgICBXRUJDT1JF
X0VYUE9SVCB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fY2hhbm5lbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA2NmQ3M2Jl
ODc0MC4uYTU4MjU1MjhjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTI4LDEwICsyOCw0NSBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTV0Ns
aWVudENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
clByb3ZpZGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBv
c3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNDOjpKU09iamVjdD4+JiYpCitTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29ya2VyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBt
X2lkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7Cit9CisKK0V4Y2VwdGlvbk9y
PHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+PiYmIHRyYW5zZmVyKQoreworICAgIGlmICh0aGlzLT5zdGF0ZSgpID09IFN0YXRlOjpSZWR1
bmRhbnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVND
SUlMaXRlcmFsKCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyByZWR1bmRhbnQiKSB9OworCisgICAg
Ly8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggc2Vydmlj
ZVdvcmtlciBhcyB0aGUgYXJndW1lbnQuCisKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4gcG9ydHM7CisgICAgYXV0byBtZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVh
dGUoc3RhdGUsIG1lc3NhZ2VWYWx1ZSwgV1RGTW92ZSh0cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxp
emF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UpOworICAgIGlmIChtZXNzYWdlLmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gbWVzc2FnZS5yZWxlYXNlRXhjZXB0aW9uKCk7CisK
KyAgICAvLyBEaXNlbnRhbmdsZSB0aGUgcG9ydCBpbiBwcmVwYXJhdGlvbiBmb3Igc2VuZGluZyBp
dCB0byB0aGUgcmVtb3RlIGNvbnRleHQuCisgICAgYXV0byBjaGFubmVscyA9IE1lc3NhZ2VQb3J0
OjpkaXNlbnRhbmdsZVBvcnRzKFdURk1vdmUocG9ydHMpKTsKKyAgICBpZiAoY2hhbm5lbHMuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVscy5yZWxlYXNlRXhjZXB0aW9uKCk7
CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29y
a2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lv
bihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBzZW5kaW5nIHRoZSBjaGFubmVscy4KKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArNzcsNyBA
QCBjb25zdCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZp
Y2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAog
RXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdApAQCAtNTIsNyArODcsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29y
a2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0
MGUxMmRlMWIyMy4uNjIyZWQ5MzZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAKQEAg
LTM5LDkgKzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNs
YXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8
U2VydmljZVdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0LCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpOworICAgIH0KKwogICAgIHZpcnR1YWwgflNlcnZpY2VXb3JrZXIoKSA9IGRlZmF1bHQ7CiAK
ICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKQEAgLTU3LDEzICs2MiwxNyBAQCBwdWJsaWM6CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNW
YWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwogCisg
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQor
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcnZpY2VXb3JrZXIoRnJhbWUmKTsKKyAgICBTZXJ2
aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IGRlcmVmKCk7IH0KKworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uNTZkNTZj
N2Y4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJT
Y29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgpAQCAtNzQsNyArNzUsMTQgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKIAogU2Vydmlj
ZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdv
cmtlcklkZW50aWZpZXIoKSkgeworICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKCFtX2NvbnRyb2xsZXIgfHwgbV9j
b250cm9sbGVyLT5pZGVudGlmaWVyKCkgIT0gY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcigpKQorICAgICAgICBtX2NvbnRyb2xsZXIgPSBTZXJ2aWNlV29ya2VyOjpjcmVh
dGUoKmNvbnRleHQsIGNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSk7
CisgICAgcmV0dXJuIG1fY29udHJvbGxlci5nZXQoKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVS
TCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTVmNTZkMWZlZTIuLmFlNmRhMWJlNzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRo
cmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcAppbmRleCBhNmQwYmZkMjZjYS4uNmUxN2RkY2RiOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCkBAIC01OCw2ICs1OCwxMSBAQCBFdmVudFRhcmdldEludGVyZmFjZSBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAg
ICByZXR1cm4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OwogfQogCitTZXJ2aWNlV29ya2VyVGhyZWFkJiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRo
cmVhZCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihX
b3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggZGM0MGM2ZjM0OTguLjcyYzBlZjI3YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01Nyw2
ICs1Nyw4IEBAIHB1YmxpYzoKIAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJl
YWQoKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSos
IFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02Nyw0ICs2OSw5IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsgcmV0dXJuIGlzPFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3du
Y2FzdDxXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuaXNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpX
b3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDNjNDZiMjc3MDY1Li40YjM3YWNmMjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJN
ZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5Lmgi
CkBAIC04OSw2ICs5MCwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9v
cCgpCiAgICAgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKTsKIH0KIAordm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2sgdGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdU
Rk1vdmUobWVzc2FnZSldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxl
IHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0byBwb3J0cyA9IE1l
c3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92
ZShjaGFubmVscykpOworICAgICAgICAvLyBGSVhNRTogU2hvdWxkIGJlIGFuIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuCisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2
ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2Up
KSk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS53b3JrZXJPYmpl
Y3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkpOworICAgIH0pOworICAgIHJ1bkxvb3AoKS5w
b3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmlu
ZGV4IDhkYmE0ODk4ODkzLi41Y2QxZDZlNzlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApA
QCAtMzQsOSArMzQsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgTWVzc2FnZVBvcnRDaGFubmVsOwor
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiBz
dHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCit1c2luZyBNZXNzYWdlUG9ydENoYW5u
ZWxBcnJheSA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsPiwgMT47
CisKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkLCBwdWJs
aWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U2VydmljZVdvcmtlclRocmVhZD4gewogcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8U2VydmljZVdvcmtlclRo
cmVhZD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAK
ICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVy
biBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmKTsKKwogcHJv
dGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2Nv
cGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNz
aW9uSUQpIGZpbmFsOwogICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCA5YzhhMTcwZjEyZC4uODdiMGI2ODRiYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5l
Y3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJl
c291cmNlRXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25EYXRhOwogc3Ry
dWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZvaWQgZmluaXNo
ZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVk
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAwMGE3NTk2NDdjZi4uMzZkM2QzZmYwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDAsNiArMTAw
LDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZl
dGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljCiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3Mo
TWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6U3RhcnRGZXRjaChpZGVudGlm
aWVyKCksIGZldGNoSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3Qs
IG9wdGlvbnMpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSkKK3sKKyAgICBzZW5kVG9Db250
ZXh0UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpQb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIG1lc3NhZ2UpKTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgbV9jb250ZW50Q29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9u
c2UgeyByZXNwb25zZSB9LCBmZXRjaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oCmluZGV4IGFlM2EyNWQzY2VmLi45MTU4NTQ1Yjk2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjQsNiArNjQsOCBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOwogCisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UpOworCiAgICAgLy8gTWVzc2FnZXMgdG8g
dGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyQ29u
dGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5k
ZXggZjNkYjNiOTBkYWUuLjRhODA2MGE0ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMg
LT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2Vy
dmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogCiAg
ICAgU3RhcnRGZXRjaCh1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFS
ZWZlcmVuY2UgbWVzc2FnZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDQ3ODMxYTg5Y2ZmLi5jZDBkOWY0
Mzg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0yOCwxMSArMjgsMTQg
QEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKQEAgLTkyLDYgKzk1LDE4IEBAIHZvaWQgU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyCiAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZEZhaWxGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSwgMCk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlKQoreworICAgIGF1dG8q
IHdvcmtlclRocmVhZCA9IG1fd29ya2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CisgICAgaWYgKCF3b3JrZXJUaHJlYWQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJD
b3VsZCBub3QgZmluZCBzZXJ2aWNlIHdvcmtlciB0aHJlYWQgd2l0aCBnaXZlbiBpZGVudGlmaWVy
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBh
c3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4KKyAgICB3b3JrZXJUaHJlYWQtPnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9w
dChtZXNzYWdlLnZlY3RvcigpKSwgbnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLmgKaW5kZXggMmQ3ZmQ4ZDk0N2EuLmYzNWQ5YjY0ZTc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXIuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZv
aWQgc3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsKICAgICB2b2lkIHN0
YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZl
dGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOwor
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSk7CiAKICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkPj4gbV93b3JrZXJUaHJl
YWRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KaW5k
ZXggZWRjZGQ4YjM2NDYuLjVlZjFkYjcxODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIgewogICAgIFN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSkKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zKQorICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVu
Y2UgbWVzc2FnZSkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCBiYjFlMWNj
OWE5NS4uYjllMmU2MzhlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjgsMTIgKzI4LDE0
IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJl
bmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJT
V09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlckZldGNoUmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VySm9iRGF0YS5oPgogCkBAIC02Niw2ICs2OCwxMSBAQCB2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNl
V29ya2VyRmV0YwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6Rmlu
aXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1bHQpKTsKIH0KIAordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
c2NyaXB0VmFsdWUpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0YSgpIH0pKTsKK30K
KwogYm9vbCBXZWJTV0NsaWVudENvbm5lY3Rpb246Omhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVk
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fc3dPcmlnaW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5k
ZXggOTFiOWY4YzYyNGMuLjc4ZDgxOTcwZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTYsNiAr
NTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaEZldGNo
aW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0
JikgZmluYWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzY29ubmVjdGVkRnJvbVdlYlBy
b2Nlc3MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324573</attachid>
            <date>2017-10-23 11:31:06 -0700</date>
            <delta_ts>2017-10-23 14:56:51 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178534_ServiceWorker_postMessage_wip.patch</filename>
            <type>text/plain</type>
            <size>20889</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBkZGQ3OWFhMTdmNi4u
YTA5NjI4YzYwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKQEAg
LTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBSZXR1cm5zIHRo
ZSBlbnRhbmdsZWQgcG9ydCBpZiBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChzZWUgTWVzc2FnZVBv
cnQ6OmxvY2FsbHlFbnRhbmdsZWRQb3J0KCkgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAgIE1l
c3NhZ2VQb3J0KiBsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CiAKLSAgICAgICAgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOworICAgICAgICBXRUJDT1JF
X0VYUE9SVCB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fY2hhbm5lbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA2NmQ3M2Jl
ODc0MC4uYTU4MjU1MjhjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTI4LDEwICsyOCw0NSBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTV0Ns
aWVudENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
clByb3ZpZGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBv
c3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNDOjpKU09iamVjdD4+JiYpCitTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29ya2VyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBt
X2lkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7Cit9CisKK0V4Y2VwdGlvbk9y
PHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmpl
Y3Q+PiYmIHRyYW5zZmVyKQoreworICAgIGlmICh0aGlzLT5zdGF0ZSgpID09IFN0YXRlOjpSZWR1
bmRhbnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVND
SUlMaXRlcmFsKCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyByZWR1bmRhbnQiKSB9OworCisgICAg
Ly8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggc2Vydmlj
ZVdvcmtlciBhcyB0aGUgYXJndW1lbnQuCisKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4gcG9ydHM7CisgICAgYXV0byBtZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVh
dGUoc3RhdGUsIG1lc3NhZ2VWYWx1ZSwgV1RGTW92ZSh0cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxp
emF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UpOworICAgIGlmIChtZXNzYWdlLmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gbWVzc2FnZS5yZWxlYXNlRXhjZXB0aW9uKCk7CisK
KyAgICAvLyBEaXNlbnRhbmdsZSB0aGUgcG9ydCBpbiBwcmVwYXJhdGlvbiBmb3Igc2VuZGluZyBp
dCB0byB0aGUgcmVtb3RlIGNvbnRleHQuCisgICAgYXV0byBjaGFubmVscyA9IE1lc3NhZ2VQb3J0
OjpkaXNlbnRhbmdsZVBvcnRzKFdURk1vdmUocG9ydHMpKTsKKyAgICBpZiAoY2hhbm5lbHMuaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVscy5yZWxlYXNlRXhjZXB0aW9uKCk7
CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29y
a2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lv
bihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBzZW5kaW5nIHRoZSBjaGFubmVscy4KKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArNzcsNyBA
QCBjb25zdCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZp
Y2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAog
RXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdApAQCAtNTIsNyArODcsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29y
a2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0
MGUxMmRlMWIyMy4uNjIyZWQ5MzZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAKQEAg
LTM5LDkgKzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNs
YXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElu
bGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8
U2VydmljZVdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0LCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpOworICAgIH0KKwogICAgIHZpcnR1YWwgflNlcnZpY2VXb3JrZXIoKSA9IGRlZmF1bHQ7CiAK
ICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKQEAgLTU3LDEzICs2MiwxNyBAQCBwdWJsaWM6CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNW
YWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwogCisg
ICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQor
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcnZpY2VXb3JrZXIoRnJhbWUmKTsKKyAgICBTZXJ2
aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IGRlcmVmKCk7IH0KKworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uNTZkNTZj
N2Y4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJT
Y29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgpAQCAtNzQsNyArNzUsMTQgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKIAogU2Vydmlj
ZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdv
cmtlcklkZW50aWZpZXIoKSkgeworICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKCFtX2NvbnRyb2xsZXIgfHwgbV9j
b250cm9sbGVyLT5pZGVudGlmaWVyKCkgIT0gY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcigpKQorICAgICAgICBtX2NvbnRyb2xsZXIgPSBTZXJ2aWNlV29ya2VyOjpjcmVh
dGUoKmNvbnRleHQsIGNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSk7
CisgICAgcmV0dXJuIG1fY29udHJvbGxlci5nZXQoKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVS
TCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTVmNTZkMWZlZTIuLmFlNmRhMWJlNzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRo
cmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcAppbmRleCBhNmQwYmZkMjZjYS4uNmUxN2RkY2RiOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCkBAIC01OCw2ICs1OCwxMSBAQCBFdmVudFRhcmdldEludGVyZmFjZSBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAg
ICByZXR1cm4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBl
OwogfQogCitTZXJ2aWNlV29ya2VyVGhyZWFkJiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRo
cmVhZCgpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihX
b3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggZGM0MGM2ZjM0OTguLjcyYzBlZjI3YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01Nyw2
ICs1Nyw4IEBAIHB1YmxpYzoKIAogICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJl
YWQoKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3Js
ZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSos
IFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwogCkBAIC02Nyw0ICs2OSw5IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsgcmV0dXJuIGlzPFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3du
Y2FzdDxXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkuaXNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpX
b3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmlu
ZGV4IDM4MThlOTkxMWFkLi5mMjk1MTUzMjk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNs
dWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJN
ZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJGZXRjaC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
IgpAQCAtMTAwLDYgKzEwMSwxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RGZXRj
aFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudAogICAgIH0sIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJl
YWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVs
QXJyYXk+JiYgY2hhbm5lbHMpCit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB0
YXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNz
YWdlKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAg
ICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6
OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5uZWxz
KSk7CisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgYmUgYW4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC4KKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQoTWVzc2Fn
ZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSkpKTsKKyAgICAg
ICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCku
Y29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
YXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgfSk7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdU
Rk1vdmUodGFzaykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggOTU0ZGFm
NjA4MmMuLjRlMzliNzFmMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0zNSw5ICsz
NSwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnM7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWw7CitjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE7CiAKK3VzaW5nIE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5ID0g
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCAxPjsKKwogY2xhc3Mg
U2VydmljZVdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQsIHB1YmxpYyBUaHJlYWRT
YWZlSWRlbnRpZmllZDxTZXJ2aWNlV29ya2VyVGhyZWFkPiB7CiBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkPiBjcmVh
dGUoQXJncyYmLi4uIGFyZ3MpCkBAIC00OSw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJP
YmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9i
amVjdFByb3h5OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVm
PFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hP
cHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVm
PFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9y
aWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0Ns
aWVudENvbm5lY3Rpb24uaAppbmRleCA5YzhhMTcwZjEyZC4uODdiMGI2ODRiYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVu
dENvbm5lY3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25EYXRh
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZvaWQg
ZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50
aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdp
c3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBmNThjMTc1OWJhNi4uMTdiMDVl
YWM2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDAs
NiArMTAwLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2
NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljCiAgICAgc2VuZFRvQ29udGV4dFBy
b2Nlc3MoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6U3RhcnRGZXRjaChp
ZGVudGlmaWVyKCksIGZldGNoSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJl
cXVlc3QsIG9wdGlvbnMpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSkKK3sKKyAgICBzZW5k
VG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIG1lc3NhZ2UpKTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgbV9jb250ZW50Q29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZl
UmVzcG9uc2UgeyByZXNwb25zZSB9LCBmZXRjaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDdjYzc2YmRjOWFkLi43OTMwZjJiMTJjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjUsNiArNjUsOCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOwogCisgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UpOworCiAgICAgLy8gTWVzc2Fn
ZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29y
a2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KaW5kZXggZjNkYjNiOTBkYWUuLjRhODA2MGE0ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVz
c2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBGaW5pc2hGZXRjaGluZ1Njcmlw
dEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0
KQogCiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6
OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDBkZWYzNTRjM2NjLi4x
YjZjMmE2MmZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0yOCwxMiAr
MjgsMTUgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L01lc3NhZ2VQb3J0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC02OCw2ICs3MSwxOCBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcgogICAgIHNlcnZpY2VXb3JrZXJUaHJlYWQtPnBvc3RGZXRjaFRhc2soV1RGTW92
ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAordm9p
ZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3Nh
Z2UpCit7CisgICAgYXV0byogd29ya2VyVGhyZWFkID0gbV93b3JrZXJUaHJlYWRNYXAuZ2V0KHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAg
ICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBmaW5kIHNlcnZpY2Ugd29ya2VyIHRocmVhZCB3aXRo
IGdpdmVuIGlkZW50aWZpZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHdvcmtl
clRocmVhZC0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBudWxscHRyKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtl
ckNvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaAppbmRleCA4ZDIwMGMwZjM0MC4uMjdhYTczY2VmMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UpOwogCiAgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZD4+IG1fd29y
a2VyVGhyZWFkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2Vz
LmluCmluZGV4IGVkY2RkOGIzNjQ2Li41ZWYxZGI3MTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMg
LT4gU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyIHsKICAgICBTdGFydFNlcnZpY2VXb3JrZXIo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEgY29udGV4dERhdGEpCiAgICAgU3RhcnRGZXRjaCh1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRh
UmVmZXJlbmNlIG1lc3NhZ2UpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXgg
YmIxZTFjYzlhOTUuLmI5ZTJlNjM4ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI4LDEy
ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2guaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViU1dPcmlnaW5UYWJsZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VydmljZVdvcmtlckpvYkRhdGEuaD4KIApAQCAtNjYsNiArNjgsMTEgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3Qg
U2VydmljZVdvcmtlckZldGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIHNjcmlwdFZhbHVlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9
KSk7Cit9CisKIGJvb2wgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpoYXNTZXJ2aWNlV29ya2VyUmVn
aXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewog
ICAgIHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IDkxYjlmOGM2MjRjLi43OGQ4MTk3MGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAg
LTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5p
c2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZy
b21XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324594</attachid>
            <date>2017-10-23 14:56:51 -0700</date>
            <delta_ts>2017-10-23 16:54:51 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178534_ServiceWorker_postMessage_wip.patch</filename>
            <type>text/plain</type>
            <size>24274</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVz
c2FnZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjQzNWJhYzc3NDFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTOiBTdGF0dXMgY29kZSBpcyAyMDAK
K1BBU1M6IFN0YXR1cyB0ZXh0IGlzV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlCitQQVNTOiBT
b3VyY2UgaXMgU2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2Vy
dmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kODE3MGM2YmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1l
c3NhZ2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorCis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3Nh
Z2UuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3Jr
ZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjJkODIyODkyZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcwpAQCAt
MCwwICsxLDEzIEBACitsZXQgcmVzcG9uc2VUb1NlbmQgPSB7IHN0YXR1czogNDA0LCBzdGF0dXNU
ZXh0OiAiTm90IEZvdW5kIiB9OworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAo
ZXZlbnQpID0+IHsKKyAgICByZXNwb25zZVRvU2VuZCA9IGV2ZW50LmRhdGE7Cit9KTsKKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5y
ZXF1ZXN0LnVybC5pbmRleE9mKCJ0ZXN0MSIpICE9PSAtMSkgeworICAgICAgICBldmVudC5yZXNw
b25kV2l0aChuZXcgUmVzcG9uc2UobnVsbCwgcmVzcG9uc2VUb1NlbmQpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBldmVudC5yZXNwb25kV2l0aChSZXNwb25zZS5lcnJvcigpKTsKK30p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1w
b3N0TWVzc2FnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjU2
MjQ0Nzg1OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcwpA
QCAtMCwwICsxLDM3IEBACitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9iYXNpYy1TZXJ2aWNl
V29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcyIsIHsgfSk7CisKKyAgICAgICAgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7IHN0YXR1czogMjAwLCBzdGF0
dXNUZXh0OiAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIiB9KTsKKworICAgICAgICBsZXQg
cmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgidGVzdDEiKTsKKyAgICAgICAgaWYgKHJlc3BvbnNlLnN0
YXR1cyA9PSAyMDApCisgICAgICAgICAgICBsb2coIlBBU1M6IFN0YXR1cyBjb2RlIGlzICIgKyBy
ZXNwb25zZS5zdGF0dXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFN0
YXR1cyBjb2RlIGlzICIgKyByZXNwb25zZS5zdGF0dXMpOworCisgICAgICAgIGlmIChyZXNwb25z
ZS5zdGF0dXNUZXh0ID09PSAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIikKKyAgICAgICAg
ICAgIGxvZygiUEFTUzogU3RhdHVzIHRleHQgaXMiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogU3RhdHVzIHRleHQgaXMiICsgcmVz
cG9uc2Uuc3RhdHVzVGV4dCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgIGxldCBzb3VyY2UgPSBpbnRlcm5hbHMuZmV0Y2hSZXNwb25zZVNvdXJjZShyZXNw
b25zZSk7CisgICAgICAgICAgICBpZiAoc291cmNlID09PSAiU2VydmljZSB3b3JrZXIiKQorICAg
ICAgICAgICAgICAgIGxvZygiUEFTUzogU291cmNlIGlzICIgKyBzb3VyY2UpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogU291cmNlIGlzICIgKyBzb3VyY2Up
OworICAgICAgICB9CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGxvZygiR290IGV4Y2VwdGlv
bjogIiArIGUpOworICAgIH0KKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCmluZGV4IGRkZDc5YWExN2Y2Li5hMDk2
MjhjNjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAtOTIs
NyArOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFJldHVybnMgdGhlIGVu
dGFuZ2xlZCBwb3J0IGlmIHJ1biBieSB0aGUgc2FtZSB0aHJlYWQgKHNlZSBNZXNzYWdlUG9ydDo6
bG9jYWxseUVudGFuZ2xlZFBvcnQoKSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgTWVzc2Fn
ZVBvcnQqIGxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
KTsKIAotICAgICAgICB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CisgICAgICAgIFdFQkNPUkVfRVhQ
T1JUIH5NZXNzYWdlUG9ydENoYW5uZWwoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0
cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gbV9jaGFubmVsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCmluZGV4IDY2ZDczYmU4NzQw
Li5hNTgyNTUyOGNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyLmNwcApAQCAtMjgsMTAgKzI4LDQ1IEBACiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiAKKyNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNXQ2xpZW50
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJv
dmlkZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1l
c3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIFZlY3RvcjxKU0M6OlN0cm9uZzxK
U0M6OkpTT2JqZWN0Pj4mJikKK1NlcnZpY2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIp
CisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1faWRl
bnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKK30KKworRXhjZXB0aW9uT3I8dm9p
ZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZVZhbHVlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+
JiYgdHJhbnNmZXIpCit7CisgICAgaWYgKHRoaXMtPnN0YXRlKCkgPT0gU3RhdGU6OlJlZHVuZGFu
dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxp
dGVyYWwoIlNlcnZpY2UgV29ya2VyIHN0YXRlIGlzIHJlZHVuZGFudCIpIH07CisKKyAgICAvLyBG
SVhNRTogSW52b2tlIFJ1biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0gd2l0aCBzZXJ2aWNlV29y
a2VyIGFzIHRoZSBhcmd1bWVudC4KKworICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBw
b3J0czsKKyAgICBhdXRvIG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShz
dGF0ZSwgbWVzc2FnZVZhbHVlLCBXVEZNb3ZlKHRyYW5zZmVyKSwgcG9ydHMsIFNlcmlhbGl6YXRp
b25Db250ZXh0OjpXb3JrZXJQb3N0TWVzc2FnZSk7CisgICAgaWYgKG1lc3NhZ2UuaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBtZXNzYWdlLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAg
IC8vIERpc2VudGFuZ2xlIHRoZSBwb3J0IGluIHByZXBhcmF0aW9uIGZvciBzZW5kaW5nIGl0IHRv
IHRoZSByZW1vdGUgY29udGV4dC4KKyAgICBhdXRvIGNoYW5uZWxzID0gTWVzc2FnZVBvcnQ6OmRp
c2VudGFuZ2xlUG9ydHMoV1RGTW92ZShwb3J0cykpOworICAgIGlmIChjaGFubmVscy5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGNoYW5uZWxzLnJlbGVhc2VFeGNlcHRpb24oKTsKKwor
ICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IikgfTsKKworICAgIGF1dG8mIHN3Q29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQ
cm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vzc2lvbklEKCkpOworICAgIC8vIEZJWE1FOiBTdXBw
b3J0IHNlbmRpbmcgdGhlIGNoYW5uZWxzLgorICAgIHN3Q29ubmVjdGlvbi5wb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKG1faWRlbnRpZmllciwgbWVzc2FnZS5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CisKICAgICByZXR1cm4geyB9OwogfQogCkBAIC00Miw3ICs3Nyw3IEBAIGNv
bnN0IFN0cmluZyYgU2VydmljZVdvcmtlcjo6c2NyaXB0VVJMKCkgY29uc3QKIAogU2VydmljZVdv
cmtlcjo6U3RhdGUgU2VydmljZVdvcmtlcjo6c3RhdGUoKSBjb25zdAogewotICAgIHJldHVybiBT
dGF0ZTo6UmVkdW5kYW50OworICAgIHJldHVybiBTdGF0ZTo6QWN0aXZhdGVkOwogfQogCiBFdmVu
dFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29ya2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0CkBAIC01Miw3ICs4Nyw3IEBAIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFNlcnZpY2VXb3JrZXI6
OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
U2VydmljZVdvcmtlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oCmluZGV4IDQwZTEy
ZGUxYjIzLi4wZDk0MGE1N2Q1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5oCkBAIC0yNyw3ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTM5LDkgKzQxLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNsYXNzIFNlcnZpY2VXb3Jr
ZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBTZXJ2
aWNlV29ya2VyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlcj4sIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKEZy
YW1lJiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyKGZyYW1lKSk7
IH0KKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoY29udGV4dCwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpKTsKKyAgICB9CisKICAgICB2aXJ0dWFsIH5TZXJ2aWNlV29y
a2VyKCkgPSBkZWZhdWx0OwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7CkBAIC01NywxMyArNjMs
MjAgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpF
eGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6
SlNPYmplY3Q+PiYmKTsKIAorICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2lu
ZyBSZWZDb3VudGVkOjpkZXJlZjsKKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29y
a2VyKEZyYW1lJik7CisgICAgU2VydmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
dWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCBFdmVudFRh
cmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Owog
ICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB1aW50NjRfdCBtX2lkZW50
aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5k
ZXggZTgzMGE4ZGE3M2YuLjU2ZDU2YzdmODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC0zOCw2
ICszOCw3IEBACiAjaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvdmlkZXIu
aCIKQEAgLTc0LDcgKzc1LDE0IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6ZGVyZWZF
dmVudFRhcmdldCgpCiAKIFNlcnZpY2VXb3JrZXIqIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNv
bnRyb2xsZXIoKSBjb25zdAogewotICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8qIGNvbnRl
eHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0IHx8ICFjb250
ZXh0LT5zZWxlY3RlZFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKCkpIHsKKyAgICAgICAgbV9jb250
cm9sbGVyID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlm
ICghbV9jb250cm9sbGVyIHx8IG1fY29udHJvbGxlci0+aWRlbnRpZmllcigpICE9IGNvbnRleHQt
PnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSkKKyAgICAgICAgbV9jb250cm9sbGVy
ID0gU2VydmljZVdvcmtlcjo6Y3JlYXRlKCpjb250ZXh0LCBjb250ZXh0LT5zZWxlY3RlZFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKCkpOworICAgIHJldHVybiBtX2NvbnRyb2xsZXIuZ2V0KCk7CiB9
CiAKIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVnaXN0cmF0aW9uKGNvbnN0IFN0
cmluZyYgcmVsYXRpdmVTY3JpcHRVUkwsIGNvbnN0IFJlZ2lzdHJhdGlvbk9wdGlvbnMmIG9wdGlv
bnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IDE1
ZjU2ZDFmZWUyLi5hZTZkYTFiZTczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC05NCw2ICs5NCw3IEBA
IHByaXZhdGU6CiAKICAgICBSZWZQdHI8U1dDbGllbnRDb25uZWN0aW9uPiBtX3N3Q29ubmVjdGlv
bjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U2VydmljZVdvcmtlckpvYj4+IG1fam9i
TWFwOworICAgIG11dGFibGUgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fY29udHJvbGxlcjsKIAog
I2lmbmRlZiBOREVCVUcKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fY3JlYXRpb25UaHJlYWQgeyBj
dXJyZW50VGhyZWFkKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggYTZkMGJmZDI2Y2Eu
LjZlMTdkZGNkYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTgsNiArNTgsMTEgQEAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpldmVudFRhcmdl
dEludGVyZmFjZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUV2
ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKIH0KIAorU2VydmljZVdvcmtlclRocmVhZCYgU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlOjp0aHJlYWQoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxT
ZXJ2aWNlV29ya2VyVGhyZWFkJj4oV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGRjNDBjNmYzNDk4Li43MmMwZWYyN2MyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAKICAgICBFdmVudFRhcmdl
dEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsOwogCisgICAgU2Vy
dmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCk7CisKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBTZXJ2aWNlV29ya2VyVGhyZWFkJiwgYm9v
bCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgSURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBBTDo6U2Vzc2lvbklEKTsK
IApAQCAtNjcsNCArNjksOSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
K1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6U2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBpczxXZWJDb3JlOjpXb3JrZXJHbG9iYWxT
Y29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNv
bnRleHQpLmlzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBp
c1R5cGUoY29uc3QgV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQpIHsgcmV0dXJu
IGNvbnRleHQuaXNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKTsgfQorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQorCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCAzODE4ZTk5MTFhZC4uZjI5NTE1MzI5OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLmgiCisjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTEwMCw2ICsxMDEsMTggQEAgdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVu
dD4mJiBjbGllbnQKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAor
dm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzKQoreworICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwg
bWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0g
ZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0
byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSwgV1RGTW92ZShjaGFubmVscykpOworICAgICAgICAvLyBGSVhNRTogU2hvdWxkIGJlIGFu
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuCisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5kaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZN
b3ZlKG1lc3NhZ2UpKSk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJlYWQo
KS53b3JrZXJPYmplY3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkpOworICAgIH0pOworICAg
IHJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oCmluZGV4IDk1NGRhZjYwODJjLi40ZTM5YjcxZjE1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuaApAQCAtMzUsOSArMzUsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgTWVzc2FnZVBv
cnRDaGFubmVsOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV29ya2VyT2Jq
ZWN0UHJveHk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCit1c2luZyBNZXNz
YWdlUG9ydENoYW5uZWxBcnJheSA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsPiwgMT47CisKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2Vy
VGhyZWFkLCBwdWJsaWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U2VydmljZVdvcmtlclRocmVhZD4g
ewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8U2Vy
dmljZVdvcmtlclRocmVhZD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQpAQCAtNDksNiArNTMsNyBA
QCBwdWJsaWM6CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29u
c3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmKTsK
IAogcHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xv
YmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
JiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFM
OjpTZXNzaW9uSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOWM4YTE3MGYxMmQu
Ljg3YjBiNjg0YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTaGFyZWRCdWZmZXI7
CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7
CkBAIC00OCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlSm9iKFNlcnZpY2VX
b3JrZXJKb2ImKTsKICAgICB2b2lkIGZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtl
ckpvYiYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZmFpbGVkRmV0Y2hpbmdTY3JpcHQoU2Vy
dmljZVdvcmtlckpvYiYsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJikgPSAwOwogCiAgICAg
dmlydHVhbCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBoYXNTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdp
biYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5k
ZXggZjU4YzE3NTliYTYuLjE3YjA1ZWFjNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcApAQCAtMTAwLDYgKzEwMCwxMSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVj
dGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZp
YwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXI6OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7CiB9CiAKK3ZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IG1lc3NhZ2UpCit7CisgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OlNlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlcjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShpZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlKSk7Cit9CisK
IHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSh1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
ewogICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
bGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA3Y2M3NmJkYzlh
ZC4uNzkzMGYyYjEyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAg
LTY1LDYgKzY1LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBm
ZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmKTsK
IAorICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNz
YWdlKTsKKwogICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBTVyBjb250ZXh0IFdlYlByb2Nlc3MKICAg
ICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRleHREYXRhJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGYzZGIzYjkwZGFlLi40YTgwNjBhNGQxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAg
ICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckZldGNoUmVzdWx0IHJlc3VsdCkKIAogICAgIFN0YXJ0RmV0Y2godWludDY0X3QgaWRlbnRp
ZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisg
ICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UpCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNw
cAppbmRleCAwZGVmMzU0YzNjYy4uMWI2YzJhNjJmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLmNwcApAQCAtMjgsMTIgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWwuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNw
b25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CiAjaW5j
bHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiB1c2luZyBuYW1lc3BhY2UgUEFMOwpAQCAtNjgsNiAr
NzEsMTggQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0RmV0Y2godWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIKICAgICBzZXJ2aWNlV29ya2VyVGhyZWFk
LT5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShvcHRpb25zKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlKQoreworICAgIGF1dG8qIHdvcmtlclRocmVhZCA9IG1f
d29ya2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgaWYgKCF3
b3JrZXJUaHJlYWQpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZCBub3QgZmluZCBzZXJ2
aWNlIHdvcmtlciB0aHJlYWQgd2l0aCBnaXZlbiBpZGVudGlmaWVyIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdmFsaWQgTWVzc2FnZVBv
cnRDaGFubmVscy4KKyAgICB3b3JrZXJUaHJlYWQtPnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3Rvcigp
KSwgbnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKaW5kZXggOGQy
MDBjMGYzNDAuLjI3YWE3M2NlZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaApAQCAt
NTIsNiArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29y
a2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWlu
dDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBtZXNzYWdlKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvU3Rv
cmFnZVByb2Nlc3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJUaHJlYWQ+PiBtX3dvcmtlclRocmVhZE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBlZGNkZDhiMzY0Ni4uNWVmMWRiNzE4MTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI1
LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB7CiAg
ICAgU3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQog
ICAgIFN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zIG9wdGlvbnMpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlKQogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwCmluZGV4IGJiMWUxY2M5YTk1Li5iOWUyZTYzOGVkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKIAorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKICNpbmNsdWRlICJX
ZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg+CiAKQEAg
LTY2LDYgKzY4LDExIEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGlu
Z1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjCiAgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHJl
c3VsdCkpOwogfQogCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzY3JpcHRWYWx1ZSkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7
IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSkpOworfQorCiBib29sIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6aGFzU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9yaWdpbikgY29uc3QKIHsKICAgICByZXR1cm4gbV9zd09yaWdpblRhYmxlLT5jb250YWlu
cyhvcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA5MWI5ZjhjNjI0Yy4uNzhkODE5NzBmZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYp
IGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYpIGZpbmFsOwogCiAg
ICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324614</attachid>
            <date>2017-10-23 16:54:51 -0700</date>
            <delta_ts>2017-10-23 20:01:33 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>178534_ServiceWorker_postMessage_wip.patch</filename>
            <type>text/plain</type>
            <size>51669</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVz
c2FnZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjQzNWJhYzc3NDFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTOiBTdGF0dXMgY29kZSBpcyAyMDAK
K1BBU1M6IFN0YXR1cyB0ZXh0IGlzV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlCitQQVNTOiBT
b3VyY2UgaXMgU2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2Vy
dmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kODE3MGM2YmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1l
c3NhZ2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorCis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3Nh
Z2UuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3Jr
ZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjJkODIyODkyZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcwpAQCAt
MCwwICsxLDEzIEBACitsZXQgcmVzcG9uc2VUb1NlbmQgPSB7IHN0YXR1czogNDA0LCBzdGF0dXNU
ZXh0OiAiTm90IEZvdW5kIiB9OworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAo
ZXZlbnQpID0+IHsKKyAgICByZXNwb25zZVRvU2VuZCA9IGV2ZW50LmRhdGE7Cit9KTsKKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5y
ZXF1ZXN0LnVybC5pbmRleE9mKCJ0ZXN0MSIpICE9PSAtMSkgeworICAgICAgICBldmVudC5yZXNw
b25kV2l0aChuZXcgUmVzcG9uc2UobnVsbCwgcmVzcG9uc2VUb1NlbmQpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBldmVudC5yZXNwb25kV2l0aChSZXNwb25zZS5lcnJvcigpKTsKK30p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1w
b3N0TWVzc2FnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjU2
MjQ0Nzg1OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcwpA
QCAtMCwwICsxLDM3IEBACitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9iYXNpYy1TZXJ2aWNl
V29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcyIsIHsgfSk7CisKKyAgICAgICAgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7IHN0YXR1czogMjAwLCBzdGF0
dXNUZXh0OiAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIiB9KTsKKworICAgICAgICBsZXQg
cmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgidGVzdDEiKTsKKyAgICAgICAgaWYgKHJlc3BvbnNlLnN0
YXR1cyA9PSAyMDApCisgICAgICAgICAgICBsb2coIlBBU1M6IFN0YXR1cyBjb2RlIGlzICIgKyBy
ZXNwb25zZS5zdGF0dXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFN0
YXR1cyBjb2RlIGlzICIgKyByZXNwb25zZS5zdGF0dXMpOworCisgICAgICAgIGlmIChyZXNwb25z
ZS5zdGF0dXNUZXh0ID09PSAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIikKKyAgICAgICAg
ICAgIGxvZygiUEFTUzogU3RhdHVzIHRleHQgaXMiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogU3RhdHVzIHRleHQgaXMiICsgcmVz
cG9uc2Uuc3RhdHVzVGV4dCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgIGxldCBzb3VyY2UgPSBpbnRlcm5hbHMuZmV0Y2hSZXNwb25zZVNvdXJjZShyZXNw
b25zZSk7CisgICAgICAgICAgICBpZiAoc291cmNlID09PSAiU2VydmljZSB3b3JrZXIiKQorICAg
ICAgICAgICAgICAgIGxvZygiUEFTUzogU291cmNlIGlzICIgKyBzb3VyY2UpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogU291cmNlIGlzICIgKyBzb3VyY2Up
OworICAgICAgICB9CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGxvZygiR290IGV4Y2VwdGlv
bjogIiArIGUpOworICAgIH0KKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKwordGVzdCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBhYzUyMWY2YzMxMC4uNjBjMzZjNjUxN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC03OTgsNiArNzk4LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklM
RVMKIAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaWRsCiAgICAgd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudEluaXQuaWRsCisgICAgd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQu
aWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsCiAgICAgd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaWRsCkBAIC0xMzIzLDYgKzEzMjQsNyBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCiAgICAgYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNGaWxlU3lzdGVtRW50cnlDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTMwOTgsNiArMzEwMCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKIAogICAgIHdvcmtlcnMv
c2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwCisgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFi
bGVNZXNzYWdlRXZlbnQuY3BwCiAgICAgd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCiAg
ICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCiAgICAgd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA2NTViNWM4Nzc5OS4uYjZiZDEzOTgyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtOTE3LDYgKzkxNyw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L3dvcmtlcnMvV29ya2VyVHlwZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVFdmVudEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ2xpZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOTM2MGVkZWIxYTguLmJjMmU3NmQwNjliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjM4
LDYgKzMyMzgsOSBAQAogCQk4MzA2RUZGMTFCOEJDRUE1MDAzMUQwMzIgLyogTmF0aXZlTm9kZUZp
bHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzA2RUZGMDFCOEJDRTdDMDAzMUQwMzIgLyogTmF0aXZlTm9kZUZpbHRlci5jcHAgKi87IH07CiAJ
CTgzMDc4NEIyMUM1MkVFMkMwMDEwNEQxRCAvKiBYTUxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwNzg0QjExQzUyRUUxOTAwMTA0RDFE
IC8qIFhNTERvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJODMwQTM2QkQxREFDNUZBRDAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMEEzNkJC
MURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggKi87IH07CisJCTgzMTAyQjI2
MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMxMDJCMjUxRjlFQURDMjAw
RTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi87IH07CisJCTgzMTAyQjI3
MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTAyQjIzMUY5RUFEQzIwMEU0
MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsgfTsKKwkJODMxMEEyNEYxRjlF
QjU0MTAwMzg3MzhBIC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzEwQTI0RDFGOUVCNTNBMDAzODcz
OEEgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKIAkJODMxMjBDNzAxQzU2
RjNGNjAwMUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRN
TERhdGFFbGVtZW50LmNwcCAqLzsgfTsKIAkJODMxMjBDNzExQzU2RjNGQjAwMUNCMTEyIC8qIEhU
TUxEYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM0Qjg2QTcxQzU2RTgzQTAwRjNGMEUzIC8qIEhUTUxEYXRhRWxlbWVudC5oICovOyB9
OwogCQk4MzIxNTA3RDFGMjdFQTE4MDA5NUIxMzYgLyogTmF2aWdhdG9yQmVhY29uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMjE1MDdBMUYyN0VB
MTUwMDk1QjEzNiAvKiBOYXZpZ2F0b3JCZWFjb24uY3BwICovOyB9OwpAQCAtMzI4OCw2ICszMjkx
LDggQEAKIAkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25J
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5
NjRDRTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSAqLzsgfTsK
IAkJODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2FsaXphYmxlLnN0cmluZ3NkaWN0IGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdBODAxMTFF
MUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgKi87IH07CiAJCTgzN0I3
RDIwMURDM0Y1NTAwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3QjdEMUYxREMzRjU0QzAwRDA1
MUZDIC8qIFZhbGlkYXRpb25CdWJibGVJT1MubW0gKi87IH07CisJCTgzN0ZCMzQ0MUY5RUEwNkQw
MEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKKwkJODM3RkIzNDUxRjlFQTA2RDAwRDBG
QzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTgzODZBOTZEMTlGNjFCMkUwMEUxRUM0QSAvKiBT
dHlsZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzODZBOTZDMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuaCAqLzsgfTsKIAkJ
ODM4ODY3MzUxRDEzQkE1RjAwMzY5N0QwIC8qIFJlbmRlck9iamVjdEVudW1zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzg4NjczNDFEMTNCQTU5MDAz
Njk3RDAgLyogUmVuZGVyT2JqZWN0RW51bXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzhFRjUzODFEQzE0OUUyMDA4RjBDMzkgLyogSURCVHJh
bnNhY3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzhFRjUzNjFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMjcyLDYg
KzExMjc3LDkgQEAKIAkJODMwNzg0QjExQzUyRUUxOTAwMTA0RDFEIC8qIFhNTERvY3VtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTERvY3VtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJBMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNl
RXZlbnRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91
c2VFdmVudEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQjFE
QUM1RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01vdXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTAyQjI1MUY5RUFEQzIw
MEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxMEEyNEQxRjlFQjUzQTAwMzg3MzhBIC8qIEpTRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMjE1MDdBMUYyN0VBMTUwMDk1QjEzNiAv
KiBOYXZpZ2F0b3JCZWFjb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yQmVhY29u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyMTUwN0IxRjI3RUExNTAwOTVC
MTM2IC8qIE5hdmlnYXRvckJlYWNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JCZWFjb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMzU1LDYgKzExMzYzLDkgQEAKIAkJ
ODM3QTgwMTIxRTFFMTI3MzAwMDI2QjlGIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3NkaWN0OyBuYW1l
ID0gRW5nbGlzaDsgcGF0aCA9IEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nc2RpY3Q7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJODM3QjdEMUYxREMzRjU0QzAwRDA1MUZD
IC8qIFZhbGlkYXRpb25CdWJibGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBWYWxpZGF0aW9uQnViYmxlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzdERkIzNDFFQkZFQTcwMDA2MDEzODUgLyogRWxlbWVudENTU0lubGluZVN0eWxl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyog
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTgzN0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVuZGFibGVNZXNzYWdlRXZl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzdGQjM0MzFGOUVBMDY4MDBE
MEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzODZBOTZDMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzODZBOTZFMTlGNjFFNEYwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVCdWlsZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4ODY3MzQxRDEzQkE1OTAwMzY5N0QwIC8q
IFJlbmRlck9iamVjdEVudW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlck9iamVjdEVudW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODU5Niw2
ICsxODYwNyw4IEBACiAJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUzIC8qIEpTRXh0ZW5kYWJs
ZUV2ZW50LmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRh
YmxlRXZlbnQuaCAqLywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTQgLyogSlNFeHRlbmRh
YmxlRXZlbnRJbml0LmNwcCAqLywKKwkJCQk4MzEwMkIyNTFGOUVBREMyMDBFNDA0QjkgLyogSlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLywKKwkJCQk4MzEwMkIyMzFGOUVBREMyMDBFNDA0
QjkgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi8sCiAJCQkJN0U0Qzk2RDgxQUQ0NDgz
NTAwMzY1QTUyIC8qIEpTRmV0Y2hFdmVudC5jcHAgKi8sCiAJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAw
MzY1QTUyIC8qIEpTRmV0Y2hFdmVudC5oICovLAogCQkJCTUxRjg4NkJFMUYzMjkyMDcwMEMxOTNF
RiAvKiBKU05hdmlnYXRvclNlcnZpY2VXb3JrZXIuY3BwICovLApAQCAtMTg2ODcsNiArMTg3MDAs
OSBAQAogCQkJCTQxQUYzNzhFMUY4QzFFN0MwMDExMUMzMSAvKiBFeHRlbmRhYmxlRXZlbnQuaWRs
ICovLAogCQkJCTQxMzFGM0I0MUY5NTVCQzMwMDU5OTk1QSAvKiBFeHRlbmRhYmxlRXZlbnRJbml0
LmggKi8sCiAJCQkJNDEzMUYzQjUxRjk1NUJDNTAwNTk5OTVBIC8qIEV4dGVuZGFibGVFdmVudElu
aXQuaWRsICovLAorCQkJCTgzN0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmNwcCAqLywKKwkJCQk4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyogRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudC5oICovLAorCQkJCTgzN0ZCMzQzMUY5RUEwNjgwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCAqLywKIAkJCQk0MUFGMzc5NDFGOERBNDk1MDAxMTFD
MzEgLyogRmV0Y2hFdmVudC5jcHAgKi8sCiAJCQkJNDFBRjM3ODgxRjhDMUU3OTAwMTExQzMxIC8q
IEZldGNoRXZlbnQuaCAqLywKIAkJCQk0MUFGMzc4RDFGOEMxRTdCMDAxMTFDMzEgLyogRmV0Y2hF
dmVudC5pZGwgKi8sCkBAIC0yMDAzNiw2ICsyMDA1Miw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAogCQkJCURFQzI5NzVEMUI0REVCMkEwMDVGNTk0NSAvKiBKU0N1c3Rv
bUV2ZW50Q3VzdG9tLmNwcCAqLywKKwkJCQk4MzEwQTI0RDFGOUVCNTNBMDAzODczOEEgLyogSlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLywKIAkJCQk0MTMxRjNCMTFGOTU1MjgxMDA1OTk5
NUEgLyogSlNGZXRjaEV2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0U3QjE5MjBENEU4Njk2MDA3
NUE1MzkgLyogSlNIaXN0b3J5Q3VzdG9tLmNwcCAqLywKIAkJCQk0MTBCN0U3MTEwNDVGQUIwMDBE
ODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovLApAQCAtMjc2MzIsNiArMjc2NDks
NyBAQAogCQkJCTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUY2NDU2MjFGNDUzOThGMDBCNTRERUQgLyogRXhjZXB0aW9uRGF0
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNEMTk2MzExRDZDQUI3NjAwRkM3RTQ3IC8qIEV4Y2Vw
dGlvbk9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyog
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFEQ0RGNDQxREEx
QzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNjdE
MkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjgzNzQsNiArMjgzOTIsNyBAQAogCQkJCTQ2QjYzRjZDMUM2RThEMTkwMDJF
OTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjRFRDMz
MjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUzIC8qIEpTRXh0ZW5kYWJsZUV2ZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4MzEwMkIyNzFGOUVBREQ5MDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAg
LyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLywKIAkJCQk3NzI4Njk4NDE0
RkQ5QURBMDBGNDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTc3RDUwRkY2MUVENEQ5OUIwMERBNEM4NyAvKiBKU0ZlZGVyYXRlZENyZWRl
bnRpYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3MDIsNiArMzE3MjEsNyBAQAogCQkJCTUxRjY0
NUE0MUY0QzAwMTcwMEI1NERFRCAvKiBFeGNlcHRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTcyNEVEMzJDMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MUFGMzc5OTFGOERBREFBMDAxMTFDMzEgLyogRXh0ZW5kYWJsZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzN0ZCMzQ0MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRENERjQzMURBMUM0
NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNjdE
MkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENv
bW1vbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxNzE2LDYgKzMxNzM2LDcgQEAKIAkJCQlBNzVF
OEI4RTBFMURFMkQ2MDA3RjI0ODEgLyogRkVDb21wb3NpdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODQ3MzBENzgxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFQ29udm9sdmVNYXRyaXguY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzdBQUQ2ODIxRUNGOEQzODAwQkZBMkQxIC8qIEZlZGVyYXRlZENyZWRl
bnRpYWwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODMxMEEyNEYxRjlFQjU0MTAwMzg3MzhBIC8q
IEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NDczMEQ3
QTEyNDhGMEIzMDBEM0E5QzkgLyogRkVEaWZmdXNlTGlnaHRpbmcuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODQ3MzBEN0MxMjQ4RjBCMzAwRDNBOUM5IC8qIEZFRGlzcGxhY2VtZW50TWFwLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQzNThFODgwMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFk
b3cuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjIyMyw2ICszMjI0NCw3IEBACiAJCQkJNDFBRjM3
OUQxRjhEQjFCNTAwMTExQzMxIC8qIEpTRE9NUHJvbWlzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMzk3NUI3QTFFQzlBRjNGMDA4NDc3MTcgLyogSlNFbGVtZW50RE9NSklULmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUUzOTc1QjdCMUVDOUFGM0YwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTgzMTAyQjI2MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUYzQjMxRjk1NTI4
NjAwNTk5OTVBIC8qIEpTRmV0Y2hFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkRBN0MxRTE4ODMyMkZDMDBDOTU0QjUgLyogSlNHZXN0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTMxNTBFQTYxREE3MjE5MDAwMTk0MDEyIC8qIEpTTm9kZURPTUpJVC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCmluZGV4IGQ4ZDc4MDgwNjQyLi42ZjgwM2M1OTVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC02Miw2
ICs2Miw3IEBACiAjaW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVu
dExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCIKKyNpbmNs
dWRlICJKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRmls
ZVN5c3RlbUVudHJ5Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0hUTUxDb2xsZWN0aW9uQ3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTRjN2Q5MjQ4YmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNz
YWdlRXZlbnQuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworSlNWYWx1ZSBKU0V4dGVuZGFi
bGVNZXNzYWdlRXZlbnQ6OmRhdGEoRXhlY1N0YXRlJiBzdGF0ZSkgY29uc3QKK3sKKyAgICBpZiAo
SlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1fZGF0YS5nZXQoKSkgeworICAgICAgICAvLyBXZSBjYW5u
b3QgdXNlIGEgY2FjaGVkIG9iamVjdCBpZiB3ZSBhcmUgaW4gYSBkaWZmZXJlbnQgd29ybGQgdGhh
biB0aGUgb25lIGl0IHdhcyBjcmVhdGVkIGluLgorICAgICAgICBpZiAoIWNhY2hlZFZhbHVlLmlz
T2JqZWN0KCkgfHwgJndvcmxkRm9yRE9NT2JqZWN0KGNhY2hlZFZhbHVlLmdldE9iamVjdCgpKSA9
PSAmY3VycmVudFdvcmxkKCZzdGF0ZSkpCisgICAgICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIGF1dG8mIGV2ZW50
ID0gd3JhcHBlZCgpOworICAgIEpTVmFsdWUgcmVzdWx0OworICAgIGlmIChhdXRvKiBzZXJpYWxp
emVkVmFsdWUgPSBldmVudC5kYXRhKCkpIHsKKyAgICAgICAgYXV0byBwb3J0cyA9IGV2ZW50LnBv
cnRzKCk7CisgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVzZXJpYWxpemUoc3Rh
dGUsIGdsb2JhbE9iamVjdCgpLCBwb3J0cywgU2VyaWFsaXphdGlvbkVycm9yTW9kZTo6Tm9uVGhy
b3dpbmcpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBqc051bGwoKTsKKworICAgIC8v
IFNhdmUgdGhlIHJlc3VsdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGRlc2VyaWFsaXplIHRoZSB2YWx1
ZSBhZ2Fpbi4KKyAgICBtX2RhdGEuc2V0KHN0YXRlLnZtKCksIHRoaXMsIHJlc3VsdCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGY1ODk0M2RhY2E5Li5iY2EyZWY3YTUxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApA
QCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRGF0YVRyYW5z
ZmVySXRlbUxpc3QpIFwKICAgICBtYWNybyhEb2N1bWVudFRpbWVsaW5lKSBcCiAgICAgbWFjcm8o
RXh0ZW5kYWJsZUV2ZW50KSBcCisgICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCkgXAog
ICAgIG1hY3JvKEZlZGVyYXRlZENyZWRlbnRpYWwpIFwKICAgICBtYWNybyhGZXRjaEV2ZW50KSBc
CiAgICAgbWFjcm8oRmlsZVN5c3RlbSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBl
ODQyYmQzOTBhNi4uN2M2YjNhNWE2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCkBAIC0x
MSw2ICsxMSw3IEBAIENsb3NlRXZlbnQKIENvbXBvc2l0aW9uRXZlbnQKIEN1c3RvbUV2ZW50CiBF
eHRlbmRhYmxlRXZlbnQgY29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKK0V4dGVuZGFibGVNZXNz
YWdlRXZlbnQgY29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKIEVycm9yRXZlbnQKIEZldGNoRXZl
bnQgY29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKIEZvY3VzRXZlbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBkZGQ3OWFhMTdmNi4uYTA5NjI4YzYwMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKQEAgLTkyLDcgKzkyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBSZXR1cm5zIHRoZSBlbnRhbmdsZWQgcG9y
dCBpZiBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChzZWUgTWVzc2FnZVBvcnQ6OmxvY2FsbHlFbnRh
bmdsZWRQb3J0KCkgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAgIE1lc3NhZ2VQb3J0KiBsb2Nh
bGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKLSAgICAg
ICAgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCB+TWVzc2Fn
ZVBvcnRDaGFubmVsKCk7CiAKICAgICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8UGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWw+IG1fY2hhbm5lbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKaW5kZXggOTdjNjdjNDNlYTUuLjFkMjFm
YzY3NDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5k
YWJsZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5k
YWJsZUV2ZW50LmNwcApAQCAtMzcsNiArMzcsMTUgQEAgRXh0ZW5kYWJsZUV2ZW50OjpFeHRlbmRh
YmxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFeHRlbmRhYmxlRXZlbnQK
IHsKIH0KIAorRXh0ZW5kYWJsZUV2ZW50OjpFeHRlbmRhYmxlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSkKKyAgICA6IEV2ZW50KHR5
cGUsIGJ1YmJsZXMsIGNhbmNlbGFibGUpCit7Cit9CisKK0V4dGVuZGFibGVFdmVudDo6fkV4dGVu
ZGFibGVFdmVudCgpCit7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEV4dGVuZGFibGVFdmVudDo6
d2FpdFVudGlsKFJlZjxET01Qcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFpc1RydXN0
ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRh
YmxlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZl
bnQuaAppbmRleCA3MDc0ODA1OTc5Yy4uYmE3OWE2YmYwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmgKQEAgLTQyLDYgKzQyLDggQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRhYmxlRXZlbnQodHlw
ZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwogICAgIH0KIAorICAgIH5FeHRlbmRhYmxlRXZl
bnQoKTsKKwogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gRXh0ZW5kYWJsZUV2ZW50SW50ZXJmYWNlVHlwZTsgfQogCiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gd2FpdFVudGlsKFJlZjxET01Qcm9taXNlPiYmKTsKQEAgLTUwLDYgKzUyLDcg
QEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgRXh0ZW5kYWJsZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEV4dGVuZGFibGVFdmVudEluaXQmLCBJc1Ry
dXN0ZWQpOworICAgIEV4dGVuZGFibGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBib29sIGJ1
YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSk7CiAKICAgICBXZWFrUHRyPEV4dGVuZGFibGVFdmVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigq
dGhpcyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5kZjE2YjJkYWJlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcApAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudD4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFZlY3RvcjxSZWZQ
dHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRzLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBz
dGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYgc291cmNlKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoV1RGTW92ZShk
YXRhKSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHBvcnRz
KSkpOworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBJ
bml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KHR5
cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZGF0YShTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZShzdGF0ZSwgaW5pdC5kYXRhKSkKKyAgICAsIG1fb3JpZ2luKGluaXQub3JpZ2luKQor
ICAgICwgbV9sYXN0RXZlbnRJZChpbml0Lmxhc3RFdmVudElkKQorICAgICwgbV9wb3J0cyhpbml0
LnBvcnRzKQoreworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50KFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YSwgY29uc3QgU3RyaW5n
JiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIHN0ZDo6b3B0aW9uYWw8RXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBv
cnQ+PiYmIHBvcnRzKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KGV2ZW50TmFtZXMoKS5tZXNzYWdl
RXZlbnQsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorICAgICwg
bV9vcmlnaW4ob3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChsYXN0RXZlbnRJZCkKKyAgICAs
IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAsIG1fcG9ydHMoV1RGTW92ZShwb3J0cykp
Cit7Cit9CisKK0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6On5FeHRlbmRhYmxlTWVzc2FnZUV2ZW50
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjM2OTZmMGE5NWFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaApAQCAtMCwwICsxLDgxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CisKKyNpbmNsdWRlICJFeHRlbmRhYmxlRXZlbnQuaCIKKyNpbmNsdWRlICJFeHRlbmRhYmxlRXZl
bnRJbml0LmgiCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9W
YXJpYW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQ
dHI8U2VydmljZVdvcmtlcj4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+OworCitjbGFzcyBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV4dGVuZGFibGVFdmVudCB7CitwdWJsaWM6
CisgICAgc3RydWN0IEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKKyAgICAgICAgSlNDOjpK
U1ZhbHVlIGRhdGE7CisgICAgICAgIFN0cmluZyBvcmlnaW47CisgICAgICAgIFN0cmluZyBsYXN0
RXZlbnRJZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291
cmNlPiBzb3VyY2U7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBwb3J0czsK
KyAgICB9OworCisgICAgc3RhdGljIFJlZjxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50PiBjcmVhdGUo
SlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IElu
aXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObykKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQo
c3RhdGUsIHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgUmVmPEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ+IGNyZWF0ZShWZWN0b3I8UmVmUHRyPE1lc3Nh
Z2VQb3J0Pj4mJiwgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5n
JiBvcmlnaW4gPSB7IH0sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQgPSB7IH0sIHN0ZDo6b3B0
aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UgPSBzdGQ6Om51bGxv
cHQpOworCisgICAgfkV4dGVuZGFibGVNZXNzYWdlRXZlbnQoKTsKKworICAgIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQorICAgIGNv
bnN0IFN0cmluZyYgb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KKyAgICBjb25z
dCBTdHJpbmcmIGxhc3RFdmVudElkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXZlbnRJZDsgfQor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mIHNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0
cjxNZXNzYWdlUG9ydD4+JiBwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydHM7IH0KKworICAg
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudEludGVyZmFjZVR5cGU7IH0KKworcHJpdmF0ZToKKyAgICBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgQXRvbWljU3RyaW5nJiwg
Y29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBj
b25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdl
RXZlbnRTb3VyY2U+JiYsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmKTsKKworICAgIFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fZGF0YTsKKyAgICBTdHJpbmcgbV9vcmlnaW47
CisgICAgU3RyaW5nIG1fbGFzdEV2ZW50SWQ7CisgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50U291cmNlPiBtX3NvdXJjZTsKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQ
b3J0Pj4gbV9wb3J0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk4NDBiMGZlODQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25zdHJ1Y3RvcihET01TdHJp
bmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgZXZlbnRJbml0RGlj
dCksCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRTdGF0ZSwKKyAgICBDb25kaXRpb25h
bD1TRVJWSUNFX1dPUktFUiwKKyAgICBFbmFibGVkQXRSdW50aW1lPVNlcnZpY2VXb3JrZXIsCisg
ICAgRXhwb3NlZD1TZXJ2aWNlV29ya2VyLAorXSBpbnRlcmZhY2UgRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudCA6IEV4dGVuZGFibGVFdmVudCB7CisgICAgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0
dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRhdGE7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFVTVlN0cmluZyBvcmlnaW47CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0
RXZlbnRJZDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIChTZXJ2aWNlV29y
a2VyQ2xpZW50IG9yIFNlcnZpY2VXb3JrZXIgb3IgTWVzc2FnZVBvcnQpPyBzb3VyY2U7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PE1lc3NhZ2VQb3J0PiBwb3J0czsKK307CisK
K2RpY3Rpb25hcnkgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJ
bml0IHsKKyAgICBhbnkgZGF0YSA9IG51bGw7CisgICAgVVNWU3RyaW5nIG9yaWdpbiA9ICIiOwor
ICAgIERPTVN0cmluZyBsYXN0RXZlbnRJZCA9ICIiOworICAgIChTZXJ2aWNlV29ya2VyQ2xpZW50
IG9yIFNlcnZpY2VXb3JrZXIgb3IgTWVzc2FnZVBvcnQpPyBzb3VyY2UgPSBudWxsOworICAgIHNl
cXVlbmNlPE1lc3NhZ2VQb3J0PiBwb3J0cyA9IFtdOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCA2NmQ3M2JlODc0MC4uYTU4
MjU1MjhjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlci5jcHAKQEAgLTI4LDEwICsyOCw0NSBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQogCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTV0NsaWVudENvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVy
LmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oPgorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdl
KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpK
U09iamVjdD4+JiYpCitTZXJ2aWNlV29ya2VyOjpTZXJ2aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAg
IDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBtX2lkZW50aWZp
ZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFNl
cnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1Zh
bHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmIHRy
YW5zZmVyKQoreworICAgIGlmICh0aGlzLT5zdGF0ZSgpID09IFN0YXRlOjpSZWR1bmRhbnQpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVNDSUlMaXRlcmFs
KCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyByZWR1bmRhbnQiKSB9OworCisgICAgLy8gRklYTUU6
IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggc2VydmljZVdvcmtlciBh
cyB0aGUgYXJndW1lbnQuCisKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gcG9ydHM7
CisgICAgYXV0byBtZXNzYWdlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUs
IG1lc3NhZ2VWYWx1ZSwgV1RGTW92ZSh0cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxpemF0aW9uQ29u
dGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UpOworICAgIGlmIChtZXNzYWdlLmhhc0V4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4gbWVzc2FnZS5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICAvLyBE
aXNlbnRhbmdsZSB0aGUgcG9ydCBpbiBwcmVwYXJhdGlvbiBmb3Igc2VuZGluZyBpdCB0byB0aGUg
cmVtb3RlIGNvbnRleHQuCisgICAgYXV0byBjaGFubmVscyA9IE1lc3NhZ2VQb3J0OjpkaXNlbnRh
bmdsZVBvcnRzKFdURk1vdmUocG9ydHMpKTsKKyAgICBpZiAoY2hhbm5lbHMuaGFzRXhjZXB0aW9u
KCkpCisgICAgICAgIHJldHVybiBjaGFubmVscy5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICBp
ZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVjdXRpb24gY29u
dGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBz
ZW5kaW5nIHRoZSBjaGFubmVscy4KKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFzZVJldHVyblZh
bHVlKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArNzcsNyBAQCBjb25zdCBT
dHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZpY2VXb3JrZXI6
OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RhdGU6
OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAogRXZlbnRUYXJn
ZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdApA
QCAtNTIsNyArODcsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29ya2VyOjpldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNlcnZp
Y2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0MGUxMmRlMWIy
My4uYjM5OGQ0ZDk3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXIuaApAQCAtMjcsOCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwpAQCAt
MzksOSArNDEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZTsKIAotY2xh
c3MgU2VydmljZVdvcmtlciBmaW5hbCA6IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
IHsKK2NsYXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNl
V29ya2VyPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTZXJ2aWNlV29y
a2VyPiBjcmVhdGUoRnJhbWUmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VX
b3JrZXIoZnJhbWUpKTsgfQorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtl
cihjb250ZXh0LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOworICAgIH0KKwogICAgIHZpcnR1
YWwgflNlcnZpY2VXb3JrZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsK
QEAgLTU3LDEzICs2MywyMCBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0
TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlND
OjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwogCisgICAgdWludDY0X3QgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgdXNpbmcgUmVmQ291bnRlZDo6
cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IFNlcnZpY2VXb3JrZXIoRnJhbWUmKTsKKyAgICBTZXJ2aWNlV29ya2VyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3Q7CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0K
ICAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIHVp
bnQ2NF90IG1faWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uNTZkNTZjN2Y4NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2Iu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJQcm92aWRlci5oIgpAQCAtNzQsNyArNzUsMTQgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKIAogU2VydmljZVdvcmtlciogU2VydmljZVdvcmtl
ckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQgfHwgIWNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSkgewor
ICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisgICAgaWYgKCFtX2NvbnRyb2xsZXIgfHwgbV9jb250cm9sbGVyLT5pZGVudGlmaWVy
KCkgIT0gY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKQorICAgICAg
ICBtX2NvbnRyb2xsZXIgPSBTZXJ2aWNlV29ya2VyOjpjcmVhdGUoKmNvbnRleHQsIGNvbnRleHQt
PnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSk7CisgICAgcmV0dXJuIG1fY29udHJv
bGxlci5nZXQoKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRSZWdpc3Ry
YXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVSTCwgY29uc3QgUmVnaXN0cmF0aW9u
T3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmgKaW5kZXggMTVmNTZkMWZlZTIuLmFlNmRhMWJlNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAg
LTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxTV0NsaWVudENvbm5lY3Rpb24+
IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2aWNlV29y
a2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9j
b250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRocmVhZElkZW50aWZpZXIgbV9jcmVh
dGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRl
eCBhNmQwYmZkMjZjYS4uNmUxN2RkY2RiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01
OCw2ICs1OCwxMSBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGU6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAgICByZXR1cm4gU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOwogfQogCitTZXJ2aWNlV29ya2Vy
VGhyZWFkJiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihXb3JrZXJHbG9iYWxTY29wZTo6dGhy
ZWFkKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggZGM0MGM2ZjM0OTguLjcyYzBl
ZjI3YzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKIAog
ICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmlu
YWw7CiAKKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJlYWQoKTsKKwogcHJpdmF0ZToKICAg
ICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNlcnZpY2VXb3Jr
ZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgUEFM
OjpTZXNzaW9uSUQpOwogCkBAIC02Nyw0ICs2OSw5IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGlzPFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZT4oY29udGV4dCkuaXNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKTsgfQorICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZSYgY29u
dGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpOyB9CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDM4MThlOTkxMWFkLi5lMjU2
OTc5NGZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTEwMCw2
ICsxMDEsMTcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxT
ZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQKICAgICB9LCBXb3JrZXJSdW5Mb29w
OjpkZWZhdWx0TW9kZSgpKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNo
YW5uZWxzKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbY2hhbm5l
bHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldIChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KTsKKyAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBv
cnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShjaGFubmVscykpOworICAgICAg
ICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuZGlzcGF0Y2hFdmVudChFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSkpKTsKKyAgICAg
ICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCku
Y29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
YXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgfSk7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdU
Rk1vdmUodGFzaykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggOTU0ZGFm
NjA4MmMuLjRlMzliNzFmMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0zNSw5ICsz
NSwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnM7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWw7CitjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE7CiAKK3VzaW5nIE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5ID0g
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCAxPjsKKwogY2xhc3Mg
U2VydmljZVdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQsIHB1YmxpYyBUaHJlYWRT
YWZlSWRlbnRpZmllZDxTZXJ2aWNlV29ya2VyVGhyZWFkPiB7CiBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkPiBjcmVh
dGUoQXJncyYmLi4uIGFyZ3MpCkBAIC00OSw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJP
YmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9i
amVjdFByb3h5OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVm
PFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hP
cHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYpOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVm
PFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01h
aW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9y
aWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0Ns
aWVudENvbm5lY3Rpb24uaAppbmRleCA5YzhhMTcwZjEyZC4uODdiMGI2ODRiYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVu
dENvbm5lY3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25EYXRh
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZvaWQg
ZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50
aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdp
c3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBmNThjMTc1OWJhNi4uMTdiMDVl
YWM2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDAs
NiArMTAwLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2
NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljCiAgICAgc2VuZFRvQ29udGV4dFBy
b2Nlc3MoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6U3RhcnRGZXRjaChp
ZGVudGlmaWVyKCksIGZldGNoSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJl
cXVlc3QsIG9wdGlvbnMpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSkKK3sKKyAgICBzZW5k
VG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIG1lc3NhZ2UpKTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgbV9jb250ZW50Q29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZl
UmVzcG9uc2UgeyByZXNwb25zZSB9LCBmZXRjaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDdjYzc2YmRjOWFkLi43OTMwZjJiMTJjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjUsNiArNjUsOCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOwogCisgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UpOworCiAgICAgLy8gTWVzc2Fn
ZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29y
a2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KaW5kZXggZjNkYjNiOTBkYWUuLjRhODA2MGE0ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVz
c2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBGaW5pc2hGZXRjaGluZ1Njcmlw
dEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0
KQogCiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6
OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDBkZWYzNTRjM2NjLi4x
YjZjMmE2MmZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0yOCwxMiAr
MjgsMTUgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L01lc3NhZ2VQb3J0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC02OCw2ICs3MSwxOCBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcgogICAgIHNlcnZpY2VXb3JrZXJUaHJlYWQtPnBvc3RGZXRjaFRhc2soV1RGTW92
ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAordm9p
ZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3Nh
Z2UpCit7CisgICAgYXV0byogd29ya2VyVGhyZWFkID0gbV93b3JrZXJUaHJlYWRNYXAuZ2V0KHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlclRocmVhZCkgeworICAgICAg
ICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBmaW5kIHNlcnZpY2Ugd29ya2VyIHRocmVhZCB3aXRo
IGdpdmVuIGlkZW50aWZpZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHdvcmtl
clRocmVhZC0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJpYWxpemVk
U2NyaXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBudWxscHRyKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtl
ckNvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaAppbmRleCA4ZDIwMGMwZjM0MC4uMjdhYTczY2VmMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UpOwogCiAgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZD4+IG1fd29y
a2VyVGhyZWFkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2Vz
LmluCmluZGV4IGVkY2RkOGIzNjQ2Li41ZWYxZGI3MTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMg
LT4gU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyIHsKICAgICBTdGFydFNlcnZpY2VXb3JrZXIo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEgY29udGV4dERhdGEpCiAgICAgU3RhcnRGZXRjaCh1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRh
UmVmZXJlbmNlIG1lc3NhZ2UpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXgg
YmIxZTFjYzlhOTUuLmI5ZTJlNjM4ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI4LDEy
ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2guaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViU1dPcmlnaW5UYWJsZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VydmljZVdvcmtlckpvYkRhdGEuaD4KIApAQCAtNjYsNiArNjgsMTEgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3Qg
U2VydmljZVdvcmtlckZldGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIHNjcmlwdFZhbHVlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9
KSk7Cit9CisKIGJvb2wgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpoYXNTZXJ2aWNlV29ya2VyUmVn
aXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewog
ICAgIHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IDkxYjlmOGM2MjRjLi43OGQ4MTk3MGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAg
LTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5p
c2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJikgZmluYWw7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZy
b21XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324630</attachid>
            <date>2017-10-23 20:01:35 -0700</date>
            <delta_ts>2017-10-23 20:08:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171023200134.patch</filename>
            <type>text/plain</type>
            <size>61630</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdiODI4NWJmZjYzNjdi
MmI0NTAyNmI1MzM0ZjU4ZGJlNmMwMTMzMS4uZmJjMjFmOWMwYThkNGQyZThjNzJlZjhjOTZkMWI1
YzQ0NTQ2YmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50Ojp+RXh0
ZW5kYWJsZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoaXNUeXBl
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTIzICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhdHRl
bXB0IHRvIGZpeCBpbml0aWFsaXplU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZXMgYWZ0ZXIgcjIyMzg2
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA2NTRhOTk0MTBhNmM0NDA3MDRkYzc2NWQ5YTI4NjIxNDVhMzJjMzJkLi4w
NjQ1MDU5MTc1Zjg5ZmQ1YzZhNjY5NjM5NDlhMmRlNjhkNGIyZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9z
dE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3Nh
Z2UoKToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2Vy
dmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKwogMjAxNy0x
MC0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBXZWIg
QXV0b21hdGlvbjoga2V5IG1vZGlmaWVycyBmb3Igc3ludGhlc2l6ZWQgTlNFdmVudHMgYXJlIGlu
Y29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjMTA1OTJlOWM0NDliOTA4ZGQ0MWRmMTZj
MmQ4MzMyMDFlZjA5M2MzLi4yNzEzZDM3OGQxYjNlN2Q4ZGRkM2VlNWZmZjFlNzhjYWY3ZmYxOWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzk4LDYgKzc5OCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50Lmlk
bAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0LmlkbAorICAgIHdvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vydmlj
ZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmlkbAog
ICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbApAQCAtMTg5Miw2ICsx
ODkzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKKyAgICB3b3JrZXJz
L3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2Uv
RmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKICAg
ICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IGU1MzAyY2NjY2MwMTdlNDJlZTllZDVhZWEzMGRlZWIzNTZmZTFk
NjAuLjgxNDQ5ZmRkZmNiMmRlYjVkMmUzMDI3NDE3ZTA3YTJkOWQyYTUxMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE5LDYgKzkxOSw3IEBAIEpTX0JJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyVHlwZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
d29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGM2OGJm
MjU0ZjQ4ZjAyMzMyMmY1MWY0YWNiMjY0ZDEwMjlhOTUwNmIuLjA0MWZjODQxZTgxM2I0Mzc5ZDE5
NDMyNmZhNzFkN2FkNzBmODZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNjcsNiArMzY3LDcgQEAg
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogYmluZGluZ3MvanMvSlNFdmVu
dFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbUVudHJ5Q3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSFRNTERvY3Vt
ZW50Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI1ZjMwN2VjNDJhNDU1MTdmYTY3ZjdiMzc2YzQ3MzNjMGY4ZDdk
MzQuLjg3ODlmMGYyYjBiNDI2NjI4Y2MyNWE5ZThhMjczZjZlMDMxMjI0NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4Mjgs
NiArMjgyOCw5IEBACiAJCTgzMDUxOTk2MUJCMEYxMTAwMEYzNzcyRSAvKiBIVE1MVGltZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDUx
OTkzMUJCMEYwRTcwMEYzNzcyRSAvKiBIVE1MVGltZUVsZW1lbnQuaCAqLzsgfTsKIAkJODMwNzg0
QjIxQzUyRUUyQzAwMTA0RDFEIC8qIFhNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA3ODRCMTFDNTJFRTE5MDAxMDREMUQgLyogWE1M
RG9jdW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4MzBBMzZCRDFEQUM1RkFEMDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwQTM2QkIxREFDNUZB
NzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCAqLzsgfTsKKwkJODMxMDJCMjYxRjlFQURE
OTAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzEwMkIyNTFGOUVBREMyMDBFNDA0Qjkg
LyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKKwkJODMxMDJCMjcxRjlFQURE
OTAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMxMDJCMjMxRjlFQURDMjAwRTQwNEI5IC8q
IEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovOyB9OworCQk4MzEwQTI0RjFGOUVCNTQxMDAz
ODczOEEgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTBBMjREMUY5RUI1M0EwMDM4NzM4QSAvKiBK
U0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovOyB9OwogCQk4MzEyMEM3MTFDNTZGM0ZCMDAx
Q0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzRCODZBNzFDNTZFODNBMDBGM0YwRTMgLyogSFRNTERhdGFFbGVt
ZW50LmggKi87IH07CiAJCTgzMjE1MDdFMUYyN0VBMUIwMDk1QjEzNiAvKiBOYXZpZ2F0b3JCZWFj
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMjE1
MDdCMUYyN0VBMTUwMDk1QjEzNiAvKiBOYXZpZ2F0b3JCZWFjb24uaCAqLzsgfTsKIAkJODMyQjg0
MzQxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyQjg0MzMxOUQ4RTU1MTAwQjI2
MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovOyB9OwpAQCAtMjg3MCw2ICsyODczLDgg
QEAKIAkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1Mu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5NjRD
RTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSAqLzsgfTsKIAkJ
ODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2FsaXphYmxlLnN0cmluZ3NkaWN0IGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUx
MjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgKi87IH07CiAJCTgzN0I3RDIw
MURDM0Y1NTAwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3QjdEMUYxREMzRjU0QzAwRDA1MUZD
IC8qIFZhbGlkYXRpb25CdWJibGVJT1MubW0gKi87IH07CisJCTgzN0ZCMzQ0MUY5RUEwNkQwMEQw
RkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKKwkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMx
IC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTgzODZBOTZEMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHls
ZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzODZBOTZDMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuaCAqLzsgfTsKIAkJODM4
ODY3MzUxRDEzQkE1RjAwMzY5N0QwIC8qIFJlbmRlck9iamVjdEVudW1zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzg4NjczNDFEMTNCQTU5MDAzNjk3
RDAgLyogUmVuZGVyT2JqZWN0RW51bXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4MzhFRjUzODFEQzE0OUUyMDA4RjBDMzkgLyogSURCVHJhbnNh
Y3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzhFRjUzNjFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwNDIzLDYgKzEw
NDI4LDkgQEAKIAkJODMwNzg0QjExQzUyRUUxOTAwMTA0RDFEIC8qIFhNTERvY3VtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTERvY3VtZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJBMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZl
bnRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VF
dmVudEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQjFEQUM1
RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01vdXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTAyQjI1MUY5RUFEQzIwMEU0
MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxMEEyNEQxRjlFQjUzQTAwMzg3MzhBIC8qIEpTRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMjE1MDdBMUYyN0VBMTUwMDk1QjEzNiAvKiBO
YXZpZ2F0b3JCZWFjb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdG9yQmVhY29uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyMTUwN0IxRjI3RUExNTAwOTVCMTM2
IC8qIE5hdmlnYXRvckJlYWNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0b3JCZWFjb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTA2LDYgKzEwNTE0LDkgQEAKIAkJODM3
QTgwMTIxRTFFMTI3MzAwMDI2QjlGIC8qIEVuZ2xpc2ggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3NkaWN0OyBuYW1lID0g
RW5nbGlzaDsgcGF0aCA9IEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nc2RpY3Q7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJODM3QjdEMUYxREMzRjU0QzAwRDA1MUZDIC8q
IFZhbGlkYXRpb25CdWJibGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBWYWxpZGF0aW9uQnViYmxlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzdERkIzNDFFQkZFQTcwMDA2MDEzODUgLyogRWxlbWVudENTU0lubGluZVN0eWxlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyogRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
N0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzdGQjM0MzFGOUVBMDY4MDBEMEZD
MzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzODZBOTZDMTlGNjFCMkUwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzODZBOTZFMTlGNjFFNEYwMEUxRUM0QSAvKiBTdHlsZUJ1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVCdWlsZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4ODY3MzQxRDEzQkE1OTAwMzY5N0QwIC8qIFJl
bmRlck9iamVjdEVudW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
ck9iamVjdEVudW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzkzNiw2ICsx
Nzk0Nyw4IEBACiAJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUzIC8qIEpTRXh0ZW5kYWJsZUV2
ZW50LmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxl
RXZlbnQuaCAqLywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTQgLyogSlNFeHRlbmRhYmxl
RXZlbnRJbml0LmNwcCAqLywKKwkJCQk4MzEwMkIyNTFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLywKKwkJCQk4MzEwMkIyMzFGOUVBREMyMDBFNDA0Qjkg
LyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi8sCiAJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAw
MzY1QTUyIC8qIEpTRmV0Y2hFdmVudC5jcHAgKi8sCiAJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1
QTUyIC8qIEpTRmV0Y2hFdmVudC5oICovLAogCQkJCTUxRjg4NkJFMUYzMjkyMDcwMEMxOTNFRiAv
KiBKU05hdmlnYXRvclNlcnZpY2VXb3JrZXIuY3BwICovLApAQCAtMTgwMjcsNiArMTgwNDAsOSBA
QAogCQkJCTQxQUYzNzhFMUY4QzFFN0MwMDExMUMzMSAvKiBFeHRlbmRhYmxlRXZlbnQuaWRsICov
LAogCQkJCTQxMzFGM0I0MUY5NTVCQzMwMDU5OTk1QSAvKiBFeHRlbmRhYmxlRXZlbnRJbml0Lmgg
Ki8sCiAJCQkJNDEzMUYzQjUxRjk1NUJDNTAwNTk5OTVBIC8qIEV4dGVuZGFibGVFdmVudEluaXQu
aWRsICovLAorCQkJCTgzN0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmNwcCAqLywKKwkJCQk4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyogRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5oICovLAorCQkJCTgzN0ZCMzQzMUY5RUEwNjgwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmlkbCAqLywKIAkJCQk0MUFGMzc5NDFGOERBNDk1MDAxMTFDMzEg
LyogRmV0Y2hFdmVudC5jcHAgKi8sCiAJCQkJNDFBRjM3ODgxRjhDMUU3OTAwMTExQzMxIC8qIEZl
dGNoRXZlbnQuaCAqLywKIAkJCQk0MUFGMzc4RDFGOEMxRTdCMDAxMTFDMzEgLyogRmV0Y2hFdmVu
dC5pZGwgKi8sCkBAIC0xOTU0Niw2ICsxOTU2Miw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCURFQzI5NzVEMUI0REVCMkEwMDVGNTk0NSAvKiBKU0N1c3RvbUV2
ZW50Q3VzdG9tLmNwcCAqLywKKwkJCQk4MzEwQTI0RDFGOUVCNTNBMDAzODczOEEgLyogSlNFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLywKIAkJCQk0MTMxRjNCMTFGOTU1MjgxMDA1OTk5NUEg
LyogSlNGZXRjaEV2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0U3QjE5MjBENEU4Njk2MDA3NUE1
MzkgLyogSlNIaXN0b3J5Q3VzdG9tLmNwcCAqLywKIAkJCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIy
NEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovLApAQCAtMjcxNDgsNiArMjcxNjUsNyBA
QAogCQkJCTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUY2NDU2MjFGNDUzOThGMDBCNTRERUQgLyogRXhjZXB0aW9uRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNEMTk2MzExRDZDQUI3NjAwRkM3RTQ3IC8qIEV4Y2VwdGlv
bk9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyogRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFEQ0RGNDQxREExQzQ1
NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNjdEMkE5
MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZF
NjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc4OTAsNiArMjc5MDgsNyBAQAogCQkJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0
QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjRFRDMzMjFB
M0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUzIC8qIEpTRXh0ZW5kYWJsZUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4MzEwMkIyNzFGOUVBREQ5MDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyog
SlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLywKIAkJCQk3NzI4Njk4NDE0RkQ5
QURBMDBGNDg0REMgLyogSlNFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc3RDUwRkY2MUVENEQ5OUIwMERBNEM4NyAvKiBKU0ZlZGVyYXRlZENyZWRlbnRp
YWwuaCBpbiBIZWFkZXJzICovLApAQCAtMzA4MzUsNiArMzA4NTQsNyBAQAogCQkJCTI2MkVDNDFE
MUQxMTBCOTAwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3MjRFRDMyQzFBM0E3RTU0MDBGNUYxM0MgLyogRVhUQmxlbmRNaW5NYXguY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDFBRjM3OTkxRjhEQURBQTAwMTExQzMxIC8qIEV4dGVuZGFibGVF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzdGQjM0NDFGOUVBMDZEMDBEMEZDMzEgLyog
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMURDREY0MzFE
QTFDNDU0MDBFQTVCOTMgLyogRXh0ZW5kZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTEwMyw2ICszMTEyMyw4IEBACiAJCQkJ
MUFERkRGRUUxRTcxRTQ3QzAwOEY1RDM0IC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUU5NkE5NDFEMUEwREREMDBCODY3NjggLyogSlNB
cHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUFG
Mzc5RDFGOERCMUI1MDAxMTFDMzEgLyogSlNET01Qcm9taXNlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTgzMTBBMjRGMUY5RUI1NDEwMDM4NzM4QSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODMxMDJCMjYxRjlFQUREOTAwRTQwNEI5IC8qIEpTRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxRjNCMzFGOTU1
Mjg2MDA1OTk5NUEgLyogSlNGZXRjaEV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGREE3QzFFMTg4MzIyRkMwMEM5NTRCNSAvKiBKU0dlc3R1cmVFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MzhFQzkzRTFGOTlCRjVBMDA0RDIyQTggLyogSlNRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGQ4ZDc4MDgwNjQyODE5Mzk3NTNk
ZmIxNTNlMWQwOWVhNjViNWY0YTEuLjZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQzY2Ex
ZDE2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0Fs
bEluT25lLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdl
dEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1FbnRyeUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNI
VE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnRDdXN0b20u
Y3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjN2Q5MjQ4YmU2OGIyMWY1YTIzMzI3MjAz
NzM5Y2RlMWUzNTk2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0V4dGVuZGFibGVNZXNzYWdl
RXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOwor
CitKU1ZhbHVlIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUmIHN0YXRl
KSBjb25zdAoreworICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKSB7
CisgICAgICAgIC8vIFdlIGNhbm5vdCB1c2UgYSBjYWNoZWQgb2JqZWN0IGlmIHdlIGFyZSBpbiBh
IGRpZmZlcmVudCB3b3JsZCB0aGFuIHRoZSBvbmUgaXQgd2FzIGNyZWF0ZWQgaW4uCisgICAgICAg
IGlmICghY2FjaGVkVmFsdWUuaXNPYmplY3QoKSB8fCAmd29ybGRGb3JET01PYmplY3QoY2FjaGVk
VmFsdWUuZ2V0T2JqZWN0KCkpID09ICZjdXJyZW50V29ybGQoJnN0YXRlKSkKKyAgICAgICAgICAg
IHJldHVybiBjYWNoZWRWYWx1ZTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQorCisgICAgYXV0byYgZXZlbnQgPSB3cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1bHQ7Cisg
ICAgaWYgKGF1dG8qIHNlcmlhbGl6ZWRWYWx1ZSA9IGV2ZW50LmRhdGEoKSkgeworICAgICAgICBh
dXRvIHBvcnRzID0gZXZlbnQucG9ydHMoKTsKKyAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZh
bHVlLT5kZXNlcmlhbGl6ZShzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHBvcnRzLCBTZXJpYWxpemF0
aW9uRXJyb3JNb2RlOjpOb25UaHJvd2luZyk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9
IGpzTnVsbCgpOworCisgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8g
ZGVzZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgorICAgIG1fZGF0YS5zZXQoc3RhdGUudm0oKSwg
dGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZjU4OTQzZGFj
YTk2MTFiZmU0ZDZjYjE5ZTM5MzY4OTdjNTNjNzI4Yy4uYmNhMmVmN2E1MWJmODAwNTExYWFmZTlk
YTRjNDhmZWI1ODhiOTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dl
YkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oRGF0YVRyYW5zZmVySXRlbUxpc3QpIFwKICAgICBtYWNybyhEb2N1bWVudFRp
bWVsaW5lKSBcCiAgICAgbWFjcm8oRXh0ZW5kYWJsZUV2ZW50KSBcCisgICAgbWFjcm8oRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudCkgXAogICAgIG1hY3JvKEZlZGVyYXRlZENyZWRlbnRpYWwpIFwKICAg
ICBtYWNybyhGZXRjaEV2ZW50KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbSkgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAppbmRleCAyNDU4MzkxNTBiODBkZThlODM4MzQyNmZlOWZkY2RiMzBjMjAzZDMyLi5m
MmJhN2FiMGY4YmZiNDRjZjMwNDU0MTM5YzY5Y2EzNjJjZTY1YTUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaApAQCAtODYzLDcgKzg2Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyByZWZlcnJlcigpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdp
bigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBvcmlnaW4oKSBjb25zdCBmaW5h
bDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkb21haW4oKSBjb25zdDsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXREb21haW4oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5pbgppbmRleCBlODQyYmQzOTBhNjRkMTcwNWVjM2I5YzgxNjg1NDkwOTU1
ZjFmYjc1Li43YzZiM2E1YTZhM2VlOGI5ZDhmZTkzY2U3YTkzNTYxYWQxNzI1NzRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtMTEsNiArMTEsNyBAQCBDbG9zZUV2ZW50CiBDb21wb3Np
dGlvbkV2ZW50CiBDdXN0b21FdmVudAogRXh0ZW5kYWJsZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJ
Q0VfV09SS0VSCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09S
S0VSCiBFcnJvckV2ZW50CiBGZXRjaEV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBG
b2N1c0V2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFu
bmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKaW5kZXggZGRk
NzlhYTE3ZjY5MGRjZjE5M2FhOTNkMWNlMmQ1ZjFlMTVhMjA1NC4uYTA5NjI4YzYwMjUwZjhmMjlk
ZTM0NzU3NzIzMGRjMzBjYmExZDNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01l
c3NhZ2VQb3J0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENo
YW5uZWwuaApAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8v
IFJldHVybnMgdGhlIGVudGFuZ2xlZCBwb3J0IGlmIHJ1biBieSB0aGUgc2FtZSB0aHJlYWQgKHNl
ZSBNZXNzYWdlUG9ydDo6bG9jYWxseUVudGFuZ2xlZFBvcnQoKSBmb3IgbW9yZSBkZXRhaWxzKS4K
ICAgICAgICAgTWVzc2FnZVBvcnQqIGxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgICAgICB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CisgICAg
ICAgIFdFQkNPUkVfRVhQT1JUIH5NZXNzYWdlUG9ydENoYW5uZWwoKTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gbV9jaGFubmVsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggOTZkZGQ2
MjA4YTY1OTEyMWI1YWQ4OGQxZTJlMTUyMzIzOWJhNTk3Yy4uMjY2ZjQ5YWVlYzA2M2ZjNDRiMGY4
Yzc4ZDdlOTMwMTIzMTRlZGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCkBAIC0xMTEsNiArMTExLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsK
IAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBvcmlnaW4oKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJH
bG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
CmluZGV4IDUzNzNkMjVjMmY4OTkzZjkzOTg3ODMwZTllZmI0Y2Q2Y2Y1NjU3NjcuLmIxYTAxZDU4
NzkxOWY1MTI3MzU0NmFjZTk2MGQ4ZTRlMTRlOGNjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJs
OyB9Ci0gICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0OworICAgIFN0cmluZyBvcmlnaW4oKSBjb25z
dCBmaW5hbDsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHkoKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKaW5kZXgg
OTdjNjdjNDNlYTU5MzE5MDYzNWU0MWRjNGRhOTBlMzhkZGYyYWE2Yy4uMWQyMWZjNjc0NjFiNmU2
YjZmNGVhNTgzNmM0YWVjMDFlMjc5NGFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKQEAgLTM3LDYgKzM3LDE1IEBAIEV4dGVu
ZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgRXh0ZW5kYWJsZUV2ZW50CiB7CiB9CiAKK0V4dGVuZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFi
bGUpCisgICAgOiBFdmVudCh0eXBlLCBidWJibGVzLCBjYW5jZWxhYmxlKQoreworfQorCitFeHRl
bmRhYmxlRXZlbnQ6On5FeHRlbmRhYmxlRXZlbnQoKQoreworfQorCiBFeGNlcHRpb25Pcjx2b2lk
PiBFeHRlbmRhYmxlRXZlbnQ6OndhaXRVbnRpbChSZWY8RE9NUHJvbWlzZT4mJiBwcm9taXNlKQog
ewogICAgIGlmICghaXNUcnVzdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmgKaW5kZXggNzA3NDgwNTk3OWMxZWExMGJiNjQ0OTQ0NWRm
NGMwODhlNGYzZWJhNC4uYmE3OWE2YmYwYmY4MTA5OWMyMjJkZjg5NmMyYTkwNDBmYmM2NzEyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQu
aApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEV4dGVuZGFibGVFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7CiAgICAgfQog
CisgICAgfkV4dGVuZGFibGVFdmVudCgpOworCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRl
cmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFeHRlbmRhYmxlRXZlbnRJbnRlcmZhY2VU
eXBlOyB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB3YWl0VW50aWwoUmVmPERPTVByb21pc2U+
JiYpOwpAQCAtNTAsNiArNTIsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JF
X0VYUE9SVCBFeHRlbmRhYmxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRXh0ZW5k
YWJsZUV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlKTsKIAogICAgIFdlYWtQ
dHI8RXh0ZW5kYWJsZUV2ZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFj
dG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGYxNmIyZGFiZTI4YmYxYTBmYzdmZjRkMzMyOWMwNWZmYzNlM2FkMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNz
YWdlRXZlbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZWY8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudD4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dDo6Y3JlYXRlKFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRzLCBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBT
dHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRT
b3VyY2U+JiYgc291cmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQoV1RGTW92ZShkYXRhKSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgV1RGTW92ZShz
b3VyY2UpLCBXVEZNb3ZlKHBvcnRzKSkpOworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAg
IDogRXh0ZW5kYWJsZUV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZGF0YShT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzdGF0ZSwgaW5pdC5kYXRhKSkKKyAgICAsIG1f
b3JpZ2luKGluaXQub3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChpbml0Lmxhc3RFdmVudElk
KQorICAgICwgbV9wb3J0cyhpbml0LnBvcnRzKQoreworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQs
IHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UsIFZl
Y3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRzKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50
KGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZGF0YShX
VEZNb3ZlKGRhdGEpKQorICAgICwgbV9vcmlnaW4ob3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJ
ZChsYXN0RXZlbnRJZCkKKyAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAsIG1f
cG9ydHMoV1RGTW92ZShwb3J0cykpCit7Cit9CisKK0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6On5F
eHRlbmRhYmxlTWVzc2FnZUV2ZW50KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzA1ODdjYjg1ZWFmY2VjMDVhZDE0ZGJmZGRiNDJkYmY3ZjE2ZTRjOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50LmgiCisj
aW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50SW5pdC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Lmgi
CisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGll
bnQuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNz
IEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgTWVzc2FnZVBvcnQ7CitjbGFzcyBTZXJ2aWNlV29ya2VyOworY2xhc3MgU2VydmljZVdv
cmtlckNsaWVudDsKKwordXNpbmcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlh
bnQ8UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQdHI8U2VydmljZVdvcmtlcj4sIFJl
ZlB0cjxNZXNzYWdlUG9ydD4+OworCitjbGFzcyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IGZpbmFs
IDogcHVibGljIEV4dGVuZGFibGVFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBF
eHRlbmRhYmxlRXZlbnRJbml0IHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGRhdGE7CisgICAgICAg
IFN0cmluZyBvcmlnaW47CisgICAgICAgIFN0cmluZyBsYXN0RXZlbnRJZDsKKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiBzb3VyY2U7CisgICAgICAg
IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBwb3J0czsKKyAgICB9OworCisgICAgc3RhdGlj
IFJlZjxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50PiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1Ry
dXN0ZWQgaXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObykKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoc3RhdGUsIHR5cGUsIGluaXRpYWxp
emVyLCBpc1RydXN0ZWQpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQ+IGNyZWF0ZShWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mJiwgUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSB7IH0sIGNvbnN0
IFN0cmluZyYgbGFzdEV2ZW50SWQgPSB7IH0sIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudFNvdXJjZT4mJiBzb3VyY2UgPSBzdGQ6Om51bGxvcHQpOworCisgICAgfkV4dGVuZGFi
bGVNZXNzYWdlRXZlbnQoKTsKKworICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogZGF0YSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElk
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXZlbnRJZDsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBwb3J0
cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydHM7IH0KKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50
SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudElu
dGVyZmFjZVR5cGU7IH0KKworcHJpdmF0ZToKKyAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpT
Qzo6RXhlY1N0YXRlJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3Rl
ZCk7CisgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVu
dElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYsIFZlY3Rv
cjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmKTsKKworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1fZGF0YTsKKyAgICBTdHJpbmcgbV9vcmlnaW47CisgICAgU3RyaW5nIG1fbGFzdEV2
ZW50SWQ7CisgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiBt
X3NvdXJjZTsKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gbV9wb3J0czsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRh
YmxlTWVzc2FnZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTg0MGIwZmU4NDViOWQ0NjA4NDMxZWI1
YWFjYTJlNWZjODE1NjM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4
dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorICAgIENvbnN0cnVjdG9y
Q2FsbFdpdGg9U2NyaXB0U3RhdGUsCisgICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIsCisg
ICAgRW5hYmxlZEF0UnVudGltZT1TZXJ2aWNlV29ya2VyLAorICAgIEV4cG9zZWQ9U2VydmljZVdv
cmtlciwKK10gaW50ZXJmYWNlIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQgOiBFeHRlbmRhYmxlRXZl
bnQgeworICAgIFtDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmli
dXRlIGFueSBkYXRhOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb3JpZ2luOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEV2ZW50SWQ7CisgICAgW1NhbWVP
YmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSAoU2VydmljZVdvcmtlckNsaWVudCBvciBTZXJ2aWNl
V29ya2VyIG9yIE1lc3NhZ2VQb3J0KT8gc291cmNlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBG
cm96ZW5BcnJheTxNZXNzYWdlUG9ydD4gcG9ydHM7Cit9OworCitkaWN0aW9uYXJ5IEV4dGVuZGFi
bGVNZXNzYWdlRXZlbnRJbml0IDogRXh0ZW5kYWJsZUV2ZW50SW5pdCB7CisgICAgYW55IGRhdGEg
PSBudWxsOworICAgIFVTVlN0cmluZyBvcmlnaW4gPSAiIjsKKyAgICBET01TdHJpbmcgbGFzdEV2
ZW50SWQgPSAiIjsKKyAgICAoU2VydmljZVdvcmtlckNsaWVudCBvciBTZXJ2aWNlV29ya2VyIG9y
IE1lc3NhZ2VQb3J0KT8gc291cmNlID0gbnVsbDsKKyAgICBzZXF1ZW5jZTxNZXNzYWdlUG9ydD4g
cG9ydHMgPSBbXTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlci5jcHAKaW5kZXggNjZkNzNiZTg3NDA5NDNhMTdlNDVmNmNhODJjYWQ1YmZiNWY1
M2U2OC4uYjJmYjJmMmY2ODA0NTE5YzRhMjBmYTc2MmRmODYwYzVmYTgyOGJlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcApAQCAtMjgs
MTAgKzI4LDQ5IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJN
ZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxydW50
aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0
aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBK
U0M6OkpTVmFsdWUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJikKK1NlcnZp
Y2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
dWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1faWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRl
bnRpZmllcikKK3sKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1l
c3NhZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgbWVzc2FnZVZhbHVlLCBW
ZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYgdHJhbnNmZXIpCiB7CisgICAgaWYg
KHRoaXMtPnN0YXRlKCkgPT0gU3RhdGU6OlJlZHVuZGFudCkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIlNlcnZpY2UgV29ya2VyIHN0
YXRlIGlzIHJlZHVuZGFudCIpIH07CisKKyAgICAvLyBGSVhNRTogSW52b2tlIFJ1biBTZXJ2aWNl
IFdvcmtlciBhbGdvcml0aG0gd2l0aCBzZXJ2aWNlV29ya2VyIGFzIHRoZSBhcmd1bWVudC4KKwor
ICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBwb3J0czsKKyAgICBhdXRvIG1lc3NhZ2Ug
PSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzdGF0ZSwgbWVzc2FnZVZhbHVlLCBXVEZN
b3ZlKHRyYW5zZmVyKSwgcG9ydHMsIFNlcmlhbGl6YXRpb25Db250ZXh0OjpXb3JrZXJQb3N0TWVz
c2FnZSk7CisgICAgaWYgKG1lc3NhZ2UuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBt
ZXNzYWdlLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIC8vIERpc2VudGFuZ2xlIHRoZSBwb3J0
IGluIHByZXBhcmF0aW9uIGZvciBzZW5kaW5nIGl0IHRvIHRoZSByZW1vdGUgY29udGV4dC4KKyAg
ICBhdXRvIGNoYW5uZWxzT3JFeGNlcHRpb24gPSBNZXNzYWdlUG9ydDo6ZGlzZW50YW5nbGVQb3J0
cyhXVEZNb3ZlKHBvcnRzKSk7CisgICAgaWYgKGNoYW5uZWxzT3JFeGNlcHRpb24uaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVsc09yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRp
b24oKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHNlbmRpbmcgdGhlIGNoYW5uZWxzLgorICAg
IGF1dG8gY2hhbm5lbHMgPSBjaGFubmVsc09yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OworICAgIGlmIChjaGFubmVscyAmJiAhY2hhbm5lbHMtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIlBhc3Npbmcg
TWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIp
IH07CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBl
eGVjdXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNl
V29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vz
c2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICBzd0Nvbm5l
Y3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIs
IG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
b3JpZ2luKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArODEsNyBAQCBjb25z
dCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZpY2VXb3Jr
ZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3Rh
dGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAogRXZlbnRU
YXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dApAQCAtNTIsNyArOTEsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29ya2VyOjpl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNl
cnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0MGUxMmRl
MWIyMzU5NWVjODlkNDhjMThjZWNhZGNlNDA2YmIzZTg4Li5iMzk4ZDRkOTcxODNiMTY0NzJhNWRk
M2I0OTIxYjllNDE5MTQwMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyLmgKQEAgLTI3LDggKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsK
QEAgLTM5LDkgKzQxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAK
LWNsYXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5l
RGF0YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U2Vy
dmljZVdvcmtlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Vydmlj
ZVdvcmtlcj4gY3JlYXRlKEZyYW1lJiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2
aWNlV29ya2VyKGZyYW1lKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXI+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VX
b3JrZXIoY29udGV4dCwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsKKyAgICB9CisKICAgICB2
aXJ0dWFsIH5TZXJ2aWNlV29ya2VyKCkgPSBkZWZhdWx0OwogCiAgICAgZW51bSBjbGFzcyBTdGF0
ZSB7CkBAIC01NywxMyArNjMsMjAgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9y
PEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKIAorICAgIHVpbnQ2NF90IGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworICAgIHVzaW5nIFJlZkNvdW50
ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKKwogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBTZXJ2aWNlV29ya2VyKEZyYW1lJik7CisgICAgU2VydmljZVdvcmtlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAg
ICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0OwogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigp
OyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAg
ICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5jcHAKaW5kZXggZTgzMGE4ZGE3M2Y5MGQ3ZWUyMzIwZmZiMDJhZGU4MWNkMTMx
Zjk3OS4uNTZkNTZjN2Y4NDI1NWY4YjI5YjIwOGFmODk1MzQ3NTI2MjdjZTc1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckpvYi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmgiCkBAIC03NCw3ICs3NSwxNCBAQCB2b2lkIFNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OmRlcmVmRXZlbnRUYXJnZXQoKQogCiBTZXJ2aWNlV29ya2VyKiBTZXJ2aWNl
V29ya2VyQ29udGFpbmVyOjpjb250cm9sbGVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlm
ICghY29udGV4dCB8fCAhY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigp
KSB7CisgICAgICAgIG1fY29udHJvbGxlciA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKyAgICBpZiAoIW1fY29udHJvbGxlciB8fCBtX2NvbnRyb2xsZXItPmlkZW50
aWZpZXIoKSAhPSBjb250ZXh0LT5zZWxlY3RlZFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKCkpCisg
ICAgICAgIG1fY29udHJvbGxlciA9IFNlcnZpY2VXb3JrZXI6OmNyZWF0ZSgqY29udGV4dCwgY29u
dGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKTsKKyAgICByZXR1cm4gbV9j
b250cm9sbGVyLmdldCgpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJl
Z2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjb25zdCBSZWdpc3Ry
YXRpb25PcHRpb25zJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuaAppbmRleCAxNWY1NmQxZmVlMjQ0NTQ1NzVhYWEzOGNmY2MxODAwMWZjNDUyMjYy
Li5hZTZkYTFiZTczNGU2OTYzYjdiNWZlODBiOWE0NGE2OTBhYWJkMzE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxTV0NsaWVudENvbm5l
Y3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2
aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQdHI8U2VydmljZVdvcmtl
cj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRocmVhZElkZW50aWZpZXIg
bV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNw
cAppbmRleCBhNmQwYmZkMjZjYWNlZWQ2NDUzODU4ZTQ3NDk0M2FiYzBjM2Q1YmNiLi42ZTE3ZGRj
ZGI4YjFjYmQwNmY0NmM5NTdjYzQ4MjRlZmFhOThlMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNw
cApAQCAtNTgsNiArNTgsMTEgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKIH0KIAorU2Vydmlj
ZVdvcmtlclRocmVhZCYgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjp0aHJlYWQoKQoreworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxTZXJ2aWNlV29ya2VyVGhyZWFkJj4oV29ya2VyR2xvYmFsU2Nv
cGU6OnRocmVhZCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGRjNDBjNmYzNDk4
MmFlMzYyNzdiMmE0NGM0NWM0NTMyOTU3OGFmODYuLjcyYzBlZjI3YzJiNDEwZjlhNTY0MjM1ZjA5
ZTExMmM3Zjc3MzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTU3LDYgKzU3LDggQEAgcHVi
bGljOgogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbDsKIAorICAgIFNlcnZpY2VXb3JrZXJUaHJlYWQmIHRocmVhZCgpOworCiBwcml2
YXRlOgogICAgIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgU2Vy
dmljZVdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlk
ZXIqLCBQQUw6OlNlc3Npb25JRCk7CiAKQEAgLTY3LDQgKzY5LDkgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1cm4gaXM8
V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpICYmIGRvd25jYXN0PFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5pc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgp
OyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Oldvcmtlckdsb2JhbFNj
b3BlJiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmIC8vIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggMzgxOGU5OTEx
YWQzMjdhODQ4MWI2ZGZhMjk4NDM4ZDgxMmJjMzY3YS4uOWI1MTM1NzI3ZTI1YWVhNWM0Y2ZhZjcz
NmE2MjZjNWRkN2VmY2YzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIK
QEAgLTEwMCw2ICsxMDEsMTcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hU
YXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQKICAgICB9LCBXb3Jr
ZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFk
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFy
cmF5PiYmIGNoYW5uZWxzLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2soW2NoYW5uZWxzID0gV1RGTW92ZShjaGFubmVs
cyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VPcmlnaW4gPSBzb3VyY2VPcmln
aW4uaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRh
YmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0byBwb3J0cyA9
IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RG
TW92ZShjaGFubmVscykpOworICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuZGlzcGF0
Y2hFdmVudChFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdU
Rk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdpbikpOworICAgICAgICBzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUudGhyZWFkKCkud29ya2VyT2JqZWN0UHJveHkoKS5jb25maXJtTWVzc2FnZUZyb21X
b3JrZXJPYmplY3Qoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmhhc1BlbmRpbmdBY3Rpdml0eSgp
KTsKKyAgICB9KTsKKyAgICBydW5Mb29wKCkucG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCA5NTRkYWY2MDgyY2NlZjZiZDkzNTgxMmE3
MDdjZGVlMGJmMDNjOWJiLi43MzcyODExYTk5MWQ0NWNmYWQ1YzVhMGUwYWFjYzBhYzFmNzZhOGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0zNSw5ICszNSwxMyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7
CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWw7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE7CiAKK3VzaW5nIE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5ID0gVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCAxPjsKKwogY2xhc3MgU2VydmljZVdvcmtlclRocmVh
ZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQsIHB1YmxpYyBUaHJlYWRTYWZlSWRlbnRpZmllZDxTZXJ2
aWNlV29ya2VyVGhyZWFkPiB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
cz4gc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3Mp
CkBAIC00OSw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2Vy
T2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRj
aDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsQXJyYXk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKIAogcHJvdGVjdGVk
OgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNzaW9uSUQp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOWM4YTE3MGYxMmQxZjdkN2Y3ZjFlNWJk
ZTJhZWIzNzEzODNjMDVjMS4uNDIyMmI1OWM2YTMxMTU3NGY4MGU1ZjcxYjE0NmU1NTI2MmUyZDk3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0Ns
aWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xh
c3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogc3RydWN0IEV4
Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0OwpAQCAtNDgsNiAr
NDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iJik7
CiAgICAgdm9pZCBmaW5pc2hlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcAppbmRleCBmNThjMTc1OWJhNjBhYTFiMWRkZWE1NzM4OWU0NjkzYmMzNzA2
NGQ0Li5jNGI2Y2VhMzZmNTUxY2YwMzNjNDU3MTcyZmUzYTEwNzcyMmZhZjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTAwLDYgKzEwMCwxMSBAQCB2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZp
ZXIsIHVpbnQ2NF90IHNlcnZpYwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpT
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigpLCBmZXRj
aElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7
CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQor
eworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXI6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRlbnRpZmll
cigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNlT3JpZ2luKSk7Cit9
CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSh1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQogewogICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA3Y2M3NmJk
YzlhZGJjZDkzNTAxMTFiNGZlMGJiM2UwMmI3NjYyYWMwLi4zYTU3MjBiZWU3MThjOTFhOWU2MTJi
YjcwZmU2OWJiOGRiZGI1YjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5o
CkBAIC02NSw2ICs2NSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0
X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
Jik7CiAKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWlu
dDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOworCiAgICAgLy8gTWVzc2FnZXMg
dG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2Vy
Q29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
aW5kZXggZjNkYjNiOTBkYWU5M2E5MjZkZjViYmRlYTFhMzc3OTUzNDY2NDkxMi4uM2IyMDQ1YzY0
NDRhZGNkMThkYjRjZmVjYzUxZWZjMzk0YjIxMmQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJ
blNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0IHJlc3VsdCkK
IAogICAgIFN0YXJ0RmV0Y2godWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpE
YXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcApp
bmRleCAwZGVmMzU0YzNjY2VhZDc3YjllMWVlNDQ4NWFjYjY5NDJjNGNkYjU0Li5kYjE3ZGQzNThh
OTgyZDQ5MzljOWY2ODhmZmRhNWUzYmI1Njg4NDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFu
YWdlci5jcHAKQEAgLTI4LDEyICsyOCwxNSBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9u
c2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1
ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKQEAgLTY4LDYgKzcx
LDE2IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpzdGFydEZldGNoKHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyCiAgICAgc2VydmljZVdvcmtlclRocmVhZC0+
cG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
b3B0aW9ucykpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7Cisg
ICAgYXV0byogd29ya2VyVGhyZWFkID0gbV93b3JrZXJUaHJlYWRNYXAuZ2V0KHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlclRocmVhZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZhbGlkIE1lc3NhZ2VQb3J0Q2hhbm5lbHMu
CisgICAgd29ya2VyVGhyZWFkLT5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIG51bGxwdHIs
IHNvdXJjZU9yaWdpbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKaW5kZXgg
OGQyMDBjMGYzNDA1ZDQwZGQ3MzNjNWQzOWI3Yjg1NzRiODRmYmYyZi4uNjk0ZmY3NWYxYTg4NTM5
NDQxZGYxNmJmYTgyMzc1NjMxNjIxYTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgK
QEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0U2Vydmlj
ZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJik7CiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIs
IHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZD4+IG1fd29ya2Vy
VGhyZWFkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmlu
CmluZGV4IGVkY2RkOGIzNjQ2MTRkNDcwZTU2MGEyYmUyMmQ1OWEyNTNiMjBjYjIuLjg2NjYzZjgx
ZTdjYTBiODZlNjYzY2Y5NGJmMDU1ZTVjYjA0ZDVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+
IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB7CiAgICAgU3RhcnRTZXJ2aWNlV29ya2VyKHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQogICAgIFN0YXJ0RmV0Y2godWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWlu
dDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisgICAgUG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJl
ZmVyZW5jZSBtZXNzYWdlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogfQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCmluZGV4IGJiMWUxY2M5YTk1ZWI4Njk2NDExOTk4MjEwNTA1NDY2OGVjYjQ5
ZWIuLjMwODZlYTRmYzBlYmYxYjhkNDZjNDU5YTRmMTNmZTkyNjM1YTk1YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcApAQCAtMjgsMTIgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJTV09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckZldGNoUmVz
dWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oPgogCkBAIC02
Niw2ICs2OCwxMSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdT
Y3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0YwogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1
bHQpKTsKIH0KIAordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc2NyaXB0VmFsdWUsIGNvbnN0IFN0cmluZyYgc291
cmNlT3JpZ2luKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBzb3VyY2VP
cmlnaW4pKTsKK30KKwogYm9vbCBXZWJTV0NsaWVudENvbm5lY3Rpb246Omhhc1NlcnZpY2VXb3Jr
ZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fc3dPcmlnaW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgKaW5kZXggOTFiOWY4YzYyNGNlYTFhZmU2NTI2OGU4NDg0OGJjNjI0YmVmZDRkMy4u
MWNkMjkyOTllM2ZkM2MyZmM5Mjg4ZTE4NjBhZDU0MDMxMGNlNTQ4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2Vy
dmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJGZXRjaFJlc3VsdCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFdlYkNv
cmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
IGZpbmFsOwogCiAgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmlu
YWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNGE3NTFhZjdmNTI1M2ZjYmExZjI5OWNiZDBjOWY4NDkwMGRhZGJmOC4uODQy
NjM3MzUzZThjNGQyYzQ5OGJhMWUyYWMzNjhlYjJlODkyMGFhZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3Nh
Z2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4
NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZp
Y2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1l
c3NhZ2Utd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qczogQWRkZWQu
CisKIDIwMTctMTAtMjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBUcnkgdG8gcmVkdWNlIGZsYWtpbmVz
cyBvZiBpbnNwZWN0b3IvbmV0d29yay9oYXIgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNz
YWdlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdkMTIyMzU0NzVmMWVlYjU5MzIzZGViZTBkZjE1ZTY4MjUwZWE2N2MKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9i
YXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKK1BBU1M6IFN0YXR1cyBjb2RlIGlzIDIwMAorUEFTUzogU3RhdHVzIHRleHQgaXMg
V29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIGV2ZW50LiBtZXNzYWdlRXZlbnQub3JpZ2luIHdh
cyBodHRwczovLzEyNy4wLjAuMTo4NDQzCitQQVNTOiBTb3VyY2UgaXMgU2VydmljZSB3b3JrZXIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFz
aWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MTcwYzZiZDYxMDdmNWUzYThjZDE2YmMzYmNkMWYxOWYw
MTQwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHNjcmlwdCBzcmM9InJlc291
cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNp
Yy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDM5NWIy
YTZkM2Q2ZjVhNjczNDlmY2I3MDZkOGFiNDc1NjZiYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZp
Y2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzCkBAIC0wLDAgKzEsMTQgQEAKK2xldCByZXNw
b25zZVRvU2VuZCA9IHsgc3RhdHVzOiA0MDQsIHN0YXR1c1RleHQ6ICJOb3QgRm91bmQiIH07CisK
K3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgIHJlc3Bv
bnNlVG9TZW5kID0gZXZlbnQuZGF0YTsKKyAgICByZXNwb25zZVRvU2VuZC5zdGF0dXNUZXh0ICs9
ICIgbWVzc2FnZUV2ZW50Lm9yaWdpbiB3YXMgIiArIGV2ZW50Lm9yaWdpbjsKK30pOworCitzZWxm
LmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJl
cXVlc3QudXJsLmluZGV4T2YoInRlc3QxIikgIT09IC0xKSB7CisgICAgICAgIGV2ZW50LnJlc3Bv
bmRXaXRoKG5ldyBSZXNwb25zZShudWxsLCByZXNwb25zZVRvU2VuZCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRoKFJlc3BvbnNlLmVycm9yKCkpOworfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBv
c3RNZXNzYWdlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTQxY2EwODY4OGI0ODNhZTgyNGIyMzY1NTMxNzA3
Y2QwOGU3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcwpA
QCAtMCwwICsxLDM3IEBACitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsK
K30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9iYXNpYy1TZXJ2aWNl
V29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcyIsIHsgfSk7CisKKyAgICAgICAgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7IHN0YXR1czogMjAwLCBzdGF0
dXNUZXh0OiAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIGV2ZW50LiIgfSk7CisKKyAgICAg
ICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInRlc3QxIik7CisgICAgICAgIGlmIChyZXNw
b25zZS5zdGF0dXMgPT0gMjAwKQorICAgICAgICAgICAgbG9nKCJQQVNTOiBTdGF0dXMgY29kZSBp
cyAiICsgcmVzcG9uc2Uuc3RhdHVzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJG
QUlMOiBTdGF0dXMgY29kZSBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzKTsKKworICAgICAgICBpZiAo
cmVzcG9uc2Uuc3RhdHVzVGV4dC5zdGFydHNXaXRoKCJXb3JrZXIgcmVjZWl2ZWQgdGhlIG1lc3Nh
Z2UiKSkKKyAgICAgICAgICAgIGxvZygiUEFTUzogU3RhdHVzIHRleHQgaXMgIiArIHJlc3BvbnNl
LnN0YXR1c1RleHQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFN0YXR1
cyB0ZXh0IGlzICIgKyByZXNwb25zZS5zdGF0dXNUZXh0KTsKKworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykgeworICAgICAgICAgICAgbGV0IHNvdXJjZSA9IGludGVybmFscy5mZXRjaFJl
c3BvbnNlU291cmNlKHJlc3BvbnNlKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UgPT09ICJTZXJ2
aWNlIHdvcmtlciIpCisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBTb3VyY2UgaXMgIiArIHNv
dXJjZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBTb3Vy
Y2UgaXMgIiArIHNvdXJjZSk7CisgICAgICAgIH0KKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAg
bG9nKCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVzdCgpOwor
fQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324631</attachid>
            <date>2017-10-23 20:08:26 -0700</date>
            <delta_ts>2017-10-23 21:11:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171023200825.patch</filename>
            <type>text/plain</type>
            <size>61850</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdiODI4NWJmZjYzNjdi
MmI0NTAyNmI1MzM0ZjU4ZGJlNmMwMTMzMS4uZmJjMjFmOWMwYThkNGQyZThjNzJlZjhjOTZkMWI1
YzQ0NTQ2YmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50Ojp+RXh0
ZW5kYWJsZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoaXNUeXBl
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTIzICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhdHRl
bXB0IHRvIGZpeCBpbml0aWFsaXplU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZXMgYWZ0ZXIgcjIyMzg2
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA2NTRhOTk0MTBhNmM0NDA3MDRkYzc2NWQ5YTI4NjIxNDVhMzJjMzJkLi4w
NjQ1MDU5MTc1Zjg5ZmQ1YzZhNjY5NjM5NDlhMmRlNjhkNGIyZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9z
dE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3Nh
Z2UoKToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2Vy
dmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKwogMjAxNy0x
MC0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBXZWIg
QXV0b21hdGlvbjoga2V5IG1vZGlmaWVycyBmb3Igc3ludGhlc2l6ZWQgTlNFdmVudHMgYXJlIGlu
Y29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjMTA1OTJlOWM0NDliOTA4ZGQ0MWRmMTZj
MmQ4MzMyMDFlZjA5M2MzLi4yNzEzZDM3OGQxYjNlN2Q4ZGRkM2VlNWZmZjFlNzhjYWY3ZmYxOWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzk4LDYgKzc5OCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50Lmlk
bAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0LmlkbAorICAgIHdvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vydmlj
ZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmlkbAog
ICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbApAQCAtMTg5Miw2ICsx
ODkzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKKyAgICB3b3JrZXJz
L3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2Uv
RmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKICAg
ICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IGU1MzAyY2NjY2MwMTdlNDJlZTllZDVhZWEzMGRlZWIzNTZmZTFk
NjAuLjgxNDQ5ZmRkZmNiMmRlYjVkMmUzMDI3NDE3ZTA3YTJkOWQyYTUxMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE5LDYgKzkxOSw3IEBAIEpTX0JJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyVHlwZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
d29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGM2OGJm
MjU0ZjQ4ZjAyMzMyMmY1MWY0YWNiMjY0ZDEwMjlhOTUwNmIuLjA0MWZjODQxZTgxM2I0Mzc5ZDE5
NDMyNmZhNzFkN2FkNzBmODZmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNjcsNiArMzY3LDcgQEAg
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogYmluZGluZ3MvanMvSlNFdmVu
dFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbUVudHJ5Q3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSFRNTERvY3Vt
ZW50Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI1ZjMwN2VjNDJhNDU1MTdmYTY3ZjdiMzc2YzQ3MzNjMGY4ZDdk
MzQuLjUxNTlkMjMxMjk0Zjk0MjAyNGZkZjM1NGZiZDQyMDdmNDZiMTg3NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4Mjgs
NyArMjgyOCwxMCBAQAogCQk4MzA1MTk5NjFCQjBGMTEwMDBGMzc3MkUgLyogSFRNTFRpbWVFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzA1
MTk5MzFCQjBGMEU3MDBGMzc3MkUgLyogSFRNTFRpbWVFbGVtZW50LmggKi87IH07CiAJCTgzMDc4
NEIyMUM1MkVFMkMwMDEwNEQxRCAvKiBYTUxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwNzg0QjExQzUyRUUxOTAwMTA0RDFEIC8qIFhN
TERvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODMwQTM2QkQxREFDNUZBRDAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMEEzNkJCMURBQzVG
QTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggKi87IH07CisJCTgzMTAyQjI2MUY5RUFE
RDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMxMDJCMjUxRjlFQURDMjAwRTQwNEI5
IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi87IH07CisJCTgzMTAyQjI3MUY5RUFE
RDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAv
KiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJODMxMjBDNzExQzU2RjNGQjAw
MUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM0Qjg2QTcxQzU2RTgzQTAwRjNGMEUzIC8qIEhUTUxEYXRhRWxl
bWVudC5oICovOyB9OworCQk4MzFDNDZDNTFGOUVFNUU0MDBFQkQ0NTAgLyogSlNFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAvKiBKU0V4dGVuZGFibGVNZXNz
YWdlRXZlbnRDdXN0b20uY3BwICovOyB9OwogCQk4MzIxNTA3RTFGMjdFQTFCMDA5NUIxMzYgLyog
TmF2aWdhdG9yQmVhY29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzIxNTA3QjFGMjdFQTE1MDA5NUIxMzYgLyogTmF2aWdhdG9yQmVhY29uLmggKi87
IH07CiAJCTgzMkI4NDM0MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMz
MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMy
Qjg0MzYxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0
MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKQEAgLTI4NzAsNiAr
Mjg3Myw4IEBACiAJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gKi87
IH07CiAJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGlj
dCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3QTgw
MTExRTFFMTI3MzAwMDI2QjlGIC8qIExvY2FsaXphYmxlLnN0cmluZ3NkaWN0ICovOyB9OwogCQk4
MzdCN0QyMDFEQzNGNTUwMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0I3RDFGMURDM0Y1NEMw
MEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovOyB9OworCQk4MzdGQjM0NDFGOUVB
MDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdGQjM0MjFGOUVBMDY3MDBEMEZDMzEg
LyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi87IH07CisJCTgzN0ZCMzQ1MUY5RUEwNkQw
MEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyogRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk4Mzg2QTk2RDE5RjYxQjJFMDBFMUVDNEEg
LyogU3R5bGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4Mzg2QTk2QzE5RjYxQjJFMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmggKi87IH07
CiAJCTgzODg2NzM1MUQxM0JBNUYwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4ODY3MzQxRDEzQkE1
OTAwMzY5N0QwIC8qIFJlbmRlck9iamVjdEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM4RUY1MzgxREMxNDlFMjAwOEYwQzM5IC8qIElE
QlRyYW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM4RUY1MzYxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDQy
Myw2ICsxMDQyOCw5IEBACiAJCTgzMDc4NEIxMUM1MkVFMTkwMDEwNEQxRCAvKiBYTUxEb2N1bWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxEb2N1bWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQTFEQUM1RkE3MDA2RDdEMDkgLyogSlNN
b3VzZUV2ZW50SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U01vdXNlRXZlbnRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwQTM2
QkIxREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNb3VzZUV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MzEwMkIyMzFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzEwMkIyNTFGOUVB
REMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAvKiBK
U0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMxRDFGMjkxQzU2RUNBMDAwRjVGNkMwIC8qIEhUTUxE
YXRhRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1M
RGF0YUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzIxNTA3QTFG
MjdFQTE1MDA5NUIxMzYgLyogTmF2aWdhdG9yQmVhY29uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5hdmlnYXRvckJlYWNvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMjE1
MDdCMUYyN0VBMTUwMDk1QjEzNiAvKiBOYXZpZ2F0b3JCZWFjb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TmF2aWdhdG9yQmVhY29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDUwNiw2
ICsxMDUxNCw5IEBACiAJCTgzN0E4MDEyMUUxRTEyNzMwMDAyNkI5RiAvKiBFbmdsaXNoICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5z
dHJpbmdzZGljdDsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3NkaWN0OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgzN0I3RDFG
MURDM0Y1NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3REZCMzQxRUJGRUE3MDAwNjAxMzg1IC8qIEVsZW1l
bnRDU1NJbmxpbmVTdHlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRWxlbWVudENTU0lu
bGluZVN0eWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3RkIzNDAxRjlF
QTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4MzdGQjM0MjFGOUVBMDY3MDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3
RkIzNDMxRjlFQTA2ODAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4Mzg2QTk2QzE5RjYxQjJFMDBFMUVDNEEgLyogU3R5bGVCdWls
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQnVpbGRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzg2QTk2RTE5RjYxRTRGMDBFMUVDNEEgLyog
U3R5bGVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0
eWxlQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzODg2NzM0MUQx
M0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJPYmplY3RFbnVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTc5MzYsNiArMTc5NDcsOCBAQAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1
MyAvKiBKU0V4dGVuZGFibGVFdmVudC5jcHAgKi8sCiAJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1
QTUzIC8qIEpTRXh0ZW5kYWJsZUV2ZW50LmggKi8sCiAJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1
QTU0IC8qIEpTRXh0ZW5kYWJsZUV2ZW50SW5pdC5jcHAgKi8sCisJCQkJODMxMDJCMjUxRjlFQURD
MjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi8sCisJCQkJODMxMDJC
MjMxRjlFQURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovLAogCQkJ
CTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MiAvKiBKU0ZldGNoRXZlbnQuY3BwICovLAogCQkJCTdF
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MiAvKiBKU0ZldGNoRXZlbnQuaCAqLywKIAkJCQk1MUY4ODZC
RTFGMzI5MjA3MDBDMTkzRUYgLyogSlNOYXZpZ2F0b3JTZXJ2aWNlV29ya2VyLmNwcCAqLywKQEAg
LTE4MDI3LDYgKzE4MDQwLDkgQEAKIAkJCQk0MUFGMzc4RTFGOEMxRTdDMDAxMTFDMzEgLyogRXh0
ZW5kYWJsZUV2ZW50LmlkbCAqLywKIAkJCQk0MTMxRjNCNDFGOTU1QkMzMDA1OTk5NUEgLyogRXh0
ZW5kYWJsZUV2ZW50SW5pdC5oICovLAogCQkJCTQxMzFGM0I1MUY5NTVCQzUwMDU5OTk1QSAvKiBF
eHRlbmRhYmxlRXZlbnRJbml0LmlkbCAqLywKKwkJCQk4MzdGQjM0MjFGOUVBMDY3MDBEMEZDMzEg
LyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi8sCisJCQkJODM3RkIzNDAxRjlFQTA2NjAw
RDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLywKKwkJCQk4MzdGQjM0MzFGOUVB
MDY4MDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwgKi8sCiAJCQkJNDFBRjM3
OTQxRjhEQTQ5NTAwMTExQzMxIC8qIEZldGNoRXZlbnQuY3BwICovLAogCQkJCTQxQUYzNzg4MUY4
QzFFNzkwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmggKi8sCiAJCQkJNDFBRjM3OEQxRjhDMUU3QjAw
MTExQzMxIC8qIEZldGNoRXZlbnQuaWRsICovLApAQCAtMTk1NDYsNiArMTk1NjIsNyBAQAogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlERUMyOTc1RDFCNERFQjJBMDA1
RjU5NDUgLyogSlNDdXN0b21FdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJODMxQzQ2QzMxRjlFRTVF
MDAwRUJENDUwIC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJ
NDEzMUYzQjExRjk1NTI4MTAwNTk5OTVBIC8qIEpTRmV0Y2hFdmVudEN1c3RvbS5jcHAgKi8sCiAJ
CQkJQkNFN0IxOTIwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgKi8sCiAJ
CQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAq
LywKQEAgLTI3MTQ4LDYgKzI3MTY1LDcgQEAKIAkJCQk5MzVGQkNGMjA5QkExNDNCMDBFMjMwQjEg
LyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1NjIxRjQ1Mzk4RjAw
QjU0REVEIC8qIEV4Y2VwdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDE5NjMxMUQ2
Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM3RkIz
NDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxRENERjQ0MURBMUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2RTY3RDJBOTEyODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uczNE
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTY3RDJBNzEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5z
aW9uczNET3BlbkdMLmggaW4gSGVhZGVycyAqLywKQEAgLTI3ODkwLDYgKzI3OTA4LDcgQEAKIAkJ
CQk0NkI2M0Y2QzFDNkU4RDE5MDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5N
YXguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MyAvKiBKU0V4
dGVuZGFibGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMxMDJCMjcxRjlFQUREOTAwRTQw
NEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0
MzA0QjYxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzcyODY5ODQxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljLmggaW4gSGVhZGVycyAqLywKIAkJCQk3N0Q1MEZGNjFFRDREOTlCMDBEQTRD
ODcgLyogSlNGZWRlcmF0ZWRDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLywKQEAgLTMwODM1LDYg
KzMwODU0LDcgQEAKIAkJCQkyNjJFQzQxRDFEMTEwQjkwMDBCQTc4RkMgLyogRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzI0RUQzMkMxQTNBN0U1NDAwRjVGMTND
IC8qIEVYVEJsZW5kTWluTWF4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQUYzNzk5MUY4REFE
QUEwMDExMUMzMSAvKiBFeHRlbmRhYmxlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODM3
RkIzNDQxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFEQ0RGNDMxREExQzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29sb3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVu
c2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5
N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MzExMDMsNiArMzExMjMsOCBAQAogCQkJCTFBREZERkVFMUU3MUU0N0MwMDhGNUQzNCAvKiBKU0Fw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFOTZB
OTQxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBRjM3OUQxRjhEQjFCNTAwMTExQzMxIC8qIEpTRE9NUHJv
bWlzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzEwMkIyNjFGOUVBREQ5MDBFNDA0QjkgLyog
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzMUM0NkM1
MUY5RUU1RTQwMEVCRDQ1MCAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEzMUYzQjMxRjk1NTI4NjAwNTk5OTVBIC8qIEpTRmV0Y2hFdmVu
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkRBN0MxRTE4ODMyMkZDMDBDOTU0QjUg
LyogSlNHZXN0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM4RUM5M0UxRjk5QkY1
QTAwNEQyMkE4IC8qIEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAppbmRleCBkOGQ3ODA4MDY0MjgxOTM5NzUzZGZiMTUzZTFkMDllYTY1YjVmNGExLi42Zjgw
M2M1OTVmNWMyMTQzYWU4Y2I1NDM4MmM5YzFkM2NhMWQxNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTYyLDYgKzYyLDcg
QEAKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVu
ZXIuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpT
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVt
RW50cnlDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE0YzdkOTI0OGJlNjhiMjFmNWEyMzMyNzIwMzczOWNkZTFlMzU5NmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFi
bGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworSlNWYWx1
ZSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OmRhdGEoRXhlY1N0YXRlJiBzdGF0ZSkgY29uc3QK
K3sKKyAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IG1fZGF0YS5nZXQoKSkgeworICAgICAg
ICAvLyBXZSBjYW5ub3QgdXNlIGEgY2FjaGVkIG9iamVjdCBpZiB3ZSBhcmUgaW4gYSBkaWZmZXJl
bnQgd29ybGQgdGhhbiB0aGUgb25lIGl0IHdhcyBjcmVhdGVkIGluLgorICAgICAgICBpZiAoIWNh
Y2hlZFZhbHVlLmlzT2JqZWN0KCkgfHwgJndvcmxkRm9yRE9NT2JqZWN0KGNhY2hlZFZhbHVlLmdl
dE9iamVjdCgpKSA9PSAmY3VycmVudFdvcmxkKCZzdGF0ZSkpCisgICAgICAgICAgICByZXR1cm4g
Y2FjaGVkVmFsdWU7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IGF1dG8mIGV2ZW50ID0gd3JhcHBlZCgpOworICAgIEpTVmFsdWUgcmVzdWx0OworICAgIGlmIChh
dXRvKiBzZXJpYWxpemVkVmFsdWUgPSBldmVudC5kYXRhKCkpIHsKKyAgICAgICAgYXV0byBwb3J0
cyA9IGV2ZW50LnBvcnRzKCk7CisgICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZWRWYWx1ZS0+ZGVz
ZXJpYWxpemUoc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBwb3J0cywgU2VyaWFsaXphdGlvbkVycm9y
TW9kZTo6Tm9uVGhyb3dpbmcpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBqc051bGwo
KTsKKworICAgIC8vIFNhdmUgdGhlIHJlc3VsdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGRlc2VyaWFs
aXplIHRoZSB2YWx1ZSBhZ2Fpbi4KKyAgICBtX2RhdGEuc2V0KHN0YXRlLnZtKCksIHRoaXMsIHJl
c3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGY1ODk0M2RhY2E5NjExYmZl
NGQ2Y2IxOWUzOTM2ODk3YzUzYzcyOGMuLmJjYTJlZjdhNTFiZjgwMDUxMWFhZmU5ZGE0YzQ4ZmVi
NTg4Yjk4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1h
Y3JvKERhdGFUcmFuc2Zlckl0ZW1MaXN0KSBcCiAgICAgbWFjcm8oRG9jdW1lbnRUaW1lbGluZSkg
XAogICAgIG1hY3JvKEV4dGVuZGFibGVFdmVudCkgXAorICAgIG1hY3JvKEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQpIFwKICAgICBtYWNybyhGZWRlcmF0ZWRDcmVkZW50aWFsKSBcCiAgICAgbWFjcm8o
RmV0Y2hFdmVudCkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW0pIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggMjQ1ODM5MTUwYjgwZGU4ZTgzODM0MjZmZTlmZGNkYjMwYzIwM2QzMi4uZjJiYTdhYjBm
OGJmYjQ0Y2YzMDQ1NDEzOWM2OWNhMzYyY2U2NWE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTg2Myw3ICs4NjMsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcmVm
ZXJyZXIoKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBvcmlnaW4oKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgb3JpZ2luKCkgY29uc3QgZmluYWw7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZG9tYWluKCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaW4KaW5kZXggZTg0MmJkMzkwYTY0ZDE3MDVlYzNiOWM4MTY4NTQ5MDk1NWYxZmI3NS4u
N2M2YjNhNWE2YTNlZThiOWQ4ZmU5M2NlN2E5MzU2MWFkMTcyNTc0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50TmFtZXMuaW4KQEAgLTExLDYgKzExLDcgQEAgQ2xvc2VFdmVudAogQ29tcG9zaXRpb25FdmVu
dAogQ3VzdG9tRXZlbnQKIEV4dGVuZGFibGVFdmVudCBjb25kaXRpb25hbD1TRVJWSUNFX1dPUktF
UgorRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCBjb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUgogRXJy
b3JFdmVudAogRmV0Y2hFdmVudCBjb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUgogRm9jdXNFdmVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCmluZGV4IGRkZDc5YWExN2Y2
OTBkY2YxOTNhYTkzZDFjZTJkNWYxZTE1YTIwNTQuLmEwOTYyOGM2MDI1MGY4ZjI5ZGUzNDc1Nzcy
MzBkYzMwY2JhMWQzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9y
dENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgK
QEAgLTkyLDcgKzkyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBSZXR1cm5z
IHRoZSBlbnRhbmdsZWQgcG9ydCBpZiBydW4gYnkgdGhlIHNhbWUgdGhyZWFkIChzZWUgTWVzc2Fn
ZVBvcnQ6OmxvY2FsbHlFbnRhbmdsZWRQb3J0KCkgZm9yIG1vcmUgZGV0YWlscykuCiAgICAgICAg
IE1lc3NhZ2VQb3J0KiBsb2NhbGx5RW50YW5nbGVkUG9ydChjb25zdCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CiAKLSAgICAgICAgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOworICAgICAgICBXRUJD
T1JFX0VYUE9SVCB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBSZWZQdHI8UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWw+IG1fY2hhbm5lbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDk2ZGRkNjIwOGE2NTkx
MjFiNWFkODhkMWUyZTE1MjMyMzliYTU5N2MuLjI2NmY0OWFlZWMwNjNmYzQ0YjBmOGM3OGQ3ZTkz
MDEyMzE0ZWRiN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaApAQCAtMTExLDYgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSA9IDA7CiAKICAgICB2
aXJ0dWFsIFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4oKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCBTdHJpbmcgb3JpZ2luKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZEJ5
cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2Nv
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA1
MzczZDI1YzJmODk5M2Y5Mzk4NzgzMGU5ZWZiNGNkNmNmNTY1NzY3Li5iMWEwMWQ1ODc5MTlmNTEy
NzM1NDZhY2U5NjBkOGU0ZTE0ZThjYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3VybDsgfQotICAg
IFN0cmluZyBvcmlnaW4oKSBjb25zdDsKKyAgICBTdHJpbmcgb3JpZ2luKCkgY29uc3QgZmluYWw7
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwCmluZGV4IDk3YzY3YzQz
ZWE1OTMxOTA2MzVlNDFkYzRkYTkwZTM4ZGRmMmFhNmMuLjFkMjFmYzY3NDYxYjZlNmI2ZjRlYTU4
MzZjNGFlYzAxZTI3OTRhZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwCkBAIC0zNyw2ICszNywxNSBAQCBFeHRlbmRhYmxlRXZl
bnQ6OkV4dGVuZGFibGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV4dGVu
ZGFibGVFdmVudAogewogfQogCitFeHRlbmRhYmxlRXZlbnQ6OkV4dGVuZGFibGVFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlKQorICAg
IDogRXZlbnQodHlwZSwgYnViYmxlcywgY2FuY2VsYWJsZSkKK3sKK30KKworRXh0ZW5kYWJsZUV2
ZW50Ojp+RXh0ZW5kYWJsZUV2ZW50KCkKK3sKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gRXh0ZW5k
YWJsZUV2ZW50Ojp3YWl0VW50aWwoUmVmPERPTVByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBp
ZiAoIWlzVHJ1c3RlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL0V4dGVuZGFibGVFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVFdmVudC5oCmluZGV4IDcwNzQ4MDU5NzljMWVhMTBiYjY0NDk0NDVkZjRjMDg4ZTRm
M2ViYTQuLmJhNzlhNmJmMGJmODEwOTljMjIyZGY4OTZjMmE5MDQwZmJjNjcxMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmgKQEAgLTQy
LDYgKzQyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRh
YmxlRXZlbnQodHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3RlZCkpOwogICAgIH0KIAorICAgIH5F
eHRlbmRhYmxlRXZlbnQoKTsKKwogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRXh0ZW5kYWJsZUV2ZW50SW50ZXJmYWNlVHlwZTsgfQog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gd2FpdFVudGlsKFJlZjxET01Qcm9taXNlPiYmKTsKQEAg
LTUwLDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQg
RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEV4dGVuZGFibGVFdmVu
dEluaXQmLCBJc1RydXN0ZWQpOworICAgIEV4dGVuZGFibGVFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmLCBib29sIGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSk7CiAKICAgICBXZWFrUHRyPEV4dGVu
ZGFibGVFdmVudD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigqdGhpcyk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMTZi
MmRhYmUyOGJmMWEwZmM3ZmY0ZDMzMjljMDVmZmMzZTNhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAK
QEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyNpbmNsdWRlICJFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
LmgiCisKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UmVmPEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ+IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OmNyZWF0
ZShWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mJiBwb3J0cywgUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBkYXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBs
YXN0RXZlbnRJZCwgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiYm
IHNvdXJjZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50KFdURk1vdmUoZGF0YSksIG9yaWdpbiwgbGFzdEV2ZW50SWQsIFdURk1vdmUoc291cmNlKSwg
V1RGTW92ZShwb3J0cykpKTsKK30KKworRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgY29uc3QgSW5pdCYgaW5pdCwgSXNUcnVzdGVkIGlzVHJ1c3RlZCkKKyAgICA6IEV4dGVu
ZGFibGVFdmVudCh0eXBlLCBpbml0LCBpc1RydXN0ZWQpCisgICAgLCBtX2RhdGEoU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUsIGluaXQuZGF0YSkpCisgICAgLCBtX29yaWdpbihp
bml0Lm9yaWdpbikKKyAgICAsIG1fbGFzdEV2ZW50SWQoaW5pdC5sYXN0RXZlbnRJZCkKKyAgICAs
IG1fcG9ydHMoaW5pdC5wb3J0cykKK3sKK30KKworRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEs
IGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9w
dGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYgc291cmNlLCBWZWN0b3I8UmVm
UHRyPE1lc3NhZ2VQb3J0Pj4mJiBwb3J0cykKKyAgICA6IEV4dGVuZGFibGVFdmVudChldmVudE5h
bWVzKCkubWVzc2FnZUV2ZW50LCBmYWxzZSwgZmFsc2UpCisgICAgLCBtX2RhdGEoV1RGTW92ZShk
YXRhKSkKKyAgICAsIG1fb3JpZ2luKG9yaWdpbikKKyAgICAsIG1fbGFzdEV2ZW50SWQobGFzdEV2
ZW50SWQpCisgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgLCBtX3BvcnRzKFdU
Rk1vdmUocG9ydHMpKQoreworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+RXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNTg3
Y2I4NWVhZmNlYzA1YWQxNGRiZmRkYjQyZGJmN2YxNmU0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oCkBA
IC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkV4dGVuZGFibGVFdmVudC5oIgorI2luY2x1ZGUg
IkV4dGVuZGFibGVFdmVudEluaXQuaCIKKyNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50LmgiCisj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBFeGVjU3Rh
dGU7CitjbGFzcyBKU1ZhbHVlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1l
c3NhZ2VQb3J0OworY2xhc3MgU2VydmljZVdvcmtlcjsKK2NsYXNzIFNlcnZpY2VXb3JrZXJDbGll
bnQ7CisKK3VzaW5nIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UgPSBWYXJpYW50PFJlZlB0
cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+LCBSZWZQdHI8TWVz
c2FnZVBvcnQ+PjsKKworY2xhc3MgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCBmaW5hbCA6IHB1Ymxp
YyBFeHRlbmRhYmxlRXZlbnQgeworcHVibGljOgorICAgIHN0cnVjdCBJbml0IDogRXh0ZW5kYWJs
ZUV2ZW50SW5pdCB7CisgICAgICAgIEpTQzo6SlNWYWx1ZSBkYXRhOworICAgICAgICBTdHJpbmcg
b3JpZ2luOworICAgICAgICBTdHJpbmcgbGFzdEV2ZW50SWQ7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4gc291cmNlOworICAgICAgICBWZWN0b3I8
UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gcG9ydHM7CisgICAgfTsKKworICAgIHN0YXRpYyBSZWY8RXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudD4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzdGVkIGlz
VHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KHN0YXRlLCB0eXBlLCBpbml0aWFsaXplciwgaXNU
cnVzdGVkKSk7CisgICAgfQorCisgICAgc3RhdGljIFJlZjxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
PiBjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiYsIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYsIGNvbnN0IFN0cmluZyYgb3JpZ2luID0geyB9LCBjb25zdCBTdHJpbmcm
IGxhc3RFdmVudElkID0geyB9LCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRT
b3VyY2U+JiYgc291cmNlID0gc3RkOjpudWxsb3B0KTsKKworICAgIH5FeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50KCk7CisKKyAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWUqIGRhdGEoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGEuZ2V0KCk7IH0KKyAgICBjb25zdCBTdHJpbmcmIG9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fb3JpZ2luOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdEV2ZW50SWQ7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPEV4dGVu
ZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZTsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYgcG9ydHMoKSBjb25z
dCB7IHJldHVybiBtX3BvcnRzOyB9CisKKyAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbnRlcmZhY2VU
eXBlOyB9CisKK3ByaXZhdGU6CisgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChKU0M6OkV4ZWNT
dGF0ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEluaXQmLCBJc1RydXN0ZWQpOworICAg
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBk
YXRhLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgc3Rk
OjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiYmLCBWZWN0b3I8UmVmUHRy
PE1lc3NhZ2VQb3J0Pj4mJik7CisKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBt
X2RhdGE7CisgICAgU3RyaW5nIG1fb3JpZ2luOworICAgIFN0cmluZyBtX2xhc3RFdmVudElkOwor
ICAgIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4gbV9zb3VyY2U7
CisgICAgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+IG1fcG9ydHM7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk4NDBiMGZlODQ1YjlkNDYwODQzMWViNWFhY2EyZTVm
YzgxNTYzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKKyAgICBDb25zdHJ1Y3RvckNhbGxXaXRo
PVNjcmlwdFN0YXRlLAorICAgIENvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSLAorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9U2VydmljZVdvcmtlciwKKyAgICBFeHBvc2VkPVNlcnZpY2VXb3JrZXIsCitd
IGludGVyZmFjZSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IDogRXh0ZW5kYWJsZUV2ZW50IHsKKyAg
ICBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkg
ZGF0YTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIG9yaWdpbjsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhc3RFdmVudElkOworICAgIFtTYW1lT2JqZWN0XSBy
ZWFkb25seSBhdHRyaWJ1dGUgKFNlcnZpY2VXb3JrZXJDbGllbnQgb3IgU2VydmljZVdvcmtlciBv
ciBNZXNzYWdlUG9ydCk/IHNvdXJjZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJy
YXk8TWVzc2FnZVBvcnQ+IHBvcnRzOworfTsKKworZGljdGlvbmFyeSBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50SW5pdCA6IEV4dGVuZGFibGVFdmVudEluaXQgeworICAgIGFueSBkYXRhID0gbnVsbDsK
KyAgICBVU1ZTdHJpbmcgb3JpZ2luID0gIiI7CisgICAgRE9NU3RyaW5nIGxhc3RFdmVudElkID0g
IiI7CisgICAgKFNlcnZpY2VXb3JrZXJDbGllbnQgb3IgU2VydmljZVdvcmtlciBvciBNZXNzYWdl
UG9ydCk/IHNvdXJjZSA9IG51bGw7CisgICAgc2VxdWVuY2U8TWVzc2FnZVBvcnQ+IHBvcnRzID0g
W107Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXIuY3BwCmluZGV4IDY2ZDczYmU4NzQwOTQzYTE3ZTQ1ZjZjYTgyY2FkNWJmYjVmNTNlNjguLmIy
ZmIyZjJmNjgwNDUxOWM0YTIwZmE3NjJkZjg2MGM1ZmE4MjhiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTI4LDEwICsyOCw0
OSBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiTWVzc2FnZVBv
cnQuaCIKKyNpbmNsdWRlICJTV0NsaWVudENvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisj
aW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0NK
U1ZhbHVlSW5saW5lcy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1Zh
bHVlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpCitTZXJ2aWNlV29ya2Vy
OjpTZXJ2aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIoJmNvbnRleHQpCisgICAgLCBtX2lkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIp
Cit7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpT
Qzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmIHRyYW5zZmVyKQogeworICAgIGlmICh0aGlzLT5z
dGF0ZSgpID09IFN0YXRlOjpSZWR1bmRhbnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgQVNDSUlMaXRlcmFsKCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyBy
ZWR1bmRhbnQiKSB9OworCisgICAgLy8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIg
YWxnb3JpdGhtIHdpdGggc2VydmljZVdvcmtlciBhcyB0aGUgYXJndW1lbnQuCisKKyAgICBWZWN0
b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gcG9ydHM7CisgICAgYXV0byBtZXNzYWdlID0gU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUsIG1lc3NhZ2VWYWx1ZSwgV1RGTW92ZSh0cmFu
c2ZlciksIHBvcnRzLCBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29ya2VyUG9zdE1lc3NhZ2UpOwor
ICAgIGlmIChtZXNzYWdlLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gbWVzc2FnZS5y
ZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICAvLyBEaXNlbnRhbmdsZSB0aGUgcG9ydCBpbiBwcmVw
YXJhdGlvbiBmb3Igc2VuZGluZyBpdCB0byB0aGUgcmVtb3RlIGNvbnRleHQuCisgICAgYXV0byBj
aGFubmVsc09yRXhjZXB0aW9uID0gTWVzc2FnZVBvcnQ6OmRpc2VudGFuZ2xlUG9ydHMoV1RGTW92
ZShwb3J0cykpOworICAgIGlmIChjaGFubmVsc09yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4gY2hhbm5lbHNPckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CisK
KyAgICAvLyBGSVhNRTogU3VwcG9ydCBzZW5kaW5nIHRoZSBjaGFubmVscy4KKyAgICBhdXRvIGNo
YW5uZWxzID0gY2hhbm5lbHNPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICBp
ZiAoY2hhbm5lbHMgJiYgIWNoYW5uZWxzLT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJQYXNzaW5nIE1lc3NhZ2VQ
b3J0IG9iamVjdHMgdG8gcG9zdE1lc3NhZ2UgaXMgbm90IHlldCBzdXBwb3J0ZWQiKSB9OworCisg
ICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVNDSUlMaXRlcmFsKCJObyBzY3JpcHQgZXhlY3V0aW9u
IGNvbnRleHQiKSB9OworCisgICAgYXV0byYgc3dDb25uZWN0aW9uID0gU2VydmljZVdvcmtlclBy
b3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXNzaW9uSUQoKSk7CisgICAgc3dDb25uZWN0aW9uLnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUobV9pZGVudGlmaWVyLCBtZXNzYWdl
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPm9yaWdpbigp
KTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTQyLDcgKzgxLDcgQEAgY29uc3QgU3RyaW5n
JiBTZXJ2aWNlV29ya2VyOjpzY3JpcHRVUkwoKSBjb25zdAogCiBTZXJ2aWNlV29ya2VyOjpTdGF0
ZSBTZXJ2aWNlV29ya2VyOjpzdGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0YXRlOjpSZWR1
bmRhbnQ7CisgICAgcmV0dXJuIFN0YXRlOjpBY3RpdmF0ZWQ7CiB9CiAKIEV2ZW50VGFyZ2V0SW50
ZXJmYWNlIFNlcnZpY2VXb3JrZXI6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKQEAgLTUy
LDcgKzkxLDcgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdAogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBTZXJ2aWNlV29y
a2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKaW5kZXggNDBlMTJkZTFiMjM1OTVl
Yzg5ZDQ4YzE4Y2VjYWRjZTQwNmJiM2U4OC4uYjM5OGQ0ZDk3MTgzYjE2NDcyYTVkZDNiNDkyMWI5
ZTQxOTE0MDE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlci5oCkBAIC0yNyw4ICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogCisjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJF
dmVudFRhcmdldC5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBFeGVjU3RhdGU7CkBAIC0zOSw5
ICs0MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZyYW1lOwogCi1jbGFzcyBT
ZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewor
Y2xhc3MgU2VydmljZVdvcmtlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcnZpY2VXb3Jr
ZXI+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXI+
IGNyZWF0ZShGcmFtZSYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtl
cihmcmFtZSkpOyB9CisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyKGNv
bnRleHQsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7CisgICAgfQorCiAgICAgdmlydHVhbCB+
U2VydmljZVdvcmtlcigpID0gZGVmYXVsdDsKIAogICAgIGVudW0gY2xhc3MgU3RhdGUgewpAQCAt
NTcsMTMgKzYzLDIwIEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNz
YWdlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CiAKKyAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CisKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
U2VydmljZVdvcmtlcihGcmFtZSYpOworICAgIFNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdDsKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAg
IHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorCisgICAgdWludDY0
X3QgbV9pZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwCmluZGV4IGU4MzBhOGRhNzNmOTBkN2VlMjMyMGZmYjAyYWRlODFjZDEzMWY5NzkuLjU2
ZDU2YzdmODQyNTVmOGIyOWIyMDhhZjg5NTM0NzUyNjI3Y2U3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisj
aW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJQcm92aWRlci5oIgpAQCAtNzQsNyArNzUsMTQgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKIAogU2VydmljZVdvcmtlciogU2VydmljZVdvcmtlckNv
bnRhaW5lcjo6Y29udHJvbGxlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAg
YXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRl
eHQgfHwgIWNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSkgeworICAg
ICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisgICAgaWYgKCFtX2NvbnRyb2xsZXIgfHwgbV9jb250cm9sbGVyLT5pZGVudGlmaWVyKCkg
IT0gY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKQorICAgICAgICBt
X2NvbnRyb2xsZXIgPSBTZXJ2aWNlV29ya2VyOjpjcmVhdGUoKmNvbnRleHQsIGNvbnRleHQtPnNl
bGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSk7CisgICAgcmV0dXJuIG1fY29udHJvbGxl
ci5nZXQoKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRSZWdpc3RyYXRp
b24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVSTCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0
aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmgKaW5kZXggMTVmNTZkMWZlZTI0NDU0NTc1YWFhMzhjZmNjMTgwMDFmYzQ1MjI2Mi4uYWU2ZGEx
YmU3MzRlNjk2M2I3YjVmZTgwYjlhNDRhNjkwYWFiZDMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC05
NCw2ICs5NCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8U1dDbGllbnRDb25uZWN0aW9uPiBt
X3N3Q29ubmVjdGlvbjsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U2VydmljZVdvcmtl
ckpvYj4+IG1fam9iTWFwOworICAgIG11dGFibGUgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fY29u
dHJvbGxlcjsKIAogI2lmbmRlZiBOREVCVUcKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fY3JlYXRp
b25UaHJlYWQgeyBjdXJyZW50VGhyZWFkKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXgg
YTZkMGJmZDI2Y2FjZWVkNjQ1Mzg1OGU0NzQ5NDNhYmMwYzNkNWJjYi4uNmUxN2RkY2RiOGIxY2Jk
MDZmNDZjOTU3Y2M0ODI0ZWZhYTk4ZTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU4
LDYgKzU4LDExIEBAIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZTo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogICAgIHJldHVybiBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVFdmVudFRhcmdldEludGVyZmFjZVR5cGU7CiB9CiAKK1NlcnZpY2VXb3JrZXJU
aHJlYWQmIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkKK3sKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8U2VydmljZVdvcmtlclRocmVhZCY+KFdvcmtlckdsb2JhbFNjb3BlOjp0aHJl
YWQoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBkYzQwYzZmMzQ5ODJhZTM2Mjc3
YjJhNDRjNDVjNDUzMjk1NzhhZjg2Li43MmMwZWYyN2MyYjQxMGY5YTU2NDIzNWYwOWUxMTJjN2Y3
NzM2MDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKIAog
ICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmlu
YWw7CiAKKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJlYWQoKTsKKwogcHJpdmF0ZToKICAg
ICBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNlcnZpY2VXb3Jr
ZXJUaHJlYWQmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3Jp
Z2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgUEFM
OjpTZXNzaW9uSUQpOwogCkBAIC02Nyw0ICs2OSw5IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGlzPFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxXZWJDb3JlOjpXb3JrZXJH
bG9iYWxTY29wZT4oY29udGV4dCkuaXNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKTsgfQorICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZSYgY29u
dGV4dCkgeyByZXR1cm4gY29udGV4dC5pc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpOyB9CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDM4MThlOTkxMWFkMzI3YTg0
ODFiNmRmYTI5ODQzOGQ4MTJiYzM2N2EuLjliNTEzNTcyN2UyNWFlYTVjNGNmYWY3MzZhNjI2YzVk
ZDdlZmNmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCisjaW5jbHVkZSAiRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckZldGNoLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC0xMDAs
NiArMTAxLDE3IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZldGNoVGFzayhSZWY8
U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50CiAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiBj
aGFubmVscywgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayB0YXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNz
YWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlT3JpZ2luID0gc291cmNlT3JpZ2luLmlzb2xh
dGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7CisgICAgICAgIGF1dG8gcG9ydHMgPSBNZXNzYWdl
UG9ydDo6ZW50YW5nbGVQb3J0cyhzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUoY2hh
bm5lbHMpKTsKKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQo
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1l
c3NhZ2UpLCBzb3VyY2VPcmlnaW4pKTsKKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LnRocmVhZCgpLndvcmtlck9iamVjdFByb3h5KCkuY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2Jq
ZWN0KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAg
fSk7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggOTU0ZGFmNjA4MmNjZWY2YmQ5MzU4MTJhNzA3Y2RlZTBi
ZjAzYzliYi4uNzM3MjgxMWE5OTFkNDVjZmFkNWM1YTBlMGFhY2MwYWMxZjc2YThmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtMzUsOSArMzUsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3Mg
TWVzc2FnZVBvcnRDaGFubmVsOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3Mg
V29ya2VyT2JqZWN0UHJveHk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCit1
c2luZyBNZXNzYWdlUG9ydENoYW5uZWxBcnJheSA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVz
c2FnZVBvcnRDaGFubmVsPiwgMT47CisKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJs
aWMgV29ya2VyVGhyZWFkLCBwdWJsaWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U2VydmljZVdvcmtl
clRocmVhZD4gewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRp
YyBSZWY8U2VydmljZVdvcmtlclRocmVhZD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQpAQCAtNDks
NiArNTMsNyBAQCBwdWJsaWM6CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFBy
b3h5KCkgY29uc3QgeyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVu
dD4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFy
cmF5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAKIHByb3RlY3RlZDoKICAgICBS
ZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
T3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGll
bnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
Q2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDljOGExNzBmMTJkMWY3ZDdmN2YxZTViZGUyYWViMzcx
MzgzYzA1YzEuLjQyMjJiNTljNmEzMTE1NzRmODBlNWY3MWIxNDZlNTUyNjJlMmQ5NzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0Ns
aWVudENvbm5lY3Rpb24uaApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25E
YXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZv
aWQgZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29u
c3QgUmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAw
OwogCiAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBoYXNTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKaW5kZXggZjU4YzE3NTliYTYwYWExYjFkZGVhNTczODllNDY5M2JjMzcwNjRkNC4uYzRi
NmNlYTM2ZjU1MWNmMDMzYzQ1NzE3MmZlM2ExMDc3MjJmYWY0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTEwMCw2ICsxMDAsMTEgQEAgdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50
NjRfdCBzZXJ2aWMKICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyOjpTdGFydEZldGNoKGlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlm
aWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucykpOwogfQogCit2
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBz
ZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZU9yaWdpbikpOworfQorCiB2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3Qg
ZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAg
ICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OkRpZFJlY2VpdmVSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNoSWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggN2NjNzZiZGM5YWRiY2Q5
MzUwMTExYjRmZTBiYjNlMDJiNzY2MmFjMC4uM2E1NzIwYmVlNzE4YzkxYTllNjEyYmI3MGZlNjli
YjhkYmRiNWIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjUs
NiArNjUsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNo
SWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOwogCisg
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKKwogICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBT
VyBjb250ZXh0IFdlYlByb2Nlc3MKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQo
Y29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJikgZmluYWw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGYz
ZGIzYjkwZGFlOTNhOTI2ZGY1YmJkZWExYTM3Nzk1MzQ2NjQ5MTIuLjNiMjA0NWM2NDQ0YWRjZDE4
ZGI0Y2ZlY2M1MWVmYzM5NGIyMTJkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJTV1NlcnZlckNvbm5lY3Rpb24gewogICAgIEZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIo
c3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCByZXN1bHQpCiAKICAgICBT
dGFydEZldGNoKHVpbnQ2NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6
OkZldGNoT3B0aW9ucyBvcHRpb25zKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVy
ZW5jZSBtZXNzYWdlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggMGRl
ZjM1NGMzY2NlYWQ3N2I5ZTFlZTQ0ODVhY2I2OTQyYzRjZGI1NC4uZGIxN2RkMzU4YTk4MmQ0OTM5
YzlmNjg4ZmZkYTVlM2JiNTY4ODQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3Bw
CkBAIC0yOCwxMiArMjgsMTUgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2lu
Y2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxwYWwv
U2Vzc2lvbklELmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC02OCw2ICs3MSwxNiBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcgogICAgIHNlcnZpY2VXb3JrZXJUaHJlYWQtPnBvc3RGZXRj
aFRhc2soV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMp
KTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIGF1dG8q
IHdvcmtlclRocmVhZCA9IG1fd29ya2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CisgICAgaWYgKCF3b3JrZXJUaHJlYWQpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHdv
cmtlclRocmVhZC0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBudWxscHRyLCBzb3VyY2VP
cmlnaW4pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCmluZGV4IDhkMjAwYzBm
MzQwNWQ0MGRkNzMzYzVkMzliN2I4NTc0Yjg0ZmJmMmYuLjY5NGZmNzVmMWE4ODUzOTQ0MWRmMTZi
ZmE4MjM3NTYzMTYyMWE5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCkBAIC01Miw2
ICs1Miw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXIo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdl
YkNvcmU6OkZldGNoT3B0aW9ucyYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3M7CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ+PiBtX3dvcmtlclRocmVhZE1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBl
ZGNkZDhiMzY0NjE0ZDQ3MGU1NjBhMmJlMjJkNTlhMjUzYjIwY2IyLi44NjY2M2Y4MWU3Y2EwYjg2
ZTY2M2NmOTRiZjA1NWU1Y2IwNGQ1YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBTZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXIgewogICAgIFN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSBjb250ZXh0RGF0YSkKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
c3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zKQorICAgIFBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
bWVzc2FnZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAppbmRleCBiYjFlMWNjOWE5NWViODY5NjQxMTk5ODIxMDUwNTQ2NjhlY2I0OWViLi4zMDg2
ZWE0ZmMwZWJmMWI4ZDQ2YzQ1OWE0ZjEzZmU5MjYzNWE5NWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTI4LDEyICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViU1dPcmlnaW5UYWJsZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVy
Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckpvYkRhdGEuaD4KIApAQCAtNjYsNiArNjgs
MTEgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5T
ZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7CiB9
CiAKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdp
bikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQ
Qzo6RGF0YVJlZmVyZW5jZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSwgc291cmNlT3JpZ2luKSk7
Cit9CisKIGJvb2wgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpoYXNTZXJ2aWNlV29ya2VyUmVnaXN0
ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewogICAg
IHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
CmluZGV4IDkxYjlmOGM2MjRjZWExYWZlNjUyNjhlODQ4NDhiYzYyNGJlZmQ0ZDMuLjFjZDI5Mjk5
ZTNmZDNjMmZjOTI4OGUxODYwYWQ1NDAzMTBjZTU0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC01
Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQmKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5hbDsK
IAogICAgIHZvaWQgZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDRhNzUxYWY3ZjUyNTNmY2JhMWYyOTljYmQwYzlmODQ5MDBkYWRiZjguLjg0MjYzNzM1M2U4
YzRkMmM0OThiYTFlMmFjMzY4ZWIyZTg5MjBhYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
Ny0xMC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBp
bml0aWFsIGltcGxlbWVudGF0aW9uIGZvciBzZXJ2aWNlV29ya2VyLnBvc3RNZXNzYWdlKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODUzNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQg
dGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jh
c2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2Vy
LXBvc3RNZXNzYWdlLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdv
cmtlci5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanM6IEFkZGVkLgorCiAyMDE3
LTEwLTIzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gVHJ5IHRvIHJlZHVjZSBmbGFraW5lc3Mgb2YgaW5z
cGVjdG9yL25ldHdvcmsvaGFyIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9i
YXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZDEyMjM1NDc1ZjFlZWI1OTMyM2RlYmUwZGYxNWU2ODI1MGVhNjdjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2Vy
dmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitQQVNTOiBTdGF0dXMgY29kZSBpcyAyMDAKK1BBU1M6IFN0YXR1cyB0ZXh0IGlzIFdvcmtlciBy
ZWNlaXZlZCB0aGUgbWVzc2FnZSBldmVudC4gbWVzc2FnZUV2ZW50Lm9yaWdpbiB3YXMgaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0MworUEFTUzogU291cmNlIGlzIFNlcnZpY2Ugd29ya2VyCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZp
Y2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kODE3MGM2YmQ2MTA3ZjVlM2E4Y2QxNmJjM2JjZDFmMTlmMDE0MDQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
YmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsOSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYmFz
aWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9y
ZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2Vydmlj
ZVdvcmtlci1wb3N0TWVzc2FnZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQzOTViMmE2ZDNkNmY1
YTY3MzQ5ZmNiNzA2ZDhhYjQ3NTY2YmFiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2Vy
LXBvc3RNZXNzYWdlLXdvcmtlci5qcwpAQCAtMCwwICsxLDE0IEBACitsZXQgcmVzcG9uc2VUb1Nl
bmQgPSB7IHN0YXR1czogNDA0LCBzdGF0dXNUZXh0OiAiTm90IEZvdW5kIiB9OworCitzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICByZXNwb25zZVRvU2Vu
ZCA9IGV2ZW50LmRhdGE7CisgICAgcmVzcG9uc2VUb1NlbmQuc3RhdHVzVGV4dCArPSAiIG1lc3Nh
Z2VFdmVudC5vcmlnaW4gd2FzICIgKyBldmVudC5vcmlnaW47Cit9KTsKKworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmRleE9mKCJ0ZXN0MSIpICE9PSAtMSkgeworICAgICAgICBldmVudC5yZXNwb25kV2l0aChu
ZXcgUmVzcG9uc2UobnVsbCwgcmVzcG9uc2VUb1NlbmQpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBldmVudC5yZXNwb25kV2l0aChSZXNwb25zZS5lcnJvcigpKTsKK30pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jh
c2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2Fn
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NmE0MWNhMDg2ODhiNDgzYWU4MjRiMjM2NTUzMTcwN2NkMDhlN2Nj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMKQEAgLTAsMCAr
MSwzNyBAQAorZnVuY3Rpb24gZG9uZSgpCit7CisgICAgZmluaXNoU1dUZXN0KCk7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1w
b3N0TWVzc2FnZS13b3JrZXIuanMiLCB7IH0pOworCisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoeyBzdGF0dXM6IDIwMCwgc3RhdHVzVGV4dDog
IldvcmtlciByZWNlaXZlZCB0aGUgbWVzc2FnZSBldmVudC4iIH0pOworCisgICAgICAgIGxldCBy
ZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0MSIpOworICAgICAgICBpZiAocmVzcG9uc2Uuc3Rh
dHVzID09IDIwMCkKKyAgICAgICAgICAgIGxvZygiUEFTUzogU3RhdHVzIGNvZGUgaXMgIiArIHJl
c3BvbnNlLnN0YXR1cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogU3Rh
dHVzIGNvZGUgaXMgIiArIHJlc3BvbnNlLnN0YXR1cyk7CisKKyAgICAgICAgaWYgKHJlc3BvbnNl
LnN0YXR1c1RleHQuc3RhcnRzV2l0aCgiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIikpCisg
ICAgICAgICAgICBsb2coIlBBU1M6IFN0YXR1cyB0ZXh0IGlzICIgKyByZXNwb25zZS5zdGF0dXNU
ZXh0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMOiBTdGF0dXMgdGV4dCBp
cyAiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKKyAgICAgICAgICAgIGxldCBzb3VyY2UgPSBpbnRlcm5hbHMuZmV0Y2hSZXNwb25zZVNv
dXJjZShyZXNwb25zZSk7CisgICAgICAgICAgICBpZiAoc291cmNlID09PSAiU2VydmljZSB3b3Jr
ZXIiKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogU291cmNlIGlzICIgKyBzb3VyY2UpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogU291cmNlIGlzICIg
KyBzb3VyY2UpOworICAgICAgICB9CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGxvZygiR290
IGV4Y2VwdGlvbjogIiArIGUpOworICAgIH0KKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKwordGVz
dCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324634</attachid>
            <date>2017-10-23 21:11:43 -0700</date>
            <delta_ts>2017-10-23 21:14:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171023211142.patch</filename>
            <type>text/plain</type>
            <size>60933</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdiODI4NWJmZjYzNjdi
MmI0NTAyNmI1MzM0ZjU4ZGJlNmMwMTMzMS4uZmJjMjFmOWMwYThkNGQyZThjNzJlZjhjOTZkMWI1
YzQ0NTQ2YmMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50Ojp+RXh0
ZW5kYWJsZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoaXNUeXBl
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTIzICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhdHRl
bXB0IHRvIGZpeCBpbml0aWFsaXplU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZXMgYWZ0ZXIgcjIyMzg2
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA2NTRhOTk0MTBhNmM0NDA3MDRkYzc2NWQ5YTI4NjIxNDVhMzJjMzJkLi4w
NjQ1MDU5MTc1Zjg5ZmQ1YzZhNjY5NjM5NDlhMmRlNjhkNGIyZTY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9z
dE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3Nh
Z2UoKToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2Vy
dmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKwogMjAxNy0x
MC0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBXZWIg
QXV0b21hdGlvbjoga2V5IG1vZGlmaWVycyBmb3Igc3ludGhlc2l6ZWQgTlNFdmVudHMgYXJlIGlu
Y29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjMTA1OTJlOWM0NDliOTA4ZGQ0MWRmMTZj
MmQ4MzMyMDFlZjA5M2MzLi4yNzEzZDM3OGQxYjNlN2Q4ZGRkM2VlNWZmZjFlNzhjYWY3ZmYxOWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzk4LDYgKzc5OCw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50Lmlk
bAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0LmlkbAorICAgIHdvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vydmlj
ZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmlkbAog
ICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbApAQCAtMTg5Miw2ICsx
ODkzLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKKyAgICB3b3JrZXJz
L3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2Uv
RmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKICAg
ICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IGU1MzAyY2NjY2MwMTdlNDJlZTllZDVhZWEzMGRlZWIzNTZmZTFk
NjAuLjgxNDQ5ZmRkZmNiMmRlYjVkMmUzMDI3NDE3ZTA3YTJkOWQyYTUxMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE5LDYgKzkxOSw3IEBAIEpTX0JJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyVHlwZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
d29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGM2OGJm
MjU0ZjQ4ZjAyMzMyMmY1MWY0YWNiMjY0ZDEwMjlhOTUwNmIuLjBkZjk3YzQ0MWRhZDcxNDBlYTQ3
MmFhYTEzODliOGRkOTQwOGRjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNjcsNiArMzY3LDcgQEAg
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogYmluZGluZ3MvanMvSlNFdmVu
dFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1
c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbUVudHJ5Q3VzdG9tLmNwcAogYmluZGlu
Z3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTSFRNTERvY3Vt
ZW50Q3VzdG9tLmNwcApAQCAtMTQyNyw2ICsxNDI4LDcgQEAgSlNFdmVudFNvdXJjZS5jcHAKIEpT
RXZlbnRUYXJnZXQuY3BwCiBKU0V4dGVuZGFibGVFdmVudC5jcHAKIEpTRXh0ZW5kYWJsZUV2ZW50
SW5pdC5jcHAKK0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVu
dGlhbC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQuY3BwCiBKU0ZlZGVyYXRlZENyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNWYzMDdlYzQyYTQ1NTE3ZmE2N2Y3YjM3NmM0
NzMzYzBmOGQ3ZDM0Li4yNzVkOWEyODk2YmE0MWMzZDYwYjM5YjQzM2E3MTkzNGYyZDJlY2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODI4LDYgKzI4MjgsNyBAQAogCQk4MzA1MTk5NjFCQjBGMTEwMDBGMzc3MkUgLyogSFRN
TFRpbWVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzA1MTk5MzFCQjBGMEU3MDBGMzc3MkUgLyogSFRNTFRpbWVFbGVtZW50LmggKi87IH07
CiAJCTgzMDc4NEIyMUM1MkVFMkMwMDEwNEQxRCAvKiBYTUxEb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwNzg0QjExQzUyRUUxOTAwMTA0
RDFEIC8qIFhNTERvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODMwQTM2QkQxREFDNUZBRDAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudElu
aXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMEEz
NkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggKi87IH07CisJCTgzMTAy
QjI3MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTAyQjIzMUY5RUFEQzIw
MEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJODMxMjBDNzEx
QzU2RjNGQjAwMUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0Qjg2QTcxQzU2RTgzQTAwRjNGMEUzIC8qIEhU
TUxEYXRhRWxlbWVudC5oICovOyB9OwogCQk4MzIxNTA3RTFGMjdFQTFCMDA5NUIxMzYgLyogTmF2
aWdhdG9yQmVhY29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzIxNTA3QjFGMjdFQTE1MDA5NUIxMzYgLyogTmF2aWdhdG9yQmVhY29uLmggKi87IH07
CiAJCTgzMkI4NDM0MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlE
OEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLzsgfTsKQEAgLTI4NzAs
NiArMjg3MSw4IEBACiAJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0g
Ki87IH07CiAJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdz
ZGljdCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
QTgwMTExRTFFMTI3MzAwMDI2QjlGIC8qIExvY2FsaXphYmxlLnN0cmluZ3NkaWN0ICovOyB9Owog
CQk4MzdCN0QyMDFEQzNGNTUwMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0I3RDFGMURDM0Y1
NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovOyB9OworCQk4MzdGQjM0NDFG
OUVBMDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdGQjM0MjFGOUVBMDY3MDBEMEZD
MzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi87IH07CisJCTgzN0ZCMzQ1MUY5RUEw
NkQwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyog
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk4Mzg2QTk2RDE5RjYxQjJFMDBFMUVD
NEEgLyogU3R5bGVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4Mzg2QTk2QzE5RjYxQjJFMDBFMUVDNEEgLyogU3R5bGVCdWlsZGVyLmggKi87
IH07CiAJCTgzODg2NzM1MUQxM0JBNUYwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4ODY3MzQxRDEz
QkE1OTAwMzY5N0QwIC8qIFJlbmRlck9iamVjdEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM4RUY1MzgxREMxNDlFMjAwOEYwQzM5IC8q
IElEQlRyYW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM4RUY1MzYxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9k
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MDQyMyw2ICsxMDQyNiw5IEBACiAJCTgzMDc4NEIxMUM1MkVFMTkwMDEwNEQxRCAvKiBYTUxEb2N1
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxEb2N1bWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQTFEQUM1RkE3MDA2RDdEMDkgLyog
SlNNb3VzZUV2ZW50SW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU01vdXNlRXZlbnRJbml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMw
QTM2QkIxREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNb3VzZUV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MzEwMkIyMzFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzEwMkIyNTFG
OUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAv
KiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMxRDFGMjkxQzU2RUNBMDAwRjVGNkMwIC8qIEhU
TUxEYXRhRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MRGF0YUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzIxNTA3
QTFGMjdFQTE1MDA5NUIxMzYgLyogTmF2aWdhdG9yQmVhY29uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5hdmlnYXRvckJlYWNvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MjE1MDdCMUYyN0VBMTUwMDk1QjEzNiAvKiBOYXZpZ2F0b3JCZWFjb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmF2aWdhdG9yQmVhY29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDUw
Niw2ICsxMDUxMiw5IEBACiAJCTgzN0E4MDEyMUUxRTEyNzMwMDAyNkI5RiAvKiBFbmdsaXNoICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlz
dC5zdHJpbmdzZGljdDsgbmFtZSA9IEVuZ2xpc2g7IHBhdGggPSBFbmdsaXNoLmxwcm9qL0xvY2Fs
aXphYmxlLnN0cmluZ3NkaWN0OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgzN0I3
RDFGMURDM0Y1NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3REZCMzQxRUJGRUE3MDAwNjAxMzg1IC8qIEVs
ZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRWxlbWVudENT
U0lubGluZVN0eWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3RkIzNDAx
RjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MzdGQjM0MjFGOUVBMDY3MDBEMEZDMzEgLyogRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
ODM3RkIzNDMxRjlFQTA2ODAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzg2QTk2QzE5RjYxQjJFMDBFMUVDNEEgLyogU3R5bGVC
dWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlQnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzg2QTk2RTE5RjYxRTRGMDBFMUVDNEEg
LyogU3R5bGVCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0eWxlQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzODg2NzM0
MUQxM0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJPYmplY3RFbnVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTc5MzYsNiArMTc5NDUsOCBAQAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2
NUE1MyAvKiBKU0V4dGVuZGFibGVFdmVudC5jcHAgKi8sCiAJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAw
MzY1QTUzIC8qIEpTRXh0ZW5kYWJsZUV2ZW50LmggKi8sCiAJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAw
MzY1QTU0IC8qIEpTRXh0ZW5kYWJsZUV2ZW50SW5pdC5jcHAgKi8sCisJCQkJODMxMDJCMjUxRjlF
QURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi8sCisJCQkJODMx
MDJCMjMxRjlFQURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovLAog
CQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MiAvKiBKU0ZldGNoRXZlbnQuY3BwICovLAogCQkJ
CTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MiAvKiBKU0ZldGNoRXZlbnQuaCAqLywKIAkJCQk1MUY4
ODZCRTFGMzI5MjA3MDBDMTkzRUYgLyogSlNOYXZpZ2F0b3JTZXJ2aWNlV29ya2VyLmNwcCAqLywK
QEAgLTE4MDI3LDYgKzE4MDM4LDkgQEAKIAkJCQk0MUFGMzc4RTFGOEMxRTdDMDAxMTFDMzEgLyog
RXh0ZW5kYWJsZUV2ZW50LmlkbCAqLywKIAkJCQk0MTMxRjNCNDFGOTU1QkMzMDA1OTk5NUEgLyog
RXh0ZW5kYWJsZUV2ZW50SW5pdC5oICovLAogCQkJCTQxMzFGM0I1MUY5NTVCQzUwMDU5OTk1QSAv
KiBFeHRlbmRhYmxlRXZlbnRJbml0LmlkbCAqLywKKwkJCQk4MzdGQjM0MjFGOUVBMDY3MDBEMEZD
MzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgKi8sCisJCQkJODM3RkIzNDAxRjlFQTA2
NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLywKKwkJCQk4MzdGQjM0MzFG
OUVBMDY4MDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwgKi8sCiAJCQkJNDFB
RjM3OTQxRjhEQTQ5NTAwMTExQzMxIC8qIEZldGNoRXZlbnQuY3BwICovLAogCQkJCTQxQUYzNzg4
MUY4QzFFNzkwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmggKi8sCiAJCQkJNDFBRjM3OEQxRjhDMUU3
QjAwMTExQzMxIC8qIEZldGNoRXZlbnQuaWRsICovLApAQCAtMTk1NDYsNiArMTk1NjAsNyBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlERUMyOTc1RDFCNERFQjJB
MDA1RjU5NDUgLyogSlNDdXN0b21FdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJODMxQzQ2QzMxRjlF
RTVFMDAwRUJENDUwIC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCiAJ
CQkJNDEzMUYzQjExRjk1NTI4MTAwNTk5OTVBIC8qIEpTRmV0Y2hFdmVudEN1c3RvbS5jcHAgKi8s
CiAJCQkJQkNFN0IxOTIwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgKi8s
CiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cCAqLywKQEAgLTI3MTQ4LDYgKzI3MTYzLDcgQEAKIAkJCQk5MzVGQkNGMjA5QkExNDNCMDBFMjMw
QjEgLyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1NjIxRjQ1Mzk4
RjAwQjU0REVEIC8qIEV4Y2VwdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDE5NjMx
MUQ2Q0FCNzYwMEZDN0U0NyAvKiBFeGNlcHRpb25Pci5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM3
RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxRENERjQ0MURBMUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2RTY3RDJBOTEyODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9u
czNELmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTY3RDJBNzEyODBFOEE0MDA4NzU4RjcgLyogRXh0
ZW5zaW9uczNET3BlbkdMLmggaW4gSGVhZGVycyAqLywKQEAgLTI3ODkwLDYgKzI3OTA2LDcgQEAK
IAkJCQk0NkI2M0Y2QzFDNkU4RDE5MDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRN
aW5NYXguaCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MyAvKiBK
U0V4dGVuZGFibGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJODMxMDJCMjcxRjlFQUREOTAw
RTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUM0MzA0QjYxOTFBRUY0NjAwMEUyQkMwIC8qIEpTRVhUU2hhZGVyVGV4dHVyZUxPRC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzcyODY5ODQxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmggaW4gSGVhZGVycyAqLywKIAkJCQk3N0Q1MEZGNjFFRDREOTlCMDBE
QTRDODcgLyogSlNGZWRlcmF0ZWRDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLywKQEAgLTMwODM1
LDYgKzMwODUyLDcgQEAKIAkJCQkyNjJFQzQxRDFEMTEwQjkwMDBCQTc4RkMgLyogRXZlbnRUcmFj
a2luZ1JlZ2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzI0RUQzMkMxQTNBN0U1NDAwRjVG
MTNDIC8qIEVYVEJsZW5kTWluTWF4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxQUYzNzk5MUY4
REFEQUEwMDExMUMzMSAvKiBFeHRlbmRhYmxlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
ODM3RkIzNDQxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzFEQ0RGNDMxREExQzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29s
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4
dGVuc2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NERBQjVCMTE1QTYyMzU4
MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
aW5kZXggZDhkNzgwODA2NDI4MTkzOTc1M2RmYjE1M2UxZDA5ZWE2NWI1ZjRhMS4uNmY4MDNjNTk1
ZjVjMjE0M2FlOGNiNTQzODJjOWMxZDNjYTFkMTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAj
aW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmNw
cCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRmlsZVN5c3RlbUVudHJ5
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V4dGVuZGFibGVNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNGM3ZDkyNDhiZTY4YjIxZjVhMjMzMjcyMDM3MzljZGUxZTM1OTZmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK0pTVmFsdWUgSlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhKEV4ZWNTdGF0ZSYgc3RhdGUpIGNvbnN0Cit7Cisg
ICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSBtX2RhdGEuZ2V0KCkpIHsKKyAgICAgICAgLy8g
V2UgY2Fubm90IHVzZSBhIGNhY2hlZCBvYmplY3QgaWYgd2UgYXJlIGluIGEgZGlmZmVyZW50IHdv
cmxkIHRoYW4gdGhlIG9uZSBpdCB3YXMgY3JlYXRlZCBpbi4KKyAgICAgICAgaWYgKCFjYWNoZWRW
YWx1ZS5pc09iamVjdCgpIHx8ICZ3b3JsZEZvckRPTU9iamVjdChjYWNoZWRWYWx1ZS5nZXRPYmpl
Y3QoKSkgPT0gJmN1cnJlbnRXb3JsZCgmc3RhdGUpKQorICAgICAgICAgICAgcmV0dXJuIGNhY2hl
ZFZhbHVlOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBhdXRv
JiBldmVudCA9IHdyYXBwZWQoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdDsKKyAgICBpZiAoYXV0byog
c2VyaWFsaXplZFZhbHVlID0gZXZlbnQuZGF0YSgpKSB7CisgICAgICAgIGF1dG8gcG9ydHMgPSBl
dmVudC5wb3J0cygpOworICAgICAgICByZXN1bHQgPSBzZXJpYWxpemVkVmFsdWUtPmRlc2VyaWFs
aXplKHN0YXRlLCBnbG9iYWxPYmplY3QoKSwgcG9ydHMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGU6
Ok5vblRocm93aW5nKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0ganNOdWxsKCk7CisK
KyAgICAvLyBTYXZlIHRoZSByZXN1bHQgc28gd2UgZG9uJ3QgaGF2ZSB0byBkZXNlcmlhbGl6ZSB0
aGUgdmFsdWUgYWdhaW4uCisgICAgbV9kYXRhLnNldChzdGF0ZS52bSgpLCB0aGlzLCByZXN1bHQp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBmNTg5NDNkYWNhOTYxMWJmZTRkNmNi
MTllMzkzNjg5N2M1M2M3MjhjLi5iY2EyZWY3YTUxYmY4MDA1MTFhYWZlOWRhNGM0OGZlYjU4OGI5
ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhE
YXRhVHJhbnNmZXJJdGVtTGlzdCkgXAogICAgIG1hY3JvKERvY3VtZW50VGltZWxpbmUpIFwKICAg
ICBtYWNybyhFeHRlbmRhYmxlRXZlbnQpIFwKKyAgICBtYWNybyhFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50KSBcCiAgICAgbWFjcm8oRmVkZXJhdGVkQ3JlZGVudGlhbCkgXAogICAgIG1hY3JvKEZldGNo
RXZlbnQpIFwKICAgICBtYWNybyhGaWxlU3lzdGVtKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDI0NTgzOTE1MGI4MGRlOGU4MzgzNDI2ZmU5ZmRjZGIzMGMyMDNkMzIuLmYyYmE3YWIwZjhiZmI0
NGNmMzA0NTQxMzljNjljYTM2MmNlNjVhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC04NjMs
NyArODYzLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlZmVycmVy
KCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgb3JpZ2luKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0IGZpbmFsOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIGRvbWFpbigpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldERvbWFpbihjb25zdCBTdHJpbmcmIG5ld0RvbWFpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVz
LmluCmluZGV4IGU4NDJiZDM5MGE2NGQxNzA1ZWMzYjljODE2ODU0OTA5NTVmMWZiNzUuLjdjNmIz
YTVhNmEzZWU4YjlkOGZlOTNjZTdhOTM1NjFhZDE3MjU3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmluCkBAIC0xMSw2ICsxMSw3IEBAIENsb3NlRXZlbnQKIENvbXBvc2l0aW9uRXZlbnQKIEN1
c3RvbUV2ZW50CiBFeHRlbmRhYmxlRXZlbnQgY29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKK0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQgY29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKIEVycm9yRXZl
bnQKIEZldGNoRXZlbnQgY29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIKIEZvY3VzRXZlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaAppbmRleCBkZGQ3OWFhMTdmNjkwZGNm
MTkzYWE5M2QxY2UyZDVmMWUxNWEyMDU0Li5hMDk2MjhjNjAyNTBmOGYyOWRlMzQ3NTc3MjMwZGMz
MGNiYTFkM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFu
bmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCkBAIC05
Miw3ICs5Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gUmV0dXJucyB0aGUg
ZW50YW5nbGVkIHBvcnQgaWYgcnVuIGJ5IHRoZSBzYW1lIHRocmVhZCAoc2VlIE1lc3NhZ2VQb3J0
Ojpsb2NhbGx5RW50YW5nbGVkUG9ydCgpIGZvciBtb3JlIGRldGFpbHMpLgogICAgICAgICBNZXNz
YWdlUG9ydCogbG9jYWxseUVudGFuZ2xlZFBvcnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwogCi0gICAgICAgIH5NZXNzYWdlUG9ydENoYW5uZWwoKTsKKyAgICAgICAgV0VCQ09SRV9F
WFBPUlQgfk1lc3NhZ2VQb3J0Q2hhbm5lbCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUmVm
UHRyPFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsPiBtX2NoYW5uZWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCA5NmRkZDYyMDhhNjU5MTIxYjVh
ZDg4ZDFlMmUxNTIzMjM5YmE1OTdjLi4yNjZmNDlhZWVjMDYzZmM0NGIwZjhjNzhkN2U5MzAxMjMx
NGVkYjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
QEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogCiAgICAgdmlydHVh
bCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3Ry
aW5nIG9yaWdpbigpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRCeXBhc3NN
YWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggNTM3M2Qy
NWMyZjg5OTNmOTM5ODc4MzBlOWVmYjRjZDZjZjU2NTc2Ny4uYjFhMDFkNTg3OTE5ZjUxMjczNTQ2
YWNlOTYwZDhlNGUxNGU4Y2MwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xv
YmFsU2NvcGUuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV91cmw7IH0KLSAgICBTdHJp
bmcgb3JpZ2luKCkgY29uc3Q7CisgICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0IGZpbmFsOwogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSURCQ2xpZW50OjpJREJDb25uZWN0aW9u
UHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmNwcAppbmRleCA5N2M2N2M0M2VhNTkz
MTkwNjM1ZTQxZGM0ZGE5MGUzOGRkZjJhYTZjLi4xZDIxZmM2NzQ2MWI2ZTZiNmY0ZWE1ODM2YzRh
ZWMwMWUyNzk0YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50LmNwcApAQCAtMzcsNiArMzcsMTUgQEAgRXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFeHRlbmRhYmxl
RXZlbnQKIHsKIH0KIAorRXh0ZW5kYWJsZUV2ZW50OjpFeHRlbmRhYmxlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMsIGJvb2wgY2FuY2VsYWJsZSkKKyAgICA6IEV2
ZW50KHR5cGUsIGJ1YmJsZXMsIGNhbmNlbGFibGUpCit7Cit9CisKK0V4dGVuZGFibGVFdmVudDo6
fkV4dGVuZGFibGVFdmVudCgpCit7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEV4dGVuZGFibGVF
dmVudDo6d2FpdFVudGlsKFJlZjxET01Qcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFp
c1RydXN0ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRh
YmxlRXZlbnQuaAppbmRleCA3MDc0ODA1OTc5YzFlYTEwYmI2NDQ5NDQ1ZGY0YzA4OGU0ZjNlYmE0
Li5iYTc5YTZiZjBiZjgxMDk5YzIyMmRmODk2YzJhOTA0MGZiYzY3MTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5oCkBAIC00Miw2ICs0
Miw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXh0ZW5kYWJsZUV2
ZW50KHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKICAgICB9CiAKKyAgICB+RXh0ZW5k
YWJsZUV2ZW50KCk7CisKICAgICBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIEV4dGVuZGFibGVFdmVudEludGVyZmFjZVR5cGU7IH0KIAogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHdhaXRVbnRpbChSZWY8RE9NUHJvbWlzZT4mJik7CkBAIC01MCw2
ICs1Miw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIEV4dGVu
ZGFibGVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBFeHRlbmRhYmxlRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKKyAgICBFeHRlbmRhYmxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwg
Ym9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUpOwogCiAgICAgV2Vha1B0cjxFeHRlbmRhYmxl
RXZlbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKnRoaXMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjE2YjJkYWJl
MjhiZjFhMGZjN2ZmNGQzMzI5YzA1ZmZjM2UzYWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwCkBAIC0w
LDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisjaW5jbHVkZSAiRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIgor
CisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50PiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUoVmVj
dG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiYgcG9ydHMsIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2
ZW50SWQsIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3Vy
Y2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChX
VEZNb3ZlKGRhdGEpLCBvcmlnaW4sIGxhc3RFdmVudElkLCBXVEZNb3ZlKHNvdXJjZSksIFdURk1v
dmUocG9ydHMpKSk7Cit9CisKK0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OkV4dGVuZGFibGVNZXNz
YWdlRXZlbnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGNvbnN0IEluaXQmIGluaXQsIElzVHJ1c3RlZCBpc1RydXN0ZWQpCisgICAgOiBFeHRlbmRhYmxl
RXZlbnQodHlwZSwgaW5pdCwgaXNUcnVzdGVkKQorICAgICwgbV9kYXRhKFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTo6Y3JlYXRlKHN0YXRlLCBpbml0LmRhdGEpKQorICAgICwgbV9vcmlnaW4oaW5pdC5v
cmlnaW4pCisgICAgLCBtX2xhc3RFdmVudElkKGluaXQubGFzdEV2ZW50SWQpCisgICAgLCBtX3Bv
cnRzKGluaXQucG9ydHMpCit7Cit9CisKK0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OkV4dGVuZGFi
bGVNZXNzYWdlRXZlbnQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBkYXRhLCBjb25z
dCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBsYXN0RXZlbnRJZCwgc3RkOjpvcHRpb25h
bDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiYmIHNvdXJjZSwgVmVjdG9yPFJlZlB0cjxN
ZXNzYWdlUG9ydD4+JiYgcG9ydHMpCisgICAgOiBFeHRlbmRhYmxlRXZlbnQoZXZlbnROYW1lcygp
Lm1lc3NhZ2VFdmVudCwgZmFsc2UsIGZhbHNlKQorICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YSkp
CisgICAgLCBtX29yaWdpbihvcmlnaW4pCisgICAgLCBtX2xhc3RFdmVudElkKGxhc3RFdmVudElk
KQorICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQorICAgICwgbV9wb3J0cyhXVEZNb3Zl
KHBvcnRzKSkKK3sKK30KKworRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6fkV4dGVuZGFibGVNZXNz
YWdlRXZlbnQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDU4N2NiODVl
YWZjZWMwNWFkMTRkYmZkZGI0MmRiZjdmMTZlNGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaApAQCAtMCww
ICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCisKKyNpbmNsdWRlICJFeHRlbmRhYmxlRXZlbnQuaCIKKyNpbmNsdWRlICJFeHRl
bmRhYmxlRXZlbnRJbml0LmgiCisjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9WYXJpYW50Lmg+CisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgRXhlY1N0YXRlOwor
Y2xhc3MgSlNWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZXNzYWdl
UG9ydDsKK2NsYXNzIFNlcnZpY2VXb3JrZXI7CitjbGFzcyBTZXJ2aWNlV29ya2VyQ2xpZW50Owor
Cit1c2luZyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlID0gVmFyaWFudDxSZWZQdHI8U2Vy
dmljZVdvcmtlckNsaWVudD4sIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiwgUmVmUHRyPE1lc3NhZ2VQ
b3J0Pj47CisKK2NsYXNzIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQgZmluYWwgOiBwdWJsaWMgRXh0
ZW5kYWJsZUV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdHJ1Y3QgSW5pdCA6IEV4dGVuZGFibGVFdmVu
dEluaXQgeworICAgICAgICBKU0M6OkpTVmFsdWUgZGF0YTsKKyAgICAgICAgU3RyaW5nIG9yaWdp
bjsKKyAgICAgICAgU3RyaW5nIGxhc3RFdmVudElkOworICAgICAgICBzdGQ6Om9wdGlvbmFsPEV4
dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+IHNvdXJjZTsKKyAgICAgICAgVmVjdG9yPFJlZlB0
cjxNZXNzYWdlUG9ydD4+IHBvcnRzOworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGFi
bGVNZXNzYWdlRXZlbnQ+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1c3RlZCBpc1RydXN0
ZWQgPSBJc1RydXN0ZWQ6Ok5vKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChzdGF0ZSwgdHlwZSwgaW5pdGlhbGl6ZXIsIGlzVHJ1c3Rl
ZCkpOworICAgIH0KKworICAgIHN0YXRpYyBSZWY8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudD4gY3Jl
YXRlKFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmLCBjb25zdCBTdHJpbmcmIG9yaWdpbiA9IHsgfSwgY29uc3QgU3RyaW5nJiBsYXN0
RXZlbnRJZCA9IHsgfSwgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNl
PiYmIHNvdXJjZSA9IHN0ZDo6bnVsbG9wdCk7CisKKyAgICB+RXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dCgpOworCisgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBkYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9kYXRhLmdldCgpOyB9CisgICAgY29uc3QgU3RyaW5nJiBvcmlnaW4oKSBjb25zdCB7IHJldHVy
biBtX29yaWdpbjsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQoKSBjb25zdCB7IHJl
dHVybiBtX2xhc3RFdmVudElkOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50U291cmNlPiYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0K
KyAgICBjb25zdCBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mIHBvcnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3J0czsgfQorCisgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50SW50ZXJmYWNlVHlwZTsg
fQorCitwcml2YXRlOgorICAgIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBJbml0JiwgSXNUcnVzdGVkKTsKKyAgICBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50KFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YSwg
Y29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIHN0ZDo6b3B0
aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiwgVmVjdG9yPFJlZlB0cjxNZXNz
YWdlUG9ydD4+JiYpOworCisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9kYXRh
OworICAgIFN0cmluZyBtX29yaWdpbjsKKyAgICBTdHJpbmcgbV9sYXN0RXZlbnRJZDsKKyAgICBz
dGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+IG1fc291cmNlOworICAg
IFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBtX3BvcnRzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZl
bnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU5ODQwYjBmZTg0NWI5ZDQ2MDg0MzFlYjVhYWNhMmU1ZmM4MTU2
MzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudEluaXQgZXZlbnRJbml0RGljdCksCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3Jp
cHRTdGF0ZSwKKyAgICBDb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUiwKKyAgICBFbmFibGVkQXRS
dW50aW1lPVNlcnZpY2VXb3JrZXIsCisgICAgRXhwb3NlZD1TZXJ2aWNlV29ya2VyLAorXSBpbnRl
cmZhY2UgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCA6IEV4dGVuZGFibGVFdmVudCB7CisgICAgW0Nh
Y2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgYW55IGRhdGE7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBvcmlnaW47CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBsYXN0RXZlbnRJZDsKKyAgICBbU2FtZU9iamVjdF0gcmVhZG9u
bHkgYXR0cmlidXRlIChTZXJ2aWNlV29ya2VyQ2xpZW50IG9yIFNlcnZpY2VXb3JrZXIgb3IgTWVz
c2FnZVBvcnQpPyBzb3VyY2U7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PE1l
c3NhZ2VQb3J0PiBwb3J0czsKK307CisKK2RpY3Rpb25hcnkgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKKyAgICBhbnkgZGF0YSA9IG51bGw7CisgICAg
VVNWU3RyaW5nIG9yaWdpbiA9ICIiOworICAgIERPTVN0cmluZyBsYXN0RXZlbnRJZCA9ICIiOwor
ICAgIChTZXJ2aWNlV29ya2VyQ2xpZW50IG9yIFNlcnZpY2VXb3JrZXIgb3IgTWVzc2FnZVBvcnQp
PyBzb3VyY2UgPSBudWxsOworICAgIHNlcXVlbmNlPE1lc3NhZ2VQb3J0PiBwb3J0cyA9IFtdOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNw
cAppbmRleCA2NmQ3M2JlODc0MDk0M2ExN2U0NWY2Y2E4MmNhZDViZmI1ZjUzZTY4Li5iMmZiMmYy
ZjY4MDQ1MTljNGEyMGZhNzYyZGY4NjBjNWZhODI4YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCkBAIC0yOCwxMCArMjgsNDkgQEAK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIk1lc3NhZ2VQb3J0Lmgi
CisjaW5jbHVkZSAiU1dDbGllbnRDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1
ZUlubGluZXMuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1FeGNlcHRpb25Pcjx2b2lkPiBT
ZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSwg
VmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKQorU2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1aW50NjRfdCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZj
b250ZXh0KQorICAgICwgbV9pZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorewor
fQorCitFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZShKU0M6OkV4
ZWNTdGF0ZSYgc3RhdGUsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlVmFsdWUsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJiB0cmFuc2ZlcikKIHsKKyAgICBpZiAodGhpcy0+c3RhdGUo
KSA9PSBTdGF0ZTo6UmVkdW5kYW50KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiU2VydmljZSBXb3JrZXIgc3RhdGUgaXMgcmVkdW5k
YW50IikgfTsKKworICAgIC8vIEZJWE1FOiBJbnZva2UgUnVuIFNlcnZpY2UgV29ya2VyIGFsZ29y
aXRobSB3aXRoIHNlcnZpY2VXb3JrZXIgYXMgdGhlIGFyZ3VtZW50LgorCisgICAgVmVjdG9yPFJl
ZlB0cjxNZXNzYWdlUG9ydD4+IHBvcnRzOworICAgIGF1dG8gbWVzc2FnZSA9IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKHN0YXRlLCBtZXNzYWdlVmFsdWUsIFdURk1vdmUodHJhbnNmZXIp
LCBwb3J0cywgU2VyaWFsaXphdGlvbkNvbnRleHQ6OldvcmtlclBvc3RNZXNzYWdlKTsKKyAgICBp
ZiAobWVzc2FnZS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2UucmVsZWFz
ZUV4Y2VwdGlvbigpOworCisgICAgLy8gRGlzZW50YW5nbGUgdGhlIHBvcnQgaW4gcHJlcGFyYXRp
b24gZm9yIHNlbmRpbmcgaXQgdG8gdGhlIHJlbW90ZSBjb250ZXh0LgorICAgIGF1dG8gY2hhbm5l
bHNPckV4Y2VwdGlvbiA9IE1lc3NhZ2VQb3J0OjpkaXNlbnRhbmdsZVBvcnRzKFdURk1vdmUocG9y
dHMpKTsKKyAgICBpZiAoY2hhbm5lbHNPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgcmV0dXJuIGNoYW5uZWxzT3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAg
Ly8gRklYTUU6IFN1cHBvcnQgc2VuZGluZyB0aGUgY2hhbm5lbHMuCisgICAgYXV0byBjaGFubmVs
cyA9IGNoYW5uZWxzT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgaWYgKGNo
YW5uZWxzICYmICFjaGFubmVscy0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiUGFzc2luZyBNZXNzYWdlUG9ydCBv
YmplY3RzIHRvIHBvc3RNZXNzYWdlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIikgfTsKKworICAgIGlm
ICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gc2NyaXB0IGV4ZWN1dGlvbiBjb250
ZXh0IikgfTsKKworICAgIGF1dG8mIHN3Q29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRl
cjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+c2Vzc2lvbklEKCkpOworICAgIHN3Q29ubmVjdGlvbi5wb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKG1faWRlbnRpZmllciwgbWVzc2FnZS5yZWxl
YXNlUmV0dXJuVmFsdWUoKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5vcmlnaW4oKSk7CisK
ICAgICByZXR1cm4geyB9OwogfQogCkBAIC00Miw3ICs4MSw3IEBAIGNvbnN0IFN0cmluZyYgU2Vy
dmljZVdvcmtlcjo6c2NyaXB0VVJMKCkgY29uc3QKIAogU2VydmljZVdvcmtlcjo6U3RhdGUgU2Vy
dmljZVdvcmtlcjo6c3RhdGUoKSBjb25zdAogewotICAgIHJldHVybiBTdGF0ZTo6UmVkdW5kYW50
OworICAgIHJldHVybiBTdGF0ZTo6QWN0aXZhdGVkOwogfQogCiBFdmVudFRhcmdldEludGVyZmFj
ZSBTZXJ2aWNlV29ya2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CkBAIC01Miw3ICs5
MSw3IEBAIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFNlcnZpY2VXb3JrZXI6OmV2ZW50VGFyZ2V0SW50
ZXJmYWNlKCkgY29uc3QKIAogU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogU2VydmljZVdvcmtlcjo6
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oCmluZGV4IDQwZTEyZGUxYjIzNTk1ZWM4OWQ0
OGMxOGNlY2FkY2U0MDZiYjNlODguLmIzOThkNGQ5NzE4M2IxNjQ3MmE1ZGQzYjQ5MjFiOWU0MTkx
NDAxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXIuaApAQCAtMjcsOCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAor
I2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRU
YXJnZXQuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwpAQCAtMzksOSArNDEs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZTsKIAotY2xhc3MgU2Vydmlj
ZVdvcmtlciBmaW5hbCA6IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2NsYXNz
IFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyPiwg
cHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVh
dGUoRnJhbWUmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoZnJh
bWUpKTsgfQorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpOworICAgIH0KKwogICAgIHZpcnR1YWwgflNlcnZp
Y2VXb3JrZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKQEAgLTU3LDEz
ICs2MywyMCBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShK
U0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8
SlNDOjpKU09iamVjdD4+JiYpOwogCisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOworCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNlcnZp
Y2VXb3JrZXIoRnJhbWUmKTsKKyAgICBTZXJ2aWNlV29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3Q7CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KKworICAgIHVpbnQ2NF90IG1f
aWRlbnRpZmllcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cAppbmRleCBlODMwYThkYTczZjkwZDdlZTIzMjBmZmIwMmFkZTgxY2QxMzFmOTc5Li41NmQ1NmM3
Zjg0MjU1ZjhiMjliMjA4YWY4OTUzNDc1MjYyN2NlNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJv
dmlkZXIuaCIKQEAgLTc0LDcgKzc1LDE0IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
ZGVyZWZFdmVudFRhcmdldCgpCiAKIFNlcnZpY2VXb3JrZXIqIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmNvbnRyb2xsZXIoKSBjb25zdAogewotICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8q
IGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0IHx8
ICFjb250ZXh0LT5zZWxlY3RlZFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKCkpIHsKKyAgICAgICAg
bV9jb250cm9sbGVyID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIGlmICghbV9jb250cm9sbGVyIHx8IG1fY29udHJvbGxlci0+aWRlbnRpZmllcigpICE9IGNv
bnRleHQtPnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSkKKyAgICAgICAgbV9jb250
cm9sbGVyID0gU2VydmljZVdvcmtlcjo6Y3JlYXRlKCpjb250ZXh0LCBjb250ZXh0LT5zZWxlY3Rl
ZFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKCkpOworICAgIHJldHVybiBtX2NvbnRyb2xsZXIuZ2V0
KCk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVnaXN0cmF0aW9uKGNv
bnN0IFN0cmluZyYgcmVsYXRpdmVTY3JpcHRVUkwsIGNvbnN0IFJlZ2lzdHJhdGlvbk9wdGlvbnMm
IG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmlu
ZGV4IDE1ZjU2ZDFmZWUyNDQ1NDU3NWFhYTM4Y2ZjYzE4MDAxZmM0NTIyNjIuLmFlNmRhMWJlNzM0
ZTY5NjNiN2I1ZmU4MGI5YTQ0YTY5MGFhYmQzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtOTQsNiAr
OTQsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFNXQ2xpZW50Q29ubmVjdGlvbj4gbV9zd0Nv
bm5lY3Rpb247CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNlcnZpY2VXb3JrZXJKb2I+
PiBtX2pvYk1hcDsKKyAgICBtdXRhYmxlIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBtX2NvbnRyb2xs
ZXI7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgVGhyZWFkSWRlbnRpZmllciBtX2NyZWF0aW9uVGhy
ZWFkIHsgY3VycmVudFRocmVhZCgpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGE2ZDBi
ZmQyNmNhY2VlZDY0NTM4NThlNDc0OTQzYWJjMGMzZDViY2IuLjZlMTdkZGNkYjhiMWNiZDA2ZjQ2
Yzk1N2NjNDgyNGVmYWE5OGUwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01OCw2ICs1
OCwxMSBAQCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmV2
ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAgICByZXR1cm4gU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOwogfQogCitTZXJ2aWNlV29ya2VyVGhyZWFk
JiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpCit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggZGM0MGM2ZjM0OTgyYWUzNjI3N2IyYTQ0
YzQ1YzQ1MzI5NTc4YWY4Ni4uNzJjMGVmMjdjMmI0MTBmOWE1NjQyMzVmMDllMTEyYzdmNzczNjAw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAKICAgICBF
dmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsOwog
CisgICAgU2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCk7CisKIHByaXZhdGU6CiAgICAgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBTZXJ2aWNlV29ya2VyVGhy
ZWFkJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJl
ZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIFBBTDo6U2Vz
c2lvbklEKTsKIApAQCAtNjcsNCArNjksOSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6U2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7IHJldHVybiBpczxXZWJDb3JlOjpXb3Jr
ZXJHbG9iYWxTY29wZT4oY29udGV4dCkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6V29ya2VyR2xvYmFs
U2NvcGU+KGNvbnRleHQpLmlzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCk7IH0KKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQp
IHsgcmV0dXJuIGNvbnRleHQuaXNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKTsgfQorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCAzODE4ZTk5MTFhZDMyN2E4NDgxYjZk
ZmEyOTg0MzhkODEyYmMzNjdhLi45YjUxMzU3MjdlMjVhZWE1YzRjZmFmNzM2YTYyNmM1ZGQ3ZWZj
ZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycy5oIgorI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRj
aC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtMTAwLDYgKzEw
MSwxNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RGZXRjaFRhc2soUmVmPFNlcnZp
Y2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudAogICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRl
ZmF1bHRNb2RlKCkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBt
ZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYgY2hhbm5l
bHMsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2sgdGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9
IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdpbiA9IHNvdXJjZU9yaWdpbi5pc29sYXRlZENv
cHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAg
ICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU+KGNvbnRleHQpOworICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6
OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5uZWxz
KSk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50KEV4dGVu
ZGFibGVNZXNzYWdlRXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgV1RGTW92ZShtZXNzYWdl
KSwgc291cmNlT3JpZ2luKSk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJl
YWQoKS53b3JrZXJPYmplY3RQcm94eSgpLmNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaGFzUGVuZGluZ0FjdGl2aXR5KCkpOworICAgIH0pOwor
ICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhXVEZNb3ZlKHRhc2spKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5oCmluZGV4IDk1NGRhZjYwODJjY2VmNmJkOTM1ODEyYTcwN2NkZWUwYmYwM2M5
YmIuLjczNzI4MTFhOTkxZDQ1Y2ZhZDVjNWEwZTBhYWNjMGFjMWY3NmE4ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmgKQEAgLTM1LDkgKzM1LDEzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKK2NsYXNzIE1lc3Nh
Z2VQb3J0Q2hhbm5lbDsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFdvcmtl
ck9iamVjdFByb3h5Owogc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIAordXNpbmcg
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXkgPSBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbD4sIDE+OworCiBjbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFkIDogcHVibGljIFdv
cmtlclRocmVhZCwgcHVibGljIFRocmVhZFNhZmVJZGVudGlmaWVkPFNlcnZpY2VXb3JrZXJUaHJl
YWQ+IHsKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0aWMgUmVm
PFNlcnZpY2VXb3JrZXJUaHJlYWQ+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykKQEAgLTQ5LDYgKzUz
LDcgQEAgcHVibGljOgogICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgp
IGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYs
IFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4m
JiwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogCiBwcm90ZWN0ZWQ6CiAgICAgUmVmPFdv
cmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdp
biwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVu
dENvbm5lY3Rpb24uaAppbmRleCA5YzhhMTcwZjEyZDFmN2Q3ZjdmMWU1YmRlMmFlYjM3MTM4M2Mw
NWMxLi40MjIyYjU5YzZhMzExNTc0ZjgwZTVmNzFiMTQ2ZTU1MjYyZTJkOTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBTZXJpYWxpemVk
U2NyaXB0VmFsdWU7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsK
IHN0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CkBAIC00OCw2ICs0OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2ImKTsKICAgICB2b2lkIGZp
bmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgZmFpbGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFJl
c291cmNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pID0gMDsKIAog
ICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IGJvb2wgaGFzU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlP
cmlnaW4mKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IGY1OGMxNzU5YmE2MGFhMWIxZGRlYTU3Mzg5ZTQ2OTNiYzM3MDY0ZDQuLmM0YjZjZWEz
NmY1NTFjZjAzM2M0NTcxNzJmZTNhMTA3NzIyZmFmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDAsNiArMTAwLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qg
c2VydmljCiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlcjo6U3RhcnRGZXRjaChpZGVudGlmaWVyKCksIGZldGNoSWRlbnRpZmllciwg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpKTsKIH0KIAordm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAgc2VuZFRv
Q29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6UG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShpZGVudGlmaWVyKCksIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4pKTsKK30KKwogdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNo
SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgbV9j
b250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNo
OjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSB9LCBmZXRjaElkZW50aWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDdjYzc2YmRjOWFkYmNkOTM1MDEx
MWI0ZmUwYmIzZTAyYjc2NjJhYzAuLjNhNTcyMGJlZTcxOGM5MWE5ZTYxMmJiNzBmZTY5YmI4ZGJk
YjViMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTY1LDYgKzY1
LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50
aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmKTsKIAorICAgIHZv
aWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CisKICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cgY29u
dGV4dCBXZWJQcm9jZXNzCiAgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBmM2RiM2I5
MGRhZTkzYTkyNmRmNWJiZGVhMWEzNzc5NTM0NjY0OTEyLi4zYjIwNDVjNjQ0NGFkY2QxOGRiNGNm
ZWNjNTFlZmMzOTRiMjEyZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHN0cnVj
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogCiAgICAgU3RhcnRG
ZXRjaCh1aW50NjRfdCBpZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
bWVzc2FnZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDBkZWYzNTRj
M2NjZWFkNzdiOWUxZWU0NDg1YWNiNjk0MmM0Y2RiNTQuLmRiMTdkZDM1OGE5ODJkNDkzOWM5ZjY4
OGZmZGE1ZTNiYjU2ODg0MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcApAQCAt
MjgsMTIgKzI4LDE1IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
ICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogCiB1c2luZyBuYW1lc3BhY2UgUEFMOwpAQCAtNjgsNiArNzEsMTYgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIKICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkLT5wb3N0RmV0Y2hUYXNr
KFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSk7CiB9
CiAKK3ZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBhdXRvKiB3b3Jr
ZXJUaHJlYWQgPSBtX3dvcmtlclRocmVhZE1hcC5nZXQoc2VydmljZVdvcmtlcklkZW50aWZpZXIp
OworICAgIGlmICghd29ya2VyVGhyZWFkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIHBhc3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4KKyAgICB3b3JrZXJU
aHJlYWQtPnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgbnVsbHB0ciwgc291cmNlT3JpZ2lu
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaAppbmRleCA4ZDIwMGMwZjM0MDVk
NDBkZDczM2M1ZDM5YjdiODU3NGI4NGZiZjJmLi42OTRmZjc1ZjFhODg1Mzk0NDFkZjE2YmZhODIz
NzU2MzE2MjFhOTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaApAQCAtNTIsNiArNTIs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmKTsKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnMmJik7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkPj4gbV93b3JrZXJUaHJlYWRNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggZWRjZGQ4
YjM2NDYxNGQ0NzBlNTYwYTJiZTIyZDU5YTI1M2IyMGNiMi4uODY2NjNmODFlN2NhMGI4NmU2NjNj
Zjk0YmYwNTVlNWNiMDRkNWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
ci5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gU2VydmljZVdvcmtl
ckNvbnRleHRNYW5hZ2VyIHsKICAgICBTdGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEgY29udGV4dERhdGEpCiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3Nh
Z2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
aW5kZXggYmIxZTFjYzlhOTVlYjg2OTY0MTE5OTgyMTA1MDU0NjY4ZWNiNDllYi4uMzA4NmVhNGZj
MGViZjFiOGQ0NmM0NTlhNGYxM2ZlOTI2MzVhOTVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBA
IC0yOCwxMiArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5l
Y3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg+CiAKQEAgLTY2LDYgKzY4LDExIEBA
IHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVy
KGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHJlc3VsdCkpOwogfQogCit2
b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBzY3JpcHRWYWx1ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRh
dGFSZWZlcmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0YSgpIH0sIHNvdXJjZU9yaWdpbikpOworfQor
CiBib29sIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6aGFzU2VydmljZVdvcmtlclJlZ2lzdGVyZWRG
b3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikgY29uc3QKIHsKICAgICByZXR1
cm4gbV9zd09yaWdpblRhYmxlLT5jb250YWlucyhvcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRl
eCA5MWI5ZjhjNjI0Y2VhMWFmZTY1MjY4ZTg0ODQ4YmM2MjRiZWZkNGQzLi4xY2QyOTI5OWUzZmQz
YzJmYzkyODhlMTg2MGFkNTQwMzEwY2U1NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTYsNiAr
NTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaEZldGNo
aW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0
JikgZmluYWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgZmluYWw7CiAKICAg
ICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0
YTc1MWFmN2Y1MjUzZmNiYTFmMjk5Y2JkMGM5Zjg0OTAwZGFkYmY4Li44NDI2MzczNTNlOGM0ZDJj
NDk4YmExZTJhYzM2OGViMmU4OTIwYWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTAt
MjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlh
bCBpbXBsZW1lbnRhdGlvbiBmb3Igc2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg1MzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3Qg
Y292ZXJhZ2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1T
ZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0
TWVzc2FnZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS13b3JrZXIu
anM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNl
cy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzOiBBZGRlZC4KKwogMjAxNy0xMC0y
MyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFRyeSB0byByZWR1Y2UgZmxha2luZXNzIG9mIGluc3BlY3Rv
ci9uZXR3b3JrL2hhciB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMt
U2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2QxMjIzNTQ3NWYxZWViNTkzMjNkZWJlMGRmMTVlNjgyNTBlYTY3YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VX
b3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUEFT
UzogU3RhdHVzIGNvZGUgaXMgMjAwCitQQVNTOiBTdGF0dXMgdGV4dCBpcyBXb3JrZXIgcmVjZWl2
ZWQgdGhlIG1lc3NhZ2UgZXZlbnQuIG1lc3NhZ2VFdmVudC5vcmlnaW4gd2FzIGh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMKK1BBU1M6IFNvdXJjZSBpcyBTZXJ2aWNlIHdvcmtlcgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDgxNzBjNmJkNjEwN2Y1ZTNhOGNkMTZiYzNiY2QxZjE5ZjAxNDA0OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Jhc2ljLVNl
cnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3Jr
ZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0Mzk1YjJhNmQzZDZmNWE2NzM0
OWZjYjcwNmQ4YWI0NzU2NmJhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0
TWVzc2FnZS13b3JrZXIuanMKQEAgLTAsMCArMSwxNCBAQAorbGV0IHJlc3BvbnNlVG9TZW5kID0g
eyBzdGF0dXM6IDQwNCwgc3RhdHVzVGV4dDogIk5vdCBGb3VuZCIgfTsKKworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAgcmVzcG9uc2VUb1NlbmQgPSBl
dmVudC5kYXRhOworICAgIHJlc3BvbnNlVG9TZW5kLnN0YXR1c1RleHQgKz0gIiBtZXNzYWdlRXZl
bnQub3JpZ2luIHdhcyAiICsgZXZlbnQub3JpZ2luOworfSk7CisKK3NlbGYuYWRkRXZlbnRMaXN0
ZW5lcigiZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5k
ZXhPZigidGVzdDEiKSAhPT0gLTEpIHsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJl
c3BvbnNlKG51bGwsIHJlc3BvbnNlVG9TZW5kKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgZXZlbnQucmVzcG9uZFdpdGgoUmVzcG9uc2UuZXJyb3IoKSk7Cit9KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1T
ZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTZhNDFjYTA4Njg4YjQ4M2FlODI0YjIzNjU1MzE3MDdjZDA4ZTdjYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzCkBAIC0wLDAgKzEsMzcg
QEAKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGZpbmlzaFNXVGVzdCgpOworfQorCithc3luYyBm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1l
c3NhZ2Utd29ya2VyLmpzIiwgeyB9KTsKKworICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKHsgc3RhdHVzOiAyMDAsIHN0YXR1c1RleHQ6ICJXb3Jr
ZXIgcmVjZWl2ZWQgdGhlIG1lc3NhZ2UgZXZlbnQuIiB9KTsKKworICAgICAgICBsZXQgcmVzcG9u
c2UgPSBhd2FpdCBmZXRjaCgidGVzdDEiKTsKKyAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9
PSAyMDApCisgICAgICAgICAgICBsb2coIlBBU1M6IFN0YXR1cyBjb2RlIGlzICIgKyByZXNwb25z
ZS5zdGF0dXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFN0YXR1cyBj
b2RlIGlzICIgKyByZXNwb25zZS5zdGF0dXMpOworCisgICAgICAgIGlmIChyZXNwb25zZS5zdGF0
dXNUZXh0LnN0YXJ0c1dpdGgoIldvcmtlciByZWNlaXZlZCB0aGUgbWVzc2FnZSIpKQorICAgICAg
ICAgICAgbG9nKCJQQVNTOiBTdGF0dXMgdGV4dCBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogU3RhdHVzIHRleHQgaXMgIiAr
IHJlc3BvbnNlLnN0YXR1c1RleHQpOworCisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBsZXQgc291cmNlID0gaW50ZXJuYWxzLmZldGNoUmVzcG9uc2VTb3VyY2Uo
cmVzcG9uc2UpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PT0gIlNlcnZpY2Ugd29ya2VyIikK
KyAgICAgICAgICAgICAgICBsb2coIlBBU1M6IFNvdXJjZSBpcyAiICsgc291cmNlKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2coIkZBSUw6IFNvdXJjZSBpcyAiICsgc291
cmNlKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIkdvdCBleGNl
cHRpb246ICIgKyBlKTsKKyAgICB9CisgICAgZmluaXNoU1dUZXN0KCk7Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324636</attachid>
            <date>2017-10-23 21:14:33 -0700</date>
            <delta_ts>2017-10-23 21:28:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171023211432.patch</filename>
            <type>text/plain</type>
            <size>60904</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTViYjQ4Y2Y0MzFjNDNj
YmYwMmUyZmZlMWNkY2NjODUzNWE3NzI2Mi4uY2JhMWFjNmY1Y2RhOTAyZDU1ZWNiN2Q0ZmNiZTJl
MmRkODU5MTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50Ojp+RXh0
ZW5kYWJsZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoaXNUeXBl
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTIzICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjIzODcwIGFuZCByMjIzODcxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NTRhOTk0MTBhNmM0NDA3MDRk
Yzc2NWQ5YTI4NjIxNDVhMzJjMzJkLi4wNjQ1MDU5MTc1Zjg5ZmQ1YzZhNjY5NjM5NDlhMmRlNjhk
NGIyZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9y
IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRo
dWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKworICAgICAg
ICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaDoKKwogMjAxNy0xMC0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWFjXSBXZWIgQXV0b21hdGlvbjoga2V5IG1vZGlmaWVycyBmb3Igc3lu
dGhlc2l6ZWQgTlNFdmVudHMgYXJlIGluY29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBm
ODFjMGY3M2EyZDhiOTM3NmJkYmRlZGIwNTNjNjFhNWRkNmViZDFhLi5mYmMyYmJmNTUzMjliMDAz
MWE4YTMzYTUxNTkwMGFkYzA2NDdhNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzk4LDYg
Kzc5OCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3Nl
cnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxl
RXZlbnRJbml0LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50
LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50LmlkbApAQCAtMjI0NCw2ICsyMjQ1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFi
bGVFdmVudC5jcHAKKyAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5j
cHAKICAgICB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGU1MzAyY2NjY2MwMTdl
NDJlZTllZDVhZWEzMGRlZWIzNTZmZTFkNjAuLjgxNDQ5ZmRkZmNiMmRlYjVkMmUzMDI3NDE3ZTA3
YTJkOWQyYTUxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE5LDYgKzkx
OSw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2Vy
VHlwZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVu
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudElu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDNjOGE2ZmEyY2JlNDg4ZTViZDM1ZTAyZTdiNmZhNTA0NjEwOTM4
YjcuLmRjMDJmYTQ2M2VhOGI5MGQ4MzQ0NjQzNWZlNjZiYWQ4NzZhNDI4OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0zNjcsNiArMzY3LDcgQEAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBi
aW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmNwcAogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3Rl
bUVudHJ5Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTA3NSw2ICsxMDc2LDcg
QEAgSlNFdmVudFNvdXJjZS5jcHAKIEpTRXZlbnRUYXJnZXQuY3BwCiBKU0V4dGVuZGFibGVFdmVu
dC5jcHAKIEpTRXh0ZW5kYWJsZUV2ZW50SW5pdC5jcHAKK0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbElu
aXQuY3BwCiBKU0ZlZGVyYXRlZENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMWI4
MzNlZTMwNmY3YjMwN2IzZTg0NzEzYTZhNmZiZTI0NGNhZjNlLi45MzBhMzYyNjZiZWUyZDRhYjgz
YWRjNmRhMzI1ZjJmYzkwNWNmYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTQ5LDYgKzI5NDksNyBAQAogCQk4MzA3ODRC
MjFDNTJFRTJDMDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDc4NEIxMUM1MkVFMTkwMDEwNEQxRCAvKiBYTUxE
b2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzMEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzBBMzZCQjFEQUM1RkE3
MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9OwogCQk4MzEyMEM3MDFDNTZGM0Y2
MDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0
YUVsZW1lbnQuY3BwICovOyB9OworCQk4MzEwMkIyNzFGOUVBREQ5MDBFNDA0QjkgLyogSlNFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzEwMkIyMzFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggKi87IH07CiAJCTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NEI4NkE3MUM1NkU4M0EwMEYzRjBFMyAvKiBIVE1MRGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJODMy
MTUwN0UxRjI3RUExQjAwOTVCMTM2IC8qIE5hdmlnYXRvckJlYWNvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyMTUwN0IxRjI3RUExNTAwOTVCMTM2
IC8qIE5hdmlnYXRvckJlYWNvbi5oICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUg
LyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlLmggKi87IH07CkBAIC0yOTkyLDYgKzI5OTMsOCBAQAogCQk4Mzc5NjRDRjFGOERC
NjlEMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAw
MjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2Nh
bGl6YWJsZS5zdHJpbmdzZGljdCAqLzsgfTsKIAkJODM3QjdEMjAxREMzRjU1MDAwRDA1MUZDIC8q
IFZhbGlkYXRpb25CdWJibGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJs
ZUlPUy5tbSAqLzsgfTsKKwkJODM3RkIzNDQxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
Y3BwICovOyB9OworCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM3RkIzNDAxRjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsg
fTsKIAkJODM4NkE5NkQxOUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4NkE5NkMxOUY2MUIyRTAw
RTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oICovOyB9OwogCQk4Mzg4NjczNTFEMTNCQTVGMDAzNjk3
RDAgLyogUmVuZGVyT2JqZWN0RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzODg2NzM0MUQxM0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RF
bnVtcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTgzOEVGNTM4MURDMTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTM2MURDMTQ5REEw
MDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA2OTgsNiArMTA3MDEsOSBAQAogCQk4MzA3ODRC
MTFDNTJFRTE5MDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODMwQTM2QkExREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01v
dXNlRXZlbnRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VF
dmVudEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjMxRjlFQURD
MjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjUxRjlFQURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzFDNDZDMzFGOUVFNUUwMDBFQkQ0NTAgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyMTUwN0ExRjI3RUExNTAwOTVCMTM2IC8qIE5hdmlnYXRv
ckJlYWNvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JCZWFjb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzIxNTA3QjFGMjdFQTE1MDA5NUIxMzYgLyogTmF2
aWdhdG9yQmVhY29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvckJlYWNvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3ODEsNiArMTA3ODcsOSBAQAogCQk4MzdBODAxMjFF
MUUxMjczMDAwMjZCOUYgLyogRW5nbGlzaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nc2RpY3Q7IG5hbWUgPSBFbmdsaXNo
OyBwYXRoID0gRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRh
dGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
N0RGQjM0MUVCRkVBNzAwMDYwMTM4NSAvKiBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuZGFi
bGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3RkIzNDIx
RjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzN0ZCMzQzMUY5RUEwNjgwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4NkE5
NkMxOUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdHlsZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4Mzg4NjczNDFEMTNCQTU5MDAzNjk3RDAgLyogUmVuZGVyT2Jq
ZWN0RW51bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyT2JqZWN0
RW51bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTUxLDYgKzE4MTYwLDgg
QEAKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuY3Bw
ICovLAogCQkJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MyAvKiBKU0V4dGVuZGFibGVFdmVudC5o
ICovLAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1NCAvKiBKU0V4dGVuZGFibGVFdmVudElu
aXQuY3BwICovLAorCQkJCTgzMTAyQjI1MUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuY3BwICovLAorCQkJCTgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTIg
LyogSlNGZXRjaEV2ZW50LmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTIgLyog
SlNGZXRjaEV2ZW50LmggKi8sCiAJCQkJNTFGODg2QkUxRjMyOTIwNzAwQzE5M0VGIC8qIEpTTmF2
aWdhdG9yU2VydmljZVdvcmtlci5jcHAgKi8sCkBAIC0xODI0Miw2ICsxODI1Myw5IEBACiAJCQkJ
NDFBRjM3OEUxRjhDMUU3QzAwMTExQzMxIC8qIEV4dGVuZGFibGVFdmVudC5pZGwgKi8sCiAJCQkJ
NDEzMUYzQjQxRjk1NUJDMzAwNTk5OTVBIC8qIEV4dGVuZGFibGVFdmVudEluaXQuaCAqLywKIAkJ
CQk0MTMxRjNCNTFGOTU1QkM1MDA1OTk5NUEgLyogRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgKi8s
CisJCQkJODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
Y3BwICovLAorCQkJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggKi8sCisJCQkJODM3RkIzNDMxRjlFQTA2ODAwRDBGQzMxIC8qIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuaWRsICovLAogCQkJCTQxQUYzNzk0MUY4REE0OTUwMDExMUMzMSAvKiBGZXRj
aEV2ZW50LmNwcCAqLywKIAkJCQk0MUFGMzc4ODFGOEMxRTc5MDAxMTFDMzEgLyogRmV0Y2hFdmVu
dC5oICovLAogCQkJCTQxQUYzNzhEMUY4QzFFN0IwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmlkbCAq
LywKQEAgLTE5NzAxLDYgKzE5NzE1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJREVDMjk3NUQxQjRERUIyQTAwNUY1OTQ1IC8qIEpTQ3VzdG9tRXZlbnRDdXN0
b20uY3BwICovLAorCQkJCTgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAvKiBKU0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTQxMzFGM0IxMUY5NTUyODEwMDU5OTk1QSAv
KiBKU0ZldGNoRXZlbnRDdXN0b20uY3BwICovLAogCQkJCUJDRTdCMTkyMEQ0RTg2OTYwMDc1QTUz
OSAvKiBKU0hpc3RvcnlDdXN0b20uY3BwICovLAogCQkJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0
RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCkBAIC0yNzMwMyw2ICsyNzMxOCw3IEBA
CiAJCQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRjY0NTYyMUY0NTM5OEYwMEI1NERFRCAvKiBFeGNlcHRpb25EYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0QxOTYzMTFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9u
T3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzN0ZCMzQ1MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMURDREY0NDFEQTFDNDU0
MDBFQTVCOTMgLyogRXh0ZW5kZWRDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkx
MjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2
N0QyQTcxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODA0NSw2ICsyODA2MSw3IEBACiAJCQkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRC
IC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNEVEMzMyMUEz
QThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTgzMTAyQjI3MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdl
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNDMwNEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBK
U0VYVFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0MTRGRDlB
REEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzdENTBGRjYxRUQ0RDk5QjAwREE0Qzg3IC8qIEpTRmVkZXJhdGVkQ3JlZGVudGlh
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTA1Myw2ICszMTA3MCw3IEBACiAJCQkJMjYyRUM0MUQx
RDExMEI5MDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTcyNEVEMzJDMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MUFGMzc5OTFGOERBREFBMDAxMTFDMzEgLyogRXh0ZW5kYWJsZUV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzN0ZCMzQ0MUY5RUEwNkQwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRENERjQzMURB
MUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZF
NjdEMkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5H
TENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGQ4ZDc4MDgwNjQyODE5Mzk3NTNkZmIx
NTNlMWQwOWVhNjViNWY0YTEuLjZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQzY2ExZDE2
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1FbnRyeUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnRDdXN0b20uY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjN2Q5MjQ4YmU2OGIyMWY1
YTIzMzI3MjAzNzM5Y2RlMWUzNTk2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBu
YW1lc3BhY2UgSlNDOworCitKU1ZhbHVlIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6ZGF0YShF
eGVjU3RhdGUmIHN0YXRlKSBjb25zdAoreworICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0g
bV9kYXRhLmdldCgpKSB7CisgICAgICAgIC8vIFdlIGNhbm5vdCB1c2UgYSBjYWNoZWQgb2JqZWN0
IGlmIHdlIGFyZSBpbiBhIGRpZmZlcmVudCB3b3JsZCB0aGFuIHRoZSBvbmUgaXQgd2FzIGNyZWF0
ZWQgaW4uCisgICAgICAgIGlmICghY2FjaGVkVmFsdWUuaXNPYmplY3QoKSB8fCAmd29ybGRGb3JE
T01PYmplY3QoY2FjaGVkVmFsdWUuZ2V0T2JqZWN0KCkpID09ICZjdXJyZW50V29ybGQoJnN0YXRl
KSkKKyAgICAgICAgICAgIHJldHVybiBjYWNoZWRWYWx1ZTsKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorCisgICAgYXV0byYgZXZlbnQgPSB3cmFwcGVkKCk7CisgICAgSlNW
YWx1ZSByZXN1bHQ7CisgICAgaWYgKGF1dG8qIHNlcmlhbGl6ZWRWYWx1ZSA9IGV2ZW50LmRhdGEo
KSkgeworICAgICAgICBhdXRvIHBvcnRzID0gZXZlbnQucG9ydHMoKTsKKyAgICAgICAgcmVzdWx0
ID0gc2VyaWFsaXplZFZhbHVlLT5kZXNlcmlhbGl6ZShzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHBv
cnRzLCBTZXJpYWxpemF0aW9uRXJyb3JNb2RlOjpOb25UaHJvd2luZyk7CisgICAgfSBlbHNlCisg
ICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOworCisgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdl
IGRvbid0IGhhdmUgdG8gZGVzZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgorICAgIG1fZGF0YS5z
ZXQoc3RhdGUudm0oKSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
aW5kZXggZjU4OTQzZGFjYTk2MTFiZmU0ZDZjYjE5ZTM5MzY4OTdjNTNjNzI4Yy4uYmNhMmVmN2E1
MWJmODAwNTExYWFmZTlkYTRjNDhmZWI1ODhiOTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRGF0YVRyYW5zZmVySXRlbUxpc3QpIFwKICAgICBt
YWNybyhEb2N1bWVudFRpbWVsaW5lKSBcCiAgICAgbWFjcm8oRXh0ZW5kYWJsZUV2ZW50KSBcCisg
ICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCkgXAogICAgIG1hY3JvKEZlZGVyYXRlZENy
ZWRlbnRpYWwpIFwKICAgICBtYWNybyhGZXRjaEV2ZW50KSBcCiAgICAgbWFjcm8oRmlsZVN5c3Rl
bSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyNDU4MzkxNTBiODBkZThlODM4MzQyNmZlOWZk
Y2RiMzBjMjAzZDMyLi5mMmJhN2FiMGY4YmZiNDRjZjMwNDU0MTM5YzY5Y2EzNjJjZTY1YTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtODYzLDcgKzg2Myw3IEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBvcmln
aW4oKSBjb25zdCBmaW5hbDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkb21haW4oKSBj
b25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXREb21haW4oY29uc3QgU3RyaW5nJiBuZXdE
b21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBlODQyYmQzOTBhNjRkMTcwNWVj
M2I5YzgxNjg1NDkwOTU1ZjFmYjc1Li43YzZiM2E1YTZhM2VlOGI5ZDhmZTkzY2U3YTkzNTYxYWQx
NzI1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtMTEsNiArMTEsNyBAQCBDbG9z
ZUV2ZW50CiBDb21wb3NpdGlvbkV2ZW50CiBDdXN0b21FdmVudAogRXh0ZW5kYWJsZUV2ZW50IGNv
bmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IGNvbmRpdGlv
bmFsPVNFUlZJQ0VfV09SS0VSCiBFcnJvckV2ZW50CiBGZXRjaEV2ZW50IGNvbmRpdGlvbmFsPVNF
UlZJQ0VfV09SS0VSCiBGb2N1c0V2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFu
bmVsLmgKaW5kZXggZGRkNzlhYTE3ZjY5MGRjZjE5M2FhOTNkMWNlMmQ1ZjFlMTVhMjA1NC4uYTA5
NjI4YzYwMjUwZjhmMjlkZTM0NzU3NzIzMGRjMzBjYmExZDNmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIC8vIFJldHVybnMgdGhlIGVudGFuZ2xlZCBwb3J0IGlmIHJ1biBieSB0aGUg
c2FtZSB0aHJlYWQgKHNlZSBNZXNzYWdlUG9ydDo6bG9jYWxseUVudGFuZ2xlZFBvcnQoKSBmb3Ig
bW9yZSBkZXRhaWxzKS4KICAgICAgICAgTWVzc2FnZVBvcnQqIGxvY2FsbHlFbnRhbmdsZWRQb3J0
KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgICAgICB+TWVzc2FnZVBvcnRD
aGFubmVsKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIH5NZXNzYWdlUG9ydENoYW5uZWwoKTsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5l
bD4gbV9jaGFubmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKaW5kZXggOTZkZGQ2MjA4YTY1OTEyMWI1YWQ4OGQxZTJlMTUyMzIzOWJhNTk3Yy4uMjY2ZjQ5
YWVlYzA2M2ZjNDRiMGY4Yzc4ZDdlOTMwMTIzMTRlZGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0xMTEsNiArMTExLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRp
ZmllciA9IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcmlnaW4oKSBjb25zdCA9IDA7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCmluZGV4IDUzNzNkMjVjMmY4OTkzZjkzOTg3ODMwZTllZmI0Y2Q2Y2Y1
NjU3NjcuLmIxYTAxZDU4NzkxOWY1MTI3MzU0NmFjZTk2MGQ4ZTRlMTRlOGNjMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTYzLDcgKzYzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0OworICAgIFN0cmlu
ZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
ICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHkoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRh
YmxlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVF
dmVudC5jcHAKaW5kZXggOTdjNjdjNDNlYTU5MzE5MDYzNWU0MWRjNGRhOTBlMzhkZGYyYWE2Yy4u
MWQyMWZjNjc0NjFiNmU2YjZmNGVhNTgzNmM0YWVjMDFlMjc5NGFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKQEAgLTM3LDYg
KzM3LDE1IEBAIEV4dGVuZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50CiB7CiB9CiAKK0V4dGVuZGFibGVFdmVu
dDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVz
LCBib29sIGNhbmNlbGFibGUpCisgICAgOiBFdmVudCh0eXBlLCBidWJibGVzLCBjYW5jZWxhYmxl
KQoreworfQorCitFeHRlbmRhYmxlRXZlbnQ6On5FeHRlbmRhYmxlRXZlbnQoKQoreworfQorCiBF
eGNlcHRpb25Pcjx2b2lkPiBFeHRlbmRhYmxlRXZlbnQ6OndhaXRVbnRpbChSZWY8RE9NUHJvbWlz
ZT4mJiBwcm9taXNlKQogewogICAgIGlmICghaXNUcnVzdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmgKaW5kZXggNzA3NDgwNTk3OWMx
ZWExMGJiNjQ0OTQ0NWRmNGMwODhlNGYzZWJhNC4uYmE3OWE2YmYwYmY4MTA5OWMyMjJkZjg5NmMy
YTkwNDBmYmM2NzEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVFdmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVz
dGVkKSk7CiAgICAgfQogCisgICAgfkV4dGVuZGFibGVFdmVudCgpOworCiAgICAgRXZlbnRJbnRl
cmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBFeHRlbmRhYmxl
RXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB3YWl0VW50aWwo
UmVmPERPTVByb21pc2U+JiYpOwpAQCAtNTAsNiArNTIsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3Rl
ZDoKICAgICBXRUJDT1JFX0VYUE9SVCBFeHRlbmRhYmxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJs
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxl
KTsKIAogICAgIFdlYWtQdHI8RXh0ZW5kYWJsZUV2ZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1
cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGYxNmIyZGFiZTI4YmYxYTBmYzdmZjRkMzMyOWMwNWZmYzNlM2Fk
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorI2luY2x1ZGUg
IkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudD4gRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBv
cnRzLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYg
b3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFi
bGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYgc291cmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoV1RGTW92ZShkYXRhKSwgb3JpZ2luLCBsYXN0RXZl
bnRJZCwgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHBvcnRzKSkpOworfQorCitFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQg
aXNUcnVzdGVkKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkK
KyAgICAsIG1fZGF0YShTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzdGF0ZSwgaW5pdC5k
YXRhKSkKKyAgICAsIG1fb3JpZ2luKGluaXQub3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChp
bml0Lmxhc3RFdmVudElkKQorICAgICwgbV9wb3J0cyhpbml0LnBvcnRzKQoreworfQorCitFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KFJlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbGFzdEV2ZW50SWQsIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJj
ZT4mJiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRzKQorICAgIDog
RXh0ZW5kYWJsZUV2ZW50KGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIGZhbHNlLCBmYWxzZSkK
KyAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorICAgICwgbV9vcmlnaW4ob3JpZ2luKQorICAg
ICwgbV9sYXN0RXZlbnRJZChsYXN0RXZlbnRJZCkKKyAgICAsIG1fc291cmNlKFdURk1vdmUoc291
cmNlKSkKKyAgICAsIG1fcG9ydHMoV1RGTW92ZShwb3J0cykpCit7Cit9CisKK0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnQ6On5FeHRlbmRhYmxlTWVzc2FnZUV2ZW50KCkKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzA1ODdjYjg1ZWFmY2VjMDVhZDE0ZGJmZGRiNDJkYmY3ZjE2ZTRj
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRXh0ZW5k
YWJsZUV2ZW50LmgiCisjaW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50SW5pdC5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgorI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3Bh
Y2UgSlNDIHsKK2NsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTWVzc2FnZVBvcnQ7CitjbGFzcyBTZXJ2aWNlV29ya2VyOwor
Y2xhc3MgU2VydmljZVdvcmtlckNsaWVudDsKKwordXNpbmcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQdHI8U2Vy
dmljZVdvcmtlcj4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+OworCitjbGFzcyBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV4dGVuZGFibGVFdmVudCB7CitwdWJsaWM6CisgICAg
c3RydWN0IEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKKyAgICAgICAgSlNDOjpKU1ZhbHVl
IGRhdGE7CisgICAgICAgIFN0cmluZyBvcmlnaW47CisgICAgICAgIFN0cmluZyBsYXN0RXZlbnRJ
ZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiBz
b3VyY2U7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBwb3J0czsKKyAgICB9
OworCisgICAgc3RhdGljIFJlZjxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50PiBjcmVhdGUoSlNDOjpF
eGVjU3RhdGUmIHN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGlu
aXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObykKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoc3RhdGUs
IHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVm
PEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ+IGNyZWF0ZShWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0
Pj4mJiwgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5nJiBvcmln
aW4gPSB7IH0sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQgPSB7IH0sIHN0ZDo6b3B0aW9uYWw8
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UgPSBzdGQ6Om51bGxvcHQpOwor
CisgICAgfkV4dGVuZGFibGVNZXNzYWdlRXZlbnQoKTsKKworICAgIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQorICAgIGNvbnN0IFN0
cmluZyYgb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KKyAgICBjb25zdCBTdHJp
bmcmIGxhc3RFdmVudElkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXZlbnRJZDsgfQorICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mIHNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNz
YWdlUG9ydD4+JiBwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydHM7IH0KKworICAgIEV2ZW50
SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudEludGVyZmFjZVR5cGU7IH0KKworcHJpdmF0ZToKKyAgICBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
SW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBT
dHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRT
b3VyY2U+JiYsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmKTsKKworICAgIFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fZGF0YTsKKyAgICBTdHJpbmcgbV9vcmlnaW47CisgICAg
U3RyaW5nIG1fbGFzdEV2ZW50SWQ7CisgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50U291cmNlPiBtX3NvdXJjZTsKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4g
bV9wb3J0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTg0MGIwZmU4
NDViOWQ0NjA4NDMxZWI1YWFjYTJlNWZjODE1NjM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5
cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAor
ICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0U3RhdGUsCisgICAgQ29uZGl0aW9uYWw9U0VS
VklDRV9XT1JLRVIsCisgICAgRW5hYmxlZEF0UnVudGltZT1TZXJ2aWNlV29ya2VyLAorICAgIEV4
cG9zZWQ9U2VydmljZVdvcmtlciwKK10gaW50ZXJmYWNlIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQg
OiBFeHRlbmRhYmxlRXZlbnQgeworICAgIFtDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0g
cmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZT
dHJpbmcgb3JpZ2luOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEV2ZW50
SWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSAoU2VydmljZVdvcmtlckNs
aWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQb3J0KT8gc291cmNlOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZXNzYWdlUG9ydD4gcG9ydHM7Cit9OworCitkaWN0
aW9uYXJ5IEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IDogRXh0ZW5kYWJsZUV2ZW50SW5pdCB7
CisgICAgYW55IGRhdGEgPSBudWxsOworICAgIFVTVlN0cmluZyBvcmlnaW4gPSAiIjsKKyAgICBE
T01TdHJpbmcgbGFzdEV2ZW50SWQgPSAiIjsKKyAgICAoU2VydmljZVdvcmtlckNsaWVudCBvciBT
ZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQb3J0KT8gc291cmNlID0gbnVsbDsKKyAgICBzZXF1ZW5j
ZTxNZXNzYWdlUG9ydD4gcG9ydHMgPSBbXTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggNjZkNzNiZTg3NDA5NDNhMTdlNDVm
NmNhODJjYWQ1YmZiNWY1M2U2OC4uYjJmYjJmMmY2ODA0NTE5YzRhMjBmYTc2MmRmODYwYzVmYTgy
OGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyLmNwcApAQCAtMjgsMTAgKzI4LDQ5IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKKyNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIK
KyNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2Jq
ZWN0Pj4mJikKK1NlcnZpY2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgOiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1faWRlbnRpZmllcihz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gU2Vydmlj
ZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUg
bWVzc2FnZVZhbHVlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYgdHJhbnNm
ZXIpCiB7CisgICAgaWYgKHRoaXMtPnN0YXRlKCkgPT0gU3RhdGU6OlJlZHVuZGFudCkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIlNl
cnZpY2UgV29ya2VyIHN0YXRlIGlzIHJlZHVuZGFudCIpIH07CisKKyAgICAvLyBGSVhNRTogSW52
b2tlIFJ1biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0gd2l0aCBzZXJ2aWNlV29ya2VyIGFzIHRo
ZSBhcmd1bWVudC4KKworICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBwb3J0czsKKyAg
ICBhdXRvIG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzdGF0ZSwgbWVz
c2FnZVZhbHVlLCBXVEZNb3ZlKHRyYW5zZmVyKSwgcG9ydHMsIFNlcmlhbGl6YXRpb25Db250ZXh0
OjpXb3JrZXJQb3N0TWVzc2FnZSk7CisgICAgaWYgKG1lc3NhZ2UuaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiBtZXNzYWdlLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIC8vIERpc2Vu
dGFuZ2xlIHRoZSBwb3J0IGluIHByZXBhcmF0aW9uIGZvciBzZW5kaW5nIGl0IHRvIHRoZSByZW1v
dGUgY29udGV4dC4KKyAgICBhdXRvIGNoYW5uZWxzT3JFeGNlcHRpb24gPSBNZXNzYWdlUG9ydDo6
ZGlzZW50YW5nbGVQb3J0cyhXVEZNb3ZlKHBvcnRzKSk7CisgICAgaWYgKGNoYW5uZWxzT3JFeGNl
cHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVsc09yRXhjZXB0aW9u
LnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHNlbmRpbmcgdGhl
IGNoYW5uZWxzLgorICAgIGF1dG8gY2hhbm5lbHMgPSBjaGFubmVsc09yRXhjZXB0aW9uLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworICAgIGlmIChjaGFubmVscyAmJiAhY2hhbm5lbHMtPmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxp
dGVyYWwoIlBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2FnZSBpcyBub3Qg
eWV0IHN1cHBvcnRlZCIpIH07CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVy
YWwoIk5vIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRvJiBzd0Nvbm5l
Y3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uRm9yU2Vzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgp
KTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+b3JpZ2luKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNDIs
NyArODEsNyBAQCBjb25zdCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0
CiAKIFNlcnZpY2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6OkFjdGl2YXRl
ZDsKIH0KIAogRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdApAQCAtNTIsNyArOTEsNyBAQCBFdmVudFRhcmdldEludGVyZmFjZSBT
ZXJ2aWNlV29ya2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dAogewotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIu
aAppbmRleCA0MGUxMmRlMWIyMzU5NWVjODlkNDhjMThjZWNhZGNlNDA2YmIzZTg4Li5iMzk4ZDRk
OTcxODNiMTY0NzJhNWRkM2I0OTIxYjllNDE5MTQwMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKQEAgLTI3LDggKzI3LDEwIEBACiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlci5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJv
bmcuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIEV4ZWNTdGF0ZTsKQEAgLTM5LDkgKzQxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRnJhbWU7CiAKLWNsYXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRU
YXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFsIDogcHVibGlj
IFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKEZyYW1lJiBmcmFtZSkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyKGZyYW1lKSk7IH0KKyAgICBzdGF0aWMgUmVmPFNlcnZp
Y2VXb3JrZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCB1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNlcnZpY2VXb3JrZXIoY29udGV4dCwgc2VydmljZVdvcmtlcklkZW50aWZpZXIpKTsK
KyAgICB9CisKICAgICB2aXJ0dWFsIH5TZXJ2aWNlV29ya2VyKCkgPSBkZWZhdWx0OwogCiAgICAg
ZW51bSBjbGFzcyBTdGF0ZSB7CkBAIC01NywxMyArNjMsMjAgQEAgcHVibGljOgogCiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUg
bWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKIAorICAgIHVp
bnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKKwog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29ya2VyKEZyYW1lJik7CisgICAgU2Vydmlj
ZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdl
dEludGVyZmFjZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OwogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBk
ZXJlZigpOyB9CisKKyAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggZTgzMGE4ZGE3M2Y5MGQ3ZWUyMzIw
ZmZiMDJhZGU4MWNkMTMxZjk3OS4uNTZkNTZjN2Y4NDI1NWY4YjI5YjIwOGFmODk1MzQ3NTI2Mjdj
ZTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlNj
b3BlR3VhcmQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckpvYi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCkBAIC03NCw3ICs3NSwxNCBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmRlcmVmRXZlbnRUYXJnZXQoKQogCiBTZXJ2aWNl
V29ya2VyKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb250cm9sbGVyKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOworICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29y
a2VySWRlbnRpZmllcigpKSB7CisgICAgICAgIG1fY29udHJvbGxlciA9IG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAoIW1fY29udHJvbGxlciB8fCBtX2Nv
bnRyb2xsZXItPmlkZW50aWZpZXIoKSAhPSBjb250ZXh0LT5zZWxlY3RlZFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyKCkpCisgICAgICAgIG1fY29udHJvbGxlciA9IFNlcnZpY2VXb3JrZXI6OmNyZWF0
ZSgqY29udGV4dCwgY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKTsK
KyAgICByZXR1cm4gbV9jb250cm9sbGVyLmdldCgpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJD
b250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJM
LCBjb25zdCBSZWdpc3RyYXRpb25PcHRpb25zJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCAxNWY1NmQxZmVlMjQ0NTQ1NzVhYWEzOGNm
Y2MxODAwMWZjNDUyMjYyLi5hZTZkYTFiZTczNGU2OTYzYjdiNWZlODBiOWE0NGE2OTBhYWJkMzE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0
cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0YWJsZSBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIFRo
cmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcAppbmRleCBhNmQwYmZkMjZjYWNlZWQ2NDUzODU4ZTQ3NDk0M2FiYzBj
M2Q1YmNiLi42ZTE3ZGRjZGI4YjFjYmQwNmY0NmM5NTdjYzQ4MjRlZmFhOThlMDM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcApAQCAtNTgsNiArNTgsMTEgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsKIH0KIAorU2VydmljZVdvcmtlclRocmVhZCYgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjp0
aHJlYWQoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTZXJ2aWNlV29ya2VyVGhyZWFkJj4o
V29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCmlu
ZGV4IGRjNDBjNmYzNDk4MmFlMzYyNzdiMmE0NGM0NWM0NTMyOTU3OGFmODYuLjcyYzBlZjI3YzJi
NDEwZjlhNTY0MjM1ZjA5ZTExMmM3Zjc3MzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTU3
LDYgKzU3LDggQEAgcHVibGljOgogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbDsKIAorICAgIFNlcnZpY2VXb3JrZXJUaHJlYWQmIHRo
cmVhZCgpOworCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgU2VydmljZVdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2lu
LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25JRCk7CiAKQEAgLTY3LDQgKzY5LDkgQEAg
cHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSkKKyAgICBzdGF0aWMg
Ym9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCkgeyByZXR1cm4gaXM8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpICYmIGRv
d25jYXN0PFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5pc1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0LmlzU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAK
aW5kZXggMzgxOGU5OTExYWQzMjdhODQ4MWI2ZGZhMjk4NDM4ZDgxMmJjMzY3YS4uOWI1MTM1NzI3
ZTI1YWVhNWM0Y2ZhZjczNmE2MjZjNWRkN2VmY2YzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKKyNpbmNsdWRl
ICJFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuaCIKQEAgLTEwMCw2ICsxMDEsMTcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhy
ZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGll
bnQKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAordm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3Nh
Z2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdp
bikKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2soW2NoYW5uZWxzID0g
V1RGTW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VPcmln
aW4gPSBzb3VyY2VPcmlnaW4uaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAg
ICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSwgV1RGTW92ZShjaGFubmVscykpOworICAgICAgICBzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuZGlzcGF0Y2hFdmVudChFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RG
TW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdpbikpOworICAgICAgICBz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkud29ya2VyT2JqZWN0UHJveHkoKS5jb25m
aXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3Qoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmhhc1Bl
bmRpbmdBY3Rpdml0eSgpKTsKKyAgICB9KTsKKyAgICBydW5Mb29wKCkucG9zdFRhc2soV1RGTW92
ZSh0YXNrKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCA5NTRkYWY2MDgy
Y2NlZjZiZDkzNTgxMmE3MDdjZGVlMGJmMDNjOWJiLi43MzcyODExYTk5MWQ0NWNmYWQ1YzVhMGUw
YWFjYzBhYzFmNzZhOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0zNSw5ICszNSwx
MyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnM7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWw7CitjbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGE7CiAKK3VzaW5nIE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5ID0gVmVj
dG9yPHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCAxPjsKKwogY2xhc3MgU2Vy
dmljZVdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQsIHB1YmxpYyBUaHJlYWRTYWZl
SWRlbnRpZmllZDxTZXJ2aWNlV29ya2VyVGhyZWFkPiB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkPiBjcmVhdGUo
QXJncyYmLi4uIGFyZ3MpCkBAIC00OSw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJPYmpl
Y3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVj
dFByb3h5OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNl
cnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRp
b25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2lu
KTsKIAogcHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ksIFJl
ZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbiwg
UEFMOjpTZXNzaW9uSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOWM4YTE3MGYx
MmQxZjdkN2Y3ZjFlNWJkZTJhZWIzNzEzODNjMDVjMS4uNDIyMmI1OWM2YTMxMTU3NGY4MGU1Zjcx
YjE0NmU1NTI2MmUyZDk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC0zNSw2ICszNSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFNlY3Vy
aXR5T3JpZ2luOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2hhcmVkQnVm
ZmVyOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVz
dWx0OwpAQCAtNDgsNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZUpvYihTZXJ2
aWNlV29ya2VySm9iJik7CiAgICAgdm9pZCBmaW5pc2hlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VX
b3JrZXJKb2ImLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0
KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdmlydHVhbCB2
b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZp
ZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3JrZXJSZWdpc3Rl
cmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBmNThjMTc1OWJhNjBhYTFiMWRkZWE1
NzM4OWU0NjkzYmMzNzA2NGQ0Li5jNGI2Y2VhMzZmNTUxY2YwMzNjNDU3MTcyZmUzYTEwNzcyMmZh
ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTAwLDYg
KzEwMCwxMSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpYwogICAgIHNlbmRUb0NvbnRleHRQcm9j
ZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlN0YXJ0RmV0Y2goaWRl
bnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1
ZXN0LCBvcHRpb25zKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luKQoreworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoaWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbWVzc2FnZSwgc291
cmNlT3JpZ2luKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZSh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogewogICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9u
c2UgfSwgZmV0Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aAppbmRleCA3Y2M3NmJkYzlhZGJjZDkzNTAxMTFiNGZlMGJiM2UwMmI3NjYyYWMwLi4zYTU3MjBi
ZWU3MThjOTFhOWU2MTJiYjcwZmU2OWJiOGRiZGI1YjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCkBAIC02NSw2ICs2NSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0
YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJik7CiAKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOworCiAg
ICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAgIHZvaWQgc3Rh
cnRTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KaW5kZXggZjNkYjNiOTBkYWU5M2E5MjZkZjViYmRlYTFhMzc3OTUzNDY2
NDkxMi4uM2IyMDQ1YzY0NDRhZGNkMThkYjRjZmVjYzUxZWZjMzk0YjIxMmQ1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOCw2
ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgRmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNo
UmVzdWx0IHJlc3VsdCkKIAogICAgIFN0YXJ0RmV0Y2godWludDY0X3QgaWRlbnRpZmllciwgdWlu
dDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisgICAgUG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFN0cmluZyBzb3VyY2VPcmlnaW4p
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyLmNwcAppbmRleCAwZGVmMzU0YzNjY2VhZDc3YjllMWVlNDQ4NWFjYjY5NDJjNGNk
YjU0Li5kYjE3ZGQzNThhOTgyZDQ5MzljOWY2ODhmZmRhNWUzYmI1Njg4NDBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlci5jcHAKQEAgLTI4LDEyICsyOCwxNSBAQAogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBB
TDsKQEAgLTY4LDYgKzcxLDE2IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpz
dGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyCiAgICAgc2Vydmlj
ZVdvcmtlclRocmVhZC0+cG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucykpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4pCit7CisgICAgYXV0byogd29ya2VyVGhyZWFkID0gbV93b3JrZXJUaHJlYWRNYXAu
Z2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlclRocmVhZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZhbGlkIE1lc3Nh
Z2VQb3J0Q2hhbm5lbHMuCisgICAgd29ya2VyVGhyZWFkLT5wb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0
b3IoKSksIG51bGxwdHIsIHNvdXJjZU9yaWdpbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLmgKaW5kZXggOGQyMDBjMGYzNDA1ZDQwZGQ3MzNjNWQzOWI3Yjg1NzRiODRmYmYyZi4u
Njk0ZmY3NWYxYTg4NTM5NDQxZGYxNmJmYTgyMzc1NjMxNjIxYTk1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
b2lkIHN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJik7CiAgICAgdm9pZCBz
dGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBm
ZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYpOworICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
OwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vz
czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6U2VydmljZVdvcmtlclRo
cmVhZD4+IG1fd29ya2VyVGhyZWFkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyLm1lc3NhZ2VzLmluCmluZGV4IGVkY2RkOGIzNjQ2MTRkNDcwZTU2MGEyYmUyMmQ1OWEyNTNi
MjBjYjIuLjg2NjYzZjgxZTdjYTBiODZlNjYzY2Y5NGJmMDU1ZTVjYjA0ZDVjMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcg
QEAKIG1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB7CiAgICAgU3RhcnRT
ZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQogICAgIFN0YXJ0
RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNo
SWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlv
bnMpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGJiMWUxY2M5YTk1ZWI4Njk2NDExOTk4
MjEwNTA1NDY2OGVjYjQ5ZWIuLjMwODZlYTRmYzBlYmYxYjhkNDZjNDU5YTRmMTNmZTkyNjM1YTk1
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjgsMTIgKzI4LDE0IEBACiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oIgogI2lu
Y2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJTV09yaWdpblRhYmxlLmgi
CiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckZldGNoUmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9i
RGF0YS5oPgogCkBAIC02Niw2ICs2OCwxMSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0YwogICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3Jp
cHRJblNlcnZlcihyZXN1bHQpKTsKIH0KIAordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc2NyaXB0VmFsdWUsIGNv
bnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRh
dGEoKSB9LCBzb3VyY2VPcmlnaW4pKTsKK30KKwogYm9vbCBXZWJTV0NsaWVudENvbm5lY3Rpb246
Omhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBvcmlnaW4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3dPcmlnaW5UYWJsZS0+Y29udGFpbnMo
b3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOTFiOWY4YzYyNGNlYTFhZmU2NTI2OGU4NDg0
OGJjNjI0YmVmZDRkMy4uMWNkMjkyOTllM2ZkM2MyZmM5Mjg4ZTE4NjBhZDU0MDMxMGNlNTQ4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
Y2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikg
ZmluYWw7CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5n
JiBzb3VyY2VPcmlnaW4pIGZpbmFsOwogCiAgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJv
Y2VzcygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGE3NTFhZjdmNTI1M2ZjYmExZjI5OWNiZDBjOWY4
NDkwMGRhZGJmOC4uODQyNjM3MzUzZThjNGQyYzQ5OGJhMWUyYWMzNjhlYjJlODkyMGFhZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VX
b3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZp
Y2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVz
c2FnZS5qczogQWRkZWQuCisKIDIwMTctMTAtMjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBUcnkgdG8g
cmVkdWNlIGZsYWtpbmVzcyBvZiBpbnNwZWN0b3IvbmV0d29yay9oYXIgdGVzdHMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNl
V29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMTIyMzU0NzVmMWVlYjU5MzIzZGViZTBkZjE1
ZTY4MjUwZWE2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1BBU1M6IFN0YXR1cyBjb2RlIGlzIDIwMAorUEFTUzog
U3RhdHVzIHRleHQgaXMgV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIGV2ZW50LiBtZXNzYWdl
RXZlbnQub3JpZ2luIHdhcyBodHRwczovLzEyNy4wLjAuMTo4NDQzCitQQVNTOiBTb3VyY2UgaXMg
U2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtl
ci1wb3N0TWVzc2FnZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MTcwYzZiZDYxMDdmNWUzYThj
ZDE2YmMzYmNkMWYxOWYwMTQwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9zdy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHNj
cmlwdCBzcmM9InJlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RN
ZXNzYWdlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NDM5NWIyYTZkM2Q2ZjVhNjczNDlmY2I3MDZkOGFiNDc1NjZiYWI1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzCkBAIC0wLDAgKzEs
MTQgQEAKK2xldCByZXNwb25zZVRvU2VuZCA9IHsgc3RhdHVzOiA0MDQsIHN0YXR1c1RleHQ6ICJO
b3QgRm91bmQiIH07CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkg
PT4geworICAgIHJlc3BvbnNlVG9TZW5kID0gZXZlbnQuZGF0YTsKKyAgICByZXNwb25zZVRvU2Vu
ZC5zdGF0dXNUZXh0ICs9ICIgbWVzc2FnZUV2ZW50Lm9yaWdpbiB3YXMgIiArIGV2ZW50Lm9yaWdp
bjsKK30pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7Cisg
ICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoInRlc3QxIikgIT09IC0xKSB7CisgICAg
ICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShudWxsLCByZXNwb25zZVRvU2VuZCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRoKFJlc3BvbnNl
LmVycm9yKCkpOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1T
ZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTQxY2EwODY4OGI0ODNh
ZTgyNGIyMzY1NTMxNzA3Y2QwOGU3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1w
b3N0TWVzc2FnZS5qcwpAQCAtMCwwICsxLDM3IEBACitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBm
aW5pc2hTV1Rlc3QoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsK
KyAgICAgICAgYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNl
cy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcyIsIHsgfSk7CisKKyAg
ICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7IHN0
YXR1czogMjAwLCBzdGF0dXNUZXh0OiAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIGV2ZW50
LiIgfSk7CisKKyAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInRlc3QxIik7Cisg
ICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gMjAwKQorICAgICAgICAgICAgbG9nKCJQQVNT
OiBTdGF0dXMgY29kZSBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbG9nKCJGQUlMOiBTdGF0dXMgY29kZSBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzKTsK
KworICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzVGV4dC5zdGFydHNXaXRoKCJXb3JrZXIgcmVj
ZWl2ZWQgdGhlIG1lc3NhZ2UiKSkKKyAgICAgICAgICAgIGxvZygiUEFTUzogU3RhdHVzIHRleHQg
aXMgIiArIHJlc3BvbnNlLnN0YXR1c1RleHQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBs
b2coIkZBSUw6IFN0YXR1cyB0ZXh0IGlzICIgKyByZXNwb25zZS5zdGF0dXNUZXh0KTsKKworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgbGV0IHNvdXJjZSA9IGlu
dGVybmFscy5mZXRjaFJlc3BvbnNlU291cmNlKHJlc3BvbnNlKTsKKyAgICAgICAgICAgIGlmIChz
b3VyY2UgPT09ICJTZXJ2aWNlIHdvcmtlciIpCisgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBT
b3VyY2UgaXMgIiArIHNvdXJjZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
bG9nKCJGQUlMOiBTb3VyY2UgaXMgIiArIHNvdXJjZSk7CisgICAgICAgIH0KKyAgICB9IGNhdGNo
KGUpIHsKKyAgICAgICAgbG9nKCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZp
bmlzaFNXVGVzdCgpOworfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324639</attachid>
            <date>2017-10-23 21:28:46 -0700</date>
            <delta_ts>2017-10-24 13:29:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171023212845.patch</filename>
            <type>text/plain</type>
            <size>60970</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTViYjQ4Y2Y0MzFjNDNj
YmYwMmUyZmZlMWNkY2NjODUzNWE3NzI2Mi4uY2JhMWFjNmY1Y2RhOTAyZDU1ZWNiN2Q0ZmNiZTJl
MmRkODU5MTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50Ojp+RXh0
ZW5kYWJsZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoaXNUeXBl
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTIzICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjIzODcwIGFuZCByMjIzODcxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NTRhOTk0MTBhNmM0NDA3MDRk
Yzc2NWQ5YTI4NjIxNDVhMzJjMzJkLi4wNjQ1MDU5MTc1Zjg5ZmQ1YzZhNjY5NjM5NDlhMmRlNjhk
NGIyZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9y
IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRo
dWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKworICAgICAg
ICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaDoKKwogMjAxNy0xMC0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTWFjXSBXZWIgQXV0b21hdGlvbjoga2V5IG1vZGlmaWVycyBmb3Igc3lu
dGhlc2l6ZWQgTlNFdmVudHMgYXJlIGluY29ycmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBm
ODFjMGY3M2EyZDhiOTM3NmJkYmRlZGIwNTNjNjFhNWRkNmViZDFhLi5mYmMyYmJmNTUzMjliMDAz
MWE4YTMzYTUxNTkwMGFkYzA2NDdhNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzk4LDYg
Kzc5OCw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3Nl
cnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxl
RXZlbnRJbml0LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50
LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50LmlkbApAQCAtMjI0NCw2ICsyMjQ1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFi
bGVFdmVudC5jcHAKKyAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5j
cHAKICAgICB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGU1MzAyY2NjY2MwMTdl
NDJlZTllZDVhZWEzMGRlZWIzNTZmZTFkNjAuLjgxNDQ5ZmRkZmNiMmRlYjVkMmUzMDI3NDE3ZTA3
YTJkOWQyYTUxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTE5LDYgKzkx
OSw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2Vy
VHlwZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVu
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudElu
aXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDNjOGE2ZmEyY2JlNDg4ZTViZDM1ZTAyZTdiNmZhNTA0NjEwOTM4
YjcuLmRjMDJmYTQ2M2VhOGI5MGQ4MzQ0NjQzNWZlNjZiYWQ4NzZhNDI4OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0zNjcsNiArMzY3LDcgQEAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBi
aW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVy
LmNwcAogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3Rl
bUVudHJ5Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTA3NSw2ICsxMDc2LDcg
QEAgSlNFdmVudFNvdXJjZS5jcHAKIEpTRXZlbnRUYXJnZXQuY3BwCiBKU0V4dGVuZGFibGVFdmVu
dC5jcHAKIEpTRXh0ZW5kYWJsZUV2ZW50SW5pdC5jcHAKK0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbElu
aXQuY3BwCiBKU0ZlZGVyYXRlZENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMWI4
MzNlZTMwNmY3YjMwN2IzZTg0NzEzYTZhNmZiZTI0NGNhZjNlLi45MzBhMzYyNjZiZWUyZDRhYjgz
YWRjNmRhMzI1ZjJmYzkwNWNmYWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTQ5LDYgKzI5NDksNyBAQAogCQk4MzA3ODRC
MjFDNTJFRTJDMDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDc4NEIxMUM1MkVFMTkwMDEwNEQxRCAvKiBYTUxE
b2N1bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTgzMEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzBBMzZCQjFEQUM1RkE3
MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9OwogCQk4MzEyMEM3MDFDNTZGM0Y2
MDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0
YUVsZW1lbnQuY3BwICovOyB9OworCQk4MzEwMkIyNzFGOUVBREQ5MDBFNDA0QjkgLyogSlNFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzEwMkIyMzFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggKi87IH07CiAJCTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NEI4NkE3MUM1NkU4M0EwMEYzRjBFMyAvKiBIVE1MRGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJODMy
MTUwN0UxRjI3RUExQjAwOTVCMTM2IC8qIE5hdmlnYXRvckJlYWNvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyMTUwN0IxRjI3RUExNTAwOTVCMTM2
IC8qIE5hdmlnYXRvckJlYWNvbi5oICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUg
LyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVs
ZW1lbnRCYXNlLmggKi87IH07CkBAIC0yOTkyLDYgKzI5OTMsOCBAQAogCQk4Mzc5NjRDRjFGOERC
NjlEMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAw
MjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2Nh
bGl6YWJsZS5zdHJpbmdzZGljdCAqLzsgfTsKIAkJODM3QjdEMjAxREMzRjU1MDAwRDA1MUZDIC8q
IFZhbGlkYXRpb25CdWJibGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJs
ZUlPUy5tbSAqLzsgfTsKKwkJODM3RkIzNDQxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
Y3BwICovOyB9OworCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM3RkIzNDAxRjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsg
fTsKIAkJODM4NkE5NkQxOUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4NkE5NkMxOUY2MUIyRTAw
RTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oICovOyB9OwogCQk4Mzg4NjczNTFEMTNCQTVGMDAzNjk3
RDAgLyogUmVuZGVyT2JqZWN0RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzODg2NzM0MUQxM0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RF
bnVtcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTgzOEVGNTM4MURDMTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTM2MURDMTQ5REEw
MDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA2OTgsNiArMTA3MDEsOSBAQAogCQk4MzA3ODRC
MTFDNTJFRTE5MDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODMwQTM2QkExREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01v
dXNlRXZlbnRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VF
dmVudEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjMxRjlFQURD
MjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjUxRjlFQURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzFDNDZDMzFGOUVFNUUwMDBFQkQ0NTAgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyMTUwN0ExRjI3RUExNTAwOTVCMTM2IC8qIE5hdmlnYXRv
ckJlYWNvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JCZWFjb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzIxNTA3QjFGMjdFQTE1MDA5NUIxMzYgLyogTmF2
aWdhdG9yQmVhY29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvckJlYWNvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3ODEsNiArMTA3ODcsOSBAQAogCQk4MzdBODAxMjFF
MUUxMjczMDAwMjZCOUYgLyogRW5nbGlzaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nc2RpY3Q7IG5hbWUgPSBFbmdsaXNo
OyBwYXRoID0gRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRh
dGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
N0RGQjM0MUVCRkVBNzAwMDYwMTM4NSAvKiBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuZGFi
bGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3RkIzNDIx
RjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzN0ZCMzQzMUY5RUEwNjgwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4NkE5
NkMxOUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdHlsZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4Mzg4NjczNDFEMTNCQTU5MDAzNjk3RDAgLyogUmVuZGVyT2Jq
ZWN0RW51bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyT2JqZWN0
RW51bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTUxLDYgKzE4MTYwLDgg
QEAKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuY3Bw
ICovLAogCQkJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MyAvKiBKU0V4dGVuZGFibGVFdmVudC5o
ICovLAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1NCAvKiBKU0V4dGVuZGFibGVFdmVudElu
aXQuY3BwICovLAorCQkJCTgzMTAyQjI1MUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuY3BwICovLAorCQkJCTgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTIg
LyogSlNGZXRjaEV2ZW50LmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTIgLyog
SlNGZXRjaEV2ZW50LmggKi8sCiAJCQkJNTFGODg2QkUxRjMyOTIwNzAwQzE5M0VGIC8qIEpTTmF2
aWdhdG9yU2VydmljZVdvcmtlci5jcHAgKi8sCkBAIC0xODI0Miw2ICsxODI1Myw5IEBACiAJCQkJ
NDFBRjM3OEUxRjhDMUU3QzAwMTExQzMxIC8qIEV4dGVuZGFibGVFdmVudC5pZGwgKi8sCiAJCQkJ
NDEzMUYzQjQxRjk1NUJDMzAwNTk5OTVBIC8qIEV4dGVuZGFibGVFdmVudEluaXQuaCAqLywKIAkJ
CQk0MTMxRjNCNTFGOTU1QkM1MDA1OTk5NUEgLyogRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgKi8s
CisJCQkJODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
Y3BwICovLAorCQkJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggKi8sCisJCQkJODM3RkIzNDMxRjlFQTA2ODAwRDBGQzMxIC8qIEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuaWRsICovLAogCQkJCTQxQUYzNzk0MUY4REE0OTUwMDExMUMzMSAvKiBGZXRj
aEV2ZW50LmNwcCAqLywKIAkJCQk0MUFGMzc4ODFGOEMxRTc5MDAxMTFDMzEgLyogRmV0Y2hFdmVu
dC5oICovLAogCQkJCTQxQUYzNzhEMUY4QzFFN0IwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmlkbCAq
LywKQEAgLTE5NzAxLDYgKzE5NzE1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJREVDMjk3NUQxQjRERUIyQTAwNUY1OTQ1IC8qIEpTQ3VzdG9tRXZlbnRDdXN0
b20uY3BwICovLAorCQkJCTgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAvKiBKU0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTQxMzFGM0IxMUY5NTUyODEwMDU5OTk1QSAv
KiBKU0ZldGNoRXZlbnRDdXN0b20uY3BwICovLAogCQkJCUJDRTdCMTkyMEQ0RTg2OTYwMDc1QTUz
OSAvKiBKU0hpc3RvcnlDdXN0b20uY3BwICovLAogCQkJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0
RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCkBAIC0yNzMwMyw2ICsyNzMxOCw3IEBA
CiAJCQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRjY0NTYyMUY0NTM5OEYwMEI1NERFRCAvKiBFeGNlcHRpb25EYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0QxOTYzMTFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9u
T3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzN0ZCMzQ1MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMURDREY0NDFEQTFDNDU0
MDBFQTVCOTMgLyogRXh0ZW5kZWRDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkx
MjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2
N0QyQTcxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODA0NSw2ICsyODA2MSw3IEBACiAJCQkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRC
IC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNEVEMzMyMUEz
QThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTgzMTAyQjI3MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdl
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNDMwNEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBK
U0VYVFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0MTRGRDlB
REEwMEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzdENTBGRjYxRUQ0RDk5QjAwREE0Qzg3IC8qIEpTRmVkZXJhdGVkQ3JlZGVudGlh
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTA1Myw2ICszMTA3MCw3IEBACiAJCQkJMjYyRUM0MUQx
RDExMEI5MDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTcyNEVEMzJDMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MUFGMzc5OTFGOERBREFBMDAxMTFDMzEgLyogRXh0ZW5kYWJsZUV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzN0ZCMzQ0MUY5RUEwNkQwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRENERjQzMURB
MUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZF
NjdEMkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5H
TENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGQ4ZDc4MDgwNjQyODE5Mzk3NTNkZmIx
NTNlMWQwOWVhNjViNWY0YTEuLjZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQzY2ExZDE2
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1FbnRyeUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnRDdXN0b20uY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNkZmYwNjhmYTBkMGIzMjA1
NzdmNGVhNzc5NmJmNzVkOTE1ZDczMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTAsMCAr
MSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKKyNpbmNsdWRlICJKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitKU1ZhbHVlIEpT
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAorewor
ICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKSB7CisgICAgICAgIC8v
IFdlIGNhbm5vdCB1c2UgYSBjYWNoZWQgb2JqZWN0IGlmIHdlIGFyZSBpbiBhIGRpZmZlcmVudCB3
b3JsZCB0aGFuIHRoZSBvbmUgaXQgd2FzIGNyZWF0ZWQgaW4uCisgICAgICAgIGlmICghY2FjaGVk
VmFsdWUuaXNPYmplY3QoKSB8fCAmd29ybGRGb3JET01PYmplY3QoY2FjaGVkVmFsdWUuZ2V0T2Jq
ZWN0KCkpID09ICZjdXJyZW50V29ybGQoJnN0YXRlKSkKKyAgICAgICAgICAgIHJldHVybiBjYWNo
ZWRWYWx1ZTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgYXV0
byYgZXZlbnQgPSB3cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1bHQ7CisgICAgaWYgKGF1dG8q
IHNlcmlhbGl6ZWRWYWx1ZSA9IGV2ZW50LmRhdGEoKSkgeworICAgICAgICBhdXRvIHBvcnRzID0g
ZXZlbnQucG9ydHMoKTsKKyAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVlLT5kZXNlcmlh
bGl6ZShzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIHBvcnRzLCBTZXJpYWxpemF0aW9uRXJyb3JNb2Rl
OjpOb25UaHJvd2luZyk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGpzTnVsbCgpOwor
CisgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IGhhdmUgdG8gZGVzZXJpYWxpemUg
dGhlIHZhbHVlIGFnYWluLgorICAgIG1fZGF0YS5zZXQoc3RhdGUudm0oKSwgdGhpcywgcmVzdWx0
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKaW5kZXggZjU4OTQzZGFjYTk2MTFiZmU0ZDZjYjE5ZTM5MzY4OTdjNTNjNzI4Yy4u
YmNhMmVmN2E1MWJmODAwNTExYWFmZTlkYTRjNDhmZWI1ODhiOTg2NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNDcsNiArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRGF0YVRyYW5zZmVySXRlbUxpc3Qp
IFwKICAgICBtYWNybyhEb2N1bWVudFRpbWVsaW5lKSBcCiAgICAgbWFjcm8oRXh0ZW5kYWJsZUV2
ZW50KSBcCisgICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCkgXAogICAgIG1hY3JvKEZl
ZGVyYXRlZENyZWRlbnRpYWwpIFwKICAgICBtYWNybyhGZXRjaEV2ZW50KSBcCiAgICAgbWFjcm8o
RmlsZVN5c3RlbSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyNDU4MzkxNTBiODBkZThlODM4
MzQyNmZlOWZkY2RiMzBjMjAzZDMyLi5mMmJhN2FiMGY4YmZiNDRjZjMwNDU0MTM5YzY5Y2EzNjJj
ZTY1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtODYzLDcgKzg2Myw3IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBk
b21haW4oKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXREb21haW4oY29uc3QgU3Ry
aW5nJiBuZXdEb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgppbmRleCBlODQyYmQzOTBh
NjRkMTcwNWVjM2I5YzgxNjg1NDkwOTU1ZjFmYjc1Li43YzZiM2E1YTZhM2VlOGI5ZDhmZTkzY2U3
YTkzNTYxYWQxNzI1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpAQCAtMTEsNiArMTEs
NyBAQCBDbG9zZUV2ZW50CiBDb21wb3NpdGlvbkV2ZW50CiBDdXN0b21FdmVudAogRXh0ZW5kYWJs
ZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBFcnJvckV2ZW50CiBGZXRjaEV2ZW50IGNvbmRp
dGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBGb2N1c0V2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2Fn
ZVBvcnRDaGFubmVsLmgKaW5kZXggZGRkNzlhYTE3ZjY5MGRjZjE5M2FhOTNkMWNlMmQ1ZjFlMTVh
MjA1NC4uYTA5NjI4YzYwMjUwZjhmMjlkZTM0NzU3NzIzMGRjMzBjYmExZDNmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFJldHVybnMgdGhlIGVudGFuZ2xlZCBwb3J0IGlmIHJ1
biBieSB0aGUgc2FtZSB0aHJlYWQgKHNlZSBNZXNzYWdlUG9ydDo6bG9jYWxseUVudGFuZ2xlZFBv
cnQoKSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgTWVzc2FnZVBvcnQqIGxvY2FsbHlFbnRh
bmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgICAgICB+TWVz
c2FnZVBvcnRDaGFubmVsKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIH5NZXNzYWdlUG9ydENo
YW5uZWwoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbD4gbV9jaGFubmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgKaW5kZXggOTZkZGQ2MjA4YTY1OTEyMWI1YWQ4OGQxZTJlMTUyMzIzOWJhNTk3
Yy4uMjY2ZjQ5YWVlYzA2M2ZjNDRiMGY4Yzc4ZDdlOTMwMTIzMTRlZGI3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0xMTEsNiArMTExLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciA9IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2VjdXJpdHlPcmlnaW4mIHRv
cE9yaWdpbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcmlnaW4oKSBjb25zdCA9
IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDUzNzNkMjVjMmY4OTkzZjkzOTg3ODMwZTll
ZmI0Y2Q2Y2Y1NjU3NjcuLmIxYTAxZDU4NzkxOWY1MTI3MzU0NmFjZTk2MGQ4ZTRlMTRlOGNjMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTYzLDcg
KzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBjb25zdCBVUkwmIHVybCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0Owor
ICAgIFN0cmluZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9u
UHJveHkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9FeHRlbmRhYmxlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVFdmVudC5jcHAKaW5kZXggOTdjNjdjNDNlYTU5MzE5MDYzNWU0MWRjNGRhOTBlMzhk
ZGYyYWE2Yy4uMWQyMWZjNjc0NjFiNmU2YjZmNGVhNTgzNmM0YWVjMDFlMjc5NGFlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAK
QEAgLTM3LDYgKzM3LDE1IEBAIEV4dGVuZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50CiB7CiB9CiAKK0V4dGVu
ZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBidWJibGVzLCBib29sIGNhbmNlbGFibGUpCisgICAgOiBFdmVudCh0eXBlLCBidWJibGVzLCBj
YW5jZWxhYmxlKQoreworfQorCitFeHRlbmRhYmxlRXZlbnQ6On5FeHRlbmRhYmxlRXZlbnQoKQor
eworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBFeHRlbmRhYmxlRXZlbnQ6OndhaXRVbnRpbChSZWY8
RE9NUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGlmICghaXNUcnVzdGVkKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmgKaW5kZXggNzA3
NDgwNTk3OWMxZWExMGJiNjQ0OTQ0NWRmNGMwODhlNGYzZWJhNC4uYmE3OWE2YmYwYmY4MTA5OWMy
MjJkZjg5NmMyYTkwNDBmYmM2NzEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaApAQCAtNDIsNiArNDIsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVFdmVudCh0eXBlLCBpbml0aWFsaXpl
ciwgaXNUcnVzdGVkKSk7CiAgICAgfQogCisgICAgfkV4dGVuZGFibGVFdmVudCgpOworCiAgICAg
RXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBF
eHRlbmRhYmxlRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB3
YWl0VW50aWwoUmVmPERPTVByb21pc2U+JiYpOwpAQCAtNTAsNiArNTIsNyBAQCBwdWJsaWM6CiAK
IHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBFeHRlbmRhYmxlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CisgICAg
RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGJvb2wgYnViYmxlcywgYm9vbCBj
YW5jZWxhYmxlKTsKIAogICAgIFdlYWtQdHI8RXh0ZW5kYWJsZUV2ZW50PiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCp0aGlzKTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGYxNmIyZGFiZTI4YmYxYTBmYzdmZjRkMzMyOWMw
NWZmYzNlM2FkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQor
I2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dD4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBv
cnQ+PiYmIHBvcnRzLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFs
PEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYgc291cmNlKQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoV1RGTW92ZShkYXRhKSwgb3JpZ2lu
LCBsYXN0RXZlbnRJZCwgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHBvcnRzKSkpOworfQorCitF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0LCBJ
c1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KHR5cGUsIGluaXQsIGlz
VHJ1c3RlZCkKKyAgICAsIG1fZGF0YShTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShzdGF0
ZSwgaW5pdC5kYXRhKSkKKyAgICAsIG1fb3JpZ2luKGluaXQub3JpZ2luKQorICAgICwgbV9sYXN0
RXZlbnRJZChpbml0Lmxhc3RFdmVudElkKQorICAgICwgbV9wb3J0cyhpbml0LnBvcnRzKQorewor
fQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YSwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNv
bnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudFNvdXJjZT4mJiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRz
KQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KGV2ZW50TmFtZXMoKS5tZXNzYWdlRXZlbnQsIGZhbHNl
LCBmYWxzZSkKKyAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorICAgICwgbV9vcmlnaW4ob3Jp
Z2luKQorICAgICwgbV9sYXN0RXZlbnRJZChsYXN0RXZlbnRJZCkKKyAgICAsIG1fc291cmNlKFdU
Rk1vdmUoc291cmNlKSkKKyAgICAsIG1fcG9ydHMoV1RGTW92ZShwb3J0cykpCit7Cit9CisKK0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQ6On5FeHRlbmRhYmxlTWVzc2FnZUV2ZW50KCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA1ODdjYjg1ZWFmY2VjMDVhZDE0ZGJmZGRiNDJk
YmY3ZjE2ZTRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVk
ZSAiRXh0ZW5kYWJsZUV2ZW50LmgiCisjaW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50SW5pdC5oIgor
I2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgorI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgor
CituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVzc2FnZVBvcnQ7CitjbGFzcyBTZXJ2aWNl
V29ya2VyOworY2xhc3MgU2VydmljZVdvcmtlckNsaWVudDsKKwordXNpbmcgRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBS
ZWZQdHI8U2VydmljZVdvcmtlcj4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+OworCitjbGFzcyBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV4dGVuZGFibGVFdmVudCB7CitwdWJs
aWM6CisgICAgc3RydWN0IEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0IHsKKyAgICAgICAgSlND
OjpKU1ZhbHVlIGRhdGE7CisgICAgICAgIFN0cmluZyBvcmlnaW47CisgICAgICAgIFN0cmluZyBs
YXN0RXZlbnRJZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
U291cmNlPiBzb3VyY2U7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBwb3J0
czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50PiBjcmVh
dGUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0
IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObykK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZl
bnQoc3RhdGUsIHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgUmVmPEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ+IGNyZWF0ZShWZWN0b3I8UmVmUHRyPE1l
c3NhZ2VQb3J0Pj4mJiwgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4gPSB7IH0sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQgPSB7IH0sIHN0ZDo6
b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UgPSBzdGQ6Om51
bGxvcHQpOworCisgICAgfkV4dGVuZGFibGVNZXNzYWdlRXZlbnQoKTsKKworICAgIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQorICAg
IGNvbnN0IFN0cmluZyYgb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KKyAgICBj
b25zdCBTdHJpbmcmIGxhc3RFdmVudElkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXZlbnRJZDsg
fQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4m
IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CisgICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxNZXNzYWdlUG9ydD4+JiBwb3J0cygpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydHM7IH0KKwor
ICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEludGVyZmFjZVR5cGU7IH0KKworcHJpdmF0ZToKKyAgICBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudChS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNz
YWdlRXZlbnRTb3VyY2U+JiYsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmKTsKKworICAg
IFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fZGF0YTsKKyAgICBTdHJpbmcgbV9vcmln
aW47CisgICAgU3RyaW5nIG1fbGFzdEV2ZW50SWQ7CisgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50U291cmNlPiBtX3NvdXJjZTsKKyAgICBWZWN0b3I8UmVmUHRyPE1lc3Nh
Z2VQb3J0Pj4gbV9wb3J0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
OTg0MGIwZmU4NDViOWQ0NjA4NDMxZWI1YWFjYTJlNWZjODE1NjM5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uc3RydWN0b3IoRE9N
U3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IGV2ZW50SW5p
dERpY3QpLAorICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0U3RhdGUsCisgICAgQ29uZGl0
aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAgRW5hYmxlZEF0UnVudGltZT1TZXJ2aWNlV29ya2Vy
LAorICAgIEV4cG9zZWQ9U2VydmljZVdvcmtlciwKK10gaW50ZXJmYWNlIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQgOiBFeHRlbmRhYmxlRXZlbnQgeworICAgIFtDYWNoZWRBdHRyaWJ1dGUsIEN1c3Rv
bUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBVU1ZTdHJpbmcgb3JpZ2luOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bGFzdEV2ZW50SWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSAoU2Vydmlj
ZVdvcmtlckNsaWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQb3J0KT8gc291cmNlOwor
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZXNzYWdlUG9ydD4gcG9ydHM7Cit9
OworCitkaWN0aW9uYXJ5IEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0IDogRXh0ZW5kYWJsZUV2
ZW50SW5pdCB7CisgICAgYW55IGRhdGEgPSBudWxsOworICAgIFVTVlN0cmluZyBvcmlnaW4gPSAi
IjsKKyAgICBET01TdHJpbmcgbGFzdEV2ZW50SWQgPSAiIjsKKyAgICAoU2VydmljZVdvcmtlckNs
aWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQb3J0KT8gc291cmNlID0gbnVsbDsKKyAg
ICBzZXF1ZW5jZTxNZXNzYWdlUG9ydD4gcG9ydHMgPSBbXTsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggNjZkNzNiZTg3NDA5
NDNhMTdlNDVmNmNhODJjYWQ1YmZiNWY1M2U2OC4uYjJmYjJmMmY2ODA0NTE5YzRhMjBmYTc2MmRm
ODYwYzVmYTgyOGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyLmNwcApAQCAtMjgsMTAgKzI4LDQ5IEBACiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiAKKyNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2luY2x1ZGUgIlNXQ2xpZW50
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNs
dWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJv
dmlkZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxpbmVzLmg+CisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1l
c3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIFZlY3RvcjxKU0M6OlN0cm9uZzxK
U0M6OkpTT2JqZWN0Pj4mJikKK1NlcnZpY2VXb3JrZXI6OlNlcnZpY2VXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIp
CisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1faWRl
bnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKK30KKworRXhjZXB0aW9uT3I8dm9p
ZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZVZhbHVlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+
JiYgdHJhbnNmZXIpCiB7CisgICAgaWYgKHRoaXMtPnN0YXRlKCkgPT0gU3RhdGU6OlJlZHVuZGFu
dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxp
dGVyYWwoIlNlcnZpY2UgV29ya2VyIHN0YXRlIGlzIHJlZHVuZGFudCIpIH07CisKKyAgICAvLyBG
SVhNRTogSW52b2tlIFJ1biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0gd2l0aCBzZXJ2aWNlV29y
a2VyIGFzIHRoZSBhcmd1bWVudC4KKworICAgIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiBw
b3J0czsKKyAgICBhdXRvIG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShz
dGF0ZSwgbWVzc2FnZVZhbHVlLCBXVEZNb3ZlKHRyYW5zZmVyKSwgcG9ydHMsIFNlcmlhbGl6YXRp
b25Db250ZXh0OjpXb3JrZXJQb3N0TWVzc2FnZSk7CisgICAgaWYgKG1lc3NhZ2UuaGFzRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBtZXNzYWdlLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAg
IC8vIERpc2VudGFuZ2xlIHRoZSBwb3J0IGluIHByZXBhcmF0aW9uIGZvciBzZW5kaW5nIGl0IHRv
IHRoZSByZW1vdGUgY29udGV4dC4KKyAgICBhdXRvIGNoYW5uZWxzT3JFeGNlcHRpb24gPSBNZXNz
YWdlUG9ydDo6ZGlzZW50YW5nbGVQb3J0cyhXVEZNb3ZlKHBvcnRzKSk7CisgICAgaWYgKGNoYW5u
ZWxzT3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBjaGFubmVsc09y
RXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHNl
bmRpbmcgdGhlIGNoYW5uZWxzLgorICAgIGF1dG8gY2hhbm5lbHMgPSBjaGFubmVsc09yRXhjZXB0
aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIGlmIChjaGFubmVscyAmJiAhY2hhbm5lbHMt
PmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCBBU0NJSUxpdGVyYWwoIlBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0cyB0byBwb3N0TWVzc2Fn
ZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIpIH07CisKKyAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBB
U0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCIpIH07CisKKyAgICBhdXRv
JiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNl
c3Npb25JRCgpKTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+b3JpZ2luKCkpOworCiAgICAgcmV0dXJuIHsgfTsKIH0K
IApAQCAtNDIsNyArODEsNyBAQCBjb25zdCBTdHJpbmcmIFNlcnZpY2VXb3JrZXI6OnNjcmlwdFVS
TCgpIGNvbnN0CiAKIFNlcnZpY2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VXb3JrZXI6OnN0YXRlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAgICByZXR1cm4gU3RhdGU6
OkFjdGl2YXRlZDsKIH0KIAogRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlcjo6ZXZl
bnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdApAQCAtNTIsNyArOTEsNyBAQCBFdmVudFRhcmdldElu
dGVyZmFjZSBTZXJ2aWNlV29ya2VyOjpldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0CiAKIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAogewotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuaAppbmRleCA0MGUxMmRlMWIyMzU5NWVjODlkNDhjMThjZWNhZGNlNDA2YmIzZTg4
Li5iMzk4ZDRkOTcxODNiMTY0NzJhNWRkM2I0OTIxYjllNDE5MTQwMTkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgKQEAgLTI3LDggKzI3LDEw
IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSA8
aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKQEAgLTM5LDkgKzQxLDEzIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNsYXNzIFNlcnZpY2VXb3JrZXIgZmluYWwgOiBwdWJs
aWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyIGZpbmFs
IDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlcj4sIHB1YmxpYyBFdmVudFRhcmdldFdp
dGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKEZyYW1lJiBmcmFtZSkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyKGZyYW1lKSk7IH0KKyAgICBzdGF0aWMg
UmVmPFNlcnZpY2VXb3JrZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoY29udGV4dCwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIpKTsKKyAgICB9CisKICAgICB2aXJ0dWFsIH5TZXJ2aWNlV29ya2VyKCkgPSBkZWZhdWx0
OwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7CkBAIC01NywxMyArNjMsMjAgQEAgcHVibGljOgog
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsK
IAorICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7
IH0KKworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpk
ZXJlZjsKKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29ya2VyKEZyYW1lJik7Cisg
ICAgU2VydmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgdWludDY0X3Qgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OwogICAgIHZvaWQgcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
ZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggZTgzMGE4ZGE3M2Y5
MGQ3ZWUyMzIwZmZiMDJhZGU4MWNkMTMxZjk3OS4uNTZkNTZjN2Y4NDI1NWY4YjI5YjIwOGFmODk1
MzQ3NTI2MjdjZTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJK
b2JEYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCkBAIC03NCw3ICs3
NSwxNCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmRlcmVmRXZlbnRUYXJnZXQoKQog
CiBTZXJ2aWNlV29ya2VyKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb250cm9sbGVyKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+c2VsZWN0ZWRT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKSB7CisgICAgICAgIG1fY29udHJvbGxlciA9IG51bGxw
dHI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAoIW1fY29udHJvbGxl
ciB8fCBtX2NvbnRyb2xsZXItPmlkZW50aWZpZXIoKSAhPSBjb250ZXh0LT5zZWxlY3RlZFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKCkpCisgICAgICAgIG1fY29udHJvbGxlciA9IFNlcnZpY2VXb3Jr
ZXI6OmNyZWF0ZSgqY29udGV4dCwgY29udGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRp
ZmllcigpKTsKKyAgICByZXR1cm4gbV9jb250cm9sbGVyLmdldCgpOwogfQogCiB2b2lkIFNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZl
U2NyaXB0VVJMLCBjb25zdCBSZWdpc3RyYXRpb25PcHRpb25zJiBvcHRpb25zLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCAxNWY1NmQxZmVlMjQ0NTQ1
NzVhYWEzOGNmY2MxODAwMWZjNDUyMjYyLi5hZTZkYTFiZTczNGU2OTYzYjdiNWZlODBiOWE0NGE2
OTBhYWJkMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIFJlZlB0cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0aW9uOwogICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9qb2JNYXA7CisgICAgbXV0
YWJsZSBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwogCiAjaWZuZGVmIE5ERUJV
RwogICAgIFRocmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7IGN1cnJlbnRUaHJlYWQo
KSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBhNmQwYmZkMjZjYWNlZWQ2NDUzODU4ZTQ3
NDk0M2FiYzBjM2Q1YmNiLi42ZTE3ZGRjZGI4YjFjYmQwNmY0NmM5NTdjYzQ4MjRlZmFhOThlMDM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTgsNiArNTgsMTEgQEAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpldmVudFRhcmdldEludGVyZmFjZSgp
IGNvbnN0CiAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUV2ZW50VGFyZ2V0SW50
ZXJmYWNlVHlwZTsKIH0KIAorU2VydmljZVdvcmtlclRocmVhZCYgU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlOjp0aHJlYWQoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxTZXJ2aWNlV29ya2Vy
VGhyZWFkJj4oV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5oCmluZGV4IGRjNDBjNmYzNDk4MmFlMzYyNzdiMmE0NGM0NWM0NTMyOTU3OGFmODYuLjcy
YzBlZjI3YzJiNDEwZjlhNTY0MjM1ZjA5ZTExMmM3Zjc3MzYwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmgKQEAgLTU3LDYgKzU3LDggQEAgcHVibGljOgogCiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbDsKIAorICAgIFNlcnZpY2VXb3JrZXJU
aHJlYWQmIHRocmVhZCgpOworCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgU2VydmljZVdvcmtlclRocmVhZCYsIGJvb2wgc2hvdWxkQnlw
YXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVj
dGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25JRCk7CiAKQEAgLTY3LDQg
KzY5LDkgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSkKKyAg
ICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkgeyByZXR1cm4gaXM8V2ViQ29yZTo6V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRl
eHQpICYmIGRvd25jYXN0PFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5pc1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KSB7IHJldHVybiBjb250ZXh0Lmlz
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5E
KCkKKwogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKaW5kZXggMzgxOGU5OTExYWQzMjdhODQ4MWI2ZGZhMjk4NDM4ZDgxMmJjMzY3YS4u
OWI1MTM1NzI3ZTI1YWVhNWM0Y2ZhZjczNmE2MjZjNWRkN2VmY2YzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIK
KyNpbmNsdWRlICJFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTEwMCw2ICsxMDEsMTcgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVu
dD4mJiBjbGllbnQKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAor
dm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBjb25zdCBTdHJpbmcmIHNv
dXJjZU9yaWdpbikKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2soW2No
YW5uZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBz
b3VyY2VPcmlnaW4gPSBzb3VyY2VPcmlnaW4uaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0
KTsKKyAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRzKHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShjaGFubmVscykpOworICAgICAgICBzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuZGlzcGF0Y2hFdmVudChFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojpj
cmVhdGUoV1RGTW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdpbikpOwor
ICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkud29ya2VyT2JqZWN0UHJv
eHkoKS5jb25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3Qoc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmhhc1BlbmRpbmdBY3Rpdml0eSgpKTsKKyAgICB9KTsKKyAgICBydW5Mb29wKCkucG9zdFRh
c2soV1RGTW92ZSh0YXNrKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCA5
NTRkYWY2MDgyY2NlZjZiZDkzNTgxMmE3MDdjZGVlMGJmMDNjOWJiLi43MzcyODExYTk5MWQ0NWNm
YWQ1YzVhMGUwYWFjYzBhYzFmNzZhOGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0z
NSw5ICszNSwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7CitjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWw7CitjbGFz
cyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIHN0cnVj
dCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiAKK3VzaW5nIE1lc3NhZ2VQb3J0Q2hhbm5lbEFy
cmF5ID0gVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCAxPjsKKwog
Y2xhc3MgU2VydmljZVdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQsIHB1YmxpYyBU
aHJlYWRTYWZlSWRlbnRpZmllZDxTZXJ2aWNlV29ya2VyVGhyZWFkPiB7CiBwdWJsaWM6CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFk
PiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCkBAIC00OSw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBX
b3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dv
cmtlck9iamVjdFByb3h5OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRh
c2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwg
RmV0Y2hPcHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIGNvbnN0IFN0cmluZyYgc291
cmNlT3JpZ2luKTsKIAogcHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3Jl
YXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1vbm90b25pY1RpbWUgdGlt
ZU9yaWdpbiwgUEFMOjpTZXNzaW9uSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXgg
OWM4YTE3MGYxMmQxZjdkN2Y3ZjFlNWJkZTJhZWIzNzEzODNjMDVjMS4uNDIyMmI1OWM2YTMxMTU3
NGY4MGU1ZjcxYjE0NmU1NTI2MmUyZDk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC0zNSw2
ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNs
YXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3Mg
U2hhcmVkQnVmZmVyOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0OwpAQCAtNDgsNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVs
ZUpvYihTZXJ2aWNlV29ya2VySm9iJik7CiAgICAgdm9pZCBmaW5pc2hlZEZldGNoaW5nU2NyaXB0
KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGZhaWxlZEZldGNo
aW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAg
dmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYs
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90
IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1NlcnZpY2VXb3Jr
ZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBmNThjMTc1OWJhNjBh
YTFiMWRkZWE1NzM4OWU0NjkzYmMzNzA2NGQ0Li5jNGI2Y2VhMzZmNTUxY2YwMzNjNDU3MTcyZmUz
YTEwNzcyMmZhZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApA
QCAtMTAwLDYgKzEwMCwxMSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRj
aCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpYwogICAgIHNlbmRUb0Nv
bnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlN0YXJ0
RmV0Y2goaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3Nh
Z2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoaWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbWVz
c2FnZSwgc291cmNlT3JpZ2luKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpk
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZSh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNl
IHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uaAppbmRleCA3Y2M3NmJkYzlhZGJjZDkzNTAxMTFiNGZlMGJiM2UwMmI3NjYyYWMw
Li4zYTU3MjBiZWU3MThjOTFhOWU2MTJiYjcwZmU2OWJiOGRiZGI1YjA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC02NSw2ICs2NSw4IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJik7CiAKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmln
aW4pOworCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRleHQgV2ViUHJvY2VzcwogICAg
IHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZjNkYjNiOTBkYWU5M2E5MjZkZjViYmRlYTFh
Mzc3OTUzNDY2NDkxMi4uM2IyMDQ1YzY0NDRhZGNkMThkYjRjZmVjYzUxZWZjMzk0YjIxMmQ1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAg
ICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckZldGNoUmVzdWx0IHJlc3VsdCkKIAogICAgIFN0YXJ0RmV0Y2godWludDY0X3QgaWRlbnRp
ZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisg
ICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFN0cmluZyBzb3Vy
Y2VPcmlnaW4pCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmNwcAppbmRleCAwZGVmMzU0YzNjY2VhZDc3YjllMWVlNDQ4NWFj
YjY5NDJjNGNkYjU0Li5kYjE3ZGQzNThhOTgyZDQ5MzljOWY2ODhmZmRhNWUzYmI1Njg4NDBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKQEAgLTI4LDEyICsyOCwxNSBAQAogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRD
aGFubmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFBBTDsKQEAgLTY4LDYgKzcxLDE2IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyOjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyCiAg
ICAgc2VydmljZVdvcmtlclRocmVhZC0+cG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOwogfQogCit2b2lkIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAgYXV0byogd29ya2VyVGhyZWFkID0gbV93b3JrZXJU
aHJlYWRNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXdvcmtlclRo
cmVhZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZh
bGlkIE1lc3NhZ2VQb3J0Q2hhbm5lbHMuCisgICAgd29ya2VyVGhyZWFkLT5wb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVz
c2FnZS52ZWN0b3IoKSksIG51bGxwdHIsIHNvdXJjZU9yaWdpbik7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtl
ckNvbnRleHRNYW5hZ2VyLmgKaW5kZXggOGQyMDBjMGYzNDA1ZDQwZGQ3MzNjNWQzOWI3Yjg1NzRi
ODRmYmYyZi4uNjk0ZmY3NWYxYTg4NTM5NDQxZGYxNmJmYTgyMzc1NjMxNjIxYTk1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJik7CiAg
ICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYpOwor
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4pOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9y
YWdlUHJvY2VzczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclRocmVhZD4+IG1fd29ya2VyVGhyZWFkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGVkY2RkOGIzNjQ2MTRkNDcwZTU2MGEyYmUy
MmQ1OWEyNTNiMjBjYjIuLjg2NjYzZjgxZTdjYTBiODZlNjYzY2Y5NGJmMDU1ZTVjYjA0ZDVjMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTI1
LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB7CiAg
ICAgU3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQog
ICAgIFN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zIG9wdGlvbnMpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBTdHJpbmcgc291cmNlT3Jp
Z2luKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGJiMWUxY2M5YTk1ZWI4
Njk2NDExOTk4MjEwNTA1NDY2OGVjYjQ5ZWIuLjMwODZlYTRmYzBlYmYxYjhkNDZjNDU5YTRmMTNm
ZTkyNjM1YTk1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjgsMTIgKzI4LDE0IEBACiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJTV09yaWdp
blRhYmxlLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VydmljZVdvcmtlckZldGNoUmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNl
V29ya2VySm9iRGF0YS5oPgogCkBAIC02Niw2ICs2OCwxMSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2Vy
RmV0YwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0
Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1bHQpKTsKIH0KIAordm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc2NyaXB0
VmFsdWUsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZShzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0
VmFsdWUtPmRhdGEoKSB9LCBzb3VyY2VPcmlnaW4pKTsKK30KKwogYm9vbCBXZWJTV0NsaWVudENv
bm5lY3Rpb246Omhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3dPcmlnaW5UYWJsZS0+
Y29udGFpbnMob3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOTFiOWY4YzYyNGNlYTFhZmU2
NTI2OGU4NDg0OGJjNjI0YmVmZDRkMy4uMWNkMjkyOTllM2ZkM2MyZmM5Mjg4ZTE4NjBhZDU0MDMx
MGNlNTQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJK
b2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOworICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFsOwogCiAgICAgdm9pZCBkaXNjb25uZWN0ZWRG
cm9tV2ViUHJvY2VzcygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGE3NTFhZjdmNTI1M2ZjYmExZjI5
OWNiZDBjOWY4NDkwMGRhZGJmOC4uODQyNjM3MzUzZThjNGQyYzQ5OGJhMWUyYWMzNjhlYjJlODky
MGFhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEwLTIzICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9y
IHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVz
c2FnZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jh
c2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtl
ci1wb3N0TWVzc2FnZS5qczogQWRkZWQuCisKIDIwMTctMTAtMjMgIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5n
LiBUcnkgdG8gcmVkdWNlIGZsYWtpbmVzcyBvZiBpbnNwZWN0b3IvbmV0d29yay9oYXIgdGVzdHMu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNp
Yy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1l
c3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMTIyMzU0NzVmMWVlYjU5MzIz
ZGViZTBkZjE1ZTY4MjUwZWE2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1BBU1M6IFN0YXR1cyBjb2RlIGlzIDIw
MAorUEFTUzogU3RhdHVzIHRleHQgaXMgV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdlIGV2ZW50
LiBtZXNzYWdlRXZlbnQub3JpZ2luIHdhcyBodHRwczovLzEyNy4wLjAuMTo4NDQzCitQQVNTOiBT
b3VyY2UgaXMgU2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2Vy
dmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4MTcwYzZiZDYx
MDdmNWUzYThjZDE2YmMzYmNkMWYxOWYwMTQwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RN
ZXNzYWdlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKworPHNjcmlwdCBzcmM9InJlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNz
YWdlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NDM5NWIyYTZkM2Q2ZjVhNjczNDlmY2I3MDZkOGFiNDc1NjZiYWI1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzCkBA
IC0wLDAgKzEsMTQgQEAKK2xldCByZXNwb25zZVRvU2VuZCA9IHsgc3RhdHVzOiA0MDQsIHN0YXR1
c1RleHQ6ICJOb3QgRm91bmQiIH07CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IChldmVudCkgPT4geworICAgIHJlc3BvbnNlVG9TZW5kID0gZXZlbnQuZGF0YTsKKyAgICByZXNw
b25zZVRvU2VuZC5zdGF0dXNUZXh0ICs9ICIgbWVzc2FnZUV2ZW50Lm9yaWdpbiB3YXMgIiArIGV2
ZW50Lm9yaWdpbjsKK30pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50
KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoInRlc3QxIikgIT09IC0x
KSB7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShudWxsLCByZXNwb25z
ZVRvU2VuZCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRo
KFJlc3BvbnNlLmVycm9yKCkpOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVz
c2FnZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNl
cy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YTQxY2Ew
ODY4OGI0ODNhZTgyNGIyMzY1NTMxNzA3Y2QwOGU3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2Vydmlj
ZVdvcmtlci1wb3N0TWVzc2FnZS5qcwpAQCAtMCwwICsxLDM3IEBACitmdW5jdGlvbiBkb25lKCkK
K3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
InJlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcyIsIHsg
fSk7CisKKyAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVz
c2FnZSh7IHN0YXR1czogMjAwLCBzdGF0dXNUZXh0OiAiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNz
YWdlIGV2ZW50LiIgfSk7CisKKyAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInRl
c3QxIik7CisgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gMjAwKQorICAgICAgICAgICAg
bG9nKCJQQVNTOiBTdGF0dXMgY29kZSBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMOiBTdGF0dXMgY29kZSBpcyAiICsgcmVzcG9uc2Uu
c3RhdHVzKTsKKworICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzVGV4dC5zdGFydHNXaXRoKCJX
b3JrZXIgcmVjZWl2ZWQgdGhlIG1lc3NhZ2UiKSkKKyAgICAgICAgICAgIGxvZygiUEFTUzogU3Rh
dHVzIHRleHQgaXMgIiArIHJlc3BvbnNlLnN0YXR1c1RleHQpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBsb2coIkZBSUw6IFN0YXR1cyB0ZXh0IGlzICIgKyByZXNwb25zZS5zdGF0dXNUZXh0
KTsKKworICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgbGV0IHNv
dXJjZSA9IGludGVybmFscy5mZXRjaFJlc3BvbnNlU291cmNlKHJlc3BvbnNlKTsKKyAgICAgICAg
ICAgIGlmIChzb3VyY2UgPT09ICJTZXJ2aWNlIHdvcmtlciIpCisgICAgICAgICAgICAgICAgbG9n
KCJQQVNTOiBTb3VyY2UgaXMgIiArIHNvdXJjZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgbG9nKCJGQUlMOiBTb3VyY2UgaXMgIiArIHNvdXJjZSk7CisgICAgICAgIH0KKyAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgbG9nKCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAg
fQorICAgIGZpbmlzaFNXVGVzdCgpOworfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324702</attachid>
            <date>2017-10-24 12:45:33 -0700</date>
            <delta_ts>2017-10-24 13:29:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171024124532.patch</filename>
            <type>text/plain</type>
            <size>60944</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkwY2VjZjc3NDllZjUy
NDdjMWYyNzEyM2EwZDM2ZDUzY2VjMjhiMy4uMTY1YjQ5MjYzODBmZTVhYWZkMjRkNDE1ZmQyZDQ4
ZGU3Y2NiODQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SlNF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpkYXRhIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL0V2ZW50TmFtZXMuaW46CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50OjpF
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZUV2ZW50Ojp+RXh0
ZW5kYWJsZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6RXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Ojp+
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6U2Vy
dmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAoaXNUeXBl
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTI0ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXBwbHkgY3VzdG9tIGhl
YWRlciBmaWVsZHMgZnJvbSBXZWJzaXRlUG9saWNpZXMgdG8gc2FtZS1kb21haW4gcmVxdWVzdHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOGFmYjljNTM3OTRhZTdkM2RkNzE5YTQ1MzE0OWFjMzc2YTZlNzA1NC4uYmZl
YjI5ZTA1ZWU2MGM0NGU0MzAzMWZiZDgwZGZjYTliMDJhYjA2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxNy0xMC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIGZvciBzZXJ2aWNlV29ya2VyLnBvc3RN
ZXNzYWdlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3ODUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIGZvciBzZXJ2aWNlV29ya2VyLnBvc3RNZXNzYWdl
KCk6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3NlcnZp
Y2Utd29ya2VyLXBvc3RtZXNzYWdlCisKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSk6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisKIDIwMTctMTAt
MjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQg
bmV3IHNlY3VyZSBjb2RpbmcgQVBJcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZDExODI0MjEy
MDg1NWUwYjIzZGI2ZDFjMjE0MTc1YWM3NDM4YmJmLi45NjU5ZWZlYzg2ZmQ5ZWNlMjliNTNiODky
NDExZDVlOTliY2I4MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODAxLDYgKzgwMSw3IEBA
IHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3NlcnZpY2UvRXh0
ZW5kYWJsZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0
LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAg
IHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyLmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmlk
bApAQCAtMjI0Nyw2ICsyMjQ4LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHdvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5j
cHAKKyAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKICAgICB3
b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlci5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA4M2NlMDU5YzgyMTY3NTEwYTRjYTFh
Y2VhZTVhYjZkYzMwZjBlMWEuLjg5YmRhNzVjNmNjYzQzZDc3ZTg4MmRiM2U2MzcxNGY3YjY4YTBk
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTIyLDYgKzkyMiw3IEBAIEpT
X0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyVHlwZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudEluaXQuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdl
YkNvcmUpL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IGI1ZGE4NzFjOGQ0MzY5MzE1MTAzMWM2NzgzOWNhMDIxZGUxZWE5NDEuLmRkYzNj
ZTg5ZjlhZTE3MDljZWQ3MDE5ODg2NmYxZmU3ZmJjYjQ2NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0z
NzAsNiArMzcwLDcgQEAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBiaW5kaW5ncy9q
cy9KU0V2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAogYmlu
ZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbUVudHJ5Q3Vz
dG9tLmNwcAogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKIGJpbmRpbmdz
L2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTA4MCw2ICsxMDgxLDcgQEAgSlNFdmVu
dFNvdXJjZS5jcHAKIEpTRXZlbnRUYXJnZXQuY3BwCiBKU0V4dGVuZGFibGVFdmVudC5jcHAKIEpT
RXh0ZW5kYWJsZUV2ZW50SW5pdC5jcHAKK0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKIEpT
RmVkZXJhdGVkQ3JlZGVudGlhbC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQuY3BwCiBK
U0ZlZGVyYXRlZENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOTQyODU0NmRkZDBm
NGQxMjQ3ZjExYjNkZDY0NWI5MmNmMjMxMmI3Li4wYTZjYzRkNmU2Y2QzMTk5NzQ3NTY2Yjg4Yzhi
MmViNmM2YmI5ZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yOTU1LDYgKzI5NTUsNyBAQAogCQk4MzA3ODRCMjFDNTJFRTJD
MDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzMDc4NEIxMUM1MkVFMTkwMDEwNEQxRCAvKiBYTUxEb2N1bWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzMEEz
NkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkg
LyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9OwogCQk4MzEyMEM3MDFDNTZGM0Y2MDAxQ0IxMTIg
LyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQu
Y3BwICovOyB9OworCQk4MzEwMkIyNzFGOUVBREQ5MDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzEwMkIyMzFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmgg
Ki87IH07CiAJCTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEI4NkE3MUM1
NkU4M0EwMEYzRjBFMyAvKiBIVE1MRGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJODMyMTUwN0UxRjI3
RUExQjAwOTVCMTM2IC8qIE5hdmlnYXRvckJlYWNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyMTUwN0IxRjI3RUExNTAwOTVCMTM2IC8qIE5hdmln
YXRvckJlYWNvbi5oICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNl
LmggKi87IH07CkBAIC0yOTk4LDYgKzI5OTksOCBAQAogCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThF
QTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAwMjZCOUYgLyog
TG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5z
dHJpbmdzZGljdCAqLzsgfTsKIAkJODM3QjdEMjAxREMzRjU1MDAwRDA1MUZDIC8qIFZhbGlkYXRp
b25CdWJibGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSAq
LzsgfTsKKwkJODM3RkIzNDQxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovOyB9
OworCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3RkIzNDAx
RjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJODM4
NkE5NkQxOUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4NkE5NkMxOUY2MUIyRTAwRTFFQzRBIC8q
IFN0eWxlQnVpbGRlci5oICovOyB9OwogCQk4Mzg4NjczNTFEMTNCQTVGMDAzNjk3RDAgLyogUmVu
ZGVyT2JqZWN0RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzODg2NzM0MUQxM0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOEVGNTM4
MURDMTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTM2MURDMTQ5REEwMDhGMEMzOSAv
KiBJREJUcmFuc2FjdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTA3MjAsNiArMTA3MjMsOSBAQAogCQk4MzA3ODRCMTFDNTJFRTE5
MDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gWE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMwQTM2QkEx
REFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzMEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJ
bml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjMxRjlFQURDMjAwRTQwNEI5
IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJODMxMDJCMjUxRjlFQURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V4dGVuZGFi
bGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzFDNDZD
MzFGOUVFNUUwMDBFQkQ0NTAgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMUQxRjI5MUM1
NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODMyMTUwN0ExRjI3RUExNTAwOTVCMTM2IC8qIE5hdmlnYXRvckJlYWNvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JCZWFjb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4MzIxNTA3QjFGMjdFQTE1MDA5NUIxMzYgLyogTmF2aWdhdG9yQmVh
Y29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvckJlYWNvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTA4MDMsNiArMTA4MDksOSBAQAogCQk4MzdBODAxMjFFMUUxMjczMDAw
MjZCOUYgLyogRW5nbGlzaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nc2RpY3Q7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0g
RW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJs
ZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZhbGlkYXRp
b25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzN0RGQjM0MUVC
RkVBNzAwMDYwMTM4NSAvKiBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEVsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuZGFibGVNZXNzYWdl
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3RkIzNDIxRjlFQTA2NzAw
RDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzN0ZCMzQzMUY5RUEwNjgwMEQwRkMzMSAvKiBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4NkE5NkMxOUY2MUIy
RTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHlsZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4NkE5
NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4Mzg4NjczNDFEMTNCQTU5MDAzNjk3RDAgLyogUmVuZGVyT2JqZWN0RW51bXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyT2JqZWN0RW51bXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTc5LDYgKzE4MTg4LDggQEAKIAkJCQk3
RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuY3BwICovLAogCQkJ
CTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MyAvKiBKU0V4dGVuZGFibGVFdmVudC5oICovLAogCQkJ
CTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1NCAvKiBKU0V4dGVuZGFibGVFdmVudEluaXQuY3BwICov
LAorCQkJCTgzMTAyQjI1MUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZl
bnQuY3BwICovLAorCQkJCTgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuaCAqLywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTIgLyogSlNGZXRj
aEV2ZW50LmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTIgLyogSlNGZXRjaEV2
ZW50LmggKi8sCiAJCQkJNTFGODg2QkUxRjMyOTIwNzAwQzE5M0VGIC8qIEpTTmF2aWdhdG9yU2Vy
dmljZVdvcmtlci5jcHAgKi8sCkBAIC0xODI3MCw2ICsxODI4MSw5IEBACiAJCQkJNDFBRjM3OEUx
RjhDMUU3QzAwMTExQzMxIC8qIEV4dGVuZGFibGVFdmVudC5pZGwgKi8sCiAJCQkJNDEzMUYzQjQx
Rjk1NUJDMzAwNTk5OTVBIC8qIEV4dGVuZGFibGVFdmVudEluaXQuaCAqLywKIAkJCQk0MTMxRjNC
NTFGOTU1QkM1MDA1OTk5NUEgLyogRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgKi8sCisJCQkJODM3
RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovLAor
CQkJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmgg
Ki8sCisJCQkJODM3RkIzNDMxRjlFQTA2ODAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnQuaWRsICovLAogCQkJCTQxQUYzNzk0MUY4REE0OTUwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmNw
cCAqLywKIAkJCQk0MUFGMzc4ODFGOEMxRTc5MDAxMTFDMzEgLyogRmV0Y2hFdmVudC5oICovLAog
CQkJCTQxQUYzNzhEMUY4QzFFN0IwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmlkbCAqLywKQEAgLTE5
NzM5LDYgKzE5NzUzLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJREVDMjk3NUQxQjRERUIyQTAwNUY1OTQ1IC8qIEpTQ3VzdG9tRXZlbnRDdXN0b20uY3BwICov
LAorCQkJCTgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZl
bnRDdXN0b20uY3BwICovLAogCQkJCTQxMzFGM0IxMUY5NTUyODEwMDU5OTk1QSAvKiBKU0ZldGNo
RXZlbnRDdXN0b20uY3BwICovLAogCQkJCUJDRTdCMTkyMEQ0RTg2OTYwMDc1QTUzOSAvKiBKU0hp
c3RvcnlDdXN0b20uY3BwICovLAogCQkJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCkBAIC0yNzM0Myw2ICsyNzM1OCw3IEBACiAJCQkJOTM1
RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxRjY0NTYyMUY0NTM5OEYwMEI1NERFRCAvKiBFeGNlcHRpb25EYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0QxOTYzMTFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9uT3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgzN0ZCMzQ1MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMURDREY0NDFEQTFDNDU0MDBFQTVCOTMg
LyogRXh0ZW5kZWRDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkxMjgwRThCRDAw
ODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTcxMjgw
RThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
ODA4Nyw2ICsyODEwMyw3IEBACiAJCQkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8qIEpTRXZl
bnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNEVEMzMyMUEzQThCMjMwMEY1
RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRDOTZERDFB
RDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTgzMTAyQjI3MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDNDMwNEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VYVFNoYWRl
clRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0MTRGRDlBREEwMEY0ODRE
QyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzdENTBGRjYxRUQ0RDk5QjAwREE0Qzg3IC8qIEpTRmVkZXJhdGVkQ3JlZGVudGlhbC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMTA5Nyw2ICszMTExNCw3IEBACiAJCQkJMjYyRUM0MUQxRDExMEI5MDAw
QkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcy
NEVEMzJDMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MUFGMzc5OTFGOERBREFBMDAxMTFDMzEgLyogRXh0ZW5kYWJsZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTgzN0ZCMzQ0MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRENERjQzMURBMUM0NTQwMEVB
NUI5MyAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNjdEMkE2MTI4
MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGQ4ZDc4MDgwNjQyODE5Mzk3NTNkZmIxNTNlMWQwOWVh
NjViNWY0YTEuLjZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQzY2ExZDE2NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApA
QCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTRXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5jcHAi
CisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU0ZpbGVTeXN0ZW1FbnRyeUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MQ29sbGVjdGlv
bkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU0Nzk1OTUyMWJlZDFjMTczOTgzODdiZjAw
MzVlOGMxMjdiZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKKyNpbmNsdWRlICJKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitKU1ZhbHVlIEpTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAoreworICAgIGlmIChK
U1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKSB7CisgICAgICAgIC8vIFdlIGNhbm5v
dCB1c2UgYSBjYWNoZWQgb2JqZWN0IGlmIHdlIGFyZSBpbiBhIGRpZmZlcmVudCB3b3JsZCB0aGFu
IHRoZSBvbmUgaXQgd2FzIGNyZWF0ZWQgaW4uCisgICAgICAgIGlmICghY2FjaGVkVmFsdWUuaXNP
YmplY3QoKSB8fCAmd29ybGRGb3JET01PYmplY3QoY2FjaGVkVmFsdWUuZ2V0T2JqZWN0KCkpID09
ICZjdXJyZW50V29ybGQoJnN0YXRlKSkKKyAgICAgICAgICAgIHJldHVybiBjYWNoZWRWYWx1ZTsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgYXV0byYgZXZlbnQg
PSB3cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1bHQ7CisgICAgaWYgKGF1dG8qIHNlcmlhbGl6
ZWRWYWx1ZSA9IGV2ZW50LmRhdGEoKSkKKyAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplZFZhbHVl
LT5kZXNlcmlhbGl6ZShzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIGV2ZW50LnBvcnRzKCksIFNlcmlh
bGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3Vs
dCA9IGpzTnVsbCgpOworCisgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0IGhhdmUg
dG8gZGVzZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgorICAgIG1fZGF0YS5zZXQoc3RhdGUudm0o
KSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggYjJjYTg4NTVhOTQzYWE3ZDBlNzcwY2FlZjU4
ZWYxZTkyOGVhNzk3YS4uMzY5YTEwMmYzNDZlYjEzM2I3MDZlOGMyZTY2MDI3ODJmOTEzN2VkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRGF0YVRy
YW5zZmVySXRlbUxpc3QpIFwKICAgICBtYWNybyhEb2N1bWVudFRpbWVsaW5lKSBcCiAgICAgbWFj
cm8oRXh0ZW5kYWJsZUV2ZW50KSBcCisgICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCkg
XAogICAgIG1hY3JvKEZlZGVyYXRlZENyZWRlbnRpYWwpIFwKICAgICBtYWNybyhGZXRjaEV2ZW50
KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyNDU4
MzkxNTBiODBkZThlODM4MzQyNmZlOWZkY2RiMzBjMjAzZDMyLi5mMmJhN2FiMGY4YmZiNDRjZjMw
NDU0MTM5YzY5Y2EzNjJjZTY1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtODYzLDcgKzg2
Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJlcigpIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0OworICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIFN0cmluZyBkb21haW4oKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRE
b21haW4oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgpp
bmRleCBlODQyYmQzOTBhNjRkMTcwNWVjM2I5YzgxNjg1NDkwOTU1ZjFmYjc1Li43YzZiM2E1YTZh
M2VlOGI5ZDhmZTkzY2U3YTkzNTYxYWQxNzI1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5p
bgpAQCAtMTEsNiArMTEsNyBAQCBDbG9zZUV2ZW50CiBDb21wb3NpdGlvbkV2ZW50CiBDdXN0b21F
dmVudAogRXh0ZW5kYWJsZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCitFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBFcnJvckV2ZW50CiBG
ZXRjaEV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBGb2N1c0V2ZW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKaW5kZXggZGRkNzlhYTE3ZjY5MGRjZjE5M2Fh
OTNkMWNlMmQ1ZjFlMTVhMjA1NC4uYTA5NjI4YzYwMjUwZjhmMjlkZTM0NzU3NzIzMGRjMzBjYmEx
ZDNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hhbm5lbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAtOTIsNyAr
OTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFJldHVybnMgdGhlIGVudGFu
Z2xlZCBwb3J0IGlmIHJ1biBieSB0aGUgc2FtZSB0aHJlYWQgKHNlZSBNZXNzYWdlUG9ydDo6bG9j
YWxseUVudGFuZ2xlZFBvcnQoKSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgTWVzc2FnZVBv
cnQqIGxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IAotICAgICAgICB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CisgICAgICAgIFdFQkNPUkVfRVhQT1JU
IH5NZXNzYWdlUG9ydENoYW5uZWwoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxQ
bGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gbV9jaGFubmVsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggOTZkZGQ2MjA4YTY1OTEyMWI1YWQ4OGQx
ZTJlMTUyMzIzOWJhNTk3Yy4uMjY2ZjQ5YWVlYzA2M2ZjNDRiMGY4Yzc4ZDdlOTMwMTIzMTRlZGI3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0x
MTEsNiArMTExLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKIAogICAgIHZpcnR1YWwgU2Vj
dXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBv
cmlnaW4oKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldv
cmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDUzNzNkMjVjMmY4
OTkzZjkzOTg3ODMwZTllZmI0Y2Q2Y2Y1NjU3NjcuLmIxYTAxZDU4NzkxOWY1MTI3MzU0NmFjZTk2
MGQ4ZTRlMTRlOGNjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBjb25z
dCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgU3RyaW5nIG9y
aWdpbigpIGNvbnN0OworICAgIFN0cmluZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiBpZGJDb25uZWN0aW9uUHJveHkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKaW5kZXggOTdjNjdjNDNlYTU5MzE5MDYz
NWU0MWRjNGRhOTBlMzhkZGYyYWE2Yy4uMWQyMWZjNjc0NjFiNmU2YjZmNGVhNTgzNmM0YWVjMDFl
Mjc5NGFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVFdmVudC5jcHAKQEAgLTM3LDYgKzM3LDE1IEBAIEV4dGVuZGFibGVFdmVudDo6RXh0ZW5k
YWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50
CiB7CiB9CiAKK0V4dGVuZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUpCisgICAgOiBFdmVudCh0
eXBlLCBidWJibGVzLCBjYW5jZWxhYmxlKQoreworfQorCitFeHRlbmRhYmxlRXZlbnQ6On5FeHRl
bmRhYmxlRXZlbnQoKQoreworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBFeHRlbmRhYmxlRXZlbnQ6
OndhaXRVbnRpbChSZWY8RE9NUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGlmICghaXNUcnVz
dGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5k
YWJsZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2
ZW50LmgKaW5kZXggNzA3NDgwNTk3OWMxZWExMGJiNjQ0OTQ0NWRmNGMwODhlNGYzZWJhNC4uYmE3
OWE2YmYwYmY4MTA5OWMyMjJkZjg5NmMyYTkwNDBmYmM2NzEyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaApAQCAtNDIsNiArNDIsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVFdmVudCh0
eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7CiAgICAgfQogCisgICAgfkV4dGVuZGFibGVF
dmVudCgpOworCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBFeHRlbmRhYmxlRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiB3YWl0VW50aWwoUmVmPERPTVByb21pc2U+JiYpOwpAQCAtNTAsNiArNTIs
NyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBFeHRlbmRhYmxl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50SW5pdCYsIElz
VHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGJvb2wg
YnViYmxlcywgYm9vbCBjYW5jZWxhYmxlKTsKIAogICAgIFdlYWtQdHI8RXh0ZW5kYWJsZUV2ZW50
PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRy
KCp0aGlzKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGYxNmIyZGFiZTI4YmYx
YTBmYzdmZjRkMzMyOWMwNWZmYzNlM2FkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcApAQCAtMCwwICsx
LDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQorI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8RXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudD4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFZlY3RvcjxS
ZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRzLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElk
LCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYgc291cmNlKQor
eworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoV1RGTW92
ZShkYXRhKSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHBv
cnRzKSkpOworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50
KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZGF0YShTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZShzdGF0ZSwgaW5pdC5kYXRhKSkKKyAgICAsIG1fb3JpZ2luKGluaXQub3JpZ2lu
KQorICAgICwgbV9sYXN0RXZlbnRJZChpbml0Lmxhc3RFdmVudElkKQorICAgICwgbV9wb3J0cyhp
bml0LnBvcnRzKQoreworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50KFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YSwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIHN0ZDo6b3B0aW9uYWw8RXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8TWVzc2Fn
ZVBvcnQ+PiYmIHBvcnRzKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KGV2ZW50TmFtZXMoKS5tZXNz
YWdlRXZlbnQsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorICAg
ICwgbV9vcmlnaW4ob3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChsYXN0RXZlbnRJZCkKKyAg
ICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAsIG1fcG9ydHMoV1RGTW92ZShwb3J0
cykpCit7Cit9CisKK0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6On5FeHRlbmRhYmxlTWVzc2FnZUV2
ZW50KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA1ODdjYjg1ZWFmY2Vj
MDVhZDE0ZGJmZGRiNDJkYmY3ZjE2ZTRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKQEAgLTAsMCArMSw5
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQorCisjaW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50LmgiCisjaW5jbHVkZSAiRXh0ZW5kYWJs
ZUV2ZW50SW5pdC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnQuaCIKKyNpbmNsdWRlIDx3
dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEV4ZWNTdGF0ZTsKK2NsYXNz
IEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVzc2FnZVBvcnQ7
CitjbGFzcyBTZXJ2aWNlV29ya2VyOworY2xhc3MgU2VydmljZVdvcmtlckNsaWVudDsKKwordXNp
bmcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFNlcnZpY2VX
b3JrZXJDbGllbnQ+LCBSZWZQdHI8U2VydmljZVdvcmtlcj4sIFJlZlB0cjxNZXNzYWdlUG9ydD4+
OworCitjbGFzcyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV4dGVuZGFi
bGVFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFeHRlbmRhYmxlRXZlbnRJbml0
IHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGRhdGE7CisgICAgICAgIFN0cmluZyBvcmlnaW47Cisg
ICAgICAgIFN0cmluZyBsYXN0RXZlbnRJZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50U291cmNlPiBzb3VyY2U7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8TWVz
c2FnZVBvcnQ+PiBwb3J0czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50PiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVzdGVkID0g
SXNUcnVzdGVkOjpObykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVu
ZGFibGVNZXNzYWdlRXZlbnQoc3RhdGUsIHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0ZWQpKTsK
KyAgICB9CisKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ+IGNyZWF0ZShW
ZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mJiwgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSB7IH0sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50
SWQgPSB7IH0sIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBz
b3VyY2UgPSBzdGQ6Om51bGxvcHQpOworCisgICAgfkV4dGVuZGFibGVNZXNzYWdlRXZlbnQoKTsK
KworICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YS5nZXQoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9v
cmlnaW47IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkKCkgY29uc3QgeyByZXR1cm4g
bV9sYXN0RXZlbnRJZDsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudFNvdXJjZT4mIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CisgICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBwb3J0cygpIGNvbnN0IHsgcmV0dXJu
IG1fcG9ydHM7IH0KKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEludGVyZmFjZVR5cGU7IH0KKwor
cHJpdmF0ZToKKyAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEsIGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9wdGlvbmFs
PEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYsIFZlY3RvcjxSZWZQdHI8TWVzc2FnZVBv
cnQ+PiYmKTsKKworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fZGF0YTsKKyAg
ICBTdHJpbmcgbV9vcmlnaW47CisgICAgU3RyaW5nIG1fbGFzdEV2ZW50SWQ7CisgICAgc3RkOjpv
cHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiBtX3NvdXJjZTsKKyAgICBWZWN0
b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gbV9wb3J0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOTg0MGIwZmU4NDViOWQ0NjA4NDMxZWI1YWFjYTJlNWZjODE1NjM5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFi
bGVNZXNzYWdlRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Q29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnRJbml0IGV2ZW50SW5pdERpY3QpLAorICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2NyaXB0U3Rh
dGUsCisgICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1TZXJ2aWNlV29ya2VyLAorICAgIEV4cG9zZWQ9U2VydmljZVdvcmtlciwKK10gaW50ZXJmYWNl
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQgOiBFeHRlbmRhYmxlRXZlbnQgeworICAgIFtDYWNoZWRB
dHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRhOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb3JpZ2luOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbGFzdEV2ZW50SWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSAoU2VydmljZVdvcmtlckNsaWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQ
b3J0KT8gc291cmNlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxNZXNzYWdl
UG9ydD4gcG9ydHM7Cit9OworCitkaWN0aW9uYXJ5IEV4dGVuZGFibGVNZXNzYWdlRXZlbnRJbml0
IDogRXh0ZW5kYWJsZUV2ZW50SW5pdCB7CisgICAgYW55IGRhdGEgPSBudWxsOworICAgIFVTVlN0
cmluZyBvcmlnaW4gPSAiIjsKKyAgICBET01TdHJpbmcgbGFzdEV2ZW50SWQgPSAiIjsKKyAgICAo
U2VydmljZVdvcmtlckNsaWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQb3J0KT8gc291
cmNlID0gbnVsbDsKKyAgICBzZXF1ZW5jZTxNZXNzYWdlUG9ydD4gcG9ydHMgPSBbXTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5k
ZXggNjZkNzNiZTg3NDA5NDNhMTdlNDVmNmNhODJjYWQ1YmZiNWY1M2U2OC4uYjJmYjJmMmY2ODA0
NTE5YzRhMjBmYTc2MmRmODYwYzVmYTgyOGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcApAQCAtMjgsMTAgKzI4LDQ5IEBACiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgorI2lu
Y2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFsdWVJbmxp
bmVzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8dm9pZD4gU2Vydmlj
ZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUsIFZlY3Rv
cjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJikKK1NlcnZpY2VXb3JrZXI6OlNlcnZpY2VX
b3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3Qgc2VydmljZVdv
cmtlcklkZW50aWZpZXIpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4
dCkKKyAgICAsIG1faWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKK30KKwor
RXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBKU0M6OkpTVmFsdWUgbWVzc2FnZVZhbHVlLCBWZWN0b3I8SlNDOjpTdHJvbmc8
SlNDOjpKU09iamVjdD4+JiYgdHJhbnNmZXIpCiB7CisgICAgaWYgKHRoaXMtPnN0YXRlKCkgPT0g
U3RhdGU6OlJlZHVuZGFudCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCBBU0NJSUxpdGVyYWwoIlNlcnZpY2UgV29ya2VyIHN0YXRlIGlzIHJlZHVuZGFudCIp
IH07CisKKyAgICAvLyBGSVhNRTogSW52b2tlIFJ1biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0g
d2l0aCBzZXJ2aWNlV29ya2VyIGFzIHRoZSBhcmd1bWVudC4KKworICAgIFZlY3RvcjxSZWZQdHI8
TWVzc2FnZVBvcnQ+PiBwb3J0czsKKyAgICBhdXRvIG1lc3NhZ2UgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShzdGF0ZSwgbWVzc2FnZVZhbHVlLCBXVEZNb3ZlKHRyYW5zZmVyKSwgcG9y
dHMsIFNlcmlhbGl6YXRpb25Db250ZXh0OjpXb3JrZXJQb3N0TWVzc2FnZSk7CisgICAgaWYgKG1l
c3NhZ2UuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBtZXNzYWdlLnJlbGVhc2VFeGNl
cHRpb24oKTsKKworICAgIC8vIERpc2VudGFuZ2xlIHRoZSBwb3J0IGluIHByZXBhcmF0aW9uIGZv
ciBzZW5kaW5nIGl0IHRvIHRoZSByZW1vdGUgY29udGV4dC4KKyAgICBhdXRvIGNoYW5uZWxzT3JF
eGNlcHRpb24gPSBNZXNzYWdlUG9ydDo6ZGlzZW50YW5nbGVQb3J0cyhXVEZNb3ZlKHBvcnRzKSk7
CisgICAgaWYgKGNoYW5uZWxzT3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBjaGFubmVsc09yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IHNlbmRpbmcgdGhlIGNoYW5uZWxzLgorICAgIGF1dG8gY2hhbm5lbHMgPSBj
aGFubmVsc09yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIGlmIChjaGFubmVs
cyAmJiAhY2hhbm5lbHMtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoIlBhc3NpbmcgTWVzc2FnZVBvcnQgb2JqZWN0
cyB0byBwb3N0TWVzc2FnZSBpcyBub3QgeWV0IHN1cHBvcnRlZCIpIH07CisKKyAgICBpZiAoIXNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCIp
IH07CisKKyAgICBhdXRvJiBzd0Nvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNp
bmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShtX2lkZW50aWZpZXIsIG1lc3NhZ2UucmVsZWFzZVJl
dHVyblZhbHVlKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+b3JpZ2luKCkpOworCiAgICAg
cmV0dXJuIHsgfTsKIH0KIApAQCAtNDIsNyArODEsNyBAQCBjb25zdCBTdHJpbmcmIFNlcnZpY2VX
b3JrZXI6OnNjcmlwdFVSTCgpIGNvbnN0CiAKIFNlcnZpY2VXb3JrZXI6OlN0YXRlIFNlcnZpY2VX
b3JrZXI6OnN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RhdGU6OlJlZHVuZGFudDsKKyAg
ICByZXR1cm4gU3RhdGU6OkFjdGl2YXRlZDsKIH0KIAogRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2Vy
dmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdApAQCAtNTIsNyArOTEsNyBA
QCBFdmVudFRhcmdldEludGVyZmFjZSBTZXJ2aWNlV29ya2VyOjpldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFNlcnZpY2VXb3JrZXI6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogewotICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAppbmRleCA0MGUxMmRlMWIyMzU5NWVjODlkNDhjMThj
ZWNhZGNlNDA2YmIzZTg4Li5iMzk4ZDRkOTcxODNiMTY0NzJhNWRkM2I0OTIxYjllNDE5MTQwMTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgK
QEAgLTI3LDggKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNs
dWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0
LmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKQEAgLTM5LDkgKzQxLDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiAKLWNsYXNzIFNlcnZpY2VXb3Jr
ZXIgZmluYWwgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CitjbGFzcyBTZXJ2
aWNlV29ya2VyIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlcj4sIHB1Ymxp
YyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKEZy
YW1lJiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyKGZyYW1lKSk7
IH0KKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoY29udGV4dCwgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpKTsKKyAgICB9CisKICAgICB2aXJ0dWFsIH5TZXJ2aWNlV29y
a2VyKCkgPSBkZWZhdWx0OwogCiAgICAgZW51bSBjbGFzcyBTdGF0ZSB7CkBAIC01NywxMyArNjMs
MjAgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpF
eGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6
SlNPYmplY3Q+PiYmKTsKIAorICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2lu
ZyBSZWZDb3VudGVkOjpkZXJlZjsKKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29y
a2VyKEZyYW1lJik7CisgICAgU2VydmljZVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
dWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCBFdmVudFRh
cmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Owog
ICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJl
ZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB1aW50NjRfdCBtX2lkZW50
aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5k
ZXggZTgzMGE4ZGE3M2Y5MGQ3ZWUyMzIwZmZiMDJhZGU4MWNkMTMxZjk3OS4uNTZkNTZjN2Y4NDI1
NWY4YjI5YjIwOGFmODk1MzQ3NTI2MjdjZTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzgs
NiArMzgsNyBAQAogI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYi5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVy
LmgiCkBAIC03NCw3ICs3NSwxNCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmRlcmVm
RXZlbnRUYXJnZXQoKQogCiBTZXJ2aWNlV29ya2VyKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpj
b250cm9sbGVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiBjb250
ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCB8fCAhY29u
dGV4dC0+c2VsZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKSB7CisgICAgICAgIG1fY29u
dHJvbGxlciA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBp
ZiAoIW1fY29udHJvbGxlciB8fCBtX2NvbnRyb2xsZXItPmlkZW50aWZpZXIoKSAhPSBjb250ZXh0
LT5zZWxlY3RlZFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKCkpCisgICAgICAgIG1fY29udHJvbGxl
ciA9IFNlcnZpY2VXb3JrZXI6OmNyZWF0ZSgqY29udGV4dCwgY29udGV4dC0+c2VsZWN0ZWRTZXJ2
aWNlV29ya2VySWRlbnRpZmllcigpKTsKKyAgICByZXR1cm4gbV9jb250cm9sbGVyLmdldCgpOwog
fQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBT
dHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjb25zdCBSZWdpc3RyYXRpb25PcHRpb25zJiBvcHRp
b25zLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCAx
NWY1NmQxZmVlMjQ0NTQ1NzVhYWEzOGNmY2MxODAwMWZjNDUyMjYyLi5hZTZkYTFiZTczNGU2OTYz
YjdiNWZlODBiOWE0NGE2OTBhYWJkMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTk0LDYgKzk0LDcg
QEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxTV0NsaWVudENvbm5lY3Rpb24+IG1fc3dDb25uZWN0
aW9uOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9q
b2JNYXA7CisgICAgbXV0YWJsZSBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9jb250cm9sbGVyOwog
CiAjaWZuZGVmIE5ERUJVRwogICAgIFRocmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRocmVhZCB7
IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBhNmQwYmZkMjZj
YWNlZWQ2NDUzODU4ZTQ3NDk0M2FiYzBjM2Q1YmNiLi42ZTE3ZGRjZGI4YjFjYmQwNmY0NmM5NTdj
YzQ4MjRlZmFhOThlMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNTgsNiArNTgsMTEg
QEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKIH0KIAorU2VydmljZVdvcmtlclRocmVhZCYgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlOjp0aHJlYWQoKQoreworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxTZXJ2aWNlV29ya2VyVGhyZWFkJj4oV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IGRjNDBjNmYzNDk4MmFlMzYyNzdiMmE0NGM0NWM0
NTMyOTU3OGFmODYuLjcyYzBlZjI3YzJiNDEwZjlhNTY0MjM1ZjA5ZTExMmM3Zjc3MzYwMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmgKQEAgLTU3LDYgKzU3LDggQEAgcHVibGljOgogCiAgICAgRXZlbnRU
YXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbDsKIAorICAg
IFNlcnZpY2VXb3JrZXJUaHJlYWQmIHRocmVhZCgpOworCiBwcml2YXRlOgogICAgIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgU2VydmljZVdvcmtlclRocmVhZCYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4sIElEQkNs
aWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBQQUw6OlNlc3Npb25J
RCk7CiAKQEAgLTY3LDQgKzY5LDkgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeyByZXR1cm4gaXM8V2ViQ29yZTo6V29ya2VyR2xv
YmFsU2NvcGU+KGNvbnRleHQpICYmIGRvd25jYXN0PFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KS5pc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpOyB9CisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Oldvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0KSB7IHJl
dHVybiBjb250ZXh0LmlzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCk7IH0KK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRU5EKCkKKwogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggMzgxOGU5OTExYWQzMjdhODQ4MWI2ZGZhMjk4
NDM4ZDgxMmJjMzY3YS4uOWI1MTM1NzI3ZTI1YWVhNWM0Y2ZhZjczNmE2MjZjNWRkN2VmY2YzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNw
b25zZUhlYWRlcnMuaCIKKyNpbmNsdWRlICJFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTEwMCw2ICsxMDEsMTcg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29y
a2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrIHRhc2soW2NoYW5uZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZN
b3ZlKG1lc3NhZ2UpLCBzb3VyY2VPcmlnaW4gPSBzb3VyY2VPcmlnaW4uaXNvbGF0ZWRDb3B5KCld
IChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0
byYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlPihjb250ZXh0KTsKKyAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRh
bmdsZVBvcnRzKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShjaGFubmVscykpOwor
ICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuZGlzcGF0Y2hFdmVudChFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSksIHNv
dXJjZU9yaWdpbikpOworICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCku
d29ya2VyT2JqZWN0UHJveHkoKS5jb25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3Qoc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmhhc1BlbmRpbmdBY3Rpdml0eSgpKTsKKyAgICB9KTsKKyAgICBy
dW5Mb29wKCkucG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuaAppbmRleCA5NTRkYWY2MDgyY2NlZjZiZDkzNTgxMmE3MDdjZGVlMGJmMDNjOWJiLi43
MzcyODExYTk5MWQ0NWNmYWQ1YzVhMGUwYWFjYzBhYzFmNzZhOGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oCkBAIC0zNSw5ICszNSwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7CitjbGFzcyBNZXNzYWdlUG9y
dENoYW5uZWw7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXb3JrZXJPYmpl
Y3RQcm94eTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiAKK3VzaW5nIE1lc3Nh
Z2VQb3J0Q2hhbm5lbEFycmF5ID0gVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENo
YW5uZWw+LCAxPjsKKwogY2xhc3MgU2VydmljZVdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJU
aHJlYWQsIHB1YmxpYyBUaHJlYWRTYWZlSWRlbnRpZmllZDxTZXJ2aWNlV29ya2VyVGhyZWFkPiB7
CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxTZXJ2
aWNlV29ya2VyVGhyZWFkPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCkBAIC00OSw2ICs1Myw3IEBA
IHB1YmxpYzoKICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25z
dCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBSZXNv
dXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIGNv
bnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKIAogcHJvdGVjdGVkOgogICAgIFJlZjxXb3JrZXJH
bG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgQ29udGVudFNl
Y3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3ksIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIE1v
bm90b25pY1RpbWUgdGltZU9yaWdpbiwgUEFMOjpTZXNzaW9uSUQpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25u
ZWN0aW9uLmgKaW5kZXggOWM4YTE3MGYxMmQxZjdkN2Y3ZjFlNWJkZTJhZWIzNzEzODNjMDVjMS4u
NDIyMmI1OWM2YTMxMTU3NGY4MGU1ZjcxYjE0NmU1NTI2MmUyZDk3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVj
dGlvbi5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVz
b3VyY2VFcnJvcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgU2VyaWFsaXplZFNjcmlw
dFZhbHVlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1
Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0OwpAQCAtNDgsNiArNDksNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iJik7CiAgICAgdm9pZCBmaW5pc2hl
ZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJj
ZUVycm9yJik7CisgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSA9IDA7CiAKICAgICB2
aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRl
eCBmNThjMTc1OWJhNjBhYTFiMWRkZWE1NzM4OWU0NjkzYmMzNzA2NGQ0Li5jNGI2Y2VhMzZmNTUx
Y2YwMzNjNDU3MTcyZmUzYTEwNzcyMmZhZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcApAQCAtMTAwLDYgKzEwMCwxMSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVj
dGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZp
YwogICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXI6OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7CiB9CiAKK3ZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIHNlbmRUb0NvbnRl
eHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNlT3JpZ2luKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSh1aW50NjRfdCBmZXRjaElkZW50
aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIG1fY29udGVu
dENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlk
UmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA3Y2M3NmJkYzlhZGJjZDkzNTAxMTFiNGZl
MGJiM2UwMmI3NjYyYWMwLi4zYTU3MjBiZWU3MThjOTFhOWU2MTJiYjcwZmU2OWJiOGRiZGI1YjA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC02NSw2ICs2NSw4IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVy
LCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJik7CiAKKyAgICB2b2lkIHBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VPcmlnaW4pOworCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGNvbnRleHQg
V2ViUHJvY2VzcwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZjNkYjNiOTBkYWU5
M2E5MjZkZjViYmRlYTFhMzc3OTUzNDY2NDkxMi4uM2IyMDQ1YzY0NDRhZGNkMThkYjRjZmVjYzUx
ZWZjMzk0YjIxMmQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVy
Q29ubmVjdGlvbiB7CiAgICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0IHJlc3VsdCkKIAogICAgIFN0YXJ0RmV0Y2go
dWludDY0X3QgaWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zIG9wdGlvbnMpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3Nh
Z2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAppbmRleCAwZGVmMzU0YzNjY2Vh
ZDc3YjllMWVlNDQ4NWFjYjY5NDJjNGNkYjU0Li5kYjE3ZGQzNThhOTgyZDQ5MzljOWY2ODhmZmRh
NWUzYmI1Njg4NDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKQEAgLTI4LDEy
ICsyOCwxNSBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTdG9yYWdlUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVzc2FnZVBvcnRDaGFubmVsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKQEAgLTY4LDYgKzcxLDE2IEBAIHZvaWQgU2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyCiAgICAgc2VydmljZVdvcmtlclRocmVhZC0+cG9zdEZldGNoVGFzayhXVEZN
b3ZlKGNsaWVudCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOwogfQogCit2
b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAgYXV0byogd29ya2VyVGhy
ZWFkID0gbV93b3JrZXJUaHJlYWRNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAg
ICBpZiAoIXdvcmtlclRocmVhZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBwYXNzIHZhbGlkIE1lc3NhZ2VQb3J0Q2hhbm5lbHMuCisgICAgd29ya2VyVGhyZWFk
LT5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIG51bGxwdHIsIHNvdXJjZU9yaWdpbik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKaW5kZXggOGQyMDBjMGYzNDA1ZDQwZGQ3
MzNjNWQzOWI3Yjg1NzRiODRmYmYyZi4uNjk0ZmY3NWYxYTg4NTM5NDQxZGYxNmJmYTgyMzc1NjMx
NjIxYTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKQEAgLTUyLDYgKzUyLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNv
bnRleHREYXRhJik7CiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiYpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZD4+IG1fd29ya2VyVGhyZWFkTWFwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGVkY2RkOGIzNjQ2
MTRkNDcwZTU2MGEyYmUyMmQ1OWEyNTNiMjBjYjIuLjg2NjYzZjgxZTdjYTBiODZlNjYzY2Y5NGJm
MDU1ZTVjYjA0ZDVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlciB7CiAgICAgU3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRh
IGNvbnRleHREYXRhKQogICAgIFN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBT
dHJpbmcgc291cmNlT3JpZ2luKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4
IGJiMWUxY2M5YTk1ZWI4Njk2NDExOTk4MjEwNTA1NDY2OGVjYjQ5ZWIuLjMwODZlYTRmYzBlYmYx
YjhkNDZjNDU5YTRmMTNmZTkyNjM1YTk1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjgs
MTIgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNs
dWRlICJXZWJTV09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckZldGNoUmVzdWx0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oPgogCkBAIC02Niw2ICs2OCwxMSBAQCB2b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25z
dCBTZXJ2aWNlV29ya2VyRmV0YwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVj
dGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1bHQpKTsKIH0KIAordm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYgc2NyaXB0VmFsdWUsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVm
ZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBzb3VyY2VPcmlnaW4pKTsKK30KKwogYm9v
bCBXZWJTV0NsaWVudENvbm5lY3Rpb246Omhhc1NlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3Jp
Z2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
c3dPcmlnaW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOTFi
OWY4YzYyNGNlYTFhZmU2NTI2OGU4NDg0OGJjNjI0YmVmZDRkMy4uMWNkMjkyOTllM2ZkM2MyZmM5
Mjg4ZTE4NjBhZDU0MDMxMGNlNTQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTU2LDYgKzU2LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1Nj
cmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZp
bmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50
NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFsOwogCiAgICAgdm9p
ZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmIzNTQx
YTc4Mjc1M2VmNTA5MWFlNTY3NDIyNDg1YzlhNWUxODVkNy4uZTk5ZWM0M2FjNThkZWZiYmRhNGJj
ZjgxZTFkYTNiYTJlMGI4ZWEyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTEwLTIzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1w
bGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVy
YWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2Vydmlj
ZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3Nh
Z2UuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFz
aWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qczogQWRkZWQuCisKIDIwMTctMTAtMjQgIERh
dmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVncmVzc2lvbl0g
V2Via2l0ICItYXBwbGUtc3lzdGVtIiBmb250IGZhbGxiYWNrIHRva2VuIGhhbmRsZXMgZm9udCB3
ZWlnaHRzIG9mIFBpbmdGYW5nIGluY29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2Fn
ZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZDEyMjM1NDc1ZjFlZWI1OTMyM2RlYmUwZGYxNWU2ODI1MGVhNjdjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFz
aWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACitQQVNTOiBTdGF0dXMgY29kZSBpcyAyMDAKK1BBU1M6IFN0YXR1cyB0ZXh0IGlzIFdv
cmtlciByZWNlaXZlZCB0aGUgbWVzc2FnZSBldmVudC4gbWVzc2FnZUV2ZW50Lm9yaWdpbiB3YXMg
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MworUEFTUzogU291cmNlIGlzIFNlcnZpY2Ugd29ya2VyCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0
cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kODE3MGM2YmQ2MTA3ZjVlM2E4Y2QxNmJjM2JjZDFmMTlmMDE0
MDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy5odG1sCkBAIC0wLDAg
KzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS13b3JrZXIuanMg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMt
U2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQzOTViMmE2
ZDNkNmY1YTY3MzQ5ZmNiNzA2ZDhhYjQ3NTY2YmFiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNl
V29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qcwpAQCAtMCwwICsxLDE0IEBACitsZXQgcmVzcG9u
c2VUb1NlbmQgPSB7IHN0YXR1czogNDA0LCBzdGF0dXNUZXh0OiAiTm90IEZvdW5kIiB9OworCitz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICByZXNwb25z
ZVRvU2VuZCA9IGV2ZW50LmRhdGE7CisgICAgcmVzcG9uc2VUb1NlbmQuc3RhdHVzVGV4dCArPSAi
IG1lc3NhZ2VFdmVudC5vcmlnaW4gd2FzICIgKyBldmVudC5vcmlnaW47Cit9KTsKKworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5yZXF1
ZXN0LnVybC5pbmRleE9mKCJ0ZXN0MSIpICE9PSAtMSkgeworICAgICAgICBldmVudC5yZXNwb25k
V2l0aChuZXcgUmVzcG9uc2UobnVsbCwgcmVzcG9uc2VUb1NlbmQpKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBldmVudC5yZXNwb25kV2l0aChSZXNwb25zZS5lcnJvcigpKTsKK30pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtlci1wb3N0
TWVzc2FnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmE0MWNhMDg2ODhiNDgzYWU4MjRiMjM2NTUzMTcwN2Nk
MDhlN2NjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMKQEAg
LTAsMCArMSwzNyBAQAorZnVuY3Rpb24gZG9uZSgpCit7CisgICAgZmluaXNoU1dUZXN0KCk7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIGF3YWl0IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvYmFzaWMtU2VydmljZVdv
cmtlci1wb3N0TWVzc2FnZS13b3JrZXIuanMiLCB7IH0pOworCisgICAgICAgIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoeyBzdGF0dXM6IDIwMCwgc3RhdHVz
VGV4dDogIldvcmtlciByZWNlaXZlZCB0aGUgbWVzc2FnZSBldmVudC4iIH0pOworCisgICAgICAg
IGxldCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJ0ZXN0MSIpOworICAgICAgICBpZiAocmVzcG9u
c2Uuc3RhdHVzID09IDIwMCkKKyAgICAgICAgICAgIGxvZygiUEFTUzogU3RhdHVzIGNvZGUgaXMg
IiArIHJlc3BvbnNlLnN0YXR1cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJ
TDogU3RhdHVzIGNvZGUgaXMgIiArIHJlc3BvbnNlLnN0YXR1cyk7CisKKyAgICAgICAgaWYgKHJl
c3BvbnNlLnN0YXR1c1RleHQuc3RhcnRzV2l0aCgiV29ya2VyIHJlY2VpdmVkIHRoZSBtZXNzYWdl
IikpCisgICAgICAgICAgICBsb2coIlBBU1M6IFN0YXR1cyB0ZXh0IGlzICIgKyByZXNwb25zZS5z
dGF0dXNUZXh0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMOiBTdGF0dXMg
dGV4dCBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGxldCBzb3VyY2UgPSBpbnRlcm5hbHMuZmV0Y2hSZXNw
b25zZVNvdXJjZShyZXNwb25zZSk7CisgICAgICAgICAgICBpZiAoc291cmNlID09PSAiU2Vydmlj
ZSB3b3JrZXIiKQorICAgICAgICAgICAgICAgIGxvZygiUEFTUzogU291cmNlIGlzICIgKyBzb3Vy
Y2UpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxvZygiRkFJTDogU291cmNl
IGlzICIgKyBzb3VyY2UpOworICAgICAgICB9CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGxv
ZygiR290IGV4Y2VwdGlvbjogIiArIGUpOworICAgIH0KKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30K
KwordGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324713</attachid>
            <date>2017-10-24 13:29:45 -0700</date>
            <delta_ts>2017-10-24 14:22:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178534-20171024132944.patch</filename>
            <type>text/plain</type>
            <size>61680</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkwY2VjZjc3NDllZjUy
NDdjMWYyNzEyM2EwZDM2ZDUzY2VjMjhiMy4uMGU2OTY0NmZmYTM3NGY4MDZjMDFkNDEzMjdiMThj
OWRhNTIwYTk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE3LTEwLTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NTM0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRp
b24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKToKKyAgICAgICAgLSBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItcG9zdG1lc3NhZ2UKKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29y
a2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpK
U0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OmRhdGEgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBkb20vRXZlbnROYW1lcy5pbjoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnRDaGFu
bmVsLmg6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlRXZlbnQ6
OkV4dGVuZGFibGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRhYmxlRXZlbnQ6On5F
eHRlbmRhYmxlRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZl
bnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGFibGVNZXNzYWdlRXZlbnQ6OkV4dGVuZGFi
bGVNZXNzYWdlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dDo6fkV4dGVuZGFibGVNZXNzYWdlRXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
cjo6U2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0
TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzdGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xsZXIgY29uc3QpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAo
aXNUeXBlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorCiAyMDE3LTEwLTI0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXBwbHkgY3Vz
dG9tIGhlYWRlciBmaWVsZHMgZnJvbSBXZWJzaXRlUG9saWNpZXMgdG8gc2FtZS1kb21haW4gcmVx
dWVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggOGFmYjljNTM3OTRhZTdkM2RkNzE5YTQ1MzE0OWFjMzc2YTZlNzA1
NC4uYmZlYjI5ZTA1ZWU2MGM0NGU0MzAzMWZiZDgwZGZjYTliMDJhYjA2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxNy0xMC0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIGZvciBzZXJ2aWNlV29ya2Vy
LnBvc3RNZXNzYWdlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIGZvciBzZXJ2aWNlV29ya2VyLnBvc3RN
ZXNzYWdlKCk6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIv
I3NlcnZpY2Utd29ya2VyLXBvc3RtZXNzYWdlCisKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGll
bnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisKIDIw
MTctMTAtMjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRvcHQgbmV3IHNlY3VyZSBjb2RpbmcgQVBJcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZDEx
ODI0MjEyMDg1NWUwYjIzZGI2ZDFjMjE0MTc1YWM3NDM4YmJmLi45NjU5ZWZlYzg2ZmQ5ZWNlMjli
NTNiODkyNDExZDVlOTliY2I4MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODAxLDYgKzgw
MSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAKICAgICB3b3JrZXJzL3NlcnZp
Y2UvRXh0ZW5kYWJsZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZl
bnRJbml0LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmlk
bAogICAgIHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyLmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50LmlkbApAQCAtMjI0Nyw2ICsyMjQ4LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHdv
cmtlcnMvV29ya2VyVGhyZWFkLmNwcAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVF
dmVudC5jcHAKKyAgICB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAK
ICAgICB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlci5jcHAKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDA4M2NlMDU5YzgyMTY3NTEw
YTRjYTFhY2VhZTVhYjZkYzMwZjBlMWEuLjg5YmRhNzVjNmNjYzQzZDc3ZTg4MmRiM2U2MzcxNGY3
YjY4YTBkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTIyLDYgKzkyMiw3
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyVHlw
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudEluaXQu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IGI1ZGE4NzFjOGQ0MzY5MzE1MTAzMWM2NzgzOWNhMDIxZGUxZWE5NDEu
LmRkYzNjZTg5ZjlhZTE3MDljZWQ3MDE5ODg2NmYxZmU3ZmJjYjQ2NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0zNzAsNiArMzcwLDcgQEAgYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCiBiaW5k
aW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cAogYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbUVu
dHJ5Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKIGJp
bmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTA4MCw2ICsxMDgxLDcgQEAg
SlNFdmVudFNvdXJjZS5jcHAKIEpTRXZlbnRUYXJnZXQuY3BwCiBKU0V4dGVuZGFibGVFdmVudC5j
cHAKIEpTRXh0ZW5kYWJsZUV2ZW50SW5pdC5jcHAKK0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5j
cHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbC5jcHAKIEpTRmVkZXJhdGVkQ3JlZGVudGlhbEluaXQu
Y3BwCiBKU0ZlZGVyYXRlZENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwOTQyODU0
NmRkZDBmNGQxMjQ3ZjExYjNkZDY0NWI5MmNmMjMxMmI3Li4wYTZjYzRkNmU2Y2QzMTk5NzQ3NTY2
Yjg4YzhiMmViNmM2YmI5ZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTU1LDYgKzI5NTUsNyBAQAogCQk4MzA3ODRCMjFD
NTJFRTJDMDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMDc4NEIxMUM1MkVFMTkwMDEwNEQxRCAvKiBYTUxEb2N1
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTgzMEEzNkJEMURBQzVGQUQwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzBBMzZCQjFEQUM1RkE3MDA2
RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovOyB9OwogCQk4MzEyMEM3MDFDNTZGM0Y2MDAx
Q0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzMUQxRjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVs
ZW1lbnQuY3BwICovOyB9OworCQk4MzEwMkIyNzFGOUVBREQ5MDBFNDA0QjkgLyogSlNFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzEwMkIyMzFGOUVBREMyMDBFNDA0QjkgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmggKi87IH07CiAJCTgzMTIwQzcxMUM1NkYzRkIwMDFDQjExMiAvKiBIVE1MRGF0YUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNEI4
NkE3MUM1NkU4M0EwMEYzRjBFMyAvKiBIVE1MRGF0YUVsZW1lbnQuaCAqLzsgfTsKIAkJODMyMTUw
N0UxRjI3RUExQjAwOTVCMTM2IC8qIE5hdmlnYXRvckJlYWNvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMyMTUwN0IxRjI3RUExNTAwOTVCMTM2IC8q
IE5hdmlnYXRvckJlYWNvbi5oICovOyB9OwogCQk4MzJCODQzNDE5RDhFNTUxMDBCMjYwNTUgLyog
U1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzJCODQzMzE5RDhFNTUxMDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1l
bnRCYXNlLmggKi87IH07CkBAIC0yOTk4LDYgKzI5OTksOCBAQAogCQk4Mzc5NjRDRjFGOERCNjlE
MDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAwMjZC
OUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6
YWJsZS5zdHJpbmdzZGljdCAqLzsgfTsKIAkJODM3QjdEMjAxREMzRjU1MDAwRDA1MUZDIC8qIFZh
bGlkYXRpb25CdWJibGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRhdGlvbkJ1YmJsZUlP
Uy5tbSAqLzsgfTsKKwkJODM3RkIzNDQxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
ICovOyB9OworCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
RkIzNDAxRjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsgfTsK
IAkJODM4NkE5NkQxOUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4NkE5NkMxOUY2MUIyRTAwRTFF
QzRBIC8qIFN0eWxlQnVpbGRlci5oICovOyB9OwogCQk4Mzg4NjczNTFEMTNCQTVGMDAzNjk3RDAg
LyogUmVuZGVyT2JqZWN0RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzODg2NzM0MUQxM0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVt
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgz
OEVGNTM4MURDMTQ5RTIwMDhGMEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTM2MURDMTQ5REEwMDhG
MEMzOSAvKiBJREJUcmFuc2FjdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA3MjAsNiArMTA3MjMsOSBAQAogCQk4MzA3ODRCMTFD
NTJFRTE5MDAxMDREMUQgLyogWE1MRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gWE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMw
QTM2QkExREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb3VzZUV2ZW50SW5pdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJCMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNl
RXZlbnRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTW91c2VFdmVu
dEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjMxRjlFQURDMjAw
RTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODMxMDJCMjUxRjlFQURDMjAwRTQwNEI5IC8qIEpTRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MzFDNDZDMzFGOUVFNUUwMDBFQkQ0NTAgLyogSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMUQx
RjI5MUM1NkVDQTAwMEY1RjZDMCAvKiBIVE1MRGF0YUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODMyMTUwN0ExRjI3RUExNTAwOTVCMTM2IC8qIE5hdmlnYXRvckJl
YWNvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0b3JCZWFjb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzIxNTA3QjFGMjdFQTE1MDA5NUIxMzYgLyogTmF2aWdh
dG9yQmVhY29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRvckJlYWNvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MDMsNiArMTA4MDksOSBAQAogCQk4MzdBODAxMjFFMUUx
MjczMDAwMjZCOUYgLyogRW5nbGlzaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nc2RpY3Q7IG5hbWUgPSBFbmdsaXNoOyBw
YXRoID0gRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMgLyogVmFsaWRhdGlv
bkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZh
bGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzN0RG
QjM0MUVCRkVBNzAwMDYwMTM4NSAvKiBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuZGFibGVN
ZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM3RkIzNDIxRjlF
QTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzN0ZCMzQzMUY5RUEwNjgwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM4NkE5NkMx
OUY2MUIyRTAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHlsZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM4NkE5NkUxOUY2MUU0RjAwRTFFQzRBIC8qIFN0eWxlQnVpbGRlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4Mzg4NjczNDFEMTNCQTU5MDAzNjk3RDAgLyogUmVuZGVyT2JqZWN0
RW51bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyT2JqZWN0RW51
bXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTc5LDYgKzE4MTg4LDggQEAK
IAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuY3BwICov
LAogCQkJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MyAvKiBKU0V4dGVuZGFibGVFdmVudC5oICov
LAogCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1NCAvKiBKU0V4dGVuZGFibGVFdmVudEluaXQu
Y3BwICovLAorCQkJCTgzMTAyQjI1MUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNz
YWdlRXZlbnQuY3BwICovLAorCQkJCTgzMTAyQjIzMUY5RUFEQzIwMEU0MDRCOSAvKiBKU0V4dGVu
ZGFibGVNZXNzYWdlRXZlbnQuaCAqLywKIAkJCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTIgLyog
SlNGZXRjaEV2ZW50LmNwcCAqLywKIAkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTIgLyogSlNG
ZXRjaEV2ZW50LmggKi8sCiAJCQkJNTFGODg2QkUxRjMyOTIwNzAwQzE5M0VGIC8qIEpTTmF2aWdh
dG9yU2VydmljZVdvcmtlci5jcHAgKi8sCkBAIC0xODI3MCw2ICsxODI4MSw5IEBACiAJCQkJNDFB
RjM3OEUxRjhDMUU3QzAwMTExQzMxIC8qIEV4dGVuZGFibGVFdmVudC5pZGwgKi8sCiAJCQkJNDEz
MUYzQjQxRjk1NUJDMzAwNTk5OTVBIC8qIEV4dGVuZGFibGVFdmVudEluaXQuaCAqLywKIAkJCQk0
MTMxRjNCNTFGOTU1QkM1MDA1OTk5NUEgLyogRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgKi8sCisJ
CQkJODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3Bw
ICovLAorCQkJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmggKi8sCisJCQkJODM3RkIzNDMxRjlFQTA2ODAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQuaWRsICovLAogCQkJCTQxQUYzNzk0MUY4REE0OTUwMDExMUMzMSAvKiBGZXRjaEV2
ZW50LmNwcCAqLywKIAkJCQk0MUFGMzc4ODFGOEMxRTc5MDAxMTFDMzEgLyogRmV0Y2hFdmVudC5o
ICovLAogCQkJCTQxQUYzNzhEMUY4QzFFN0IwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmlkbCAqLywK
QEAgLTE5NzM5LDYgKzE5NzUzLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJREVDMjk3NUQxQjRERUIyQTAwNUY1OTQ1IC8qIEpTQ3VzdG9tRXZlbnRDdXN0b20u
Y3BwICovLAorCQkJCTgzMUM0NkMzMUY5RUU1RTAwMEVCRDQ1MCAvKiBKU0V4dGVuZGFibGVNZXNz
YWdlRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTQxMzFGM0IxMUY5NTUyODEwMDU5OTk1QSAvKiBK
U0ZldGNoRXZlbnRDdXN0b20uY3BwICovLAogCQkJCUJDRTdCMTkyMEQ0RTg2OTYwMDc1QTUzOSAv
KiBKU0hpc3RvcnlDdXN0b20uY3BwICovLAogCQkJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAv
KiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8sCkBAIC0yNzM0Myw2ICsyNzM1OCw3IEBACiAJ
CQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRjY0NTYyMUY0NTM5OEYwMEI1NERFRCAvKiBFeGNlcHRpb25EYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0QxOTYzMTFENkNBQjc2MDBGQzdFNDcgLyogRXhjZXB0aW9uT3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTgzN0ZCMzQ1MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMURDREY0NDFEQTFDNDU0MDBF
QTVCOTMgLyogRXh0ZW5kZWRDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkxMjgw
RThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0Qy
QTcxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODA4Nyw2ICsyODEwMyw3IEBACiAJCQkJNDZCNjNGNkMxQzZFOEQxOTAwMkU5MTRCIC8q
IEpTRXZlbnRUYXJnZXRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTcyNEVEMzMyMUEzQThC
MjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRD
OTZERDFBRDQ0ODM1MDAzNjVBNTMgLyogSlNFeHRlbmRhYmxlRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTgzMTAyQjI3MUY5RUFERDkwMEU0MDRCOSAvKiBKU0V4dGVuZGFibGVNZXNzYWdlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNDMwNEI2MTkxQUVGNDYwMDBFMkJDMCAvKiBKU0VY
VFNoYWRlclRleHR1cmVMT0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3Mjg2OTg0MTRGRDlBREEw
MEY0ODREQyAvKiBKU0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzdENTBGRjYxRUQ0RDk5QjAwREE0Qzg3IC8qIEpTRmVkZXJhdGVkQ3JlZGVudGlhbC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMTA5Nyw2ICszMTExNCw3IEBACiAJCQkJMjYyRUM0MUQxRDEx
MEI5MDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTcyNEVEMzJDMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MUFGMzc5OTFGOERBREFBMDAxMTFDMzEgLyogRXh0ZW5kYWJsZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzN0ZCMzQ0MUY5RUEwNkQwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRENERjQzMURBMUM0
NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNjdE
MkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENv
bW1vbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGQ4ZDc4MDgwNjQyODE5Mzk3NTNkZmIxNTNl
MWQwOWVhNjViNWY0YTEuLjZmODAzYzU5NWY1YzIxNDNhZThjYjU0MzgyYzljMWQzY2ExZDE2NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcApAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgIkpTRXZlbnRDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3Rv
bS5jcHAiCisjaW5jbHVkZSAiSlNFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU0ZpbGVTeXN0ZW1FbnRyeUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MQ29s
bGVjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU0Nzk1OTUyMWJlZDFjMTczOTgz
ODdiZjAwMzVlOGMxMjdiZmYwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKKyNpbmNsdWRlICJKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitKU1ZhbHVlIEpTRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudDo6ZGF0YShFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAoreworICAg
IGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gbV9kYXRhLmdldCgpKSB7CisgICAgICAgIC8vIFdl
IGNhbm5vdCB1c2UgYSBjYWNoZWQgb2JqZWN0IGlmIHdlIGFyZSBpbiBhIGRpZmZlcmVudCB3b3Js
ZCB0aGFuIHRoZSBvbmUgaXQgd2FzIGNyZWF0ZWQgaW4uCisgICAgICAgIGlmICghY2FjaGVkVmFs
dWUuaXNPYmplY3QoKSB8fCAmd29ybGRGb3JET01PYmplY3QoY2FjaGVkVmFsdWUuZ2V0T2JqZWN0
KCkpID09ICZjdXJyZW50V29ybGQoJnN0YXRlKSkKKyAgICAgICAgICAgIHJldHVybiBjYWNoZWRW
YWx1ZTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgYXV0byYg
ZXZlbnQgPSB3cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1bHQ7CisgICAgaWYgKGF1dG8qIHNl
cmlhbGl6ZWRWYWx1ZSA9IGV2ZW50LmRhdGEoKSkKKyAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXpl
ZFZhbHVlLT5kZXNlcmlhbGl6ZShzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIGV2ZW50LnBvcnRzKCks
IFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKKyAgICBlbHNlCisgICAgICAg
IHJlc3VsdCA9IGpzTnVsbCgpOworCisgICAgLy8gU2F2ZSB0aGUgcmVzdWx0IHNvIHdlIGRvbid0
IGhhdmUgdG8gZGVzZXJpYWxpemUgdGhlIHZhbHVlIGFnYWluLgorICAgIG1fZGF0YS5zZXQoc3Rh
dGUudm0oKSwgdGhpcywgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggYjJjYTg4NTVhOTQzYWE3ZDBlNzcw
Y2FlZjU4ZWYxZTkyOGVhNzk3YS4uMzY5YTEwMmYzNDZlYjEzM2I3MDZlOGMyZTY2MDI3ODJmOTEz
N2VkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGlu
TmFtZXMuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
RGF0YVRyYW5zZmVySXRlbUxpc3QpIFwKICAgICBtYWNybyhEb2N1bWVudFRpbWVsaW5lKSBcCiAg
ICAgbWFjcm8oRXh0ZW5kYWJsZUV2ZW50KSBcCisgICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudCkgXAogICAgIG1hY3JvKEZlZGVyYXRlZENyZWRlbnRpYWwpIFwKICAgICBtYWNybyhGZXRj
aEV2ZW50KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCAyNDU4MzkxNTBiODBkZThlODM4MzQyNmZlOWZkY2RiMzBjMjAzZDMyLi5mMmJhN2FiMGY4YmZi
NDRjZjMwNDU0MTM5YzY5Y2EzNjJjZTY1YTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtODYz
LDcgKzg2Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJl
cigpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIFN0cmluZyBkb21haW4oKSBjb25zdDsKICAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXREb21haW4oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1l
cy5pbgppbmRleCBlODQyYmQzOTBhNjRkMTcwNWVjM2I5YzgxNjg1NDkwOTU1ZjFmYjc1Li43YzZi
M2E1YTZhM2VlOGI5ZDhmZTkzY2U3YTkzNTYxYWQxNzI1NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRO
YW1lcy5pbgpAQCAtMTEsNiArMTEsNyBAQCBDbG9zZUV2ZW50CiBDb21wb3NpdGlvbkV2ZW50CiBD
dXN0b21FdmVudAogRXh0ZW5kYWJsZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCitF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBFcnJvckV2
ZW50CiBGZXRjaEV2ZW50IGNvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSCiBGb2N1c0V2ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnRDaGFubmVsLmgKaW5kZXggZGRkNzlhYTE3ZjY5MGRj
ZjE5M2FhOTNkMWNlMmQ1ZjFlMTVhMjA1NC4uYTA5NjI4YzYwMjUwZjhmMjlkZTM0NzU3NzIzMGRj
MzBjYmExZDNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0Q2hh
bm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydENoYW5uZWwuaApAQCAt
OTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFJldHVybnMgdGhl
IGVudGFuZ2xlZCBwb3J0IGlmIHJ1biBieSB0aGUgc2FtZSB0aHJlYWQgKHNlZSBNZXNzYWdlUG9y
dDo6bG9jYWxseUVudGFuZ2xlZFBvcnQoKSBmb3IgbW9yZSBkZXRhaWxzKS4KICAgICAgICAgTWVz
c2FnZVBvcnQqIGxvY2FsbHlFbnRhbmdsZWRQb3J0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKIAotICAgICAgICB+TWVzc2FnZVBvcnRDaGFubmVsKCk7CisgICAgICAgIFdFQkNPUkVf
RVhQT1JUIH5NZXNzYWdlUG9ydENoYW5uZWwoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFJl
ZlB0cjxQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbD4gbV9jaGFubmVsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggOTZkZGQ2MjA4YTY1OTEyMWI1
YWQ4OGQxZTJlMTUyMzIzOWJhNTk3Yy4uMjY2ZjQ5YWVlYzA2M2ZjNDRiMGY4Yzc4ZDdlOTMwMTIz
MTRlZGI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CkBAIC0xMTEsNiArMTExLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0gMDsKIAogICAgIHZpcnR1
YWwgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyBvcmlnaW4oKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQnlwYXNz
TWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4IDUzNzNk
MjVjMmY4OTkzZjkzOTg3ODMwZTllZmI0Y2Q2Y2Y1NjU3NjcuLmIxYTAxZDU4NzkxOWY1MTI3MzU0
NmFjZTk2MGQ4ZTRlMTRlOGNjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBp
c1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgU3Ry
aW5nIG9yaWdpbigpIGNvbnN0OworICAgIFN0cmluZyBvcmlnaW4oKSBjb25zdCBmaW5hbDsKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIElEQkNsaWVudDo6SURCQ29ubmVjdGlv
blByb3h5KiBpZGJDb25uZWN0aW9uUHJveHkoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKaW5kZXggOTdjNjdjNDNlYTU5
MzE5MDYzNWU0MWRjNGRhOTBlMzhkZGYyYWE2Yy4uMWQyMWZjNjc0NjFiNmU2YjZmNGVhNTgzNmM0
YWVjMDFlMjc5NGFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVFdmVudC5jcHAKQEAgLTM3LDYgKzM3LDE1IEBAIEV4dGVuZGFibGVFdmVudDo6
RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXh0ZW5kYWJs
ZUV2ZW50CiB7CiB9CiAKK0V4dGVuZGFibGVFdmVudDo6RXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBidWJibGVzLCBib29sIGNhbmNlbGFibGUpCisgICAgOiBF
dmVudCh0eXBlLCBidWJibGVzLCBjYW5jZWxhYmxlKQoreworfQorCitFeHRlbmRhYmxlRXZlbnQ6
On5FeHRlbmRhYmxlRXZlbnQoKQoreworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBFeHRlbmRhYmxl
RXZlbnQ6OndhaXRVbnRpbChSZWY8RE9NUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGlmICgh
aXNUcnVzdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5k
YWJsZUV2ZW50LmgKaW5kZXggNzA3NDgwNTk3OWMxZWExMGJiNjQ0OTQ0NWRmNGMwODhlNGYzZWJh
NC4uYmE3OWE2YmYwYmY4MTA5OWMyMjJkZjg5NmMyYTkwNDBmYmM2NzEyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaApAQCAtNDIsNiAr
NDIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVF
dmVudCh0eXBlLCBpbml0aWFsaXplciwgaXNUcnVzdGVkKSk7CiAgICAgfQogCisgICAgfkV4dGVu
ZGFibGVFdmVudCgpOworCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBFeHRlbmRhYmxlRXZlbnRJbnRlcmZhY2VUeXBlOyB9CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiB3YWl0VW50aWwoUmVmPERPTVByb21pc2U+JiYpOwpAQCAtNTAs
NiArNTIsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBFeHRl
bmRhYmxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgRXh0ZW5kYWJsZUV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CisgICAgRXh0ZW5kYWJsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYs
IGJvb2wgYnViYmxlcywgYm9vbCBjYW5jZWxhYmxlKTsKIAogICAgIFdlYWtQdHI8RXh0ZW5kYWJs
ZUV2ZW50PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVX
ZWFrUHRyKCp0aGlzKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGYxNmIyZGFi
ZTI4YmYxYTBmYzdmZjRkMzMyOWMwNWZmYzNlM2FkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcApAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQorI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIK
KworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudD4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudDo6Y3JlYXRlKFZl
Y3RvcjxSZWZQdHI8TWVzc2FnZVBvcnQ+PiYmIHBvcnRzLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmIGRhdGEsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RF
dmVudElkLCBzdGQ6Om9wdGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYgc291
cmNlKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQo
V1RGTW92ZShkYXRhKSwgb3JpZ2luLCBsYXN0RXZlbnRJZCwgV1RGTW92ZShzb3VyY2UpLCBXVEZN
b3ZlKHBvcnRzKSkpOworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBjb25zdCBJbml0JiBpbml0LCBJc1RydXN0ZWQgaXNUcnVzdGVkKQorICAgIDogRXh0ZW5kYWJs
ZUV2ZW50KHR5cGUsIGluaXQsIGlzVHJ1c3RlZCkKKyAgICAsIG1fZGF0YShTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZShzdGF0ZSwgaW5pdC5kYXRhKSkKKyAgICAsIG1fb3JpZ2luKGluaXQu
b3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChpbml0Lmxhc3RFdmVudElkKQorICAgICwgbV9w
b3J0cyhpbml0LnBvcnRzKQoreworfQorCitFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50KFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YSwgY29u
c3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbGFzdEV2ZW50SWQsIHN0ZDo6b3B0aW9u
YWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZT4mJiBzb3VyY2UsIFZlY3RvcjxSZWZQdHI8
TWVzc2FnZVBvcnQ+PiYmIHBvcnRzKQorICAgIDogRXh0ZW5kYWJsZUV2ZW50KGV2ZW50TmFtZXMo
KS5tZXNzYWdlRXZlbnQsIGZhbHNlLCBmYWxzZSkKKyAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEp
KQorICAgICwgbV9vcmlnaW4ob3JpZ2luKQorICAgICwgbV9sYXN0RXZlbnRJZChsYXN0RXZlbnRJ
ZCkKKyAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAsIG1fcG9ydHMoV1RGTW92
ZShwb3J0cykpCit7Cit9CisKK0V4dGVuZGFibGVNZXNzYWdlRXZlbnQ6On5FeHRlbmRhYmxlTWVz
c2FnZUV2ZW50KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA1ODdjYjg1
ZWFmY2VjMDVhZDE0ZGJmZGRiNDJkYmY3ZjE2ZTRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmgKQEAgLTAs
MCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorCisjaW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50LmgiCisjaW5jbHVkZSAiRXh0
ZW5kYWJsZUV2ZW50SW5pdC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCisjaW5jbHVkZSAi
U2VydmljZVdvcmtlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnQuaCIKKyNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEV4ZWNTdGF0ZTsK
K2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVzc2Fn
ZVBvcnQ7CitjbGFzcyBTZXJ2aWNlV29ya2VyOworY2xhc3MgU2VydmljZVdvcmtlckNsaWVudDsK
KwordXNpbmcgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSA9IFZhcmlhbnQ8UmVmUHRyPFNl
cnZpY2VXb3JrZXJDbGllbnQ+LCBSZWZQdHI8U2VydmljZVdvcmtlcj4sIFJlZlB0cjxNZXNzYWdl
UG9ydD4+OworCitjbGFzcyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IGZpbmFsIDogcHVibGljIEV4
dGVuZGFibGVFdmVudCB7CitwdWJsaWM6CisgICAgc3RydWN0IEluaXQgOiBFeHRlbmRhYmxlRXZl
bnRJbml0IHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGRhdGE7CisgICAgICAgIFN0cmluZyBvcmln
aW47CisgICAgICAgIFN0cmluZyBsYXN0RXZlbnRJZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiBzb3VyY2U7CisgICAgICAgIFZlY3RvcjxSZWZQ
dHI8TWVzc2FnZVBvcnQ+PiBwb3J0czsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxFeHRlbmRh
YmxlTWVzc2FnZUV2ZW50PiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXN0ZWQgaXNUcnVz
dGVkID0gSXNUcnVzdGVkOjpObykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoc3RhdGUsIHR5cGUsIGluaXRpYWxpemVyLCBpc1RydXN0
ZWQpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ+IGNy
ZWF0ZShWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4mJiwgUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiwgY29uc3QgU3RyaW5nJiBvcmlnaW4gPSB7IH0sIGNvbnN0IFN0cmluZyYgbGFz
dEV2ZW50SWQgPSB7IH0sIHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJj
ZT4mJiBzb3VyY2UgPSBzdGQ6Om51bGxvcHQpOworCisgICAgfkV4dGVuZGFibGVNZXNzYWdlRXZl
bnQoKTsKKworICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogZGF0YSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YS5nZXQoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgb3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW47IH0KKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0RXZlbnRJZDsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudFNvdXJjZT4mIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9
CisgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+JiBwb3J0cygpIGNvbnN0IHsg
cmV0dXJuIG1fcG9ydHM7IH0KKworICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEludGVyZmFjZVR5cGU7
IH0KKworcHJpdmF0ZToKKyAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KEpTQzo6RXhlY1N0YXRl
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CisgICAgRXh0
ZW5kYWJsZU1lc3NhZ2VFdmVudChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEs
IGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGxhc3RFdmVudElkLCBzdGQ6Om9w
dGlvbmFsPEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2U+JiYsIFZlY3RvcjxSZWZQdHI8TWVz
c2FnZVBvcnQ+PiYmKTsKKworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fZGF0
YTsKKyAgICBTdHJpbmcgbV9vcmlnaW47CisgICAgU3RyaW5nIG1fbGFzdEV2ZW50SWQ7CisgICAg
c3RkOjpvcHRpb25hbDxFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlPiBtX3NvdXJjZTsKKyAg
ICBWZWN0b3I8UmVmUHRyPE1lc3NhZ2VQb3J0Pj4gbV9wb3J0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2
ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lOTg0MGIwZmU4NDViOWQ0NjA4NDMxZWI1YWFjYTJlNWZjODE1
NjM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAorICAgIENvbnN0cnVjdG9yQ2FsbFdpdGg9U2Ny
aXB0U3RhdGUsCisgICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAgRW5hYmxlZEF0
UnVudGltZT1TZXJ2aWNlV29ya2VyLAorICAgIEV4cG9zZWQ9U2VydmljZVdvcmtlciwKK10gaW50
ZXJmYWNlIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQgOiBFeHRlbmRhYmxlRXZlbnQgeworICAgIFtD
YWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBkYXRh
OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgb3JpZ2luOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEV2ZW50SWQ7CisgICAgW1NhbWVPYmplY3RdIHJlYWRv
bmx5IGF0dHJpYnV0ZSAoU2VydmljZVdvcmtlckNsaWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1l
c3NhZ2VQb3J0KT8gc291cmNlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxN
ZXNzYWdlUG9ydD4gcG9ydHM7Cit9OworCitkaWN0aW9uYXJ5IEV4dGVuZGFibGVNZXNzYWdlRXZl
bnRJbml0IDogRXh0ZW5kYWJsZUV2ZW50SW5pdCB7CisgICAgYW55IGRhdGEgPSBudWxsOworICAg
IFVTVlN0cmluZyBvcmlnaW4gPSAiIjsKKyAgICBET01TdHJpbmcgbGFzdEV2ZW50SWQgPSAiIjsK
KyAgICAoU2VydmljZVdvcmtlckNsaWVudCBvciBTZXJ2aWNlV29ya2VyIG9yIE1lc3NhZ2VQb3J0
KT8gc291cmNlID0gbnVsbDsKKyAgICBzZXF1ZW5jZTxNZXNzYWdlUG9ydD4gcG9ydHMgPSBbXTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5j
cHAKaW5kZXggNjZkNzNiZTg3NDA5NDNhMTdlNDVmNmNhODJjYWQ1YmZiNWY1M2U2OC4uMTc5NjRl
YWQ2MDRjOWM0MzBiNTkzOWFlYWQ2ZDRjZTIwMTk1NmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcApAQCAtMjgsMTAgKzI4LDQ5IEBA
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJNZXNzYWdlUG9ydC5o
IgorI2luY2x1ZGUgIlNXQ2xpZW50Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQ0pTVmFs
dWVJbmxpbmVzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8dm9pZD4g
U2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUs
IFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJikKK1NlcnZpY2VXb3JrZXI6OlNl
cnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgdWludDY0X3Qgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigm
Y29udGV4dCkKKyAgICAsIG1faWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sK
K30KKworRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVj
dG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmIHRyYW5zZmVyKQogeworICAgIGlmIChz
dGF0ZSgpID09IFN0YXRlOjpSZWR1bmRhbnQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgQVNDSUlMaXRlcmFsKCJTZXJ2aWNlIFdvcmtlciBzdGF0ZSBpcyBy
ZWR1bmRhbnQiKSB9OworCisgICAgLy8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3JrZXIg
YWxnb3JpdGhtIHdpdGggc2VydmljZVdvcmtlciBhcyB0aGUgYXJndW1lbnQuCisKKyAgICBhdXRv
KiBleGVjU3RhdGUgPSBjb250ZXh0LmV4ZWNTdGF0ZSgpOworICAgIEFTU0VSVChleGVjU3RhdGUp
OworCisgICAgVmVjdG9yPFJlZlB0cjxNZXNzYWdlUG9ydD4+IHBvcnRzOworICAgIGF1dG8gbWVz
c2FnZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKCpleGVjU3RhdGUsIG1lc3NhZ2VW
YWx1ZSwgV1RGTW92ZSh0cmFuc2ZlciksIHBvcnRzLCBTZXJpYWxpemF0aW9uQ29udGV4dDo6V29y
a2VyUG9zdE1lc3NhZ2UpOworICAgIGlmIChtZXNzYWdlLmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4gbWVzc2FnZS5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICAvLyBEaXNlbnRhbmds
ZSB0aGUgcG9ydCBpbiBwcmVwYXJhdGlvbiBmb3Igc2VuZGluZyBpdCB0byB0aGUgcmVtb3RlIGNv
bnRleHQuCisgICAgYXV0byBjaGFubmVsc09yRXhjZXB0aW9uID0gTWVzc2FnZVBvcnQ6OmRpc2Vu
dGFuZ2xlUG9ydHMoV1RGTW92ZShwb3J0cykpOworICAgIGlmIChjaGFubmVsc09yRXhjZXB0aW9u
Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gY2hhbm5lbHNPckV4Y2VwdGlvbi5yZWxl
YXNlRXhjZXB0aW9uKCk7CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBzZW5kaW5nIHRoZSBjaGFu
bmVscy4KKyAgICBhdXRvIGNoYW5uZWxzID0gY2hhbm5lbHNPckV4Y2VwdGlvbi5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKKyAgICBpZiAoY2hhbm5lbHMgJiYgIWNoYW5uZWxzLT5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFs
KCJQYXNzaW5nIE1lc3NhZ2VQb3J0IG9iamVjdHMgdG8gcG9zdE1lc3NhZ2UgaXMgbm90IHlldCBz
dXBwb3J0ZWQiKSB9OworCisgICAgYXV0byYgc3dDb25uZWN0aW9uID0gU2VydmljZVdvcmtlclBy
b3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oY29u
dGV4dC5zZXNzaW9uSUQoKSk7CisgICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUobV9pZGVudGlmaWVyLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1
ZSgpLCBjb250ZXh0Lm9yaWdpbigpKTsKKwogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTQyLDcg
KzgxLDcgQEAgY29uc3QgU3RyaW5nJiBTZXJ2aWNlV29ya2VyOjpzY3JpcHRVUkwoKSBjb25zdAog
CiBTZXJ2aWNlV29ya2VyOjpTdGF0ZSBTZXJ2aWNlV29ya2VyOjpzdGF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFN0YXRlOjpSZWR1bmRhbnQ7CisgICAgcmV0dXJuIFN0YXRlOjpBY3RpdmF0ZWQ7
CiB9CiAKIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFNlcnZpY2VXb3JrZXI6OmV2ZW50VGFyZ2V0SW50
ZXJmYWNlKCkgY29uc3QKQEAgLTUyLDcgKzkxLDcgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgU2Vy
dmljZVdvcmtlcjo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdAogCiBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBTZXJ2aWNlV29ya2VyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmgK
aW5kZXggNDBlMTJkZTFiMjM1OTVlYzg5ZDQ4YzE4Y2VjYWRjZTQwNmJiM2U4OC4uN2Y3Y2VkYzk0
YjY0ZGVmYzI1OWJiNGNjZDhlODY0YTIwNGNiNDdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5oCkBAIC0yNywxMSArMjcsMTIgQEAKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9u
Zy5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBKU0MgewotY2xh
c3MgRXhlY1N0YXRlOwogY2xhc3MgSlNWYWx1ZTsKIH0KIApAQCAtMzksOSArNDAsMTMgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZTsKIAotY2xhc3MgU2VydmljZVdvcmtlciBm
aW5hbCA6IHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhIHsKK2NsYXNzIFNlcnZpY2VX
b3JrZXIgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyPiwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyPiBjcmVhdGUoRnJhbWUm
IGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXIoZnJhbWUpKTsgfQor
ICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcihjb250ZXh0LCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllcikpOworICAgIH0KKwogICAgIHZpcnR1YWwgflNlcnZpY2VXb3JrZXIo
KSA9IGRlZmF1bHQ7CiAKICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKQEAgLTU1LDE1ICs2MCwyMiBA
QCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBzY3JpcHRVUkwoKSBjb25zdDsKICAgICBTdGF0
ZSBzdGF0ZSgpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+PiYmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0
cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CisKKyAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7
CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
U2VydmljZVdvcmtlcihGcmFtZSYpOworICAgIFNlcnZpY2VXb3JrZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdDsKICAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQogICAg
IHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQorCisgICAgdWludDY0
X3QgbV9pZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsCmluZGV4IGZkZThl
OWQyZmQ4NDQ5OWNhOTkzMDJhMDBmZTAxNjk1YTg3NTgxYzguLjE5MmVhMDdhZTU4YTQ4MDcxNGQy
ZmNkNzI1YmQ3M2Y5NGM4MDMzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlci5pZGwKQEAgLTM0LDcgKzM0LDcgQEAKIF0gaW50ZXJmYWNlIFNl
cnZpY2VXb3JrZXIgOiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0
cmluZyBzY3JpcHRVUkw7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXJTdGF0
ZSBzdGF0ZTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE1heVRocm93RXhjZXB0aW9uXSB2
b2lkIHBvc3RNZXNzYWdlKGFueSBtZXNzYWdlLCBvcHRpb25hbCBzZXF1ZW5jZTxvYmplY3Q+IHRy
YW5zZmVyID0gW10pOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlU
aHJvd0V4Y2VwdGlvbl0gdm9pZCBwb3N0TWVzc2FnZShhbnkgbWVzc2FnZSwgb3B0aW9uYWwgc2Vx
dWVuY2U8b2JqZWN0PiB0cmFuc2ZlciA9IFtdKTsKIAogICAgIC8vIGV2ZW50CiAgICAgYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnN0YXRlY2hhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IGU4
MzBhOGRhNzNmOTBkN2VlMjMyMGZmYjAyYWRlODFjZDEzMWY5NzkuLjU2ZDU2YzdmODQyNTVmOGIy
OWIyMDhhZjg5NTM0NzUyNjI3Y2U3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VySm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgpA
QCAtNzQsNyArNzUsMTQgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkZXJlZkV2ZW50
VGFyZ2V0KCkKIAogU2VydmljZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJv
bGxlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogY29udGV4dCA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQt
PnNlbGVjdGVkU2VydmljZVdvcmtlcklkZW50aWZpZXIoKSkgeworICAgICAgICBtX2NvbnRyb2xs
ZXIgPSBudWxscHRyOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKCFt
X2NvbnRyb2xsZXIgfHwgbV9jb250cm9sbGVyLT5pZGVudGlmaWVyKCkgIT0gY29udGV4dC0+c2Vs
ZWN0ZWRTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpKQorICAgICAgICBtX2NvbnRyb2xsZXIgPSBT
ZXJ2aWNlV29ya2VyOjpjcmVhdGUoKmNvbnRleHQsIGNvbnRleHQtPnNlbGVjdGVkU2VydmljZVdv
cmtlcklkZW50aWZpZXIoKSk7CisgICAgcmV0dXJuIG1fY29udHJvbGxlci5nZXQoKTsKIH0KIAog
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVNjcmlwdFVSTCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0aW9ucyYgb3B0aW9ucywg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTVmNTZk
MWZlZTI0NDU0NTc1YWFhMzhjZmNjMTgwMDFmYzQ1MjI2Mi4uYWU2ZGExYmU3MzRlNjk2M2I3YjVm
ZTgwYjlhNDRhNjkwYWFiZDMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC05NCw2ICs5NCw3IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZQdHI8U1dDbGllbnRDb25uZWN0aW9uPiBtX3N3Q29ubmVjdGlvbjsK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U2VydmljZVdvcmtlckpvYj4+IG1fam9iTWFw
OworICAgIG11dGFibGUgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fY29udHJvbGxlcjsKIAogI2lm
bmRlZiBOREVCVUcKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fY3JlYXRpb25UaHJlYWQgeyBjdXJy
ZW50VGhyZWFkKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggYTZkMGJmZDI2Y2FjZWVk
NjQ1Mzg1OGU0NzQ5NDNhYmMwYzNkNWJjYi4uNmUxN2RkY2RiOGIxY2JkMDZmNDZjOTU3Y2M0ODI0
ZWZhYTk4ZTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTU4LDYgKzU4LDExIEBAIEV2
ZW50VGFyZ2V0SW50ZXJmYWNlIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6ZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdAogICAgIHJldHVybiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVFdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7CiB9CiAKK1NlcnZpY2VXb3JrZXJUaHJlYWQmIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2Vy
dmljZVdvcmtlclRocmVhZCY+KFdvcmtlckdsb2JhbFNjb3BlOjp0aHJlYWQoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuaAppbmRleCBkYzQwYzZmMzQ5ODJhZTM2Mjc3YjJhNDRjNDVjNDUzMjk1
NzhhZjg2Li43MmMwZWYyN2MyYjQxMGY5YTU2NDIzNWYwOWUxMTJjN2Y3NzM2MDBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS5oCkBAIC01Nyw2ICs1Nyw4IEBAIHB1YmxpYzoKIAogICAgIEV2ZW50VGFyZ2V0
SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWw7CiAKKyAgICBTZXJ2
aWNlV29ya2VyVGhyZWFkJiB0aHJlYWQoKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBib29s
IHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSwgUmVmPFNlY3VyaXR5
T3JpZ2luPiYmIHRvcE9yaWdpbiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBJREJDbGllbnQ6
OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgUEFMOjpTZXNzaW9uSUQpOwog
CkBAIC02Nyw0ICs2OSw5IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
U1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpIHsgcmV0dXJuIGlzPFdlYkNvcmU6Oldvcmtlckdsb2JhbFNj
b3BlPihjb250ZXh0KSAmJiBkb3duY2FzdDxXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZT4oY29u
dGV4dCkuaXNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKTsgfQorICAgIHN0YXRpYyBib29sIGlz
VHlwZShjb25zdCBXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCkgeyByZXR1cm4g
Y29udGV4dC5pc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpOyB9CitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0VORCgpCisKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDM4MThlOTkxMWFkMzI3YTg0ODFiNmRmYTI5ODQzOGQ4
MTJiYzM2N2EuLjliNTEzNTcyN2UyNWFlYTVjNGNmYWY3MzZhNjI2YzVkZDdlZmNmMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzLmgiCisjaW5jbHVkZSAiRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC0xMDAsNiArMTAxLDE3IEBAIHZv
aWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZl
dGNoOjpDbGllbnQ+JiYgY2xpZW50CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUo
KSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0
ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgY29uc3Qg
U3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayB0YXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0gV1RGTW92ZSht
ZXNzYWdlKSwgc291cmNlT3JpZ2luID0gc291cmNlT3JpZ2luLmlzb2xhdGVkQ29weSgpXSAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCk7CisgICAgICAgIGF1dG8gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQ
b3J0cyhzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUoY2hhbm5lbHMpKTsKKyAgICAg
ICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQoRXh0ZW5kYWJsZU1lc3Nh
Z2VFdmVudDo6Y3JlYXRlKFdURk1vdmUocG9ydHMpLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VP
cmlnaW4pKTsKKyAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLndvcmtl
ck9iamVjdFByb3h5KCkuY29uZmlybU1lc3NhZ2VGcm9tV29ya2VyT2JqZWN0KHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS5oYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgfSk7CisgICAgcnVuTG9v
cCgpLnBvc3RUYXNrKFdURk1vdmUodGFzaykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmgKaW5kZXggOTU0ZGFmNjA4MmNjZWY2YmQ5MzU4MTJhNzA3Y2RlZTBiZjAzYzliYi4uNzM3Mjgx
MWE5OTFkNDVjZmFkNWM1YTBlMGFhY2MwYWMxZjc2YThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuaApAQCAtMzUsOSArMzUsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzOworY2xhc3MgTWVzc2FnZVBvcnRDaGFu
bmVsOworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV29ya2VyT2JqZWN0UHJv
eHk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCit1c2luZyBNZXNzYWdlUG9y
dENoYW5uZWxBcnJheSA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVs
PiwgMT47CisKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFk
LCBwdWJsaWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U2VydmljZVdvcmtlclRocmVhZD4gewogcHVi
bGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8U2VydmljZVdv
cmtlclRocmVhZD4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQpAQCAtNDksNiArNTMsNyBAQCBwdWJs
aWM6CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgUmVzb3VyY2VS
ZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmLCBjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbik7CiAKIHByb3RlY3RlZDoKICAgICBSZWY8V29ya2VyR2xvYmFs
U2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYsIGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVu
dFNlY3VyaXR5UG9saWN5LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBNb25vdG9u
aWNUaW1lIHRpbWVPcmlnaW4sIFBBTDo6U2Vzc2lvbklEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IDljOGExNzBmMTJkMWY3ZDdmN2YxZTViZGUyYWViMzcxMzgzYzA1YzEuLjQyMjJi
NTljNmEzMTE1NzRmODBlNWY3MWIxNDZlNTUyNjJlMmQ5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24u
aApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNl
RXJyb3I7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRpb25EYXRhOwogc3RydWN0IFNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwogICAgIHZvaWQgZmluaXNoZWRGZXRj
aGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBm
YWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOwogCiAgICAgdmlydHVh
bCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNT
ZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNv
bnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZjU4
YzE3NTliYTYwYWExYjFkZGVhNTczODllNDY5M2JjMzcwNjRkNC4uYzRiNmNlYTM2ZjU1MWNmMDMz
YzQ1NzE3MmZlM2ExMDc3MjJmYWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAKQEAgLTEwMCw2ICsxMDAsMTEgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWMKICAg
ICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyOjpTdGFydEZldGNoKGlkZW50aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucykpOwogfQogCit2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBzZW5kVG9Db250ZXh0UHJv
Y2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZU9yaWdpbikpOworfQorCiB2b2lkIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3QgZmV0Y2hJZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBtX2NvbnRlbnRDb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2Vp
dmVSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNoSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggN2NjNzZiZGM5YWRiY2Q5MzUwMTExYjRmZTBiYjNl
MDJiNzY2MmFjMC4uM2E1NzIwYmVlNzE4YzkxYTllNjEyYmI3MGZlNjliYjhkYmRiNWIwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjUsNiArNjUsOCBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWlu
dDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYpOwogCisgICAgdm9pZCBwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luKTsKKwogICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBTVyBjb250ZXh0IFdlYlBy
b2Nlc3MKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRleHREYXRhJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGYzZGIzYjkwZGFlOTNhOTI2
ZGY1YmJkZWExYTM3Nzk1MzQ2NjQ5MTIuLjNiMjA0NWM2NDQ0YWRjZDE4ZGI0Y2ZlY2M1MWVmYzM5
NGIyMTJkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5l
Y3Rpb24gewogICAgIEZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCByZXN1bHQpCiAKICAgICBTdGFydEZldGNoKHVpbnQ2
NF90IGlkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBv
cHRpb25zKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBT
dHJpbmcgc291cmNlT3JpZ2luKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggMGRlZjM1NGMzY2NlYWQ3N2I5
ZTFlZTQ0ODVhY2I2OTQyYzRjZGI1NC4uZGIxN2RkMzU4YTk4MmQ0OTM5YzlmNjg4ZmZkYTVlM2Ji
NTY4ODQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0yOCwxMiArMjgs
MTUgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01l
c3NhZ2VQb3J0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC02OCw2ICs3MSwxNiBAQCB2b2lkIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcgogICAgIHNlcnZpY2VXb3JrZXJUaHJlYWQtPnBvc3RGZXRjaFRhc2soV1RGTW92ZShj
bGllbnQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAordm9pZCBT
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQoreworICAgIGF1dG8qIHdvcmtlclRocmVhZCA9
IG1fd29ya2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgaWYg
KCF3b3JrZXJUaHJlYWQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHdvcmtlclRocmVhZC0+cG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBudWxscHRyLCBzb3VyY2VPcmlnaW4pOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29y
a2VyQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1Nl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCmluZGV4IDhkMjAwYzBmMzQwNWQ0MGRkNzMzYzVk
MzliN2I4NTc0Yjg0ZmJmMmYuLjY5NGZmNzVmMWE4ODUzOTQ0MWRmMTZiZmE4MjM3NTYzMTYyMWE5
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYpOwogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0
aW9ucyYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ+PiBtX3dvcmtlclRocmVhZE1hcDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFu
YWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBlZGNkZDhiMzY0NjE0ZDQ3
MGU1NjBhMmJlMjJkNTlhMjUzYjIwY2IyLi44NjY2M2Y4MWU3Y2EwYjg2ZTY2M2NmOTRiZjA1NWU1
Y2IwNGQ1YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2Vz
LmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIgewogICAgIFN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBjb250
ZXh0RGF0YSkKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6
OkZldGNoT3B0aW9ucyBvcHRpb25zKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgU3RyaW5n
IHNvdXJjZU9yaWdpbikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCBiYjFl
MWNjOWE5NWViODY5NjQxMTk5ODIxMDUwNTQ2NjhlY2I0OWViLi4zMDg2ZWE0ZmMwZWJmMWI4ZDQ2
YzQ1OWE0ZjEzZmU5MjYzNWE5NWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI4LDEyICsy
OCwxNCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0YVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2guaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViU1dPcmlnaW5UYWJsZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VydmljZVdvcmtlckpvYkRhdGEuaD4KIApAQCAtNjYsNiArNjgsMTEgQEAgdm9pZCBXZWJT
V0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckZldGMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246
OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7CiB9CiAKK3ZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVp
bnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIHNjcmlwdFZhbHVlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5j
ZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSwgc291cmNlT3JpZ2luKSk7Cit9CisKIGJvb2wgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpoYXNTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKSBjb25zdAogewogICAgIHJldHVybiBtX3N3T3Jp
Z2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDkxYjlmOGM2
MjRjZWExYWZlNjUyNjhlODQ4NDhiYzYyNGJlZmQ0ZDMuLjFjZDI5Mjk5ZTNmZDNjMmZjOTI4OGUx
ODYwYWQ1NDAzMTBjZTU0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC01Niw2ICs1Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJ
blNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsK
KyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5hbDsKIAogICAgIHZvaWQgZGlz
Y29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJiMzU0MWE3ODI3
NTNlZjUwOTFhZTU2NzQyMjQ4NWM5YTVlMTg1ZDcuLmU5OWVjNDNhYzU4ZGVmYmJkYTRiY2Y4MWUx
ZGEzYmEyZTBiOGVhMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMC0yMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIGltcGxlbWVu
dGF0aW9uIGZvciBzZXJ2aWNlV29ya2VyLnBvc3RNZXNzYWdlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODUzNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3Jr
ZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0
dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLXdvcmtlci5qczogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNl
cnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanM6IEFkZGVkLgorCiAyMDE3LTEwLTI0ICBEYXZpZCBL
aWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlZ3Jlc3Npb25dIFdlYmtp
dCAiLWFwcGxlLXN5c3RlbSIgZm9udCBmYWxsYmFjayB0b2tlbiBoYW5kbGVzIGZvbnQgd2VpZ2h0
cyBvZiBQaW5nRmFuZyBpbmNvcnJlY3RseS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
YmFzaWMtU2VydmljZVdvcmtlci1wb3N0TWVzc2FnZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2QxMjIzNTQ3NWYxZWViNTkzMjNkZWJlMGRmMTVlNjgyNTBlYTY3YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLVNl
cnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorUEFTUzogU3RhdHVzIGNvZGUgaXMgMjAwCitQQVNTOiBTdGF0dXMgdGV4dCBpcyBXb3JrZXIg
cmVjZWl2ZWQgdGhlIG1lc3NhZ2UgZXZlbnQuIG1lc3NhZ2VFdmVudC5vcmlnaW4gd2FzIGh0dHBz
Oi8vMTI3LjAuMC4xOjg0NDMKK1BBU1M6IFNvdXJjZSBpcyBTZXJ2aWNlIHdvcmtlcgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2
aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDgxNzBjNmJkNjEwN2Y1ZTNhOGNkMTZiYzNiY2QxZjE5ZjAxNDA0OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDkg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Jh
c2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2UuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZp
Y2VXb3JrZXItcG9zdE1lc3NhZ2Utd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0Mzk1YjJhNmQzZDZm
NWE2NzM0OWZjYjcwNmQ4YWI0NzU2NmJhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtU2VydmljZVdvcmtl
ci1wb3N0TWVzc2FnZS13b3JrZXIuanMKQEAgLTAsMCArMSwxNCBAQAorbGV0IHJlc3BvbnNlVG9T
ZW5kID0geyBzdGF0dXM6IDQwNCwgc3RhdHVzVGV4dDogIk5vdCBGb3VuZCIgfTsKKworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAgcmVzcG9uc2VUb1Nl
bmQgPSBldmVudC5kYXRhOworICAgIHJlc3BvbnNlVG9TZW5kLnN0YXR1c1RleHQgKz0gIiBtZXNz
YWdlRXZlbnQub3JpZ2luIHdhcyAiICsgZXZlbnQub3JpZ2luOworfSk7CisKK3NlbGYuYWRkRXZl
bnRMaXN0ZW5lcigiZmV0Y2giLCAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51
cmwuaW5kZXhPZigidGVzdDEiKSAhPT0gLTEpIHsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgo
bmV3IFJlc3BvbnNlKG51bGwsIHJlc3BvbnNlVG9TZW5kKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgZXZlbnQucmVzcG9uZFdpdGgoUmVzcG9uc2UuZXJyb3IoKSk7Cit9KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9i
YXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXItcG9zdE1lc3Nh
Z2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTZhNDFjYTA4Njg4YjQ4M2FlODI0YjIzNjU1MzE3MDdjZDA4ZTdj
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9iYXNpYy1TZXJ2aWNlV29ya2VyLXBvc3RNZXNzYWdlLmpzCkBAIC0wLDAg
KzEsMzcgQEAKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGZpbmlzaFNXVGVzdCgpOworfQorCith
c3luYyBmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2Jhc2ljLVNlcnZpY2VXb3JrZXIt
cG9zdE1lc3NhZ2Utd29ya2VyLmpzIiwgeyB9KTsKKworICAgICAgICBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKHsgc3RhdHVzOiAyMDAsIHN0YXR1c1RleHQ6
ICJXb3JrZXIgcmVjZWl2ZWQgdGhlIG1lc3NhZ2UgZXZlbnQuIiB9KTsKKworICAgICAgICBsZXQg
cmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgidGVzdDEiKTsKKyAgICAgICAgaWYgKHJlc3BvbnNlLnN0
YXR1cyA9PSAyMDApCisgICAgICAgICAgICBsb2coIlBBU1M6IFN0YXR1cyBjb2RlIGlzICIgKyBy
ZXNwb25zZS5zdGF0dXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFN0
YXR1cyBjb2RlIGlzICIgKyByZXNwb25zZS5zdGF0dXMpOworCisgICAgICAgIGlmIChyZXNwb25z
ZS5zdGF0dXNUZXh0LnN0YXJ0c1dpdGgoIldvcmtlciByZWNlaXZlZCB0aGUgbWVzc2FnZSIpKQor
ICAgICAgICAgICAgbG9nKCJQQVNTOiBTdGF0dXMgdGV4dCBpcyAiICsgcmVzcG9uc2Uuc3RhdHVz
VGV4dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJTDogU3RhdHVzIHRleHQg
aXMgIiArIHJlc3BvbnNlLnN0YXR1c1RleHQpOworCisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICBsZXQgc291cmNlID0gaW50ZXJuYWxzLmZldGNoUmVzcG9uc2VT
b3VyY2UocmVzcG9uc2UpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PT0gIlNlcnZpY2Ugd29y
a2VyIikKKyAgICAgICAgICAgICAgICBsb2coIlBBU1M6IFNvdXJjZSBpcyAiICsgc291cmNlKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2coIkZBSUw6IFNvdXJjZSBpcyAi
ICsgc291cmNlKTsKKyAgICAgICAgfQorICAgIH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIkdv
dCBleGNlcHRpb246ICIgKyBlKTsKKyAgICB9CisgICAgZmluaXNoU1dUZXN0KCk7Cit9CisKK3Rl
c3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>