<?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>218855</bug_id>
          
          <creation_ts>2020-11-12 09:55:05 -0800</creation_ts>
          <short_desc>Implement audio capture for SpeechRecognition on macOS</short_desc>
          <delta_ts>2020-11-21 21:51:35 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706902</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-12 09:55:05 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706903</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-12 09:55:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71331001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706905</commentid>
    <comment_count>2</comment_count>
      <attachid>413947</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-12 09:56:51 -0800</bug_when>
    <thetext>Created attachment 413947
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708062</commentid>
    <comment_count>3</comment_count>
      <attachid>414296</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-16 18:05:32 -0800</bug_when>
    <thetext>Created attachment 414296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708141</commentid>
    <comment_count>4</comment_count>
      <attachid>414314</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-17 00:05:07 -0800</bug_when>
    <thetext>Created attachment 414314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708319</commentid>
    <comment_count>5</comment_count>
      <attachid>414314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-17 11:46:30 -0800</bug_when>
    <thetext>Comment on attachment 414314
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognizerDelegate.h:39
&gt; +    virtual CaptureSourceOrError createCaptureSource() = 0;

It is a bit weird to have this callback here.
It might be simpler to focus this interface on reporting state only.

&gt; Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm:54
&gt; +    auto sourceOrError = m_delegate-&gt;createCaptureSource();

Instead of doing that, it seems SpeechRecognizer could get a Ref&lt;RealtimeMediaSource&gt; as input.
If needed, we could add a completion handler to start method as well.

&gt; Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm:73
&gt; +    m_delegate-&gt;didStop();

Should we add a completion handler to stop instead?

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:101
&gt; +        startNextGrantedRequest();

These changes seem somehow independent of the audio capture part.
Maybe we should split them.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:118
&gt; +    m_grantedRequests.append(makeWeakPtr(request));

I would have expected that a granted request would override the previous one, i.e stop it I guess.
Is this behavior shared with Chrome and Firefox.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:137
&gt; +    m_recognizer-&gt;start();

Is it needed to recreate a recogniser for every request?

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:168
&gt; +    }

I would try to search for the default device and use that one, otherwise pick the first enabled device.
This does not require a Vector though.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:175
&gt; +    return CaptureSourceOrError { &quot;createCaptureSource is not implemented&quot; };

on iOS, we might need to send IPC to WebProcess to create a realtime media source there instead of in UIProcess.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:186
&gt; +void SpeechRecognitionServer::didStartCapturingAudio()

Maybe we could simplify the API so that there is a sendUpdate delegate taking a WebCore::SpeechRecognitionUpdateType?
That would reduce the delegate API a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708350</commentid>
    <comment_count>6</comment_count>
      <attachid>414314</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-17 12:52:39 -0800</bug_when>
    <thetext>Comment on attachment 414314
Patch

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

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizerDelegate.h:39
&gt;&gt; +    virtual CaptureSourceOrError createCaptureSource() = 0;
&gt; 
&gt; It is a bit weird to have this callback here.
&gt; It might be simpler to focus this interface on reporting state only.

Okay, will remove.

&gt;&gt; Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm:54
&gt;&gt; +    auto sourceOrError = m_delegate-&gt;createCaptureSource();
&gt; 
&gt; Instead of doing that, it seems SpeechRecognizer could get a Ref&lt;RealtimeMediaSource&gt; as input.
&gt; If needed, we could add a completion handler to start method as well.

Okay, will add Ref&lt;RealtimeMediaSource&gt; as input.

&gt;&gt; Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm:73
&gt;&gt; +    m_delegate-&gt;didStop();
&gt; 
&gt; Should we add a completion handler to stop instead?

Probably not, because completion handler of stop may not be called if abort() is called after stop().

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:101
&gt;&gt; +        startNextGrantedRequest();
&gt; 
&gt; These changes seem somehow independent of the audio capture part.
&gt; Maybe we should split them.

That sounds good. Added this here as I figured out what SpeechRecognitionServer should do after creating SpeechRecognizer.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:118
&gt;&gt; +    m_grantedRequests.append(makeWeakPtr(request));
&gt; 
&gt; I would have expected that a granted request would override the previous one, i.e stop it I guess.
&gt; Is this behavior shared with Chrome and Firefox.

You are right; tried on Chrome and it aborts ongoing request when another request is granted. Will change this.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:137
&gt;&gt; +    m_recognizer-&gt;start();
&gt; 
&gt; Is it needed to recreate a recogniser for every request?

Not really I guess. It is just easier to distinguish between abort and stop. (stop: wait until recognizer acknowledges it stops; abort: throw away everything immediately).
And technically we will need different recognizers for requests of different languages, which is not needed for now.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:168
&gt;&gt; +    }
&gt; 
&gt; I would try to search for the default device and use that one, otherwise pick the first enabled device.
&gt; This does not require a Vector though.

Sure, will change.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:175
&gt;&gt; +    return CaptureSourceOrError { &quot;createCaptureSource is not implemented&quot; };
&gt; 
&gt; on iOS, we might need to send IPC to WebProcess to create a realtime media source there instead of in UIProcess.

Yes, seems we need to create something like RemoteRealtimeMediaSource in UI process. Will try that in another patch.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:186
&gt;&gt; +void SpeechRecognitionServer::didStartCapturingAudio()
&gt; 
&gt; Maybe we could simplify the API so that there is a sendUpdate delegate taking a WebCore::SpeechRecognitionUpdateType?
&gt; That would reduce the delegate API a bit.

You mean simplifying interfaces of SpeechRecognizerDelegate? Okay will try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708506</commentid>
    <comment_count>7</comment_count>
      <attachid>414417</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-17 23:21:16 -0800</bug_when>
    <thetext>Created attachment 414417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708509</commentid>
    <comment_count>8</comment_count>
      <attachid>414419</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-17 23:35:03 -0800</bug_when>
    <thetext>Created attachment 414419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708512</commentid>
    <comment_count>9</comment_count>
      <attachid>414420</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-17 23:54:04 -0800</bug_when>
    <thetext>Created attachment 414420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708515</commentid>
    <comment_count>10</comment_count>
      <attachid>414422</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-17 23:59:02 -0800</bug_when>
    <thetext>Created attachment 414422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708516</commentid>
    <comment_count>11</comment_count>
      <attachid>414423</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-18 00:06:47 -0800</bug_when>
    <thetext>Created attachment 414423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708520</commentid>
    <comment_count>12</comment_count>
      <attachid>414424</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-18 00:35:30 -0800</bug_when>
    <thetext>Created attachment 414424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708523</commentid>
    <comment_count>13</comment_count>
      <attachid>414426</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-18 00:50:19 -0800</bug_when>
    <thetext>Created attachment 414426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708530</commentid>
    <comment_count>14</comment_count>
      <attachid>414429</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-18 01:34:43 -0800</bug_when>
    <thetext>Created attachment 414429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708636</commentid>
    <comment_count>15</comment_count>
      <attachid>414456</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-18 09:28:43 -0800</bug_when>
    <thetext>Created attachment 414456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709038</commentid>
    <comment_count>16</comment_count>
      <attachid>414456</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-19 04:37:44 -0800</bug_when>
    <thetext>Comment on attachment 414456
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Manually tested with MiniBrowser.

Can we write some layout test.
We should be able to get mocks going on so that some events get fired in WTR.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.h:37
&gt; +class SpeechRecognitionCaptureSource : public RealtimeMediaSource::Observer, public RealtimeMediaSource::AudioSampleObserver {

final?

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:56
&gt; +    m_source = makeUnique&lt;SpeechRecognitionCaptureSource&gt;([this, weakThis = makeWeakPtr(this), identifier](SpeechRecognitionCaptureSource::Buffer buffer) {

This will probably be called in a background thread so I am not sure this is good.
Maybe you do not need to do processing in a background thread and could hop to the main thread here if latency for the speech recogniser is not an issue.
Speech recognition layoutTests with mock audio in debug should be able to capture these kind of issues.

Also, this processing might be done in the audio high priority thread where we try to not allocate memory.
The typical way of doing things is with a ring buffer or AudioSampleDataSource.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:80
&gt; +        m_recognizer = makeUnique&lt;SpeechRecognizer&gt;([this, weakThis = makeWeakPtr(this)](const SpeechRecognitionUpdate&amp; update) {

s.const ...&amp;/auto/

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:104
&gt;          return;

We also probably need some tests where we trigger several requests in parallel and verify we have the right events on the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709135</commentid>
    <comment_count>17</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-19 09:10:45 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #16)
&gt; Comment on attachment 414456 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414456&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        Manually tested with MiniBrowser.
&gt; 
&gt; Can we write some layout test.
&gt; We should be able to get mocks going on so that some events get fired in WTR.

Sure. Will write.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.h:37
&gt; &gt; +class SpeechRecognitionCaptureSource : public RealtimeMediaSource::Observer, public RealtimeMediaSource::AudioSampleObserver {
&gt; 
&gt; final?

Will add.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:56
&gt; &gt; +    m_source = makeUnique&lt;SpeechRecognitionCaptureSource&gt;([this, weakThis = makeWeakPtr(this), identifier](SpeechRecognitionCaptureSource::Buffer buffer) {
&gt; 
&gt; This will probably be called in a background thread so I am not sure this is
&gt; good.
&gt; Maybe you do not need to do processing in a background thread and could hop
&gt; to the main thread here if latency for the speech recogniser is not an issue.
&gt; Speech recognition layoutTests with mock audio in debug should be able to
&gt; capture these kind of issues.
&gt; 
&gt; Also, this processing might be done in the audio high priority thread where
&gt; we try to not allocate memory.
&gt; The typical way of doing things is with a ring buffer or
&gt; AudioSampleDataSource.

I see, will try hopping back to main thread and using ring buffer.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:80
&gt; &gt; +        m_recognizer = makeUnique&lt;SpeechRecognizer&gt;([this, weakThis = makeWeakPtr(this)](const SpeechRecognitionUpdate&amp; update) {
&gt; 
&gt; s.const ...&amp;/auto/

Okay.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:104
&gt; &gt;          return;
&gt; 
&gt; We also probably need some tests where we trigger several requests in
&gt; parallel and verify we have the right events on the page.

Sure, will add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709493</commentid>
    <comment_count>18</comment_count>
      <attachid>414679</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 08:35:25 -0800</bug_when>
    <thetext>Created attachment 414679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709495</commentid>
    <comment_count>19</comment_count>
      <attachid>414681</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 08:38:19 -0800</bug_when>
    <thetext>Created attachment 414681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709499</commentid>
    <comment_count>20</comment_count>
      <attachid>414684</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 08:43:35 -0800</bug_when>
    <thetext>Created attachment 414684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709502</commentid>
    <comment_count>21</comment_count>
      <attachid>414687</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 08:53:29 -0800</bug_when>
    <thetext>Created attachment 414687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709506</commentid>
    <comment_count>22</comment_count>
      <attachid>414687</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-20 09:16:22 -0800</bug_when>
    <thetext>Comment on attachment 414687
Patch

Looks almost ready to go.
Can you fix the m_errorCallback and check the weakThis creation?

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.h:47
&gt; +    using ErrorCallback = Function&lt;void(String)&gt;;

String&amp;&amp;

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:78
&gt; +    setUpSource(*captureDevice);

s/setUp/setup/ ?
Or maybe just setSource.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:85
&gt; +    , m_errorCallback(WTFMove(errorCallback))

I wound tend to merge m_startCallback and m_errorCallback in a m_updateStateCallback.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:127
&gt; +        auto dataSource = AudioSampleDataSource::create(description.sampleRate() * 2, *m_source);

We want to reduce it to less than 2 seconds but I guess that is fine.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:134
&gt; +            m_errorCallback(&quot;Unable to set the output format of data source&quot;);

Not great to have m_errorCallback called on either main thread or background thread.
Maybe we should hop there.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:143
&gt; +    callOnMainThread([this, weakThis = makeWeakPtr(this), time, audioDescription, sampleCount] {

You need to make sure weak pointer is created at constructor time, either using WeakPtrFactoryInitialization::Eager or explicitly in constructor.

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:42
&gt; +    if (m_clientIdentifier) {

if (!m_clientIdentifier)
    return;

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:85
&gt; +        m_delegateCallback(SpeechRecognitionUpdate::createError(identifier, error));

It seems errorCallback and startCallback could be merged by them taking a SpeechRecognitionUpdate object.
You might just need to add a check to nullptr m_source

&gt; Source/WebCore/platform/cocoa/MediaUtilities.cpp:52
&gt; +    auto format = createAudioFormatDescription(description);

Maybe add a FIXME to check whether we can reuse the format for several sample buffers.

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:80
&gt; +        m_recognizer = makeUnique&lt;SpeechRecognizer&gt;([this, weakThis = makeWeakPtr(this)](const SpeechRecognitionUpdate&amp; update) {

auto&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709533</commentid>
    <comment_count>23</comment_count>
      <attachid>414693</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 10:13:50 -0800</bug_when>
    <thetext>Created attachment 414693
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709534</commentid>
    <comment_count>24</comment_count>
      <attachid>414694</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 10:14:39 -0800</bug_when>
    <thetext>Created attachment 414694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709535</commentid>
    <comment_count>25</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 10:20:41 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #22)
&gt; Comment on attachment 414687 [details]
&gt; Patch
&gt; 
&gt; Looks almost ready to go.
&gt; Can you fix the m_errorCallback and check the weakThis creation?
&gt; 

Updated patch to merge m_errorCallback and m_startCallback to m_updateStateCallback and initialize m_weakThis in constructor of SpeechRecognitionCaptureSourceImpl.

&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414687&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.h:47
&gt; &gt; +    using ErrorCallback = Function&lt;void(String)&gt;;
&gt; 
&gt; String&amp;&amp;
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:78
&gt; &gt; +    setUpSource(*captureDevice);
&gt; 
&gt; s/setUp/setup/ ?
&gt; Or maybe just setSource.

Changed to setSource.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:85
&gt; &gt; +    , m_errorCallback(WTFMove(errorCallback))
&gt; 
&gt; I wound tend to merge m_startCallback and m_errorCallback in a
&gt; m_updateStateCallback.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:127
&gt; &gt; +        auto dataSource = AudioSampleDataSource::create(description.sampleRate() * 2, *m_source);
&gt; 
&gt; We want to reduce it to less than 2 seconds but I guess that is fine.

Changed to 1.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:134
&gt; &gt; +            m_errorCallback(&quot;Unable to set the output format of data source&quot;);
&gt; 
&gt; Not great to have m_errorCallback called on either main thread or background
&gt; thread.
&gt; Maybe we should hop there.

Added SpeechRecognitionCaptureSourceImpl::invokeUpdateStateCallback to hop to main thread.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:143
&gt; &gt; +    callOnMainThread([this, weakThis = makeWeakPtr(this), time, audioDescription, sampleCount] {
&gt; 
&gt; You need to make sure weak pointer is created at constructor time, either
&gt; using WeakPtrFactoryInitialization::Eager or explicitly in constructor.

Choose the second as RealtimeMediaSource::Observer, which SpeechRecognitionCaptureSourceImpl.cpp inherits, is not WeakPtrFactoryInitialization::Eager.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:42
&gt; &gt; +    if (m_clientIdentifier) {
&gt; 
&gt; if (!m_clientIdentifier)
&gt;     return;
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:85
&gt; &gt; +        m_delegateCallback(SpeechRecognitionUpdate::createError(identifier, error));
&gt; 
&gt; It seems errorCallback and startCallback could be merged by them taking a
&gt; SpeechRecognitionUpdate object.
&gt; You might just need to add a check to nullptr m_source

For distinguishing start and error event, Optional&lt;String&gt; seems enough.

&gt; 
&gt; &gt; Source/WebCore/platform/cocoa/MediaUtilities.cpp:52
&gt; &gt; +    auto format = createAudioFormatDescription(description);
&gt; 
&gt; Maybe add a FIXME to check whether we can reuse the format for several
&gt; sample buffers.

Added.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:80
&gt; &gt; +        m_recognizer = makeUnique&lt;SpeechRecognizer&gt;([this, weakThis = makeWeakPtr(this)](const SpeechRecognitionUpdate&amp; update) {
&gt; 
&gt; auto&amp;

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709537</commentid>
    <comment_count>26</comment_count>
      <attachid>414695</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 10:21:38 -0800</bug_when>
    <thetext>Created attachment 414695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709582</commentid>
    <comment_count>27</comment_count>
      <attachid>414695</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-20 11:54:35 -0800</bug_when>
    <thetext>Comment on attachment 414695
Patch

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

&gt; Source/WebKit/ChangeLog:21
&gt; +2020-11-20  Sihui Liu  &lt;sihui_liu@apple.com&gt;

Double entry

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:34
&gt; +    m_impl = makeUnique&lt;SpeechRecognitionCaptureSourceImpl&gt;(WTFMove(dataCallback), WTFMove(updateStateCallback));

Where do we set the source?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.h:44
&gt; +    SpeechRecognitionCaptureSource() = default;

Do we need this constructor?

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:59
&gt; +    , m_weakThis(makeWeakPtr(this))

You might not need m_weakThis, just call makeWeakPtr(this)

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:87
&gt; +    , m_updateStateCallback(WTFMove(updateStateCallback))

It would probably be better to have SpeechRecognitionCaptureSourceImpl constructor take a Ref&lt;RealtimeMediaSource&gt;&amp;&amp;.
Might use a static create method. That can be done as a follow-up.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:118
&gt; +        m_source-&gt;stop();

We should probably call removeObserver and removeAudioSampleObserver.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:141
&gt; +        m_dataSource = WTFMove(dataSource);

We need a lock here when setting m_dataSource since m_dataSource is called from a background thread.
We should tryLock in the background thread. If failing, return early and wait for next time to get the lock.
We can just lock in the main thread.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:151
&gt; +        m_dataSource-&gt;pullSamples(*data.list(), sampleCount, time.timeValue(), 0, AudioSampleDataSource::Copy);

Just there, we probably do not want to keep the lock in m_dataCallback, just in case.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:182
&gt; +    callOnMainThread([this, weakThis = m_weakThis, optionalError = errorMessage] {

This is potentially not safe as we do not isolate copy string.
I think it might just be simpler to call callOnMainThread directly in audioSamplesAvailable.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:54
&gt; +    SpeechRecognitionCaptureSourceImpl(SpeechRecognitionCaptureSourceIdentifier, const CaptureDevice&amp;, DataCallback&amp;&amp;, UpdateStateCallback&amp;&amp;);

Why do we need both constructors?

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt; +        m_source = nullptr;

I would make updateStateCallback take a SpeechRecognitionUpdate.
And write is as follow:
if (!weakThis)
   return;
m_delegateCallback(WTFMove(update));
if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
    m_source = nullptr;

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:104
&gt; +        Vector&lt;SpeechRecognitionResultData&gt; resultDatas;

We might need to build a mock backend in the future given that the real backend requires a TCC prompt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709591</commentid>
    <comment_count>28</comment_count>
      <attachid>414695</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 12:07:10 -0800</bug_when>
    <thetext>Comment on attachment 414695
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:21
&gt;&gt; +2020-11-20  Sihui Liu  &lt;sihui_liu@apple.com&gt;
&gt; 
&gt; Double entry

Will remove.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:34
&gt;&gt; +    m_impl = makeUnique&lt;SpeechRecognitionCaptureSourceImpl&gt;(WTFMove(dataCallback), WTFMove(updateStateCallback));
&gt; 
&gt; Where do we set the source?

SpeechRecognizer?

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.h:44
&gt;&gt; +    SpeechRecognitionCaptureSource() = default;
&gt; 
&gt; Do we need this constructor?

Plan to subclass it for iOS implementation, not needed now.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:59
&gt;&gt; +    , m_weakThis(makeWeakPtr(this))
&gt; 
&gt; You might not need m_weakThis, just call makeWeakPtr(this)

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:87
&gt;&gt; +    , m_updateStateCallback(WTFMove(updateStateCallback))
&gt; 
&gt; It would probably be better to have SpeechRecognitionCaptureSourceImpl constructor take a Ref&lt;RealtimeMediaSource&gt;&amp;&amp;.
&gt; Might use a static create method. That can be done as a follow-up.

Okay, will do a follow-up

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:118
&gt;&gt; +        m_source-&gt;stop();
&gt; 
&gt; We should probably call removeObserver and removeAudioSampleObserver.

Sure.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:141
&gt;&gt; +        m_dataSource = WTFMove(dataSource);
&gt; 
&gt; We need a lock here when setting m_dataSource since m_dataSource is called from a background thread.
&gt; We should tryLock in the background thread. If failing, return early and wait for next time to get the lock.
&gt; We can just lock in the main thread.

Okay, will add lock.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:151
&gt;&gt; +        m_dataSource-&gt;pullSamples(*data.list(), sampleCount, time.timeValue(), 0, AudioSampleDataSource::Copy);
&gt; 
&gt; Just there, we probably do not want to keep the lock in m_dataCallback, just in case.

Okay.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:182
&gt;&gt; +    callOnMainThread([this, weakThis = m_weakThis, optionalError = errorMessage] {
&gt; 
&gt; This is potentially not safe as we do not isolate copy string.
&gt; I think it might just be simpler to call callOnMainThread directly in audioSamplesAvailable.

Will do isolated copy. 
In audioSamplesAvailable?

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:54
&gt;&gt; +    SpeechRecognitionCaptureSourceImpl(SpeechRecognitionCaptureSourceIdentifier, const CaptureDevice&amp;, DataCallback&amp;&amp;, UpdateStateCallback&amp;&amp;);
&gt; 
&gt; Why do we need both constructors?

Supposedly we should specify device/source for iOS.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt;&gt; +        m_source = nullptr;
&gt; 
&gt; I would make updateStateCallback take a SpeechRecognitionUpdate.
&gt; And write is as follow:
&gt; if (!weakThis)
&gt;    return;
&gt; m_delegateCallback(WTFMove(update));
&gt; if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
&gt;     m_source = nullptr;

Sure.

&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:104
&gt;&gt; +        Vector&lt;SpeechRecognitionResultData&gt; resultDatas;
&gt; 
&gt; We might need to build a mock backend in the future given that the real backend requires a TCC prompt.

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709593</commentid>
    <comment_count>29</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-20 12:10:56 -0800</bug_when>
    <thetext>
&gt; &gt; This is potentially not safe as we do not isolate copy string.
&gt; &gt; I think it might just be simpler to call callOnMainThread directly in audioSamplesAvailable.
&gt; 
&gt; Will do isolated copy. 
&gt; In audioSamplesAvailable?

Not needed, you might want to callOnMainThread in audioSamplesAvailable and create the string in main thread.

&gt; &gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:54
&gt; &gt;&gt; +    SpeechRecognitionCaptureSourceImpl(SpeechRecognitionCaptureSourceIdentifier, const CaptureDevice&amp;, DataCallback&amp;&amp;, UpdateStateCallback&amp;&amp;);
&gt; &gt; 
&gt; &gt; Why do we need both constructors?
&gt; 
&gt; Supposedly we should specify device/source for iOS.

Let&apos;s remove the one that is not used for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709596</commentid>
    <comment_count>30</comment_count>
      <attachid>414695</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 12:35:17 -0800</bug_when>
    <thetext>Comment on attachment 414695
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt;&gt;&gt; +        m_source = nullptr;
&gt;&gt; 
&gt;&gt; I would make updateStateCallback take a SpeechRecognitionUpdate.
&gt;&gt; And write is as follow:
&gt;&gt; if (!weakThis)
&gt;&gt;    return;
&gt;&gt; m_delegateCallback(WTFMove(update));
&gt;&gt; if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
&gt;&gt;     m_source = nullptr;
&gt; 
&gt; Sure.

hmm SpeechReocognitionCaptureSource does not know the clientIdentifier so it cannot create a SpeechRecognitionUpdate.
Do you think we should pass clientIdentifier to it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709598</commentid>
    <comment_count>31</comment_count>
      <attachid>414695</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-20 12:41:15 -0800</bug_when>
    <thetext>Comment on attachment 414695
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:54
&gt;&gt;&gt; +    SpeechRecognitionCaptureSourceImpl(SpeechRecognitionCaptureSourceIdentifier, const CaptureDevice&amp;, DataCallback&amp;&amp;, UpdateStateCallback&amp;&amp;);
&gt;&gt; 
&gt;&gt; Why do we need both constructors?
&gt; 
&gt; Supposedly we should specify device/source for iOS.

Well, for now, let&apos;s just keep the first one, that will remove some duplicated code.

&gt;&gt;&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt;&gt;&gt;&gt; +        m_source = nullptr;
&gt;&gt;&gt; 
&gt;&gt;&gt; I would make updateStateCallback take a SpeechRecognitionUpdate.
&gt;&gt;&gt; And write is as follow:
&gt;&gt;&gt; if (!weakThis)
&gt;&gt;&gt;    return;
&gt;&gt;&gt; m_delegateCallback(WTFMove(update));
&gt;&gt;&gt; if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
&gt;&gt;&gt;     m_source = nullptr;
&gt;&gt; 
&gt;&gt; Sure.
&gt; 
&gt; hmm SpeechReocognitionCaptureSource does not know the clientIdentifier so it cannot create a SpeechRecognitionUpdate.
&gt; Do you think we should pass clientIdentifier to it?

Ah, I thought the clientIdentifier was the same as SpeechRecognitionCaptureSourceIdentifier
It seems SpeechRecognitionCaptureSourceIdentifier is not used.
Otherwise, we could just pass a SpeechRecognitionUpdateType.
Maybe this is ok to not pass a precise error string to the web page, we usually can get that information through release logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709606</commentid>
    <comment_count>32</comment_count>
      <attachid>414695</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 12:57:01 -0800</bug_when>
    <thetext>Comment on attachment 414695
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt;&gt;&gt;&gt;&gt; +        m_source = nullptr;
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I would make updateStateCallback take a SpeechRecognitionUpdate.
&gt;&gt;&gt;&gt; And write is as follow:
&gt;&gt;&gt;&gt; if (!weakThis)
&gt;&gt;&gt;&gt;    return;
&gt;&gt;&gt;&gt; m_delegateCallback(WTFMove(update));
&gt;&gt;&gt;&gt; if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
&gt;&gt;&gt;&gt;     m_source = nullptr;
&gt;&gt;&gt; 
&gt;&gt;&gt; Sure.
&gt;&gt; 
&gt;&gt; hmm SpeechReocognitionCaptureSource does not know the clientIdentifier so it cannot create a SpeechRecognitionUpdate.
&gt;&gt; Do you think we should pass clientIdentifier to it?
&gt; 
&gt; Ah, I thought the clientIdentifier was the same as SpeechRecognitionCaptureSourceIdentifier
&gt; It seems SpeechRecognitionCaptureSourceIdentifier is not used.
&gt; Otherwise, we could just pass a SpeechRecognitionUpdateType.
&gt; Maybe this is ok to not pass a precise error string to the web page, we usually can get that information through release logging.

SpeechRecognitionCaptureSourceIdentifier will be used for syncing sources between processes. Okay, will pass a type instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709609</commentid>
    <comment_count>33</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-20 12:59:46 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #32)
&gt; Comment on attachment 414695 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414695&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt; &gt;&gt;&gt;&gt;&gt; +        m_source = nullptr;
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; I would make updateStateCallback take a SpeechRecognitionUpdate.
&gt; &gt;&gt;&gt;&gt; And write is as follow:
&gt; &gt;&gt;&gt;&gt; if (!weakThis)
&gt; &gt;&gt;&gt;&gt;    return;
&gt; &gt;&gt;&gt;&gt; m_delegateCallback(WTFMove(update));
&gt; &gt;&gt;&gt;&gt; if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
&gt; &gt;&gt;&gt;&gt;     m_source = nullptr;
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; Sure.
&gt; &gt;&gt; 
&gt; &gt;&gt; hmm SpeechReocognitionCaptureSource does not know the clientIdentifier so it cannot create a SpeechRecognitionUpdate.
&gt; &gt;&gt; Do you think we should pass clientIdentifier to it?
&gt; &gt; 
&gt; &gt; Ah, I thought the clientIdentifier was the same as SpeechRecognitionCaptureSourceIdentifier
&gt; &gt; It seems SpeechRecognitionCaptureSourceIdentifier is not used.
&gt; &gt; Otherwise, we could just pass a SpeechRecognitionUpdateType.
&gt; &gt; Maybe this is ok to not pass a precise error string to the web page, we usually can get that information through release logging.
&gt; 
&gt; SpeechRecognitionCaptureSourceIdentifier will be used for syncing sources
&gt; between processes. Okay, will pass a type instead.

I am not sure SpeechRecognitionCaptureSourceIdentifier is the right thing then.
You might best use a RealtimeMediaSource which will actually be remote.
The remote version will have an ID but this will be hidden from speech recognition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709616</commentid>
    <comment_count>34</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 13:14:46 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #33)
&gt; (In reply to Sihui Liu from comment #32)
&gt; &gt; Comment on attachment 414695 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=414695&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt;&gt;&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:89
&gt; &gt; &gt;&gt;&gt;&gt;&gt; +        m_source = nullptr;
&gt; &gt; &gt;&gt;&gt;&gt; 
&gt; &gt; &gt;&gt;&gt;&gt; I would make updateStateCallback take a SpeechRecognitionUpdate.
&gt; &gt; &gt;&gt;&gt;&gt; And write is as follow:
&gt; &gt; &gt;&gt;&gt;&gt; if (!weakThis)
&gt; &gt; &gt;&gt;&gt;&gt;    return;
&gt; &gt; &gt;&gt;&gt;&gt; m_delegateCallback(WTFMove(update));
&gt; &gt; &gt;&gt;&gt;&gt; if if (type == SpeechRecognitionUpdateType::Error || type == SpeechRecognitionUpdateType::End)
&gt; &gt; &gt;&gt;&gt;&gt;     m_source = nullptr;
&gt; &gt; &gt;&gt;&gt; 
&gt; &gt; &gt;&gt;&gt; Sure.
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; hmm SpeechReocognitionCaptureSource does not know the clientIdentifier so it cannot create a SpeechRecognitionUpdate.
&gt; &gt; &gt;&gt; Do you think we should pass clientIdentifier to it?
&gt; &gt; &gt; 
&gt; &gt; &gt; Ah, I thought the clientIdentifier was the same as SpeechRecognitionCaptureSourceIdentifier
&gt; &gt; &gt; It seems SpeechRecognitionCaptureSourceIdentifier is not used.
&gt; &gt; &gt; Otherwise, we could just pass a SpeechRecognitionUpdateType.
&gt; &gt; &gt; Maybe this is ok to not pass a precise error string to the web page, we usually can get that information through release logging.
&gt; &gt; 
&gt; &gt; SpeechRecognitionCaptureSourceIdentifier will be used for syncing sources
&gt; &gt; between processes. Okay, will pass a type instead.
&gt; 
&gt; I am not sure SpeechRecognitionCaptureSourceIdentifier is the right thing
&gt; then.
&gt; You might best use a RealtimeMediaSource which will actually be remote.
&gt; The remote version will have an ID but this will be hidden from speech
&gt; recognition.

ah I see, You are suggesting changing RealtimeMediaSource in SpeechRecognitionCaptureSourceImpl for remote case. I was thinking about having another RemoteSpeechRecognitionCaptureSource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709644</commentid>
    <comment_count>35</comment_count>
      <attachid>414720</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 14:06:24 -0800</bug_when>
    <thetext>Created attachment 414720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709646</commentid>
    <comment_count>36</comment_count>
      <attachid>414722</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 14:09:26 -0800</bug_when>
    <thetext>Created attachment 414722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709648</commentid>
    <comment_count>37</comment_count>
      <attachid>414724</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 14:17:53 -0800</bug_when>
    <thetext>Created attachment 414724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709657</commentid>
    <comment_count>38</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-20 14:35:11 -0800</bug_when>
    <thetext>r=me once bots are green.
I think it might be good to do a follow-up patch that would merge SpeechRecognitionCaptureSourceImpl inside SpeechRecognitionCaptureSource.
RealtimeMediaSource should be able to encapsulate whether the source is remote or not.
For instance MediaStreamTrack is using a RealtimeMediaSource which is either local or remote without any issue. 

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:130
&gt; +            invokeStartOrErrorCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set input format&quot;);

I would write it as:
callOnMainThread([this, weakThis = makeWeakPtr(this)] {
     if (weakThis)
        m_startOrErrorCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set input format&quot;);
});
This is not much longer and removes the need for invokeStartOrErrorCallback.
I would tend to rename m_startOrErrorCallback to m_updateStateCallback.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:139
&gt; +        if (m_dataSourceLock.tryLock())

m_dataSourceLock is not unlocked.
It might be best to write it like that: if (auto locker = tryHoldLock(m_dataSourceLock)).
I am wondering whether the layout tests are actually running that code path.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:154
&gt; +        m_dataSourceLock.unlock();

This is fine like this, I tend to prefer holdLock though.

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:186
&gt; +    callOnMainThread([this, weakThis = makeWeakPtr(this), type, error = error.isolatedCopy()] {

This makes an unnecessary string copy here.
We can prevent it by using String&amp;&amp; and doing WTFMove(error).isolatedCopy().

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:52
&gt; +    m_delegateCallback(SpeechRecognitionUpdate::createError(*m_clientIdentifier, error));

We might be doing some unnecessary count churning here when copying error.

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:67
&gt; +    auto dataCallback = [weakThis = makeWeakPtr(this)](const WTF::MediaTime&amp; time, const PlatformAudioData&amp; data, const AudioStreamDescription&amp; description, size_t sampleCount) {

could use auto for the parameters

&gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:82
&gt; +    auto updateStateCallback = [this, weakThis = makeWeakPtr(this), identifier](SpeechRecognitionUpdateType type, const String&amp; errorMessage) {

could use auto for the parameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709670</commentid>
    <comment_count>39</comment_count>
      <attachid>414733</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 14:52:16 -0800</bug_when>
    <thetext>Created attachment 414733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709734</commentid>
    <comment_count>40</comment_count>
      <attachid>414754</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 22:26:19 -0800</bug_when>
    <thetext>Created attachment 414754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709736</commentid>
    <comment_count>41</comment_count>
      <attachid>414756</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 22:54:38 -0800</bug_when>
    <thetext>Created attachment 414756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709738</commentid>
    <comment_count>42</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-20 23:14:09 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #38)
&gt; r=me once bots are green.
&gt; I think it might be good to do a follow-up patch that would merge
&gt; SpeechRecognitionCaptureSourceImpl inside SpeechRecognitionCaptureSource.
&gt; RealtimeMediaSource should be able to encapsulate whether the source is
&gt; remote or not.
&gt; For instance MediaStreamTrack is using a RealtimeMediaSource which is either
&gt; local or remote without any issue. 

Sure.

&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414722&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:130
&gt; &gt; +            invokeStartOrErrorCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set input format&quot;);
&gt; 
&gt; I would write it as:
&gt; callOnMainThread([this, weakThis = makeWeakPtr(this)] {
&gt;      if (weakThis)
&gt;         m_startOrErrorCallback(SpeechRecognitionUpdateType::Error, &quot;Unable
&gt; to set input format&quot;);
&gt; });
&gt; This is not much longer and removes the need for invokeStartOrErrorCallback.
&gt; I would tend to rename m_startOrErrorCallback to m_updateStateCallback.

Do you mean 
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:139
&gt; &gt; +        if (m_dataSourceLock.tryLock())
&gt; 
&gt; m_dataSourceLock is not unlocked.
&gt; It might be best to write it like that: if (auto locker =
&gt; tryHoldLock(m_dataSourceLock)).
&gt; I am wondering whether the layout tests are actually running that code path.

Right, the layout tests did catch that (not releasing lock). Will change to use locker.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:154
&gt; &gt; +        m_dataSourceLock.unlock();
&gt; 
&gt; This is fine like this, I tend to prefer holdLock though.

Changed.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:186
&gt; &gt; +    callOnMainThread([this, weakThis = makeWeakPtr(this), type, error = error.isolatedCopy()] {
&gt; 
&gt; This makes an unnecessary string copy here.
&gt; We can prevent it by using String&amp;&amp; and doing WTFMove(error).isolatedCopy().

I&apos;ve updated the patch to make the callback take a SpeechRecognitionUpdate instead of string as you suggested.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:52
&gt; &gt; +    m_delegateCallback(SpeechRecognitionUpdate::createError(*m_clientIdentifier, error));
&gt; 
&gt; We might be doing some unnecessary count churning here when copying error.
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:67
&gt; &gt; +    auto dataCallback = [weakThis = makeWeakPtr(this)](const WTF::MediaTime&amp; time, const PlatformAudioData&amp; data, const AudioStreamDescription&amp; description, size_t sampleCount) {
&gt; 
&gt; could use auto for the parameters

Sure.

&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognizer.cpp:82
&gt; &gt; +    auto updateStateCallback = [this, weakThis = makeWeakPtr(this), identifier](SpeechRecognitionUpdateType type, const String&amp; errorMessage) {
&gt; 
&gt; could use auto for the parameters

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709745</commentid>
    <comment_count>43</comment_count>
      <attachid>414756</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-21 01:58:32 -0800</bug_when>
    <thetext>Comment on attachment 414756
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:91
&gt; +            invokeStateUpdateCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set input format&quot;);

Let&apos;s use an explicit callOnMainThread here so that we do not need to go in the business of using isolatedCopy.
We could add to invokeStateUpdateCallback an ASSERT(isMainThread());

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:96
&gt; +            invokeStateUpdateCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set output format&quot;);

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709806</commentid>
    <comment_count>44</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-21 18:43:09 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #43)
&gt; Comment on attachment 414756 [details]
&gt; Patch
Thanks for the review! Will update.

&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414756&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:91
&gt; &gt; +            invokeStateUpdateCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set input format&quot;);
&gt; 
&gt; Let&apos;s use an explicit callOnMainThread here so that we do not need to go in
&gt; the business of using isolatedCopy.
&gt; We could add to invokeStateUpdateCallback an ASSERT(isMainThread());
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:96
&gt; &gt; +            invokeStateUpdateCallback(SpeechRecognitionUpdateType::Error, &quot;Unable to set output format&quot;);
&gt; 
&gt; Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709807</commentid>
    <comment_count>45</comment_count>
      <attachid>414779</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-11-21 18:44:48 -0800</bug_when>
    <thetext>Created attachment 414779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709823</commentid>
    <comment_count>46</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-21 21:51:33 -0800</bug_when>
    <thetext>Committed r270158: &lt;https://trac.webkit.org/changeset/270158&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414779.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413947</attachid>
            <date>2020-11-12 09:56:51 -0800</date>
            <delta_ts>2020-11-16 18:05:28 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>WIP_1112</filename>
            <type>text/plain</type>
            <size>20296</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY5NzYxNTEyMzg0YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU3BlZWNoUmVjb2duaXplcigpID0gZGVm
YXVsdDsKKyAgICB2aXJ0dWFsIH5TcGVlY2hSZWNvZ25pemVyKCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIHN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgPSAwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmMxN2NlMjBkNGYzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5oCkBAIC0w
LDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFNwZWVjaFJlY29nbml0
aW9uRXJyb3I7CitzdHJ1Y3QgU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOworCitjbGFzcyBT
cGVlY2hSZWNvZ25pemVyRGVsZWdhdGUgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVj
b2duaXplckRlbGVnYXRlPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+U3BlZWNoUmVjb2duaXplckRlbGVnYXRlKCk7CisgICAgdmlydHVhbCB2
b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1
ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRF
bmQoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25pemVyQ29jb2EuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1NwZWVjaFJlY29nbml6ZXJDb2Nv
YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDYxMDY3YTYwOTFl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2Ev
U3BlZWNoUmVjb2duaXplckNvY29hLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml6ZXIuaCIKKwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZm
ZXIgKkNNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplckNvY29hIGZp
bmFsIDogcHVibGljIFNwZWVjaFJlY29nbml6ZXIsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
OjpPYnNlcnZlciwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIgeworcHVibGljOgorICAgIFNwZWVjaFJlY29nbml6ZXJDb2NvYShTcGVlY2hS
ZWNvZ25pemVyRGVsZWdhdGUmKTsKKworcHJpdmF0ZToKKyAgICAvLyBTcGVlY2hSZWNvZ25pemVy
CisgICAgdm9pZCBzdGFydCgpIGZpbmFsOworICAgIHZvaWQgc3RvcCgpIGZpbmFsOworCisgICAg
Ly8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgIHZvaWQgYXVk
aW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisKKyAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgIHZvaWQgc291cmNlU3RhcnRl
ZCgpOworICAgIHZvaWQgc291cmNlU3RvcHBlZCgpOworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFu
Z2VkKCk7CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKTsKKyAgICB2b2lkIGF1ZGlv
VW5pdFdpbGxTdGFydCgpOworCisgICAgdm9pZCByZWNvZ25pemUoUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPik7CisKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7
CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGU+IG1fZGVsZWdhdGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25pemVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25pemVyQ29jb2EubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mN2RhMWE0M2FhNmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25p
emVyQ29jb2EubW0KQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIlNwZWVjaFJlY29nbml6ZXJDb2NvYS5oIgorCisjaW5jbHVkZSAiQ2Fw
dHVyZURldmljZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaCIKKyNp
bmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9u
L01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVj
aFJlY29nbml6ZXJDb2NvYTo6U3BlZWNoUmVjb2duaXplckNvY29hKFNwZWVjaFJlY29nbml6ZXJE
ZWxlZ2F0ZSYgZGVsZWdhdGUpCisgICAgOiBtX2RlbGVnYXRlKG1ha2VXZWFrUHRyKGRlbGVnYXRl
KSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyQ29jb2E6OnN0YXJ0KCkKK3sKKyAgICBh
dXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRp
b0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZp
Y2VzKCk7CisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGVuYWJsZWREZXZpY2VzOworICAgIGZv
ciAoYXV0byBkZXZpY2UgOiBkZXZpY2VzKSB7CisgICAgICAgIGlmIChkZXZpY2UuZW5hYmxlZCgp
KQorICAgICAgICAgICAgZW5hYmxlZERldmljZXMuYXBwZW5kKGRldmljZSk7CisgICAgfQorICAg
IGlmIChlbmFibGVkRGV2aWNlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKG1fZGVsZWdhdGUp
CisgICAgICAgICAgICBtX2RlbGVnYXRlLT5kaWRFcnJvcihTcGVlY2hSZWNvZ25pdGlvbkVycm9y
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiTm8gZGV2aWNlIGlz
IGF2aWxhYmxlIGZvciBjYXB0dXJlIiB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGF1dG8gc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZW5hYmxl
ZERldmljZXNbMF0sIHsgfSwgeyB9KTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAg
ICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgICAgICBtX2RlbGVnYXRlLT5kaWRFcnJvcihTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCBzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBtX3NvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CisgICAgbV9zb3VyY2Ut
PnN0YXJ0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplckNvY29hOjpzdG9wKCkKK3sKKyAg
ICBBU1NFUlQobV9zb3VyY2UpOworICAgIG1fc291cmNlLT5zdG9wKCk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXplckNvY29hOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICBBU1NF
UlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CisgICAgQVNTRVJUKGRlc2NyaXB0aW9u
LnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVk
aW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9u
LCB0b0NNVGltZSh0aW1lKSwgc2FtcGxlQ291bnQpOworICAgIGlmICghc2FtcGxlQnVmZmVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICByZWNvZ25pemUoc2FtcGxlQnVmZmVyKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyQ29jb2E6OnJlY29nbml6ZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZm
ZXJSZWY+KQoreworICAgIC8vVE9ETzogcGVyZm9ybSByZWNvZ25pdGlvbiBvbiBidWZmZXIgYW5k
IGdlbmVyYXRlIHJlc3VsdC4KKyAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
PiBkYXRhczsKKyAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2Vu
ZXJhdGVSZXN1bHQoZGF0YXMpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXJDb2NvYTo6c291
cmNlU3RhcnRlZCgpCit7CisgICAgaWYgKG1fZGVsZWdhdGUpCisgICAgICAgIG1fZGVsZWdhdGUt
PmRpZFN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyQ29j
b2E6OnNvdXJjZVN0b3BwZWQoKQoreworICAgIGlmICghbV9kZWxlZ2F0ZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKSB7CisgICAgICAgIG1f
ZGVsZWdhdGUtPmRpZEVycm9yKFNwZWVjaFJlY29nbml0aW9uRXJyb3J7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJDYXB0dXJlIGZhaWxlZCIgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlLT5kaWRTdG9wQ2FwdHVyaW5nQXVkaW8o
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyQ29jb2E6OnNvdXJjZU11dGVkQ2hhbmdlZCgp
Cit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplckNvY29hOjpzb3VyY2VTZXR0aW5nc0NoYW5n
ZWQoKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXJDb2NvYTo6YXVkaW9Vbml0V2lsbFN0
YXJ0KCkKK3sKKyAgICBpZiAobV9kZWxlZ2F0ZSkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkU3Rh
cnQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAppbmRleCAzZDI4YzdiOTI4ZGIuLjZkMTU0ODJjOTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC04OSw2ICs4OSw3IEBAIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1h
cnlJdGVtc0NvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwCiBNb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9pb3MvQ2xpcGJvYXJk
SW1hZ2VSZWFkZXJJT1MubW0KIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL21hYy9DbGlwYm9hcmRJ
bWFnZVJlYWRlck1hYy5tbQorTW9kdWxlcy9zcGVlY2gvY29jb2EvU3BlZWNoUmVjb2duaXplckNv
Y29hLm1tCiBNb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KIE1v
ZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCiBNb2R1bGVzL3dlYmRh
dGFiYXNlL2NvY29hL0RhdGFiYXNlTWFuYWdlckNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWNlMWJmOWU1MTFiLi45
MTEyNzBiMDNlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI3MjgsNiArMjcyOCw5IEBACiAJCTkzMzA5RUEzMDk5RUI3OEMw
MDU2RTU4MSAvKiBTaGFyZWRUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMzMDlFQTAwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyLmgg
Ki87IH07CiAJCTkzM0ExNDMwMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0ExNDJEMEI3RDE4ODYw
MEE1M0ZGRCAvKiBUZXh0RXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MzNBMTRCOTBCN0QxRDUyMDBBNTNGRkQgLyogSlNUZXh0RXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0ExNEI3
MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRFdmVudC5oICovOyB9OworCQk5MzQyNThBRTI1NUQ5
MkQ5MDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNThBQjI1NUQ5MTczMDA1OUVFREQg
LyogU3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0MjU4QUYyNTVEOTJERTAwNTlFRUREIC8qIFNwZWVj
aFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDI1OEFEMjU1RDkxNzMwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0MjU4QjQyNTVE
OTM3MjAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0MjU4QjIyNTVEOTM2RjAwNTlFRUREIC8q
IFNwZWVjaFJlY29nbml6ZXJDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNV
VEY4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQz
Q0I4MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0MkM5
RTBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMz
OEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEyNUJC
QkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFw
aGljc0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMTI4MSw2ICsxMTI4NCwxMCBAQAogCQk5MzNBMTQyRDBCN0QxODg2MDBBNTNG
RkQgLyogVGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTRCNjBCN0QxRDUyMDBB
NTNGRkQgLyogSlNUZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNUZXh0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNB
MTRCNzBCN0QxRDUyMDBBNTNGRkQgLyogSlNUZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNUZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM0MjU4QUIyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0MjU4QUQyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29n
bml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5MzQyNThCMjI1NUQ5MzZGMDA1OUVFREQgLyogU3BlZWNoUmVjb2du
aXplckNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml6ZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQyNThCMzI1NUQ5
MzcwMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplckNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQzMDU5NjFEQjlGQTBFMDBFNzEyQTcgLyogU1ZHR3Jh
cGhpY3NFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdHcmFwaGljc0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzQzQ0I3RjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVj
VVRGOC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNV
VEY4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0M0NCODAxMkYyNUU1MTAw
MzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGV4dENvZGVjVVRGOC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI5Mzks
NiArMjI5NDYsMTUgQEAKIAkJCXBhdGggPSBmaWx0ZXJzOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJOTM0MjU4QjEyNTVEOTMzMjAwNTlFRUREIC8qIGNvY29hICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzQyNThCMjI1NUQ5MzZG
MDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplckNvY29hLmggKi8sCisJCQkJOTM0MjU4QjMyNTVE
OTM3MDAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlw
YXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5M0ExRUFB
MjBBNTYzNEQ4MDA2OTYwQTAgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTI1NDc3LDEwICsyNTQ5MywxMyBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0
MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk5MzQyNThCMTI1NUQ5MzMyMDA1OUVFREQgLyogY29jb2EgKi8sCiAJCQkJQUEy
QTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICov
LAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVz
aXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVl
Y2hTeW50aGVzaXMuaCAqLywKIAkJCQk5MzQ5NTBDNzI1Mzk0MzU0MDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb24uY3BwICovLAorCQkJCTkzNDI1OEFEMjU1RDkxNzMwMDU5RUVERCAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8sCisJCQkJOTM0MjU4QUIyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVj
aFJlY29nbml6ZXJEZWxlZ2F0ZS5oICovLAogCQkJCTkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbi5oICovLAogCQkJCTkzNDk1MEFEMjUzOTQzNDYwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbi5pZGwgKi8sCiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLApAQCAtMzI1MDUsNiArMzI1
MjQsNyBAQAogCQkJCTBGRjNCOTJCMUVFM0I2REUwMEI4NDE0NCAvKiBKU0RPTVF1YWRJbml0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjQ3MTBCQzFEQjU2QkU4MDAyRENFQzMgLyogSlNET01SZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ3MTBCRTFEQjU2QkU4MDAyRENFQzMgLyogSlNET01S
ZWN0SW5pdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0MjU4QUUyNTVEOTJEOTAwNTlFRUREIC8q
IFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY2RUQ4RDMx
RURFMDE0NDAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NDcxMEMwMURCNTZCRTgwMDJEQ0VDMyAvKiBKU0RPTVJlY3RSZWFkT25seS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1QTg2QjYwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKQEAgLTMyOTc3LDYgKzMyOTk3LDcgQEAKIAkJCQlCMjdCMjgyQTBDRUYwQzA3
MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NDk2RTNBMDEzOTgxM0E1MDAzRUUzMkEgLyogSlNTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1NDJBNzk3MEFFNUM5NDMwMERGNThERiAvKiBKU1NWR051bWJlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM0MjU4QjQyNTVEOTM3MjAwNTlFRUREIC8qIFNwZWVjaFJlY29n
bml6ZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEQjEwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEQjUwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEz
REI3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovLApAQCAt
MzMwNjMsNiArMzMwODQsNyBAQAogCQkJCUJFMjA1MDgyMThBNDYwQzMwMDgwNjQ3RSAvKiBKU1ZU
VEN1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FGOUIyMEQxOENGQjVGNDAwQzY0QkVGIC8qIEpT
VlRUUmVnaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRCRUYg
LyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQyNThBRjI1NUQ5MkRF
MDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ4MkQ3
RjgxM0Q0QzhCRDAwNEU0MzcyIC8qIEpTV2F2ZVNoYXBlck5vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxMDI1RUUyMUY5OUYxRUMwMDRBMjUwQyAvKiBKU1dlYkFuaW1hdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRDNGM0QzNjQxQTY5QjE5MDAwNTlGQzJCIC8qIEpTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5oCmluZGV4IDQ3YjE5ZGQ2ZDk0Mi4uZmY2ZjI3YThjOTI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXVkaW9CaXRSYXRl
KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgdmlkZW9CaXRSYXRlKCkgY29uc3Q7CiAKKyAgICBzdGF0
aWMgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBD
TVRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIoYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbyk7CiAgICAgdm9pZCBj
bGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLm1tCmluZGV4IGFjYjQ5NDQzMDhkMS4uOGJiYzlmNTdkZWE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC00NTUs
NyArNDU1LDcgQEAgc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJl
Zj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb24KICAgICByZXR1cm4gYWRvcHRDRihm
b3JtYXQpOwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6
ZV90IHNhbXBsZUNvdW50KQorUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIGF1dG8gZm9ybWF0ID0g
Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CiAgICAgaWYgKCFmb3Jt
YXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414296</attachid>
            <date>2020-11-16 18:05:32 -0800</date>
            <delta_ts>2020-11-17 00:05:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201116180531.patch</filename>
            <type>text/plain</type>
            <size>44721</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5ODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdmY2RkNWRkODE2YmQ1
MDUwYWVlYWIxMTMwNjI3YzFlNzJiYWY0Ny4uMTFlZGFlNTgyN2RmZjBiNzNiNDU2MjFmMmZhMzQ3
NzhhMjg5MzgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTExLTE2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMz
MTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YW51YWxseSB0ZXN0ZWQgd2l0aCBNaW5pQnJvd3Nlci4KKworICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL2NvY29hL1NwZWVjaFJlY29nbml6ZXJDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml6ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml6ZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6YXVk
aW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6
OnJlY29nbml6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzb3VyY2VT
dGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnNvdXJjZVN0b3Bw
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c291cmNlTXV0ZWRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmF1ZGlvVW5pdFdpbGxT
dGFydCk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFV
dGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmg6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL011bHRpR2FtZXBhZFByb3ZpZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZl
cik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBSZW1vdmUgaXNMYXN0VGV4dFJ1bk9u
TGluZS9pc0xhc3RUZXh0UnVuIGZyb20gcnVuIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4MmQ4OGY4
NGNmNjcxNzRiNzQyNTMzOGU0OWNmZTE0MmMyNDI4YmUuLmY5M2UyZjUxYjc5YmVkNzA0MDJmMDMz
MjVlYjE1MzAwNDYzNzk0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMTEtMTYg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1
ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZW5xdWV1ZUdyYW50ZWRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0TmV4dEdyYW50ZWRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
ZGlkU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlk
U3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8pOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6ZGlkR2VuZXJhdGVSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkU3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIw
MjAtMTEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFdlYkRyaXZlcjogZG8gbm90IGZvY3VzIHRoZSBtYWluIGZyYW1lIHdoZW4gc3dpdGNo
aW5nIHRvIGEgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI1MTE3MjY1NWM4MGEyNzI5NTQ4NTk2NWE1MWQ4
ZjRjYTBhYjg4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmgiCisKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2Ft
cGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6ZXIg
ZmluYWwgOiAgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyLCBwdWJsaWMgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNo
UmVjb2duaXplcihTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUmLCBTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVj
b2duaXplcigpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0b3AoKTsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJp
dmF0ZToKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBz
b3VyY2VTdGFydGVkKCk7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCk7CisgICAgdm9pZCBzb3Vy
Y2VNdXRlZENoYW5nZWQoKTsKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpOworCisgICAg
dm9pZCByZWNvZ25pemUoUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPik7CisKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNv
Z25pemVyRGVsZWdhdGU+IG1fZGVsZWdhdGU7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pemVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXJEZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNDA2NGY3OTJjNTc0ODlhNmExMWFk
NmYwNDBhNjUyZmE4MDJkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworc3Ry
dWN0IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXpl
ckRlbGVnYXRlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0
ZT4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1YWwg
flNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZSgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZFN0YXJ0KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1
ZGlvKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFcnJvcihj
b25zdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRT
dG9wKCkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvU3BlZWNoUmVjb2duaXplckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvU3BlZWNoUmVjb2duaXplckNv
Y29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI5YTg1NjIzZjgxZDIzOTFlZjNjYjBjZWUzM2Y0MzA0MGMyNjMx
NTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2Nv
YS9TcGVlY2hSZWNvZ25pemVyQ29jb2EubW0KQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2lt
cG9ydCAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2ltcG9ydCAiTWVkaWFVdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIlNwZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbXBvcnQgIlNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oIgorI2ltcG9ydCAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisj
aW1wb3J0IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIoU3Bl
ZWNoUmVjb2duaXplckRlbGVnYXRlJiBkZWxlZ2F0ZSwgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIDogbV9kZWxlZ2F0ZShtYWtlV2Vh
a1B0cihkZWxlZ2F0ZSkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKwor
U3BlZWNoUmVjb2duaXplcjo6flNwZWVjaFJlY29nbml6ZXIoKQoreworfQorCit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0KCkKK3sKKyAgICBBU1NFUlQoIW1fc291cmNlKTsKKyAgICBpZiAo
IW1fZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gc291cmNlT3JFcnJvciA9
IG1fZGVsZWdhdGUtPmNyZWF0ZUNhcHR1cmVTb3VyY2UoKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJy
b3IpIHsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+ZGlkRXJyb3IoU3BlZWNoUmVjb2duaXRpb25FcnJv
ciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHNvdXJjZU9yRXJy
b3IuZXJyb3JNZXNzYWdlIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3Vy
Y2UgPSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAg
IG1fc291cmNlLT5zdGFydCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoKQor
eworICAgIEFTU0VSVChtX3NvdXJjZSk7CisgICAgbV9zb3VyY2UtPnN0b3AoKTsKKworICAgIG1f
ZGVsZWdhdGUtPmRpZFN0b3BDYXB0dXJpbmdBdWRpbygpOworICAgIC8vIFRPRE86IHRoaXMgc2hv
dWxkIGJlIGNhbGxlZCBhZnRlciBkaXNjb25uZWN0aW5nIGZyb20gc3BlZWNoIHJlY29nbml0aW9u
IGJhY2tlbmQuCisgICAgbV9kZWxlZ2F0ZS0+ZGlkU3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml6ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIEFTU0VSVChpczxXZWJB
dWRpb0J1ZmZlckxpc3Q+KGRhdGEpKTsKKyAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CisgICAgYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZl
cihkYXRhLCBkZXNjcmlwdGlvbiwgdG9DTVRpbWUodGltZSksIHNhbXBsZUNvdW50KTsKKyAgICBp
ZiAoIXNhbXBsZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVjb2duaXplKHNhbXBs
ZUJ1ZmZlcik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6cmVjb2duaXplKFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4pCit7CisgICAgLy8gVE9ETzogZ2l2ZSBkYXRhIHRvIHNwZWVj
aCByZWNvZ25pdGlvbiBiYWNrZW5kLgorfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNvdXJj
ZVN0YXJ0ZWQoKQoreworICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRlLT5k
aWRTdGFydENhcHR1cmluZ0F1ZGlvKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c291
cmNlU3RvcHBlZCgpCit7CisgICAgaWYgKCFtX2RlbGVnYXRlKQorICAgICAgICByZXR1cm47CisK
KyAgICBBU1NFUlQobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOworICAgIG1fZGVsZWdhdGUt
PmRpZEVycm9yKFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QXVkaW9DYXB0dXJlLCAiQ2FwdHVyZSBmYWlsZWQiIH0pOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fZGVsZWdhdGUg
JiYgbV9zb3VyY2UtPm11dGVkKCkpCisgICAgICAgIG1fZGVsZWdhdGUtPmRpZEVycm9yKFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiQ2FwdHVyZSBzb3VyY2UgZ290IG11dGVkIiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjphdWRpb1VuaXRXaWxsU3RhcnQoKQoreworICAgIGlmIChtX2RlbGVnYXRlKQorICAg
ICAgICBtX2RlbGVnYXRlLT5kaWRTdGFydCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRlYWQ4MThiYTNjYjJh
NDQ5MzE1NDZiNTlhNjAuLjMxZTY0NDkyZjM1ZTU4MmJiZjMyMzE4MGRhMWE1ZTkzMDllNGIzNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtOTIsNiArOTIsNyBAQCBNb2R1bGVzL2FzeW5j
LWNsaXBib2FyZC9tYWMvQ2xpcGJvYXJkSW1hZ2VSZWFkZXJNYWMubW0KIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAKIE1vZHVsZXMvcGx1Z2lucy9R
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQogTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudC5jcHAKK01vZHVsZXMvc3BlZWNoL2NvY29hL1NwZWVjaFJlY29nbml6ZXJD
b2NvYS5tbQogTW9kdWxlcy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5t
bQogYWNjZXNzaWJpbGl0eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQogYWNjZXNzaWJpbGl0eS9p
b3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQpAQCAtMjM3LDYgKzIzOCw3IEBAIHBsYXRmb3Jt
L2NvY29hL0RyYWdJbWFnZUNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9GaWxlTW9uaXRvckNvY29h
Lm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9Mb2Nh
bGl6ZWRTdHJpbmdzQ29jb2EubW0KK3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAog
cGxhdGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9O
ZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxD
b250cm9sc0NvbnRlbnRGaWx0ZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMDQxNDhjYThmMjhmMWQyOWMwYzI2YjJlNWVk
MTY0MjAzYmMzNmIyLi4zOGQ0MjQyMDBkMTU5ZTBkYzgyMTIwMjYyOThiMWJiZmI4NWQ2MjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yNzQwLDYgKzI3NDAsOCBAQAogCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hh
cmVkVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMzA5RUEwMDk5RUI3OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5oICovOyB9OwogCQk5MzNB
MTQzMDBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTQyRDBCN0QxODg2MDBBNTNGRkQgLyogVGV4
dEV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTMzQTE0QjkwQjdEMUQ1MjAwQTUzRkZEIC8qIEpTVGV4dEV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTRCNzBCN0QxRDUyMDBBNTNG
RkQgLyogSlNUZXh0RXZlbnQuaCAqLzsgfTsKKwkJOTM0MjU4QUUyNTVEOTJEOTAwNTlFRUREIC8q
IFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM0MjU4QUIyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29n
bml6ZXJEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTkzNDI1OEFGMjU1RDkyREUwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pemVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNThBRDI1
NUQ5MTczMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAv
KiBUZXh0Q29kZWNVVEY4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzQzQ0I4MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9
OwogCQk5MzQ0MkM5RTBEMkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlE
MEQyQjMzNUMwMDMzOEZGOSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5
MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdG
MjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0yODIzLDYgKzI4MjUsNyBAQAogCQk5M0UyNDFGRjBCMkI0
RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyog
SFRNTEZyYW1lT3duZXJFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJ
ZGlvbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RTJBMzA1MTIzRTlEQzAwMDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFNUIyNjUyNDU1RTk2RjAw
NUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTVCMjYzMjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVk
U3RyaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNFQzRBODcyNTYzMkE0ODAwNzhCQTFGIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0VDNEE4NDI1NjMyQTQ3MDA3
OEJBMUYgLyogTWVkaWFVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTERvY3Vt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIz
RDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk4RTYwODI0NUU1OTAwMUU5QUJD
IC8qIEhUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTIzRDIzRjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThGNjA4MjQ1
RTU5MDAxRTlBQkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyM0QyNzkwMkRFNDNENzAxODYzNUNBIC8qIFRl
eHRSZXNvdXJjZURlY29kZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTEzMTgsNiArMTEzMjEsOSBAQAogCQk5MzNBMTQyRDBCN0QxODg2MDBB
NTNGRkQgLyogVGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
eHRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTRCNjBCN0QxRDUy
MDBBNTNGRkQgLyogSlNUZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNUZXh0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzNBMTRCNzBCN0QxRDUyMDBBNTNGRkQgLyogSlNUZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNUZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0MjU4QUIyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0MjU4QUQyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzQyNThCMzI1NUQ5MzcwMDA1OUVFREQgLyogU3BlZWNoUmVj
b2duaXplckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U3BlZWNoUmVjb2duaXplckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzQzMDU5NjFEQjlGQTBFMDBFNzEyQTcgLyogU1ZHR3JhcGhpY3NFbGVtZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
VkdHcmFwaGljc0VsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQz
Q0I3RjEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0Q29kZWNVVEY4LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM0M0NCODAxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjVVRGOC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0NzMsNiArMTE0NzksOCBAQAogCQk5M0U1QjI1
NDI0NTM2QjFFMDA1QzUyRDAgLyogVVJMRGVjb21wb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxEZWNvbXBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNFNUIyNjMyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRT
dHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXR0cmlidXRlZFN0cmlu
Zy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0VCMzU1RTA5RTM3RkQ2MDBGNDM3
OTkgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNFQzRBODQyNTYzMkE0NzAwNzhCQTFGIC8qIE1l
ZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRUM0QTg5MjU2MzMyN0Mw
MDc4QkExRiAvKiBNZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRUVDMUU1MDlDMjg3NzcwMEM1MTVEMSAvKiBBdHRyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBBdHRyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFRUMxRTYw
OUMyODc3NzAwQzUxNUQxIC8qIENoYXJhY3RlckRhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IENoYXJhY3RlckRhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0VF
QzFFODA5QzI4Nzc3MDBDNTE1RDEgLyogRG9jdW1lbnRUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEb2N1bWVudFR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjMwMDAsNiArMjMwMDgsMTQgQEAKIAkJCXBhdGggPSBmaWx0ZXJzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTM0MjU4QjEyNTVEOTMzMjAwNTlFRUREIC8qIGNvY29hICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5MzQyNThCMzI1
NUQ5MzcwMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplckNvY29hLm1tICovLAorCQkJKTsKKwkJ
CXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzQTFF
QUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMjQzNDgsNiArMjQzNjQsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVG
RjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkw
MEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJC
MjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkz
RUM0QTg5MjU2MzMyN0MwMDc4QkExRiAvKiBNZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTNF
QzRBODQyNTYzMkE0NzAwNzhCQTFGIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5
MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlB
MTlEOTM0OTFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIu
aCAqLywKIAkJCQlBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0yNTUzOCw2ICsyNTU1Niw3IEBACiAJCUFBMkE1QUI3MTZB
NDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTkzNDI1OEIxMjU1RDkzMzIwMDU5RUVERCAvKiBjb2NvYSAqLywKIAkJ
CQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5p
ZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcy5oICovLApAQCAtMjU1NzEsNiArMjU1OTAsOCBAQAogCQkJCTkzNDk1
MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICov
LAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmggKi8sCisJCQkJOTM0MjU4QUQyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLywKKwkJCQk5MzQyNThBQjI1NUQ5MTczMDA1OUVFREQgLyogU3BlZWNoUmVj
b2duaXplckRlbGVnYXRlLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNw
ZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXMuaWRsICovLApAQCAtMzM0NDIsNiArMzM0NjMsNyBAQAogCQkJCTkzMkNDMEI3
MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29u
c3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAv
KiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNFQzRBODcyNTYzMkE0ODAw
NzhCQTFGIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxQkFDMzFC
RDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNv
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM0Niw2ICszNDM2OCw4IEBACiAJCQkJOTNBMDQ4Mjky
NTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQyNThB
RjI1NUQ5MkRFMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTM0MjU4QUUyNTVEOTJEOTAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8q
IFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0
ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YzRjYjg4NDNlMzQyZGQ4N2U3NWQ1ZTVlZDNiNzI0NmNjYTJkMzcyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMu
Y3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYv
U29mdExpbmtpbmcuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2lj
RGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
PihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2lj
RGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOwor
ICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
Q01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICBhdXRvIGZvcm1hdCA9IGNy
ZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIs
IGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1l
LCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMg
ZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01T
YW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCks
IGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdl
YkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAg
ICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBs
aXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWYwYzk2YWFhZjdlZDllMjljYTI1MjhhMWM4NzcyOWExNmYxM2JmYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0
aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1w
bGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKwor
UmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVRpbWUsIHNpemVfdCBzYW1wbGVD
b3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL011bHRpR2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9NdWx0aUdhbWVwYWRQcm92aWRlci5oCmluZGV4
IDViZDgxMTNkNzFkMDQ5YzgzNGNjMDZmNWIwZTZlNzU0ODhlNTdhMzcuLmE0MWU3MDM0ZDhkYTcx
NzU0MDBiMTM0Yzc5NjYxYWZkY2FkN2UwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvbWFjL011bHRpR2FtZXBhZFByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTXVsdGlHYW1lcGFkUHJvdmlkZXIuaApAQCAtMjks
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiR2FtZXBhZFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiR2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HYW1lcGFkLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXgg
YWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRkNzBmZDljYWFlMmRl
Y2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZh
dGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNs
dWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPEFWRm91
bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBAIHZvaWQgTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxl
JiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVm
ZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIGJhc2lj
RGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24q
PihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwotICAgIENN
Rm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2lj
RGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQpOwotICAgIGlmIChl
cnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJl
dHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2Ft
cGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENN
VGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBmb3JtYXQgPSBjcmVh
dGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBpZiAoIWZvcm1hdCkK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVC
dWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3Jl
YXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxz
ZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgTlVMTCwgJnNh
bXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3JlYXRlQXVkaW9TYW1w
bGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZmZXIgPSBhZG9wdENG
KHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZl
ckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEp
Lmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJTZXRE
YXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZmZXI7Ci19Ci0KIHZv
aWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qgc2FtcGxlQ291bnQp
CiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIo
ZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwCmluZGV4IDg1MzM3N2Y1Y2VjZWVlYTE5ZTc2MDk2NDFmYjQwMmI4M2E1OWRkOTIuLmEy
M2VhNDY4MDAwMGJkODFiOGFjYzlkZGMwYzM4NTIwZDllMTljNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTI4LDcg
KzI4LDEwIEBACiAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
Q2FwdHVyZURldmljZU1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uVXBkYXRl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVyLmg+CiAKICNkZWZpbmUgTUVT
U0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkpCiAKQEAgLTQ0LDEyICs0NywxMCBAQCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aQogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMs
IHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2lu
KQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKCFt
X3BlbmRpbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgQVNTRVJU
KCFtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgQVNT
RVJUKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAgICBhdXRvIHJl
cXVlc3RJbmZvID0gU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZp
ZXIsIFdURk1vdmUobGFuZyksIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5h
dGl2ZXMsIFdURk1vdmUob3JpZ2luKSB9OwotICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9w
ZW5kaW5nUmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9y
LT52YWx1ZTsKLQotICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1JlcXVl
c3QpOworICAgIGF1dG8mIG5ld1JlcXVlc3QgPSBtX3JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlm
aWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92
ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgcmVxdWVzdFBlcm1pc3Npb25G
b3JSZXF1ZXN0KCpuZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKQEAgLTYyLDY2ICs2Myw3NiBAQCB2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdl
YWtSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0
ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZShpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lz
aW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CiAgICAg
ICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3Mg
fTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IpOworICAgICAgICAgICAgbV9yZXF1ZXN0
cy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAot
ICAgICAgICBtX29uZ29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0YWtlblJl
cXVlc3QpKTsKLSAgICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGlk
ZW50aWZpZXIpKTsKKyAgICAgICAgZW5xdWV1ZUdyYW50ZWRSZXF1ZXN0KCp3ZWFrUmVxdWVzdCk7
CiAgICAgfSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYg
KG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICBz
ZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+aWRl
bnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5z
dG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVx
dWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIHN0b3BSZXF1ZXN0KCptX29u
Z29pbmdSZXF1ZXN0cy5nZXQoY2xpZW50SWRlbnRpZmllcikpOworICAgIGlmIChtX3JlcXVlc3Rz
LnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAK
IHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1
ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKKyAgICBpZiAobV9yZWNvZ25pemVyICYm
IG1fcmVjb2duaXplci0+aWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpCisgICAgICAg
IG1fcmVjb2duaXplciA9IG51bGxwdHI7CisKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xp
ZW50SWRlbnRpZmllcikpCiAgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNs
aWVudElkZW50aWZpZXIpOwotICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1
cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2Vp
dmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fcmVjb2duaXplcikK
KyAgICAgICAgc3RhcnROZXh0R3JhbnRlZFJlcXVlc3QoKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9D
SEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1
ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1ZXN0KQotICAgICAgICBh
Ym9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQorICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNv
Z25pemVyLT5pZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbnVsbHB0cjsKIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxl
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgLy8gVE9ETzogc3RhcnQgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlvbi4KKyAgICBt
X3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKworICAgIGlmICghbV9yZWNvZ25p
emVyKQorICAgICAgICBzdGFydE5leHRHcmFudGVkUmVxdWVzdCgpOwogfQogCi12b2lkIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjplbnF1ZXVl
R3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0
KQogewotICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCBmaW5hbGl6aW5nIHJl
c3VsdHMgYnkgcmVjb2duaXppbmcgY2FwdHVyZWQgYXVkaW8uCisgICAgbV9ncmFudGVkUmVxdWVz
dHMuYXBwZW5kKG1ha2VXZWFrUHRyKHJlcXVlc3QpKTsKKyAgICBpZiAoIW1fcmVjb2duaXplcikK
KyAgICAgICAgc3RhcnROZXh0R3JhbnRlZFJlcXVlc3QoKTsKIH0KIAotdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0TmV4dEdy
YW50ZWRSZXF1ZXN0KCkKIHsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQg
cmVjb2duaXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAg
V2Vha1B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+IG5leHRSZXF1ZXN0ID0g
bnVsbHB0cjsKKyAgICB3aGlsZSAoIW1fZ3JhbnRlZFJlcXVlc3RzLmlzRW1wdHkoKSkgeworICAg
ICAgICBuZXh0UmVxdWVzdCA9IG1fZ3JhbnRlZFJlcXVlc3RzLnRha2VGaXJzdCgpOworICAgICAg
ICBpZiAobmV4dFJlcXVlc3QpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAo
IW5leHRSZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIW1fcmVjb2duaXpl
cik7CisgICAgbV9yZWNvZ25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPigqdGhp
cywgbmV4dFJlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKSk7CisgICAgbV9yZWNvZ25pemVyLT5z
dGFydCgpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uRXJyb3I+IGVycm9yLCBPcHRpb25hbDxWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPj4gcmVzdWx0KQpAQCAtMTQ0LDYgKzE1NSw3NSBAQCB1aW50NjRfdCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJl
dHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAorQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoKQoreworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFu
YWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGVuYWJs
ZWREZXZpY2VzOworICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2VzKSB7CisgICAgICAgIGlm
IChkZXZpY2UuZW5hYmxlZCgpKQorICAgICAgICAgICAgZW5hYmxlZERldmljZXMuYXBwZW5kKGRl
dmljZSk7CisgICAgfQorCisgICAgaWYgKGVuYWJsZWREZXZpY2VzLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIk5vIGRldmljZSBpcyBhdmFpbGFibGUg
Zm9yIGF1ZGlvIGNhcHR1cmUiIH07CisKKyAgICByZXR1cm4gUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZShlbmFibGVkRGV2aWNlc1swXSwgeyB9LCB7IH0pOworI2Vsc2UKKyAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiY3JlYXRlQ2FwdHVyZVNvdXJjZSBpcyBub3QgaW1wbGVt
ZW50ZWQiIH07CisjZW5kaWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlk
U3RhcnQoKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVjb2duaXplci0+aWRlbnRpZmll
cigpOworICAgIEFTU0VSVChtX3JlcXVlc3RzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBz
ZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6U3RhcnQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpkaWRTdGFydENh
cHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlY29nbml6ZXItPmlk
ZW50aWZpZXIoKTsKKyAgICBBU1NFUlQobV9yZXF1ZXN0cy5jb250YWlucyhpZGVudGlmaWVyKSk7
CisgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVj
b2duaXplci0+aWRlbnRpZmllcigpOworICAgIEFTU0VSVChtX3JlcXVlc3RzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKyAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpkaWRHZW5lcmF0ZVJlc3VsdChjb25zdCBWZWN0b3I8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhPiYgcmVzdWx0RGF0YXMpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gbV9y
ZWNvZ25pemVyLT5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fcmVxdWVzdHMuY29udGFpbnMo
aWRlbnRpZmllcikpOworICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQsIFdURjo6bnVsbG9wdCwgcmVzdWx0RGF0YXMp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpkaWRFcnJvcihjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yJiBlcnJvcikKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3Jl
Y29nbml6ZXItPmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQobV9yZXF1ZXN0cy5jb250YWlucyhp
ZGVudGlmaWVyKSk7CisgICAgbV9yZWNvZ25pemVyID0gbnVsbHB0cjsKKyAgICBtX3JlcXVlc3Rz
LnJlbW92ZShpZGVudGlmaWVyKTsKKyAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yKTsKKworICAgIHN0YXJ0
TmV4dEdyYW50ZWRSZXF1ZXN0KCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OmRpZFN0b3AoKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVjb2duaXplci0+aWRlbnRp
ZmllcigpOworICAgIEFTU0VSVChtX3JlcXVlc3RzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAg
ICBtX3JlY29nbml6ZXIgPSBudWxscHRyOworICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlkZW50aWZp
ZXIpOworICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOworCisgICAgc3RhcnROZXh0R3JhbnRlZFJlcXVlc3QoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNLCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCAz
NjNjYTIwZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi40M2MxYmQ5NjlkOWY5OGEx
MmNiMDdlNDI0OWIwZGUyMzljNzkzODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaD4KICNpbmNsdWRl
IDx3dGYvRGVxdWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNyArNDgsNyBAQCBl
bnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uIDogYm9vbDsKIHVz
aW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciA9IFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyOwogdXNpbmcgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciA9IEZ1bmN0
aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYpPjsKIAotY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBD
OjpNZXNzYWdlU2VuZGVyIHsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uU2VydmVyIDogcHVibGlj
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZSwgcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiwgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyJiYpOwpAQCAtNTgsOSArNjAsOCBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3Qo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBlbnF1ZXVl
R3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAg
dm9pZCBzdGFydE5leHRHcmFudGVkUmVxdWVzdCgpOwogICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBXVEY6Om51bGxvcHQpOwogCiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIuCkBAIC03MCwxMSArNzEsMjEgQEAgcHJpdmF0ZToKICAgICBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CiAg
ICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbDsKIAor
ICAgIC8vIFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFN0YXJ0
KCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAg
dm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSBmaW5hbDsKKyAgICB2b2lkIGRpZEdlbmVyYXRl
UmVzdWx0KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+
JikgZmluYWw7CisgICAgdm9pZCBkaWRFcnJvcihjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaWRTdG9wKCkgZmluYWw7CisKICAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBI
YXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBt
X29uZ29pbmdSZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3JlcXVlc3RzOworICAgIERlcXVlPFdlYWtQdHI8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9ncmFudGVkUmVxdWVzdHM7CiAgICAg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414314</attachid>
            <date>2020-11-17 00:05:07 -0800</date>
            <delta_ts>2020-11-17 23:21:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201117000507.patch</filename>
            <type>text/plain</type>
            <size>46312</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5ODkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ4ZTBjNDllZWMzYzFh
Y2E2N2JmMjBlNWEyYWJkOTYyMWMzOTQxMy4uYjQ4ZDU3MDE4Y2VkZmUxZmU4Y2QyMmIwOTUzODI0
Zjc0NzQ1ODUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTExLTE2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIGNhcHR1cmUgc291cmNlIGFuZCBz
dGFydHMgbW9uaXRvcmluZyB0aGUgc291cmNlLiBPbiBzdG9wLCBTcGVlY2hSZWNvZ25pemVyIHN0
b3BzIHRoZSAKKyAgICAgICAgbW9uaXRvcmluZyB0aGUgc291cmNlIGFuZCBub3RpZnkgaXRzIGRl
bGVnYXRlIGFib3V0IHRoZSBlbmQuCisKKyAgICAgICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWlu
aUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6
IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXJEZWxlZ2F0
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25p
emVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6
U3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjp+
U3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZWNvZ25pemUpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c291cmNlU3RhcnRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml6ZXI6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyOjphdWRpb1VuaXRXaWxsU3RhcnQpOgorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
b2NvYS9NZWRpYVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFk
L21hYy9NdWx0aUdhbWVwYWRQcm92aWRlci5oOiAKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06IG1vdmUgY29k
ZSBmb3IgY3JlYXRpbmcgQ01TYW1wbGVCdWZmZXJSZWYgdG8KKyAgICAgICAgTWVkaWFVdGlsaXRp
ZXMuaCBzbyBpdCBjYW4gYmUgdXNlZCBpbiBTcGVlY2hSZWNvZ25pemVyLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTYg
IEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0dXJl
cyBGYWlsIHRvIFJlbmRlciBpbiBXZWJHTCBmcm9tIEhMUyBTdHJlYW0gb24gaVBob25lIDEyIFtp
T1MgMTQuMl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNDI2NDM2NjhiZjAwZDJiOTk0NGEwZjU5NmI5MGRjYzExNjhm
MmUzMS4uOWQ0ODczNjY1ZDA5YzI3NTc0NTNkMjM2OGIxOWE3YmFiYTI3MGM2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNyBAQAorMjAyMC0xMS0xNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2du
aXRpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgdG8gdXNlIFNw
ZWVjaFJlY29nbml6ZXIgZm9yIGF1ZGlvIGNhcHR1cmUgYW5kIGFkanVzdCBzb21lIGxvZ2ljIGlu
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyLgorICAgICAgICBBZnRlciBhIHJlcXVlc3QgcGFzc2Vz
IHBlcm1pc3Npb24gY2hlY2ssIGl0IHdpbGwgYmUgcHV0IGludG8gYSBxdWV1ZS4gUmVxdWVzdHMg
aW4gcXVldWUgZ2V0cyBoYW5kbGVkIG9uZSBhdCBhIAorICAgICAgICB0aW1lLiBBIHJlcXVlc3Qg
d2lsbCBiZSBmaW5pc2hlZCBpZiBpdCBpcyBhYm9ydGVkL3N0b3BwZWQgYnkgY2xpZW50IG9yIGFu
IGVycm9yIG9jY3VycyBkdXJpbmcgcHJvY2Vzc2luZywgYW5kIAorICAgICAgICBuZXh0IHJlcXVl
c3QgaW4gcXVldWUgd2lsbCBiZSBzdGFydGVkLiBXZSBjcmVhdGUgYSBuZXcgU3BlZWNoUmVjb2du
aXplciBmb3IgZWFjaCByZXF1ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJl
cXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
ZW5xdWV1ZUdyYW50ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0TmV4dEdyYW50ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkU3RhcnRDYXB0dXJpbmdBdWRpbyk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpkaWRTdG9wQ2FwdHVyaW5nQXVk
aW8pOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkR2VuZXJh
dGVSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlk
RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkU3Rv
cCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1
ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmg6IG1lcmdlIG1fb25nb2luZ1JlcXVlc3RzIGFuZCBtX3Bl
bmRpbmdSZXF1ZXN0cyBpbnRvIG1fcmVxdWVzdHMsIGFzCisgICAgICAgIG9uZSByZXF1ZXN0IGNh
biBvbmx5IGV4aXN0IGluIG9uZSBvZiB0aGUgbWFwcy4KKwogMjAyMC0xMS0xNiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFJlbW92ZSBhY2Nl
c3MgdG8gdGhlIHVudXNlZCBBcHBsZUludGVsTUVVc2VyQ2xpZW50IElPS2l0IGNsYXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWJhMjc5OGY2NDQ2NGRkYWM5MjcyYWI4NjVkOGUyNWZiOTA4YTc4YQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
aApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplckRlbGVn
YXRlLmgiCisKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1
ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVy
RGVsZWdhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgZmluYWwgOiAgcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9TYW1wbGVPYnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihTcGVlY2hSZWNv
Z25pemVyRGVsZWdhdGUmLCBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RhcnQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoKTsK
KyAgICBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICAvLyBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8v
IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCk7
CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCk7CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQo
KTsKKyAgICB2b2lkIGF1ZGlvVW5pdFdpbGxTdGFydCgpOworCisgICAgdm9pZCByZWNvZ25pemUo
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPik7CisKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gbV9zb3VyY2U7CisgICAgV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGU+
IG1fZGVsZWdhdGU7CisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXJEZWxl
Z2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZjNDA2NGY3OTJjNTc0ODlhNmExMWFkNmYwNDBhNjUyZmE4MDJk
ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyRGVsZWdhdGUuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yOworc3RydWN0IFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplckRlbGVnYXRlIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZT4geworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZpcnR1YWwgflNwZWVjaFJlY29nbml6
ZXJEZWxlZ2F0ZSgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZUNhcHR1cmVTb3VyY2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0KCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENhcHR1cmluZ0F1ZGlvKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRTdG9wQ2FwdHVyaW5nQXVkaW8oKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZEdlbmVyYXRlUmVzdWx0KGNvbnN0IFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRFcnJvcihjb25zdCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCkgPSAwOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvY29jb2EvU3BlZWNoUmVjb2duaXplckNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvU3BlZWNoUmVjb2duaXplckNvY29hLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI5YTg1NjIzZjgxZDIzOTFlZjNjYjBjZWUzM2Y0MzA0MGMyNjMxNTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9TcGVlY2hSZWNvZ25p
emVyQ29jb2EubW0KQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2ltcG9ydCAiQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oIgorI2ltcG9ydCAiTWVkaWFVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlNw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCIKKyNpbXBvcnQgIlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIgorI2ltcG9ydCAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW1wb3J0IDxwYWwvYXZm
b3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1NwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIoU3BlZWNoUmVjb2duaXplckRl
bGVnYXRlJiBkZWxlZ2F0ZSwgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBpZGVudGlmaWVyKQorICAgIDogbV9kZWxlZ2F0ZShtYWtlV2Vha1B0cihkZWxlZ2F0ZSkp
CisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKK3sKK30KKworU3BlZWNoUmVjb2duaXpl
cjo6flNwZWVjaFJlY29nbml6ZXIoKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0
YXJ0KCkKK3sKKyAgICBBU1NFUlQoIW1fc291cmNlKTsKKyAgICBpZiAoIW1fZGVsZWdhdGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gc291cmNlT3JFcnJvciA9IG1fZGVsZWdhdGUtPmNy
ZWF0ZUNhcHR1cmVTb3VyY2UoKTsKKyAgICBpZiAoIXNvdXJjZU9yRXJyb3IpIHsKKyAgICAgICAg
bV9kZWxlZ2F0ZS0+ZGlkRXJyb3IoU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdl
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSBzb3VyY2VPckVy
cm9yLnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlz
KTsKKyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5zdGFy
dCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoKQoreworICAgIEFTU0VSVCht
X3NvdXJjZSk7CisgICAgbV9zb3VyY2UtPnN0b3AoKTsKKworICAgIG1fZGVsZWdhdGUtPmRpZFN0
b3BDYXB0dXJpbmdBdWRpbygpOworICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGJlIGNhbGxlZCBh
ZnRlciBkaXNjb25uZWN0aW5nIGZyb20gc3BlZWNoIHJlY29nbml0aW9uIGJhY2tlbmQuCisgICAg
bV9kZWxlZ2F0ZS0+ZGlkU3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
c2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIEFTU0VSVChpczxXZWJBdWRpb0J1ZmZlckxpc3Q+
KGRhdGEpKTsKKyAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5
cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisgICAg
YXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlw
dGlvbiwgdG9DTVRpbWUodGltZSksIHNhbXBsZUNvdW50KTsKKyAgICBpZiAoIXNhbXBsZUJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVjb2duaXplKHNhbXBsZUJ1ZmZlcik7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6cmVjb2duaXplKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4pCit7CisgICAgLy8gVE9ETzogZ2l2ZSBkYXRhIHRvIHNwZWVjaCByZWNvZ25pdGlvbiBi
YWNrZW5kLgorfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNvdXJjZVN0YXJ0ZWQoKQorewor
ICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRlLT5kaWRTdGFydENhcHR1cmlu
Z0F1ZGlvKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c291cmNlU3RvcHBlZCgpCit7
CisgICAgaWYgKCFtX2RlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9z
b3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOworICAgIG1fZGVsZWdhdGUtPmRpZEVycm9yKFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiQ2FwdHVyZSBmYWlsZWQiIH0pOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnNv
dXJjZU11dGVkQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fZGVsZWdhdGUgJiYgbV9zb3VyY2UtPm11
dGVkKCkpCisgICAgICAgIG1fZGVsZWdhdGUtPmRpZEVycm9yKFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiQ2FwdHVyZSBz
b3VyY2UgZ290IG11dGVkIiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjphdWRpb1Vu
aXRXaWxsU3RhcnQoKQoreworICAgIGlmIChtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRl
LT5kaWRTdGFydCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRlYWQ4MThiYTNjYjJhNDQ5MzE1NDZiNTlhNjAu
LjMxZTY0NDkyZjM1ZTU4MmJiZjMyMzE4MGRhMWE1ZTkzMDllNGIzNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dApAQCAtOTIsNiArOTIsNyBAQCBNb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9tYWMv
Q2xpcGJvYXJkSW1hZ2VSZWFkZXJNYWMubW0KIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAKIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbQogTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5j
cHAKK01vZHVsZXMvc3BlZWNoL2NvY29hL1NwZWVjaFJlY29nbml6ZXJDb2NvYS5tbQogTW9kdWxl
cy93ZWJkYXRhYmFzZS9jb2NvYS9EYXRhYmFzZU1hbmFnZXJDb2NvYS5tbQogYWNjZXNzaWJpbGl0
eS9pb3MvQVhPYmplY3RDYWNoZUlPUy5tbQogYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0
eU9iamVjdElPUy5tbQpAQCAtMjM3LDYgKzIzOCw3IEBAIHBsYXRmb3JtL2NvY29hL0RyYWdJbWFn
ZUNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9GaWxlTW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9j
b2NvYS9LZXlFdmVudENvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29j
b2EubW0KK3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2Ev
TUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRG
aWx0ZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBjMzdjZmFlOTdmYjAwZTFiNzA4N2ZhODRhZmZjNjc4MzQ4ZGZhMzZiLi43
NTc2NzU0YTAyZmQxYTdkMTBjODQxZjdmOGRlY2U0MDQ3ZTY1MzFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzQzLDYgKzI3
NDMsOCBAQAogCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzA5RUEwMDk5RUI3
OEMwMDU2RTU4MSAvKiBTaGFyZWRUaW1lci5oICovOyB9OwogCQk5MzNBMTQzMDBCN0QxODg2MDBB
NTNGRkQgLyogVGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzNBMTQyRDBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2ZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMzQTE0QjkwQjdE
MUQ1MjAwQTUzRkZEIC8qIEpTVGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTRCNzBCN0QxRDUyMDBBNTNGRkQgLyogSlNUZXh0RXZl
bnQuaCAqLzsgfTsKKwkJOTM0MjU4QUUyNTVEOTJEOTAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6
ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM0MjU4QUIyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDI1
OEFGMjU1RDkyREUwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNThBRDI1NUQ5MTczMDA1OUVFREQg
LyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzNDNDQjgyMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29kZWNVVEY4
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQzQ0I4
MDEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5oICovOyB9OwogCQk5MzQ0MkM5RTBE
MkIzMzVDMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDQyQzlEMEQyQjMzNUMwMDMzOEZG
OSAvKiBIVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4
MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGlj
c0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0yODI2LDYgKzI4MjgsNyBAQAogCQk5M0UyNDFGRjBCMkI0RTQwMDBDNzMyQTEgLyog
SFRNTEZyYW1lT3duZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0UyNDFGRTBCMkI0RTQwMDBDNzMyQTEgLyogSFRNTEZyYW1lT3duZXJF
bGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMzA1MTIzRTlEQzAw
MDlGRTEyQSAvKiBIVE1MUGFyc2VySWRpb21zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFNUIyNjUyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJp
YnV0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTVCMjYzMjQ1NUU5NkYwMDVDNTJEMCAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNFQzRBODcyNTYz
MkE0ODAwNzhCQTFGIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0VDNEE4NDI1NjMyQTQ3MDA3OEJBMUYgLyogTWVkaWFV
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0YxOThFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTERvY3VtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDIzQzAyREU0Mzk2MDE4
NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk4RTYwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIzRDIz
RjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0YxOThGNjA4MjQ1RTU5MDAxRTlBQkMgLyog
VGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjUyM0QyNzkwMkRFNDNENzAxODYzNUNBIC8qIFRleHRSZXNvdXJjZURlY29k
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTEzMzksNiArMTEzNDIsOSBAQAogCQk5MzNBMTQyRDBCN0QxODg2MDBBNTNGRkQgLyogVGV4dEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRFdmVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTRCNjBCN0QxRDUyMDBBNTNGRkQgLyogSlNU
ZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNUZXh0
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNBMTRCNzBCN0QxRDUy
MDBBNTNGRkQgLyogSlNUZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNUZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0MjU4QUIy
NTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJEZWxlZ2F0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM0MjU4QUQyNTVEOTE3MzAwNTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzQyNThCMzI1NUQ5MzcwMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplckNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXpl
ckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQzMDU5NjFEQjlGQTBF
MDBFNzEyQTcgLyogU1ZHR3JhcGhpY3NFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdHcmFwaGljc0VsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQzQ0I3RjEyRjI1RTUxMDAz
M0M1RUUgLyogVGV4dENvZGVjVVRGOC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0Q29kZWNVVEY4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM0M0NCODAxMkYyNUU1MTAwMzNDNUVFIC8qIFRleHRDb2RlY1VURjguaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENvZGVjVVRGOC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTE0OTQsNiArMTE1MDAsOSBAQAogCQk5M0U1QjI1NDI0NTM2QjFFMDA1QzUy
RDAgLyogVVJMRGVjb21wb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVUkxEZWNvbXBvc2l0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNFNUIyNjMyNDU1RTk2RjAwNUM1MkQwIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXR0cmlidXRlZFN0cmluZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0VCMzU1RTA5RTM3RkQ2MDBGNDM3OTkgLyogTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNFQzRBODQyNTYzMkE0NzAwNzhCQTFGIC8qIE1lZGlhVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRUM0QTg5MjU2MzMyN0MwMDc4QkExRiAvKiBNZWRp
YVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRUM0QTkwMjU2
M0I1ODcwMDc4QkExRiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0VF
QzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QXR0ci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRUVDMUU2MDlDMjg3Nzcw
MEM1MTVEMSAvKiBDaGFyYWN0ZXJEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDaGFy
YWN0ZXJEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFRUMxRTgwOUMy
ODc3NzAwQzUxNUQxIC8qIERvY3VtZW50VHlwZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RG9jdW1lbnRUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzMDQ0LDYg
KzIzMDUzLDE0IEBACiAJCQlwYXRoID0gZmlsdGVyczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTkzNDI1OEIxMjU1RDkzMzIwMDU5RUVERCAvKiBjb2NvYSAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTM0MjU4QjMyNTVEOTM3MDAw
NTlFRUREIC8qIFNwZWVjaFJlY29nbml6ZXJDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0g
Y29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5M0ExRUFBMjBBNTYz
NEQ4MDA2OTYwQTAgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTI0Mzk2LDYgKzI0NDEzLDggQEAKIAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYy
QUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJCQkwNkU4MUVENjBBQjVENUU5MDBDODc4Mzcg
LyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JB
NjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKKwkJCQk5M0VDNEE4OTI1
NjMzMjdDMDA3OEJBMUYgLyogTWVkaWFVdGlsaXRpZXMuY3BwICovLAorCQkJCTkzRUM0QTg0MjU2
MzJBNDcwMDc4QkExRiAvKiBNZWRpYVV0aWxpdGllcy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5
MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkx
QUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJ
CQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tICovLApAQCAtMjU1ODgsNiArMjU2MDcsNyBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5
NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk5MzQyNThCMTI1NUQ5MzMyMDA1OUVFREQgLyogY29jb2EgKi8sCiAJCQkJQUEyQTVB
QkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAog
CQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMu
Y3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hT
eW50aGVzaXMuaCAqLywKQEAgLTI1NjIxLDYgKzI1NjQxLDkgQEAKIAkJCQk5MzQ5NTBDNTI1Mzk0
MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQk5
M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICov
LAogCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5oICovLAorCQkJCTkzRUM0QTkwMjU2M0I1ODcwMDc4QkExRiAvKiBTcGVlY2hSZWNvZ25pemVy
LmNwcCAqLywKKwkJCQk5MzQyNThBRDI1NUQ5MTczMDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXpl
ci5oICovLAorCQkJCTkzNDI1OEFCMjU1RDkxNzMwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pemVy
RGVsZWdhdGUuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zMzUwNSw2ICszMzUyOCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1
ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlh
VXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0VDNEE4NzI1NjMyQTQ4MDA3OEJBMUYg
LyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4g
SGVhZGVycyAqLywKQEAgLTM0NDEwLDYgKzM0NDM0LDggQEAKIAkJCQk5M0EwNDgyOTI1NDk1NTEx
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDI1OEFGMjU1RDky
REUwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQy
NThBRTI1NUQ5MkQ5MDA1OUVFREQgLyogU3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNo
U3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRjNGNiODg0M2UzNDJkZDg3ZTc1ZDVlNWVkM2I3MjQ2Y2NhMmQzNzIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAg
LTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
IgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1h
dERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlw
dGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2Ny
aXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlw
dGlvbiwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYg
KGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlv
biBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
IGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUg
dGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFmb3JtYXQpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdp
dGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2Us
IG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxw
dHIsICZzYW1wbGVCdWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1Io
ImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQg
LSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGF1dG8g
YnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1
ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxs
b2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9C
dWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0df
RVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFp
bGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBy
ZXR1cm4gYnVmZmVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjY3YzY2
Nzg1ZDQ3ZDI3MDJiNWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01U
aW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVj
dCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlw
ZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVmOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFz
cyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+
IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYpOworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZl
cihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
LCBDTVRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL011bHRpR2Ft
ZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9NdWx0
aUdhbWVwYWRQcm92aWRlci5oCmluZGV4IDViZDgxMTNkNzFkMDQ5YzgzNGNjMDZmNWIwZTZlNzU0
ODhlNTdhMzcuLmE0MWU3MDM0ZDhkYTcxNzU0MDBiMTM0Yzc5NjYxYWZkY2FkN2UwZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL011bHRpR2FtZXBhZFBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTXVsdGlH
YW1lcGFkUHJvdmlkZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiR2FtZXBhZFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiR2FtZXBhZFByb3ZpZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1HYW1lcGFkLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYz
ZDczNTUwNy4uYmRkNzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUg
IlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVy
TGlzdC5oIgogI2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMs
NDAgKzQ0NCw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVv
U2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVz
c29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAot
c3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlw
dGlvbikKLXsKLSAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRp
b1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9u
KCkuZGVzY3JpcHRpb24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVs
bHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5V
TEwsICZmb3JtYXQpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17
Ci0gICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0
aW9uKTsKLSAgICBpZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3Ig
PSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1w
bGVDb3VudCwgdGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXIgY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0g
ICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENN
U2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgp
LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxX
ZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAg
IHJldHVybiBidWZmZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFw
cGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRp
bWUmLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0g
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlv
U2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNj
ZjJlZTFjMjQ3NzRmOTczZjk5MTYuLmFkN2NiNGRiYjBmY2U0MmQwMjMyYzNkOWQ2Y2E5YjgzMWRm
MGVmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKQEAgLTI5LDggKzI5LDExIEBACiAjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgog
I2luY2x1ZGUgIldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0SW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KIAogI2Rl
ZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlv
biwgbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkKIApAQCAtNDYsMTIgKzQ5LDEwIEBAIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25u
ZWN0aW9uPiYmIGNvbm5lY3RpCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmlt
UmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
JiBvcmlnaW4pCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBB
U1NFUlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAg
ICBBU1NFUlQoIW1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsK
LSAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUobGFuZyksIGNvbnRpbnVvdXMsIGludGVy
aW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1vdmUob3JpZ2luKSB9OwotICAgIGF1dG8m
IHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIs
IG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJl
cXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKLQotICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9y
UmVxdWVzdCgqcGVuZGluZ1JlcXVlc3QpOworICAgIEFTU0VSVCghbV9yZXF1ZXN0cy5jb250YWlu
cyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgYXV0byByZXF1ZXN0SW5mbyA9IFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250
aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikg
fTsKKyAgICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmll
ciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUo
cmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9y
UmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2NiArNjUsNzYgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bmkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3ZWFr
UmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVzdCA9
IG1fcGVuZGluZ1JlcXVlc3RzLnRha2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNpc2lv
biA9PSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgewogICAgICAg
ICAgICAgYXV0byBlcnJvciA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBlcm1pc3Npb24g
Y2hlY2sgZmFpbGVkIl9zIH07CiAgICAgICAgICAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yKTsKKyAgICAg
ICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZpZXIs
IFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25nb2lu
Z1JlcXVlc3RzLmdldChpZGVudGlmaWVyKSk7CisgICAgICAgIGVucXVldWVHcmFudGVkUmVxdWVz
dCgqd2Vha1JlcXVlc3QpOwogICAgIH0pOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50
aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBt
X3JlY29nbml6ZXItPmlkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAg
IG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNT
RVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBz
dG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGNsaWVudElkZW50aWZpZXIpKTsKKyAg
ICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRV
cGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBp
ZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgaWYg
KG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmlkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVu
dGlmaWVyKQorICAgICAgICBtX3JlY29nbml6ZXIgPSBudWxscHRyOworCisgICAgaWYgKG1fcmVx
dWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQogICAgICAgICBzZW5kVXBkYXRlKGNsaWVu
dElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
UmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVl
c3QpOwotICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYg
KCFtX3JlY29nbml6ZXIpCisgICAgICAgIHN0YXJ0TmV4dEdyYW50ZWRSZXF1ZXN0KCk7CiB9CiAK
IHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQog
ewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byByZXF1ZXN0
ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAocmVx
dWVzdCkKLSAgICAgICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLX0KKyAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+aWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIp
CisgICAgICAgIG1fcmVjb2duaXplciA9IG51bGxwdHI7CiAKLXZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQgcmVj
b2duaXRpb24uCisgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAg
ICBpZiAoIW1fcmVjb2duaXplcikKKyAgICAgICAgc3RhcnROZXh0R3JhbnRlZFJlcXVlc3QoKTsK
IH0KIAotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6ZW5xdWV1ZUdyYW50ZWRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBh
bmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJlY29nbml6aW5nIGNhcHR1cmVkIGF1ZGlvLgorICAg
IG1fZ3JhbnRlZFJlcXVlc3RzLmFwcGVuZChtYWtlV2Vha1B0cihyZXF1ZXN0KSk7CisgICAgaWYg
KCFtX3JlY29nbml6ZXIpCisgICAgICAgIHN0YXJ0TmV4dEdyYW50ZWRSZXF1ZXN0KCk7CiB9CiAK
LXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdGFydE5leHRHcmFudGVkUmVxdWVzdCgpCiB7Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0
dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uIGltbWVkaWF0ZWx5IHdpdGhvdXQgZ2VuZXJhdGlu
ZyByZXN1bHRzLgorICAgIFdlYWtQdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
PiBuZXh0UmVxdWVzdCA9IG51bGxwdHI7CisgICAgd2hpbGUgKCFtX2dyYW50ZWRSZXF1ZXN0cy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgbmV4dFJlcXVlc3QgPSBtX2dyYW50ZWRSZXF1ZXN0cy50YWtl
Rmlyc3QoKTsKKyAgICAgICAgaWYgKG5leHRSZXF1ZXN0KQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgaWYgKCFuZXh0UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNT
RVJUKCFtX3JlY29nbml6ZXIpOworICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXplcj4oKnRoaXMsIG5leHRSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCkpOworICAg
IG1fcmVjb2duaXplci0+c3RhcnQoKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBl
cnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4+IHJlc3VsdCkKQEAgLTE0Niw2ICsxNTcsNzUgQEAgdWludDY0X3QgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1cm4g
bV9pZGVudGlmaWVyLnRvVUludDY0KCk7CiB9CiAKK0NhcHR1cmVTb3VyY2VPckVycm9yIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpjcmVhdGVDYXB0dXJlU291cmNlKCkKK3sKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2lu
Z2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIo
KS5jYXB0dXJlRGV2aWNlcygpOworICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBlbmFibGVkRGV2
aWNlczsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAoZGV2
aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAgIGVuYWJsZWREZXZpY2VzLmFwcGVuZChkZXZpY2Up
OworICAgIH0KKworICAgIGlmIChlbmFibGVkRGV2aWNlcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBh
dWRpbyBjYXB0dXJlIiB9OworCisgICAgcmV0dXJuIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoZW5hYmxlZERldmljZXNbMF0sIHsgfSwgeyB9KTsKKyNlbHNlCisgICAgcmV0dXJuIENhcHR1
cmVTb3VyY2VPckVycm9yIHsgImNyZWF0ZUNhcHR1cmVTb3VyY2UgaXMgbm90IGltcGxlbWVudGVk
IiB9OworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmRpZFN0YXJ0
KCkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlY29nbml6ZXItPmlkZW50aWZpZXIoKTsK
KyAgICBBU1NFUlQobV9yZXF1ZXN0cy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgc2VuZFVw
ZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0
YXJ0KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkU3RhcnRDYXB0dXJp
bmdBdWRpbygpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gbV9yZWNvZ25pemVyLT5pZGVudGlm
aWVyKCk7CisgICAgQVNTRVJUKG1fcmVxdWVzdHMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAg
IHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpBdWRpb1N0YXJ0KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlk
U3RvcENhcHR1cmluZ0F1ZGlvKCkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlY29nbml6
ZXItPmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQobV9yZXF1ZXN0cy5jb250YWlucyhpZGVudGlm
aWVyKSk7CisgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6ZGlkR2VuZXJhdGVSZXN1bHQoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4mIHJlc3VsdERhdGFzKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9IG1fcmVjb2du
aXplci0+aWRlbnRpZmllcigpOworICAgIEFTU0VSVChtX3JlcXVlc3RzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKKyAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0LCBXVEY6Om51bGxvcHQsIHJlc3VsdERhdGFzKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6ZGlkRXJyb3IoY29uc3QgU3BlZWNoUmVj
b2duaXRpb25FcnJvciYgZXJyb3IpCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gbV9yZWNvZ25p
emVyLT5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKG1fcmVxdWVzdHMuY29udGFpbnMoaWRlbnRp
ZmllcikpOworICAgIG1fcmVjb2duaXplciA9IG51bGxwdHI7CisgICAgbV9yZXF1ZXN0cy5yZW1v
dmUoaWRlbnRpZmllcik7CisgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBlcnJvcik7CisKKyAgICBzdGFydE5leHRH
cmFudGVkUmVxdWVzdCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpkaWRT
dG9wKCkKK3sKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBtX3JlY29nbml6ZXItPmlkZW50aWZpZXIo
KTsKKyAgICBBU1NFUlQobV9yZXF1ZXN0cy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9y
ZWNvZ25pemVyID0gbnVsbHB0cjsKKyAgICBtX3JlcXVlc3RzLnJlbW92ZShpZGVudGlmaWVyKTsK
KyAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RW5kKTsKKworICAgIHN0YXJ0TmV4dEdyYW50ZWRSZXF1ZXN0KCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDSwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2Ey
MGViYmUzY2ZjZWVkYWY1OGZlZTM0ZmJjMmUxZDE4YTI0ZC4uNDNjMWJkOTY5ZDlmOThhMTJjYjA3
ZTQyNDliMGRlMjM5Yzc5Mzg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplckRlbGVnYXRlLmg+CiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2LDcgKzQ4LDcgQEAgZW51bSBj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbiA6IGJvb2w7CiB1c2luZyBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cjsKIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgPSBGdW5jdGlvbjx2
b2lkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKT47CiAKLWNsYXNzIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml0
aW9uU2VydmVyPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwcml2YXRlIElQQzo6TWVz
c2FnZVNlbmRlciB7CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblNlcnZlciA6IHB1YmxpYyBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYsIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2hlY2tlciYmKTsKQEAgLTU4LDkgKzYwLDggQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgZW5xdWV1ZUdyYW50
ZWRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQg
c3RhcnROZXh0R3JhbnRlZFJlcXVlc3QoKTsKICAgICB2b2lkIHNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0gV1RGOjpudWxsb3B0KTsKIAogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgpAQCAtNzAsMTEgKzcxLDIxIEBAIHByaXZhdGU6CiAgICAgSVBDOjpD
b25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWw7CiAKKyAgICAv
LyBTcGVlY2hSZWNvZ25pemVyRGVsZWdhdGUKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVDYXB0dXJlU291cmNlKCkgZmluYWw7CisgICAgdm9pZCBkaWRTdGFydCgpIGZp
bmFsOworICAgIHZvaWQgZGlkU3RhcnRDYXB0dXJpbmdBdWRpbygpIGZpbmFsOworICAgIHZvaWQg
ZGlkU3RvcENhcHR1cmluZ0F1ZGlvKCkgZmluYWw7CisgICAgdm9pZCBkaWRHZW5lcmF0ZVJlc3Vs
dChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiYpIGZp
bmFsOworICAgIHZvaWQgZGlkRXJyb3IoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkU3RvcCgpIGZpbmFsOworCiAgICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRl
bnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7Ci0gICAgSGFzaE1h
cDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9vbmdv
aW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKKyAgICBEZXF1ZTxXZWFrUHRyPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fZ3JhbnRlZFJlcXVlc3RzOwogICAgIFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414417</attachid>
            <date>2020-11-17 23:21:16 -0800</date>
            <delta_ts>2020-11-17 23:35:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201117232116.patch</filename>
            <type>text/plain</type>
            <size>44353</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjlmYzg3MmU3NTA4MGZlZmFiOGRiMGFjMmYzYzg5ZjMz
MzliMmYwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgi
CisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxp
c3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8cGFsL2F2
Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwor
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JD
YWxsYmFjaykKKyAgICA6IG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0YUNhbGxiYWNrKSkKKyAg
ICAsIG1fZXJyb3JDYWxsYmFjayhXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKQoreworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVy
ZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAo
IWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAg
aWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsK
KyAgICAgICAgaWYgKGRldmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgY2FwdHVyZURl
dmljZSA9IGRldmljZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjaygiTm8gZGV2
aWNlIGlzIGF2YWlsYWJsZSBmb3IgYXVkaW8gY2FwdHVyZSIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKCpj
YXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9l
cnJvckNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAgbV9zb3VyY2UtPmFkZEF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisjZWxzZQorICAgIG1fZXJyb3JDYWxsYmFjaygi
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIGlzIG5vdCBpbXBsZW1lbnRlZCIpOworI2Vu
ZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzYW1wbGVDb3VudCkKK3sKKyAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRh
KSk7CisgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09
IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGF1dG8g
c2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24s
IHRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fZGF0YUNhbGxiYWNrKHNhbXBsZUJ1ZmZlcik7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3VyY2VTdGFydGVkKCkKK3sK
KyAgICAvLyBQYXNzIGFuIGVtcHR5IGJ1ZmZlciB0byBzaWduYWwgc291cmNlIHN0YXJ0LgorICAg
IG1fZGF0YUNhbGxiYWNrKG51bGxwdHIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6c291cmNlU3RvcHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0
dXJlRGlkRmFpbCgpKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3Bw
ZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZU11
dGVkQ2hhbmdlZCgpCit7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3Qg
bXV0ZWQiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRjZDAzMjZlYmU2MGIyZDY1Nzg3YWU3MWIw
NGFlYzhiMTg5MTUxMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisKK3R5cGVkZWYgc3RydWN0IG9wYXF1
ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJldGFpblB0cjxDTVNhbXBs
ZUJ1ZmZlclJlZj4pPjsKKyAgICB1c2luZyBFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChT
dHJpbmcpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoRGF0YUNhbGxiYWNr
JiYsIEVycm9yQ2FsbGJhY2smJik7CisKK3ByaXZhdGU6CisgICAgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisKKyAgICAvLyBSZWFsdGltZU1lZGlh
U291cmNlOjpPYnNlcnZlcgorICAgIHZvaWQgc291cmNlU3RhcnRlZCgpIGZpbmFsOworICAgIHZv
aWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOworICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkg
ZmluYWw7CisKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisgICAg
RGF0YUNhbGxiYWNrIG1fZGF0YUNhbGxiYWNrOworICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNh
bGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGFmYThhNmVkMjI0OGE4Y2UzM2JlMTcxM2FmMWQxNzU1MWY4YmNlMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
Y3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2du
aXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYgY2FsbGJhY2spCisgICAgOiBtX2RlbGVnYXRlQ2FsbGJh
Y2soV1RGTW92ZShjYWxsYmFjaykpCit7Cit9CisKK1NwZWVjaFJlY29nbml6ZXI6On5TcGVlY2hS
ZWNvZ25pemVyKCkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAobV9jbGllbnRJZGVudGlmaWVyKSB7CisgICAg
ICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKworICAg
ICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiIH07Cisg
ICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKKyAgICB9CisKKyAgICBtX2NsaWVu
dElkZW50aWZpZXIgPSBpZGVudGlmaWVyOworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KHRoaXMpXShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGJ1ZmZlcikgeworICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghYnVmZmVy
KSB7CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkF1ZGlvU3RhcnQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIFRPRE86IHJlY29nbml6ZSB0aGUgYnVmZmVyIGFuZCByZXR1cm4gcmVjb2duaXRpb24g
cmVzdWx0LgorCisgICAgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFN0
cmluZyBlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gZXJy
b3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH07CisgICAgICAgIG1fZGVsZWdh
dGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50
SWRlbnRpZmllciwgZXJyb3IpKTsKKyAgICAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpu
dWxsb3B0OworICAgIH0pOworCisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpTdGFydCkpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQp
Cit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291
cmNlID0gbnVsbHB0cjsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpBdWRpb0VuZCkpOworICAgIH0KKworICAgIGlmIChzaG91bGRHZW5lcmF0ZUZp
bmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6OlllcykgeworICAgICAgICAv
LyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVjaCByZWNvZ25pdGlvbiBiYWNr
ZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50SWRlbnRpZmllciwgcmVzdWx0
RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsK
KyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0NzE3OGVi
ZjJmN2UxNzVmMjA2YzE0ZjMzMTE3NDBkN2ZlMDk5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3BlZWNoUmVjb2duaXplcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB+U3BlZWNoUmVjb2duaXplcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNs
YXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50
aWZpZXI7CisgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlPiBtX3NvdXJjZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NmJmZDU1YjE0NTA2MjMwMGEyMzVjOWNlMmIzNGYwMzll
OWEwZThlLi5kODhjYjMxYTUxYzQwNDkyYjhmNTNmY2NmZGE3YjgwMzc5NDVhN2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTkyLDEyICsxOTIsMTQgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBs
YXliYWNrLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAK
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNw
cAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4
YmEzY2IyYTQ0OTMxNTQ2YjU5YTYwLi4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4
NjA2MTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0
Zm9ybS9jb2NvYS9GaWxlTW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3Jt
L2NvY29hL01JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGls
aXRpZXMuY3BwCiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5t
bQogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRm
b3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlMWM1Zjk1YzFhOTcyMGI2MTg1NmUz
MTVlMjFkMzRlNjk4YzY4OWIuLjFlZjBiYjU5NTAxOTdkYzY1YTUxYzI4NDE0YjM0MmFiMzNiZmI1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI3ODcsNiArMjc4Nyw5IEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAv
KiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4
NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5MzlDMEQyNjI1NjRFNDdBMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIy
NTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVk
aWFVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1
NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTQyNyw2ICsxMTQzMCwxMiBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAy
RUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyNTI1NjRBMTFDMDBC
MzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVV0aWxpdGll
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI5MjU2NEU3RjIwMEIz
MjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgx
QjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQzOTYs
NiArMjQ0MDUsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENv
Y29hLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9j
YWxpemVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8q
IE1lZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTEx
QjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0y
NTU5Nyw2ICsyNTYwOCw4IEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIy
NTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAor
CQkJCTkzOUMwRDI1MjU2NEExMUMwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwICovLAorCQkJCTkzOUMwRDI0MjU2NDkxQ0MwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRF
OTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJ
CTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmggKi8sCkBAIC0yNTYyMSw2ICsyNTYzNCw4IEBACiAJCQkJOTM0OTUw
QzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8s
CiAJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLywKIAkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCAqLywKKwkJCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8sCisJCQkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zMzUwNSw2ICszMzUyMCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1
ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlh
VXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4g
SGVhZGVycyAqLywKQEAgLTM0Mzk2LDYgKzM0NDEyLDcgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1
MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI2MjU2NEU0N0EwMEIzMjExQiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJEMjU0OTU1
MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDEwLDYgKzM0NDI3LDcgQEAKIAkJCQk5M0EwNDgyOTI1
NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI3
MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGNiODg0M2Uz
NDJkZDg3ZTc1ZDVlNWVkM2I3MjQ2Y2NhMmQzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxp
dGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2lu
Y2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6
Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVs
bHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVy
biBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90
IHNhbXBsZUNvdW50KQoreworICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFmb3JtYXQpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsK
KyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVC
dWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9y
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0Pihk
YXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBl
cnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVy
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjY3YzY2Nzg1ZDQ3ZDI3MDJi
NWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01UaW1lLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZv
cm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qg
b3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1
ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVRpbWUsIHNp
emVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCBhY2I0
OTQ0MzA4ZDFjYTQzZjlmNjk5YzUxMDQ2MDA4ZjNkNzM1NTA3Li5iZGQ3MGZkOWNhYWUyZGVjY2Ni
MjQwYmMyMWIyNWE0MmZjNjM3NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZU9w
dGlvbnMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ik1lZGlhVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
LmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8QVZGb3VuZGF0
aW9uL0FWQXNzZXRXcml0ZXIuaD4KQEAgLTQ0Myw0MCArNDQ0LDYgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJX
aXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTUZv
cm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQotewotICAgIGF1dG8gYmFzaWNEZXNj
cmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRl
c2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7Ci0gICAgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNj
cmlwdGlvbiwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdCk7Ci0gICAgaWYgKGVycm9y
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJu
IGFkb3B0Q0YoZm9ybWF0KTsKLX0KLQotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1l
IHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKLXsKLSAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwotICAgIGlmICghZm9ybWF0KQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVX
aXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGZhbHNlLCBO
VUxMLCBOVUxMLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBOVUxMLCAmc2FtcGxl
QnVmZmVyKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyKTsKLQotICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQogdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVfdCBzYW1wbGVDb3VudCkKIHsK
ICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRh
LCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKaW5kZXggODU2NTE5ZmI2ODcxM2VkZDlhY2NmMmVlMWMyNDc3NGY5NzNmOTkxNi4uZDc4ZWEw
MmNiN2E2ZjU0ODdlMjUxOTE2MzIwZTUxODI1NjhmY2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtNDYsMTIgKzQ2
LDExIEBAIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3RpCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywg
Ym9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlm
aWVyKTsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKTsKLSAgICBBU1NFUlQoIW1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKKyAgICBBU1NFUlQoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpOwogICAgIGF1dG8gcmVxdWVzdEluZm8gPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHsgY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShsYW5nKSwgY29udGludW91
cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcywgV1RGTW92ZShvcmlnaW4pIH07Ci0g
ICAgYXV0byYgcGVuZGluZ1JlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQoY2xpZW50SWRl
bnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdU
Rk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIG5ld1JlcXVl
c3QgPSBtX3JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CiAKLSAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKnBlbmRpbmdSZXF1
ZXN0KTsKKyAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKm5ld1JlcXVlc3QpOwogfQog
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNjQsNjYg
KzYzLDcwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KTsKLSAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKGlk
ZW50aWZpZXIpOwogICAgICAgICBpZiAoZGVjaXNpb24gPT0gU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uRGVjaXNpb246OkRlbnkpIHsKKyAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlk
ZW50aWZpZXIpOwogICAgICAgICAgICAgYXV0byBlcnJvciA9IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxs
b3dlZCwgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIl9zIH07CiAgICAgICAgICAgICBzZW5kVXBk
YXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1f
b25nb2luZ1JlcXVlc3RzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHRha2VuUmVxdWVzdCkpOwot
ICAgICAgICBoYW5kbGVSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoaWRlbnRpZmllcikp
OworICAgICAgICBoYW5kbGVSZXF1ZXN0KGlkZW50aWZpZXIpOwogICAgIH0pOwogfQogCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sK
KyAgICBpZiAoIW1fcmVjb2duaXplcikgeworICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
XShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKSB7CisgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0
byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAg
ICAgIGlmICghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7
CisgICAgICAgICAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yIHx8IHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAg
ICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGll
bnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElk
ZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6
ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElk
ZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50
SWRlbnRpZmllcikpOwotICAgIHN0b3BSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xp
ZW50SWRlbnRpZmllcikpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlm
aWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcjo6U2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNs
aWVudElkZW50aWZpZXIpOwotICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1
cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2Vp
dmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1f
b25nb2luZ1JlcXVlc3RzLnRha2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3Qp
Ci0gICAgICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQg
cmVjb2duaXRpb24uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAv
LyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJl
Y29nbml6aW5nIGNhcHR1cmVkIGF1ZGlvLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjphYm9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1
ZXN0KQotewotICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlv
biBpbW1lZGlhdGVseSB3aXRob3V0IGdlbmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1
ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+IHJlc3VsdCkKQEAgLTEzNiw2ICsxMzksMTEg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlm
aWVyKTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0
ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThm
ZWUzNGZiYzJlMWQxOGEyNGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhm
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVz
dChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBP
cHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwg
T3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0g
V1RGOjpudWxsb3B0KTsKKyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CkBAIC03Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdS
ZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Cg==
</data>
<flag name="commit-queue"
          id="431297"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414419</attachid>
            <date>2020-11-17 23:35:03 -0800</date>
            <delta_ts>2020-11-18 00:28:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201117233502.patch</filename>
            <type>text/plain</type>
            <size>44472</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDczMzZhNmFiNTlhOTgzYjRjOGRhYmIwOTkwOGI0YjQ3
YzNmZGFlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgi
CisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0
dXJlRGV2aWNlTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgorI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwor
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JD
YWxsYmFjaykKKyAgICA6IG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0YUNhbGxiYWNrKSkKKyAg
ICAsIG1fZXJyb3JDYWxsYmFjayhXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKQoreworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVy
ZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAo
IWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAg
aWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsK
KyAgICAgICAgaWYgKGRldmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgY2FwdHVyZURl
dmljZSA9IGRldmljZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjaygiTm8gZGV2
aWNlIGlzIGF2YWlsYWJsZSBmb3IgYXVkaW8gY2FwdHVyZSIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKCpj
YXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9l
cnJvckNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAgbV9zb3VyY2UtPmFkZEF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisjZWxzZQorICAgIG1fZXJyb3JDYWxsYmFjaygi
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIGlzIG5vdCBpbXBsZW1lbnRlZCIpOworI2Vu
ZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzYW1wbGVDb3VudCkKK3sKKyAgICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRh
KSk7CisgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09
IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGF1dG8g
c2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24s
IHRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fZGF0YUNhbGxiYWNrKHNhbXBsZUJ1ZmZlcik7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3VyY2VTdGFydGVkKCkKK3sK
KyAgICAvLyBQYXNzIGFuIGVtcHR5IGJ1ZmZlciB0byBzaWduYWwgc291cmNlIHN0YXJ0LgorICAg
IG1fZGF0YUNhbGxiYWNrKG51bGxwdHIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6c291cmNlU3RvcHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0
dXJlRGlkRmFpbCgpKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3Bw
ZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZU11
dGVkQ2hhbmdlZCgpCit7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3Qg
bXV0ZWQiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA0YjM2M2NiOGNhMmQxNzcxODkwYmUwZjk5
MjM1MTY2Yzk0NzI4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgorCit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyLCBwdWJs
aWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGF0YUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+KT47CisgICAgdXNpbmcgRXJy
b3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworCitwcml2
YXRlOgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAg
ICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZp
bmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNv
dXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAg
ICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOworCisgICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsK
KyAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhNzQ1N2ZmMmMwZWExM2Q1Mjg3ZTQ0
OTIzOWEwYzZkODRkYjM1MzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgi
CisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRl
ICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Nw
ZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxi
YWNrKQorICAgIDogbV9kZWxlZ2F0ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQor
CitTcGVlY2hSZWNvZ25pemVyOjp+U3BlZWNoUmVjb2duaXplcigpCit7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYg
KG1fY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBpZiAobV9zb3VyY2UpCisgICAgICAgICAg
ICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3Ro
ZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVy
cm9yKSk7CisgICAgfQorCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAg
ICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPihb
dGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBidWZmZXIpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICAgICAgbV9kZWxlZ2F0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0KSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBUT0RPOiByZWNvZ25pemUgdGhlIGJ1
ZmZlciBhbmQgcmV0dXJuIHJlY29nbml0aW9uIHJlc3VsdC4KKworICAgIH0sIFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShTdHJpbmcgZXJyb3JNZXNzYWdlKSB7CisgICAgICAg
IGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zb3VyY2Ug
PSBudWxscHRyOworICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIFdURk1vdmUoZXJyb3JN
ZXNzYWdlKSB9OworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgICAg
IG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKKyAgICB9KTsKKworICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6U3RhcnQpKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRlRmlu
YWxSZXN1bHQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoIW1fY2xpZW50
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc291cmNlKSB7CisgICAg
ICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkpOworICAgIH0KKworICAgIGlmIChzaG91bGRH
ZW5lcmF0ZUZpbmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcykgewor
ICAgICAgICAvLyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVjaCByZWNvZ25p
dGlvbiBiYWNrZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0b3I8U3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNr
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50SWRlbnRpZmll
ciwgcmVzdWx0RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6
bnVsbG9wdDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNob3VsZEdlbmVyYXRlRmluYWxSZXN1
bHQpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODQ3
MTc4ZWJmMmY3ZTE3NWYyMDZjMTRmMzMxMTc0MGQ3ZmUwOTk4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAg
KzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U7CitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQo
Y29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0
YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworICAgIGVu
dW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIE9wdGlv
bmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50
SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk2YmZkNTViMTQ1MDYyMzAwYTIzNWM5Y2UyYjM0
ZjAzOWU5YTBlOGUuLmQ4OGNiMzFhNTFjNDA0OTJiOGY1M2ZjY2ZkYTdiODAzNzk0NWE3ZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xOTIsMTIgKzE5MiwxNCBAQCBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1
cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2svUmVt
b3RlUGxheWJhY2suY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50
aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRl
YWQ4MThiYTNjYjJhNDQ5MzE1NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNmYjI1ZjEyNjAyNWQzMmYx
MGQ3Nzg2MDYxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3IEBA
IHBsYXRmb3JtL2NvY29hL0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tleUV2
ZW50Q29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQogcGxh
dGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9NZWRp
YVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQog
cGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmUxYzVmOTVjMWE5NzIwYjYx
ODU2ZTMxNWUyMWQzNGU2OThjNjg5Yi4uMWVmMGJiNTk1MDE5N2RjNjVhNTFjMjg0MTRiMzQyYWIz
M2JmYjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjc4Nyw2ICsyNzg3LDkgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2
RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRC
QzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzOUMwRDI2MjU2NEU0N0Ew
MEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDI0MjU2NDkxQ0MwMEIzMjEx
QiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzlDMEQyNzI1NjRFNDdGMDBCMzIxMUIg
LyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzlD
MEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0OTU0
RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyQTI1NDk1NTE0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTExNDI3LDYgKzExNDMwLDEyIEBACiAJCTkzOTg4NUMyMDhCN0Uz
RDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1
NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzOUMwRDI0MjU2NDkxQ0MwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI1MjU2NEEx
MUMwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRp
bGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjkyNTY0RTdG
MjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFGMjU0OTU0RTYw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDM5Niw2ICsyNDQwNSw4IEBACiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2
ZW50Q29jb2EubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3Vy
cmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERGRSAv
KiBMb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gKi8sCisJCQkJOTM5QzBEMjgyNTY0RTdGMjAwQjMy
MTFCIC8qIE1lZGlhVXRpbGl0aWVzLmNwcCAqLywKKwkJCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIx
MUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNBRTkg
LyogTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUwMEI0
NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5MzQ4
MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAqLywK
QEAgLTI1NTk3LDYgKzI1NjA4LDggQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0
RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5
NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwg
Ki8sCisJCQkJOTM5QzBEMjUyNTY0QTExQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAgKi8sCisJCQkJOTM5QzBEMjQyNTY0OTFDQzAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovLAogCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0EwNDgyNDI1
NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8s
CiAJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKQEAgLTI1NjIxLDYgKzI1NjM0LDggQEAKIAkJCQk5
MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0Lmlk
bCAqLywKIAkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuY3BwICovLAogCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oICovLAorCQkJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmNwcCAqLywKKwkJCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3Bl
ZWNoUmVjb2duaXplci5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNo
U3ludGhlc2lzLmlkbCAqLywKQEAgLTMzNTA1LDYgKzMzNTIwLDcgQEAKIAkJCQk5MzJDQzBCNzFE
RkZEMTU4MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwN0MxQzBFMjFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyog
TWVkaWFVc2FnZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDJCMjU2NEU3RjMwMEIz
MjExQiAvKiBNZWRpYVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMxQkQ4
MDY0RTAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0IxNkMxODA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJzb3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTYsNiArMzQ0MTIsNyBAQAogCQkJCTYyNkNERTBGMTE0
MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMjYyNTY0RTQ3QTAwQjMyMTFC
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkQy
NTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ0MTAsNiArMzQ0MjcsNyBAQAogCQkJCTkzQTA0
ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5
QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVz
aXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM0Y2I4
ODQzZTM0MmRkODdlNzVkNWU1ZWQzYjcyNDZjY2EyZDM3MgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMCwwICsx
LDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlh
VXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5j
bHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+
CisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3Jp
cHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0g
V1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAw
LCBudWxscHRyLCAwLCBudWxscHRyLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBpZiAoZXJyb3Ip
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAg
cmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKK30KKworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBz
aXplX3Qgc2FtcGxlQ291bnQpCit7CisgICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1h
dERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxs
cHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0
ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0ciwgJnNh
bXBsZUJ1ZmZlcik7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVzY3JpcHRpb25zIGZhaWxlZCAtICVkIiwg
ZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgYXV0byBidWZmZXIg
PSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CisKKyAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0
RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxp
c3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigi
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRpbyBidWZmZXIgbGlzdCBmYWlsZWQgLSAl
ZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBi
dWZmZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNjdjNjY3ODVkNDdk
MjcwMmI1YzY0OWVmMjg1ZTRiMGE1ZTEyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVNZWRpYS9DTVRpbWUuaD4K
KyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1
ZUNNRm9ybWF0RGVzY3JpcHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7Cit0eXBlZGVmIHN0
cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciogQ01TYW1wbGVCdWZmZXJSZWY7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBsYXRm
b3JtQXVkaW9EYXRhOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRl
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJik7CitS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENNVGlt
ZSwgc2l6ZV90IHNhbXBsZUNvdW50KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4
IGFjYjQ5NDQzMDhkMWNhNDNmOWY2OTljNTEwNDYwMDhmM2Q3MzU1MDcuLmJkZDcwZmQ5Y2FhZTJk
ZWNjY2IyNDBiYzIxYjI1YTQyZmM2Mzc2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2
YXRlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCisjaW5j
bHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKICNpbmNsdWRlIDxBVkZv
dW5kYXRpb24vQVZBc3NldFdyaXRlci5oPgpAQCAtNDQzLDQwICs0NDQsNiBAQCB2b2lkIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBs
ZSYgc2FtcGxlKQogICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1
ZmZlcldpdGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCi17Ci0gICAgYXV0byBiYXNp
Y0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
Kj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKLSAgICBD
TUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9
IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNp
Y0Rlc2NyaXB0aW9uLCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0KTsKLSAgICBpZiAo
ZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBy
ZXR1cm4gYWRvcHRDRihmb3JtYXQpOwotfQotCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBD
TVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQotewotICAgIGF1dG8gZm9ybWF0ID0gY3Jl
YXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7Ci0gICAgaWYgKCFmb3JtYXQp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZmFs
c2UsIE5VTEwsIE5VTEwsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIE5VTEwsICZz
YW1wbGVCdWZmZXIpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIGF1dG8gYnVmZmVyID0gYWRvcHRD
RihzYW1wbGVCdWZmZXIpOwotCi0gICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZm
ZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwg
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRh
KS5saXN0KCkpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyU2V0
RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYnVmZmVyOwotfQotCiB2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgc2l6ZV90IHNhbXBsZUNvdW50
KQogewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVy
KGRhdGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFjY2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5k
NzhlYTAyY2I3YTZmNTQ4N2UyNTE5MTYzMjBlNTE4MjU2OGZjYWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC00Niwx
MiArNDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGkKIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250aW51
b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElk
ZW50aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50
SWRlbnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xp
ZW50SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJ
ZGVudGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5mbyA9IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250
aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikg
fTsKLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmFkZChjbGll
bnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYgbmV3
UmVxdWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0
ZXJhdG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqcGVuZGlu
Z1JlcXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7
CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9y
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCkBAIC02
NCw2NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1p
c3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbmkKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRp
ZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRh
a2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1v
dmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRvIGVycm9yID0gV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpO
b3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3MgfTsKICAgICAgICAgICAgIHNl
bmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0
KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChpZGVudGlm
aWVyKSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
KQoreworICAgIGlmICghbV9yZWNvZ25pemVyKSB7CisgICAgICAgIG1fcmVjb2duaXplciA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpIHsKKyAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBhdXRvIGNsaWVudElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAg
ICAgICAgICAgaWYgKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byB0eXBlID0gdXBkYXRlLnR5
cGUoKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RXJyb3IgfHwgdHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkKKyAg
ICAgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKworICAg
ICAgICAgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBt
X3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOworfQorCiB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNL
KGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xp
ZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVj
b2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xp
ZW50SWRlbnRpZmllcikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhj
bGllbnRJZGVudGlmaWVyKSk7Ci0gICAgc3RvcFJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdl
dChjbGllbnRJZGVudGlmaWVyKSk7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElk
ZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0so
Y2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pemVyOjpTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpObyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xp
ZW50SWRlbnRpZmllcikpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRh
a2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBh
dXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xp
ZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQp
OwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlk
UmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIGlmIChtX3JlcXVlc3Rz
LnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAK
IHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQog
ewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byByZXF1ZXN0
ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAocmVx
dWVzdCkKLSAgICAgICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLX0KLQotdm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RhcnQgY2FwdHVyaW5nIGF1ZGlv
IGFuZCByZWNvZ25pdGlvbi4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3Rv
cFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewot
ICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCBmaW5hbGl6aW5nIHJlc3VsdHMg
YnkgcmVjb2duaXppbmcgY2FwdHVyZWQgYXVkaW8uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qm
IHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29n
bml0aW9uIGltbWVkaWF0ZWx5IHdpdGhvdXQgZ2VuZXJhdGluZyByZXN1bHRzLgorICAgIGlmICht
X3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKQorICAgICAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CisgICAgfQog
fQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIE9wdGlvbmFsPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yLCBPcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gcmVzdWx0KQpAQCAtMTM2LDYgKzEz
OSwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lk
ZW50aWZpZXIpOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRl
KGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZl
VXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7Cit9CisKIElQQzo6Q29ubmVjdGlvbiogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVk
YWY1OGZlZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBi
MzIyOGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hS
ZWNvZ25pdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3Qo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVS
ZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIpOwogICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGUsIE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxs
b3B0LCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
Pj4gPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIu
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBvdmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hN
YXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25n
b2luZ1JlcXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQK
</data>
<flag name="commit-queue"
          id="431305"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414420</attachid>
            <date>2020-11-17 23:54:04 -0800</date>
            <delta_ts>2020-11-17 23:59:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201117235403.patch</filename>
            <type>text/plain</type>
            <size>44737</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y5NWZmNDlmNTM4NzUzZjhlNTU3ZDRmMWFlOTE2YzM3
ZGM2YWY5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgi
CisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0
dXJlRGV2aWNlTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgorI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0
aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwor
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JD
YWxsYmFjaykKKyAgICA6IG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0YUNhbGxiYWNrKSkKKyAg
ICAsIG1fZXJyb3JDYWxsYmFjayhXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKQoreworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpz
aW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
cigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVy
ZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAo
IWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAg
aWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsK
KyAgICAgICAgaWYgKGRldmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgY2FwdHVyZURl
dmljZSA9IGRldmljZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjaygiTm8gZGV2
aWNlIGlzIGF2YWlsYWJsZSBmb3IgYXVkaW8gY2FwdHVyZSIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKCpj
YXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9l
cnJvckNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAgbV9zb3VyY2UtPmFkZEF1
ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisjZWxzZQorICAgIG1fZXJyb3JDYWxsYmFjaygi
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIGlzIG5vdCBpbXBsZW1lbnRlZCIpOworI2Vu
ZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzYW1wbGVDb3VudCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBBU1NFUlQoaXM8V2Vi
QXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CisgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3Jt
RGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1C
YXNpY1R5cGUpOworICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZm
ZXIoZGF0YSwgZGVzY3JpcHRpb24sIHRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAg
aWYgKCFzYW1wbGVCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGF0YUNhbGxiYWNr
KHNhbXBsZUJ1ZmZlcik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICBVTlVT
RURfUEFSQU0oZGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsKKyAgICBVTlVT
RURfUEFSQU0oc2FtcGxlQ291bnQpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICAvLyBQYXNzIGFuIGVtcHR5
IGJ1ZmZlciB0byBzaWduYWwgc291cmNlIHN0YXJ0LgorICAgIG1fZGF0YUNhbGxiYWNrKG51bGxw
dHIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3Rv
cHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKTsKKyAgICBt
X2Vycm9yQ2FsbGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3BwZWQiKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCit7CisgICAg
bV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQiKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2U5MmJiMjg0M2Y3ZWY3ZDRjMDdhNWYwOTk3OTUyZmJiY2IzNWNkOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisKK3R5cGVkZWYgc3RydWN0
IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB1c2luZyBCdWZmZXIgPSBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+OworI2Vsc2UKKyAgICB1c2luZyBCdWZmZXIgPSBSZWZQdHI8U2hh
cmVkQnVmZmVyPjsKKyNlbmRpZgorICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZv
aWQoQnVmZmVyKT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU3Ry
aW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKERhdGFDYWxsYmFjayYm
LCBFcnJvckNhbGxiYWNrJiYpOworCitwcml2YXRlOgorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lk
IHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZp
bmFsOworCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOworICAgIERh
dGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsKKyAgICBFcnJvckNhbGxiYWNrIG1fZXJyb3JDYWxs
YmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA3MzRlMzk4NGMyZTQwNTY1OWFjNGUyMmE0ZDVkOWE3ZDQxNjhjZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNw
cApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6
ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9kZWxlZ2F0ZUNhbGxiYWNr
KFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCitTcGVlY2hSZWNvZ25pemVyOjp+U3BlZWNoUmVj
b2duaXplcigpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RhcnQoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKG1fY2xpZW50SWRlbnRpZmllcikgeworICAgICAg
ICBpZiAobV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICAg
ICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OworICAg
ICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQorCisgICAgbV9jbGllbnRJ
ZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlPihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKV0oU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpCdWZmZXIgYnVmZmVyKSB7Cisg
ICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYg
KCFidWZmZXIpIHsKKyAgICAgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6QXVkaW9TdGFydCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgLy8gVE9ETzogcmVjb2duaXplIHRoZSBidWZmZXIgYW5kIHJldHVybiByZWNv
Z25pdGlvbiByZXN1bHQuCisKKyAgICB9LCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKV0oU3RyaW5nIGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAg
YXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfTsKKyAgICAgICAg
bV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigq
bV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICBtX2NsaWVudElkZW50aWZpZXIg
PSBXVEY6Om51bGxvcHQ7CisgICAgfSk7CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpZGVu
dGlmaWVyKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxk
R2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQoreworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZSA9IG51bGxw
dHI7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
QXVkaW9FbmQpKTsKKyAgICB9CisKKyAgICBpZiAoc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9
PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpIHsKKyAgICAgICAgLy8gVE9ETzogZ2Vu
ZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBzcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCBpcyBpbXBs
ZW1lbnRlZC4KKyAgICAgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVz
dWx0RGF0YXM7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2NsaWVudElkZW50aWZpZXIsIHJlc3VsdERhdGFzKSk7Cisg
ICAgfQorCisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
bmQpKTsKKyAgICBtX2NsaWVudElkZW50aWZpZXIgPSBXVEY6Om51bGxvcHQ7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KTsKKyNlbmRpZgorfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0NzE3OGViZjJmN2UxNzVmMjA2YzE0
ZjMzMTE3NDBkN2ZlMDk5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisK
K2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVj
b2duaXplcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVz
aW5nIERlbGVnYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlJik+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6
ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2du
aXplcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNsYXNzIFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9w
KFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZ
ZXMpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVu
dElkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CisgICAgRGVs
ZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBt
X3NvdXJjZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA5NmJmZDU1YjE0NTA2MjMwMGEyMzVjOWNlMmIzNGYwMzllOWEwZThlLi5kODhjYjMx
YTUxYzQwNDkyYjhmNTNmY2NmZGE3YjgwMzc5NDVhN2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTky
LDEyICsxOTIsMTQgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1BpY3R1cmVJblBpY3R1cmVX
aW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBsYXliYWNrLmNwcAogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAogTW9kdWxlcy9zcGVl
Y2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3lu
dGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4YmEzY2IyYTQ0OTMxNTQ2
YjU5YTYwLi4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4NjA2MTExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0Zm9ybS9jb2NvYS9GaWxl
TW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCiBwbGF0Zm9y
bS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL01JTUVUeXBl
UmVnaXN0cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCiBwbGF0
Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29j
b2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1Bhc3Rl
Ym9hcmRDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDZlMWM1Zjk1YzFhOTcyMGI2MTg1NmUzMTVlMjFkMzRlNjk4YzY4
OWIuLjFlZjBiYjU5NTAxOTdkYzY1YTUxYzI4NDE0YjM0MmFiMzNiZmI1MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3ODcs
NiArMjc4Nyw5IEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzkz
RTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4NUM0MDhCN0UzRDEwMEU3
MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOUIwMkVGMEVB
MkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJ
dGVyYXRvci5oICovOyB9OworCQk5MzlDMEQyNjI1NjRFNDdBMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDIx
MjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFC
IC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgy
ODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MTQyNyw2ICsxMTQzMCwxMiBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnRO
YW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0
NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyMTI1
NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIzMjU2
NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyNTI1NjRBMTFDMDBCMzIxMUIgLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQzOTYsNiArMjQ0MDUsOCBAQAog
CQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLm1tICovLAogCQkJ
CTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
aCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxpemVkU3RyaW5nc0Nv
Y29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVz
LmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1JTUVUeXBlUmVnaXN0cnlD
b2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQgLyog
TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0yNTU5Nyw2ICsyNTYwOCw4
IEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzOUMwRDI1MjU2
NEExMUMwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovLAor
CQkJCTkzOUMwRDI0MjU2NDkxQ0MwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCAqLywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJCTkzQTA0ODIwMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggKi8sCkBAIC0yNTYyMSw2ICsyNTYzNCw4IEBACiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJOTNENkI3NkUy
NTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKIAkJCQk5
M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywK
KwkJCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8s
CisJCQkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLywK
IAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywK
IAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJ
CQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBA
IC0zMzUwNSw2ICszMzUyMCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1l
ZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZCNjAw
MTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMTgw
OTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTcx
MzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4gSGVhZGVycyAqLywKQEAg
LTM0Mzk2LDYgKzM0NDEyLDcgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3Bh
dGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0Uy
NTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzOUMwRDI2MjU2NEU0N0EwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTM0NDEwLDYgKzM0NDI3LDcgQEAKIAkJCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5
NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI3MjU2NEU0N0YwMEIzMjEx
QiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4
NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5
MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZl
bnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGNiODg0M2UzNDJkZDg3ZTc1ZDVlNWVk
M2I3MjQ2Y2NhMmQzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorCisjaW5j
bHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVy
TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2luY2x1ZGUgPHBhbC9jZi9D
b3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVz
cGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRp
b0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24o
KS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxs
cHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0
ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJP
UigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBhZG9wdENGKGZvcm1h
dCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQor
eworICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlw
dGlvbik7CisgICAgaWYgKCFmb3JtYXQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9y
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5n
ZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGlm
IChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIHdp
dGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZm
ZXIpOworCisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwor
ICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVm
ZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVyOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFV
dGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjY3YzY2Nzg1ZDQ3ZDI3MDJiNWM2NDllZjI4NWU0YjBh
NWUxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01UaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9u
KiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVC
dWZmZXIqIENNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworUmV0
YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRp
b24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVRpbWUsIHNpemVfdCBzYW1wbGVDb3Vu
dCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCBhY2I0OTQ0MzA4ZDFjYTQzZjlm
Njk5YzUxMDQ2MDA4ZjNkNzM1NTA3Li5iZGQ3MGZkOWNhYWUyZGVjY2NiMjQwYmMyMWIyNWE0MmZj
NjM3NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlckNvY29hLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclBy
aXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCIKICNpbmNs
dWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVz
LmgiCiAjaW5jbHVkZSAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgiCiAjaW5jbHVkZSAi
V2ViQXVkaW9CdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0
ZXIuaD4KQEAgLTQ0Myw0MCArNDQ0LDYgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAg
bV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUu
Z2V0KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uKQotewotICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6
Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgTlVM
TCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdCk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIg
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0
KTsKLX0KLQotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBz
YW1wbGVDb3VudCkKLXsKLSAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24oZGVzY3JpcHRpb24pOwotICAgIGlmICghZm9ybWF0KQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3Jp
cHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxMLCBmb3Jt
YXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBOVUxMLCAmc2FtcGxlQnVmZmVyKTsKLSAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlciBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQYWNrZXRE
ZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKLQot
ICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlz
dChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKLSAgICBpZiAo
ZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQogdm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25z
dCBXVEY6Ok1lZGlhVGltZSYsIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBpZiAoYXV0byBz
YW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwg
bV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXggODU2NTE5
ZmI2ODcxM2VkZDlhY2NmMmVlMWMyNDc3NGY5NzNmOTkxNi4uZDc4ZWEwMmNiN2E2ZjU0ODdlMjUx
OTE2MzIwZTUxODI1NjhmY2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtNDYsMTIgKzQ2LDExIEBAIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3RpCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVz
dWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBv
cmlnaW4pCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBBU1NF
UlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBB
U1NFUlQoIW1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKKyAg
ICBBU1NFUlQoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwogICAgIGF1
dG8gcmVxdWVzdEluZm8gPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsg
Y2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShsYW5nKSwgY29udGludW91cywgaW50ZXJpbVJlc3Vs
dHMsIG1heEFsdGVybmF0aXZlcywgV1RGTW92ZShvcmlnaW4pIH07Ci0gICAgYXV0byYgcGVuZGlu
Z1JlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVu
aXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdElu
Zm8pKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIG5ld1JlcXVlc3QgPSBtX3JlcXVlc3Rz
LmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CiAKLSAg
ICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKnBlbmRpbmdSZXF1ZXN0KTsKKyAgICByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKm5ld1JlcXVlc3QpOwogfQogCiB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNjQsNjYgKzYzLDcwIEBAIHZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBp
ZGVudGlmaWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKTsKLSAgICAgICAgYXV0
byB0YWtlblJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKGlkZW50aWZpZXIpOwogICAg
ICAgICBpZiAoZGVjaXNpb24gPT0gU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246
OkRlbnkpIHsKKyAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAg
ICAgICAgICAgYXV0byBlcnJvciA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBlcm1pc3Np
b24gY2hlY2sgZmFpbGVkIl9zIH07CiAgICAgICAgICAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIs
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1fb25nb2luZ1JlcXVlc3Rz
LmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHRha2VuUmVxdWVzdCkpOwotICAgICAgICBoYW5kbGVS
ZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoaWRlbnRpZmllcikpOworICAgICAgICBoYW5k
bGVSZXF1ZXN0KGlkZW50aWZpZXIpOwogICAgIH0pOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fcmVj
b2duaXplcikgeworICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29n
bml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGllbnRJZGVudGlm
aWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGlmICghbV9yZXF1
ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7CisgICAgICAgICAgICBp
ZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIHx8IHR5cGUgPT0g
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAgICAgICAgICAgbV9yZXF1
ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAgICAgIHNlbmRVcGRhdGUo
dXBkYXRlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChj
bGllbnRJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3Rv
cChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsK
LSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0g
ICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25p
emVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAg
ICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwot
ICAgIHN0b3BSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xpZW50SWRlbnRpZmllcikp
OworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAg
c2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xp
ZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwot
ICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKLSAg
ICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6
ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikgeworICAg
ICAgICBtX3JlY29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U2hvdWxk
R2VuZXJhdGVGaW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
QVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAg
ICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIp
OwotICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1cGRhdGUgPSBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRl
KSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRp
ZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNL
KGNsaWVudElkZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3Rz
LnRha2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3QpCi0gICAgICAgIGFib3J0
UmVxdWVzdCgqcmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Omhh
bmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24uCi19
Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNh
cHR1cmluZyBhdWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJlY29nbml6aW5nIGNhcHR1
cmVkIGF1ZGlvLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydFJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8v
IFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlvbiBpbW1lZGlhdGVseSB3
aXRob3V0IGdlbmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xp
ZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6
ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAg
ICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkVycm9yPiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4+IHJlc3VsdCkKQEAgLTEzNiw2ICsxMzksMTEgQEAgdm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKIH0KIAordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lk
ZW50aWZpZXIpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29ubmVj
dGlvbi5wdHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThmZWUzNGZiYzJlMWQxOGEy
NGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNlbmRV
cGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBPcHRpb25hbDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwgT3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0gV1RGOjpudWxsb3B0KTsK
KyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC03
Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdSZXF1ZXN0czsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBt
X3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9wZXJt
aXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414422</attachid>
            <date>2020-11-17 23:59:02 -0800</date>
            <delta_ts>2020-11-18 00:06:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201117235901.patch</filename>
            <type>text/plain</type>
            <size>44768</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2QwMGEwZWIxZDUwMzM2NjEwMGRhMWI0ZTQwYjM2YzBm
ZDk2NjllNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlz
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZU1hbmFnZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxwYWwvYXZm
b3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCisgICAgOiBtX2RhdGFDYWxs
YmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soV1RGTW92
ZShlcnJvckNhbGxiYWNrKSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBkZXZpY2Vz
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOworICAg
IE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CisgICAgZm9yIChhdXRvIGRl
dmljZSA6IGRldmljZXMpIHsKKyAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgCisgICAgICAgIGlmICghY2FwdHVyZURldmljZSkKKyAgICAg
ICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZh
dWx0KCkpIHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgewor
ICAgICAgICBtX2Vycm9yQ2FsbGJhY2soIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGF1ZGlv
IGNhcHR1cmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwor
ICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjayhyZXN1bHQuZXJyb3JN
ZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc291cmNlID0gcmVzdWx0
LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5zdGFydCgp
OworI2Vsc2UKKyAgICBtX2Vycm9yQ2FsbGJhY2soIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBpcyBub3QgaW1wbGVtZW50ZWQiKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkpOwor
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0
Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBhdXRvIHNhbXBs
ZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCB0b0NN
VGltZSh0aW1lKSwgc2FtcGxlQ291bnQpOworICAgIGlmICghc2FtcGxlQnVmZmVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2RhdGFDYWxsYmFjayhzYW1wbGVCdWZmZXIpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHNhbXBsZUNvdW50KTsKKyNl
bmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3Rh
cnRlZCgpCit7CisgICAgLy8gUGFzcyBhbiBlbXB0eSBidWZmZXIgdG8gc2lnbmFsIHNvdXJjZSBz
dGFydC4KKyAgICBtX2RhdGFDYWxsYmFjayhudWxscHRyKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3Nv
dXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNv
dXJjZSBzdG9wcGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
Ojpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIG1fZXJyb3JDYWxsYmFjaygiQ2FwdHVyZSBz
b3VyY2UgZ290IG11dGVkIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOTJiYjI4NDNmN2VmN2Q0
YzA3YTVmMDk5Nzk1MmZiYmNiMzVjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgorCit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01T
YW1wbGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgdXNpbmcgQnVmZmVyID0gUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPjsKKyNlbHNl
CisgICAgdXNpbmcgQnVmZmVyID0gUmVmUHRyPFNoYXJlZEJ1ZmZlcj47CisjZW5kaWYKKyAgICB1
c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEJ1ZmZlcik+OworICAgIHVzaW5nIEVy
cm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+OworICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJp
dmF0ZToKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBz
b3VyY2VTdGFydGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7Cisg
ICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBEYXRhQ2FsbGJhY2sgbV9kYXRhQ2FsbGJhY2s7
CisgICAgRXJyb3JDYWxsYmFjayBtX2Vycm9yQ2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzM0ZTM5ODRjMmU0MDU2NTlhYzRl
MjJhNGQ1ZDlhN2Q0MTY4Y2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5o
IgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxs
YmFjaykKKyAgICA6IG1fZGVsZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30K
KworU3BlZWNoUmVjb2duaXplcjo6flNwZWVjaFJlY29nbml6ZXIoKQoreworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
IChtX2NsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgaWYgKG1fc291cmNlKQorICAgICAgICAg
ICAgbV9zb3VyY2UgPSBudWxscHRyOworCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsICJBbm90
aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBl
cnJvcikpOworICAgIH0KKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7Cisg
ICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4o
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6QnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICBt
X2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRPRE86IHJlY29n
bml6ZSB0aGUgYnVmZmVyIGFuZCByZXR1cm4gcmVjb2duaXRpb24gcmVzdWx0LgorCisgICAgfSwg
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFN0cmluZyBlcnJvck1lc3NhZ2Up
IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgV1RG
TW92ZShlcnJvck1lc3NhZ2UpIH07CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3Ip
KTsKKyAgICAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0OworICAgIH0pOwor
CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUo
Km1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisjZW5kaWYKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxk
R2VuZXJhdGVGaW5hbFJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghbV9jbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9zb3Vy
Y2UpIHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOworICAgICAgICBtX2RlbGVnYXRlQ2Fs
bGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSk7CisgICAgfQorCisgICAg
aWYgKHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3Vs
dDo6WWVzKSB7CisgICAgICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3Bl
ZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVn
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGll
bnRJZGVudGlmaWVyLCByZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlm
aWVyID0gV1RGOjpudWxsb3B0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4NDcxNzhlYmYyZjdlMTc1ZjIwNmMxNGYzMzExNzQwZDdmZTA5OTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CisgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAgIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6
CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNh
bGxiYWNrOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTZiZmQ1NWIxNDUwNjIzMDBh
MjM1YzljZTJiMzRmMDM5ZTlhMGU4ZS4uZDg4Y2IzMWE1MWM0MDQ5MmI4ZjUzZmNjZmRhN2I4MDM3
OTQ1YTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5MiwxMiArMTkyLDE0IEBAIE1vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVw
bGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAK
K01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5j
cHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIz
M2M0YmNlNzRkZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVm
MTI2MDI1ZDMyZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgs
NiArMjM4LDcgQEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvS2V5RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0Nv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZTFjNWY5
NWMxYTk3MjBiNjE4NTZlMzE1ZTIxZDM0ZTY5OGM2ODliLi4xZWYwYmI1OTUwMTk3ZGM2NWE1MWMy
ODQxNGIzNDJhYjMzYmZiNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzg3LDYgKzI3ODcsOSBAQAogCQk5MzkzRTYwMDE1
MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENT
U0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNE
MTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTM5QzBE
MjYyNTY0RTQ3QTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjQyNTY0
OTFDQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzOUMwRDI3MjU2NEU0
N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNo
UmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjkyNTY0RTdG
MjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODJB
MjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE0MjcsNiArMTE0MzAsMTIgQEAKIAkJOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjQyNTY0OTFDQzAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
QzBEMjUyNTY0QTExQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4
MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI0Mzk2LDYgKzI0NDA1LDggQEAKIAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYy
QUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJCQkwNkU4MUVENjBBQjVENUU5MDBDODc4Mzcg
LyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JB
NjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKKwkJCQk5MzlDMEQyODI1
NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3BwICovLAorCQkJCTkzOUMwRDI5MjU2
NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5
MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkx
QUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJ
CQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tICovLApAQCAtMjU1OTcsNiArMjU2MDgsOCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5
NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICov
LAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmlkbCAqLywKKwkJCQk5MzlDMEQyNTI1NjRBMTFDMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLywKKwkJCQk5MzlDMEQyNDI1NjQ5MUNDMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8sCiAJCQkJOTNBMDQ4MUQy
NTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJ
CTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQuaCAqLywKIAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2MjEsNiArMjU2MzQs
OCBAQAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaWRsICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMy
MTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIz
MjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzM1MDUsNiArMzM1MjAsNyBAQAogCQkJ
CTkzMkNDMEI3MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3Vw
cG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIw
MEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIy
NTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1l
bW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM5Niw2ICszNDQxMiw3IEBACiAJCQkJ
NjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNjI1NjRF
NDdBMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICszNDQyNyw3IEBA
CiAJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEy
NTRCQUI0NTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzlDMEQyNzI1NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYw
QTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40YzRjYjg4NDNlMzQyZGQ4N2U3NWQ1ZTVlZDNiNzI0NmNjYTJkMzcyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3Bw
CkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29m
dExpbmtpbmcuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01G
b3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVz
Y3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVz
Y3JpcHRpb24sIDAsIG51bGxwdHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAg
IGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01U
aW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0
ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVh
dGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZh
bHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBu
dWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFp
bGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBh
dXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0
IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2
N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYyODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlh
L0NNVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBz
dHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsK
K3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwor
Y2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mKTsKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRk
NzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFS
ZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2lu
Y2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBA
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVy
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1w
bGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAg
ICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRp
b24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBh
dXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQp
OwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBm
b3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBp
ZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGlt
ZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZm
ZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZm
ZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qg
c2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwg
c2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRm
OTczZjk5MTYuLmQ3OGVhMDJjYjdhNmY1NDg3ZTI1MTkxNjMyMGU1MTgyNTY4ZmNhZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKQEAgLTQ2LDEyICs0NiwxMSBAQCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hF
Q0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250
YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRh
aW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
bGFuZyksIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1v
dmUob3JpZ2luKSB9OwotICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVz
dHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAg
ICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFr
ZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVz
dEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1
ZXN0KCpwZW5kaW5nUmVxdWVzdCk7CisgICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpu
ZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBl
cm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVx
dWVzdCkKQEAgLTY0LDY2ICs2Myw3MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5j
bGllbnRJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5n
UmVxdWVzdHMudGFrZShpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3Jl
cXVlc3RzLnJlbW92ZShpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAg
ICAgICAgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVycm9yLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBtX29uZ29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0
YWtlblJlcXVlc3QpKTsKLSAgICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMu
Z2V0KGlkZW50aWZpZXIpKTsKKyAgICAgICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAg
ICB9KTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKV0oY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkg
eworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlm
aWVyKCk7CisgICAgICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUg
PSB1cGRhdGUudHlwZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RW5kKQorICAgICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZp
ZXIpOworCisgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1F
U1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3Rz
LnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAg
ICBpZiAobV9yZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZp
ZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3Rz
LmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5n
UmVxdWVzdHMuZ2V0KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVT
U0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRl
bnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAg
IGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
UmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVl
c3QpOwotICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYg
KG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRl
KGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBh
dXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwot
ICAgIGlmIChyZXF1ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0
dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXpp
bmcgcmVzdWx0cyBieSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRp
byBhbmQgcmVjb2duaXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMu
CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAg
IGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3Ao
KTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwg
T3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBA
IC0xMzYsNiArMTM5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVw
ZGF0ZSksIG1faWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0
ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKK30KKwogSVBDOjpDb25u
ZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdAogewogICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCAzNjNjYTIw
ZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi5hN2Y3NmQzOGVlNTAxZTU4MmY3OWE1
NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVyLmg+CiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU4LDEwICs1OSw5
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIGhhbmRs
ZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBz
dG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lk
IGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2
b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
PSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBzZW5kVXBkYXRlKGNvbnN0
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CiAKICAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtNzIsOSArNzIsOSBAQCBwcml2YXRlOgogCiAg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414423</attachid>
            <date>2020-11-18 00:06:47 -0800</date>
            <delta_ts>2020-11-18 00:56:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201118000646.patch</filename>
            <type>text/plain</type>
            <size>44768</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY3Mzg2OTc5NjEzNmVhOTMwMTNmZDA1YWM5ZWI5Yzc5
NGU0MzYxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURl
dmljZU1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaD4KKyNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5o
PgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCisgICAgOiBtX2RhdGFDYWxs
YmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soV1RGTW92
ZShlcnJvckNhbGxiYWNrKSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBkZXZpY2Vz
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOworICAg
IE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CisgICAgZm9yIChhdXRvIGRl
dmljZSA6IGRldmljZXMpIHsKKyAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgCisgICAgICAgIGlmICghY2FwdHVyZURldmljZSkKKyAgICAg
ICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZh
dWx0KCkpIHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgewor
ICAgICAgICBtX2Vycm9yQ2FsbGJhY2soIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGF1ZGlv
IGNhcHR1cmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwor
ICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjayhyZXN1bHQuZXJyb3JN
ZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc291cmNlID0gcmVzdWx0
LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5zdGFydCgp
OworI2Vsc2UKKyAgICBtX2Vycm9yQ2FsbGJhY2soIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBpcyBub3QgaW1wbGVtZW50ZWQiKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkpOwor
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0
Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBhdXRvIHNhbXBs
ZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCB0b0NN
VGltZSh0aW1lKSwgc2FtcGxlQ291bnQpOworICAgIGlmICghc2FtcGxlQnVmZmVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2RhdGFDYWxsYmFjayhzYW1wbGVCdWZmZXIpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHNhbXBsZUNvdW50KTsKKyNl
bmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3Rh
cnRlZCgpCit7CisgICAgLy8gUGFzcyBhbiBlbXB0eSBidWZmZXIgdG8gc2lnbmFsIHNvdXJjZSBz
dGFydC4KKyAgICBtX2RhdGFDYWxsYmFjayhudWxscHRyKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3Nv
dXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNv
dXJjZSBzdG9wcGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
Ojpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIG1fZXJyb3JDYWxsYmFjaygiQ2FwdHVyZSBz
b3VyY2UgZ290IG11dGVkIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOTJiYjI4NDNmN2VmN2Q0
YzA3YTVmMDk5Nzk1MmZiYmNiMzVjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgorCit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01T
YW1wbGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgdXNpbmcgQnVmZmVyID0gUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPjsKKyNlbHNl
CisgICAgdXNpbmcgQnVmZmVyID0gUmVmUHRyPFNoYXJlZEJ1ZmZlcj47CisjZW5kaWYKKyAgICB1
c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEJ1ZmZlcik+OworICAgIHVzaW5nIEVy
cm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+OworICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJp
dmF0ZToKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBz
b3VyY2VTdGFydGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7Cisg
ICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBEYXRhQ2FsbGJhY2sgbV9kYXRhQ2FsbGJhY2s7
CisgICAgRXJyb3JDYWxsYmFjayBtX2Vycm9yQ2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzM0ZTM5ODRjMmU0MDU2NTlhYzRl
MjJhNGQ1ZDlhN2Q0MTY4Y2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5o
IgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxs
YmFjaykKKyAgICA6IG1fZGVsZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30K
KworU3BlZWNoUmVjb2duaXplcjo6flNwZWVjaFJlY29nbml6ZXIoKQoreworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
IChtX2NsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgaWYgKG1fc291cmNlKQorICAgICAgICAg
ICAgbV9zb3VyY2UgPSBudWxscHRyOworCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsICJBbm90
aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBl
cnJvcikpOworICAgIH0KKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7Cisg
ICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4o
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6QnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICBt
X2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRPRE86IHJlY29n
bml6ZSB0aGUgYnVmZmVyIGFuZCByZXR1cm4gcmVjb2duaXRpb24gcmVzdWx0LgorCisgICAgfSwg
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFN0cmluZyBlcnJvck1lc3NhZ2Up
IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgV1RG
TW92ZShlcnJvck1lc3NhZ2UpIH07CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3Ip
KTsKKyAgICAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0OworICAgIH0pOwor
CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUo
Km1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisjZW5kaWYKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxk
R2VuZXJhdGVGaW5hbFJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghbV9jbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9zb3Vy
Y2UpIHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOworICAgICAgICBtX2RlbGVnYXRlQ2Fs
bGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSk7CisgICAgfQorCisgICAg
aWYgKHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3Vs
dDo6WWVzKSB7CisgICAgICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3Bl
ZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVn
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGll
bnRJZGVudGlmaWVyLCByZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlm
aWVyID0gV1RGOjpudWxsb3B0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4NDcxNzhlYmYyZjdlMTc1ZjIwNmMxNGYzMzExNzQwZDdmZTA5OTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CisgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAgIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6
CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNh
bGxiYWNrOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTZiZmQ1NWIxNDUwNjIzMDBh
MjM1YzljZTJiMzRmMDM5ZTlhMGU4ZS4uZDg4Y2IzMWE1MWM0MDQ5MmI4ZjUzZmNjZmRhN2I4MDM3
OTQ1YTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5MiwxMiArMTkyLDE0IEBAIE1vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVw
bGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAK
K01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5j
cHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIz
M2M0YmNlNzRkZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVm
MTI2MDI1ZDMyZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgs
NiArMjM4LDcgQEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvS2V5RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0Nv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZTFjNWY5
NWMxYTk3MjBiNjE4NTZlMzE1ZTIxZDM0ZTY5OGM2ODliLi4xZWYwYmI1OTUwMTk3ZGM2NWE1MWMy
ODQxNGIzNDJhYjMzYmZiNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzg3LDYgKzI3ODcsOSBAQAogCQk5MzkzRTYwMDE1
MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENT
U0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNE
MTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTM5QzBE
MjYyNTY0RTQ3QTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjQyNTY0
OTFDQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzOUMwRDI3MjU2NEU0
N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNo
UmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjkyNTY0RTdG
MjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODJB
MjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE0MjcsNiArMTE0MzAsMTIgQEAKIAkJOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjQyNTY0OTFDQzAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
QzBEMjUyNTY0QTExQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4
MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI0Mzk2LDYgKzI0NDA1LDggQEAKIAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYy
QUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJCQkwNkU4MUVENjBBQjVENUU5MDBDODc4Mzcg
LyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JB
NjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKKwkJCQk5MzlDMEQyODI1
NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3BwICovLAorCQkJCTkzOUMwRDI5MjU2
NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5
MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkx
QUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJ
CQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tICovLApAQCAtMjU1OTcsNiArMjU2MDgsOCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5
NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICov
LAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmlkbCAqLywKKwkJCQk5MzlDMEQyNTI1NjRBMTFDMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLywKKwkJCQk5MzlDMEQyNDI1NjQ5MUNDMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8sCiAJCQkJOTNBMDQ4MUQy
NTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJ
CTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQuaCAqLywKIAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2MjEsNiArMjU2MzQs
OCBAQAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaWRsICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMy
MTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIz
MjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzM1MDUsNiArMzM1MjAsNyBAQAogCQkJ
CTkzMkNDMEI3MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3Vw
cG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIw
MEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIy
NTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1l
bW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM5Niw2ICszNDQxMiw3IEBACiAJCQkJ
NjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNjI1NjRF
NDdBMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICszNDQyNyw3IEBA
CiAJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEy
NTRCQUI0NTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzlDMEQyNzI1NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYw
QTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40YzRjYjg4NDNlMzQyZGQ4N2U3NWQ1ZTVlZDNiNzI0NmNjYTJkMzcyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3Bw
CkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29m
dExpbmtpbmcuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01G
b3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVz
Y3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVz
Y3JpcHRpb24sIDAsIG51bGxwdHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAg
IGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01U
aW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0
ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVh
dGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZh
bHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBu
dWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFp
bGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBh
dXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0
IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2
N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYyODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlh
L0NNVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBz
dHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsK
K3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwor
Y2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mKTsKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRk
NzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFS
ZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2lu
Y2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBA
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVy
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1w
bGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAg
ICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRp
b24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBh
dXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQp
OwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBm
b3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBp
ZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGlt
ZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZm
ZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZm
ZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qg
c2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwg
c2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRm
OTczZjk5MTYuLmQ3OGVhMDJjYjdhNmY1NDg3ZTI1MTkxNjMyMGU1MTgyNTY4ZmNhZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKQEAgLTQ2LDEyICs0NiwxMSBAQCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hF
Q0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250
YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRh
aW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
bGFuZyksIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1v
dmUob3JpZ2luKSB9OwotICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVz
dHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAg
ICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFr
ZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVz
dEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1
ZXN0KCpwZW5kaW5nUmVxdWVzdCk7CisgICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpu
ZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBl
cm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVx
dWVzdCkKQEAgLTY0LDY2ICs2Myw3MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5j
bGllbnRJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5n
UmVxdWVzdHMudGFrZShpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3Jl
cXVlc3RzLnJlbW92ZShpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAg
ICAgICAgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVycm9yLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBtX29uZ29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0
YWtlblJlcXVlc3QpKTsKLSAgICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMu
Z2V0KGlkZW50aWZpZXIpKTsKKyAgICAgICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAg
ICB9KTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKV0oY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkg
eworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlm
aWVyKCk7CisgICAgICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUg
PSB1cGRhdGUudHlwZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RW5kKQorICAgICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZp
ZXIpOworCisgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1F
U1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3Rz
LnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAg
ICBpZiAobV9yZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZp
ZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3Rz
LmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5n
UmVxdWVzdHMuZ2V0KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVT
U0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRl
bnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAg
IGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
UmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVl
c3QpOwotICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYg
KG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRl
KGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBh
dXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwot
ICAgIGlmIChyZXF1ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0
dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXpp
bmcgcmVzdWx0cyBieSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRp
byBhbmQgcmVjb2duaXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMu
CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAg
IGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3Ao
KTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwg
T3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBA
IC0xMzYsNiArMTM5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVw
ZGF0ZSksIG1faWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0
ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKK30KKwogSVBDOjpDb25u
ZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdAogewogICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCAzNjNjYTIw
ZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi5hN2Y3NmQzOGVlNTAxZTU4MmY3OWE1
NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVyLmg+CiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU4LDEwICs1OSw5
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIGhhbmRs
ZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBz
dG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lk
IGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2
b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
PSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBzZW5kVXBkYXRlKGNvbnN0
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CiAKICAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtNzIsOSArNzIsOSBAQCBwcml2YXRlOgogCiAg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="commit-queue"
          id="431308"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414424</attachid>
            <date>2020-11-18 00:35:30 -0800</date>
            <delta_ts>2020-11-18 00:51:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201118003529.patch</filename>
            <type>text/plain</type>
            <size>44768</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ2OWVhNWViMDlmZTdjZWFiYjNlZDQ5ZjI2MzA0NTBk
YjZiNWFmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURl
dmljZU1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgi
CisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRh
dGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCisgICAgOiBtX2RhdGFDYWxs
YmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX2Vycm9yQ2FsbGJhY2soV1RGTW92
ZShlcnJvckNhbGxiYWNrKSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBkZXZpY2Vz
ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFj
dG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOworICAg
IE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CisgICAgZm9yIChhdXRvIGRl
dmljZSA6IGRldmljZXMpIHsKKyAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgCisgICAgICAgIGlmICghY2FwdHVyZURldmljZSkKKyAgICAg
ICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZh
dWx0KCkpIHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgewor
ICAgICAgICBtX2Vycm9yQ2FsbGJhY2soIk5vIGRldmljZSBpcyBhdmFpbGFibGUgZm9yIGF1ZGlv
IGNhcHR1cmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmVzdWx0ID0g
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9y
eSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOwor
ICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZXJyb3JDYWxsYmFjayhyZXN1bHQuZXJyb3JN
ZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc291cmNlID0gcmVzdWx0
LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsK
KyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5zdGFydCgp
OworI2Vsc2UKKyAgICBtX2Vycm9yQ2FsbGJhY2soIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBpcyBub3QgaW1wbGVtZW50ZWQiKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgQVNTRVJUKGlzPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkpOwor
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0
Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBhdXRvIHNhbXBs
ZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCB0b0NN
VGltZSh0aW1lKSwgc2FtcGxlQ291bnQpOworICAgIGlmICghc2FtcGxlQnVmZmVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX2RhdGFDYWxsYmFjayhzYW1wbGVCdWZmZXIpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0odGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworICAgIFVOVVNF
RF9QQVJBTShkZXNjcmlwdGlvbik7CisgICAgVU5VU0VEX1BBUkFNKHNhbXBsZUNvdW50KTsKKyNl
bmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3Rh
cnRlZCgpCit7CisgICAgLy8gUGFzcyBhbiBlbXB0eSBidWZmZXIgdG8gc2lnbmFsIHNvdXJjZSBz
dGFydC4KKyAgICBtX2RhdGFDYWxsYmFjayhudWxscHRyKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3Nv
dXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNv
dXJjZSBzdG9wcGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
Ojpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIG1fZXJyb3JDYWxsYmFjaygiQ2FwdHVyZSBz
b3VyY2UgZ290IG11dGVkIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlOTJiYjI4NDNmN2VmN2Q0
YzA3YTVmMDk5Nzk1MmZiYmNiMzVjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApAQCAtMCww
ICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgorCit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01T
YW1wbGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgdXNpbmcgQnVmZmVyID0gUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPjsKKyNlbHNl
CisgICAgdXNpbmcgQnVmZmVyID0gUmVmUHRyPFNoYXJlZEJ1ZmZlcj47CisjZW5kaWYKKyAgICB1
c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEJ1ZmZlcik+OworICAgIHVzaW5nIEVy
cm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+OworICAgIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJp
dmF0ZToKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBm
aW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBz
b3VyY2VTdGFydGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7Cisg
ICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBEYXRhQ2FsbGJhY2sgbV9kYXRhQ2FsbGJhY2s7
CisgICAgRXJyb3JDYWxsYmFjayBtX2Vycm9yQ2FsbGJhY2s7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzM0ZTM5ODRjMmU0MDU2NTlhYzRl
MjJhNGQ1ZDlhN2Q0MTY4Y2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5o
IgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisjaW5jbHVk
ZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxs
YmFjaykKKyAgICA6IG1fZGVsZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30K
KworU3BlZWNoUmVjb2duaXplcjo6flNwZWVjaFJlY29nbml6ZXIoKQoreworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
IChtX2NsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgaWYgKG1fc291cmNlKQorICAgICAgICAg
ICAgbV9zb3VyY2UgPSBudWxscHRyOworCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkFib3J0ZWQsICJBbm90
aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBl
cnJvcikpOworICAgIH0KKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7Cisg
ICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4o
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZTo6QnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICBt
X2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRPRE86IHJlY29n
bml6ZSB0aGUgYnVmZmVyIGFuZCByZXR1cm4gcmVjb2duaXRpb24gcmVzdWx0LgorCisgICAgfSwg
W3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKFN0cmluZyBlcnJvck1lc3NhZ2Up
IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgV1RG
TW92ZShlcnJvck1lc3NhZ2UpIH07CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3Ip
KTsKKyAgICAgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0OworICAgIH0pOwor
CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUo
Km1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisjZW5kaWYKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxk
R2VuZXJhdGVGaW5hbFJlc3VsdCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIGlm
ICghbV9jbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9zb3Vy
Y2UpIHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOworICAgICAgICBtX2RlbGVnYXRlQ2Fs
bGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSk7CisgICAgfQorCisgICAg
aWYgKHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3Vs
dDo6WWVzKSB7CisgICAgICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3Bl
ZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVn
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGll
bnRJZGVudGlmaWVyLCByZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlm
aWVyID0gV1RGOjpudWxsb3B0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc4NDcxNzhlYmYyZjdlMTc1ZjIwNmMxNGYzMzExNzQwZDdmZTA5OTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVy
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTsKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cik7CisgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAgIE9wdGlvbmFsPFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6
CisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
cj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNh
bGxiYWNrOworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTZiZmQ1NWIxNDUwNjIzMDBh
MjM1YzljZTJiMzRmMDM5ZTlhMGU4ZS4uZDg4Y2IzMWE1MWM0MDQ5MmI4ZjUzZmNjZmRhN2I4MDM3
OTQ1YTdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5MiwxMiArMTkyLDE0IEBAIE1vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9QaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAogTW9kdWxlcy9yZW1vdGVw
bGF5YmFjay9SZW1vdGVQbGF5YmFjay5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAK
K01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5j
cHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIz
M2M0YmNlNzRkZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVm
MTI2MDI1ZDMyZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgs
NiArMjM4LDcgQEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvS2V5RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0Nv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZTFjNWY5
NWMxYTk3MjBiNjE4NTZlMzE1ZTIxZDM0ZTY5OGM2ODliLi4xZWYwYmI1OTUwMTk3ZGM2NWE1MWMy
ODQxNGIzNDJhYjMzYmZiNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzg3LDYgKzI3ODcsOSBAQAogCQk5MzkzRTYwMDE1
MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENT
U0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNE
MTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTM5QzBE
MjYyNTY0RTQ3QTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjQyNTY0
OTFDQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzOUMwRDI3MjU2NEU0
N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNo
UmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjkyNTY0RTdG
MjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODJB
MjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE0MjcsNiArMTE0MzAsMTIgQEAKIAkJOTM5
ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMw
RUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjQyNTY0OTFDQzAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
QzBEMjUyNTY0QTExQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4
MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI0Mzk2LDYgKzI0NDA1LDggQEAKIAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYy
QUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJCQkwNkU4MUVENjBBQjVENUU5MDBDODc4Mzcg
LyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JB
NjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKKwkJCQk5MzlDMEQyODI1
NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3BwICovLAorCQkJCTkzOUMwRDI5MjU2
NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5
MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkx
QUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJ
CQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tICovLApAQCAtMjU1OTcsNiArMjU2MDgsOCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5
NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICov
LAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmlkbCAqLywKKwkJCQk5MzlDMEQyNTI1NjRBMTFDMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLywKKwkJCQk5MzlDMEQyNDI1NjQ5MUNDMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8sCiAJCQkJOTNBMDQ4MUQy
NTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJ
CTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnQuaCAqLywKIAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2MjEsNiArMjU2MzQs
OCBAQAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaWRsICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMy
MTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIz
MjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1
QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzM1MDUsNiArMzM1MjAsNyBAQAogCQkJ
CTkzMkNDMEI3MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3Vw
cG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIw
MEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIy
NTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1l
bW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDM5Niw2ICszNDQxMiw3IEBACiAJCQkJ
NjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNjI1NjRF
NDdBMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICszNDQyNyw3IEBA
CiAJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEy
NTRCQUI0NTAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzlDMEQyNzI1NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNw
ZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYw
QTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40YzRjYjg4NDNlMzQyZGQ4N2U3NWQ1ZTVlZDNiNzI0NmNjYTJkMzcyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3Bw
CkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29m
dExpbmtpbmcuaD4KKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01G
b3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVz
Y3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVz
Y3JpcHRpb24sIDAsIG51bGxwdHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAg
IGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01U
aW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0
ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVh
dGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZh
bHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBu
dWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFp
bGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBh
dXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0
IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2
N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYyODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlh
L0NNVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBz
dHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsK
K3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwor
Y2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mKTsKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29j
b2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRk
NzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFS
ZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2lu
Y2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBA
IHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVy
KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1w
bGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAg
ICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2lj
RGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRp
b24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBh
dXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQp
OwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBm
b3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBp
ZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGlt
ZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZm
ZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZm
ZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qg
c2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwg
c2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRm
OTczZjk5MTYuLmQ3OGVhMDJjYjdhNmY1NDg3ZTI1MTkxNjMyMGU1MTgyNTY4ZmNhZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKQEAgLTQ2LDEyICs0NiwxMSBAQCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBi
b29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0
aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hF
Q0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250
YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRh
aW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUo
bGFuZyksIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1v
dmUob3JpZ2luKSB9OwotICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVz
dHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAg
ICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFr
ZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVz
dEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1
ZXN0KCpwZW5kaW5nUmVxdWVzdCk7CisgICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpu
ZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBl
cm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVx
dWVzdCkKQEAgLTY0LDY2ICs2Myw3MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5j
bGllbnRJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5n
UmVxdWVzdHMudGFrZShpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3Jl
cXVlc3RzLnJlbW92ZShpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAg
ICAgICAgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkVycm9yLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBtX29uZ29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0
YWtlblJlcXVlc3QpKTsKLSAgICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMu
Z2V0KGlkZW50aWZpZXIpKTsKKyAgICAgICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAg
ICB9KTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNv
Z25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKV0oY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkg
eworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlm
aWVyKCk7CisgICAgICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUg
PSB1cGRhdGUudHlwZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RW5kKQorICAgICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZp
ZXIpOworCisgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAg
IH0KKworICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1F
U1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3Rz
LnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAg
ICBpZiAobV9yZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZp
ZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3Rz
LmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5n
UmVxdWVzdHMuZ2V0KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVT
U0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRl
bnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAg
IGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
UmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVl
c3QpOwotICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYg
KG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRl
KGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6
RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBh
dXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwot
ICAgIGlmIChyZXF1ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0
dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXpp
bmcgcmVzdWx0cyBieSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRp
byBhbmQgcmVjb2duaXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMu
CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAg
IGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpID09IGNsaWVudElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3Ao
KTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwg
T3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBA
IC0xMzYsNiArMTM5LDExIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRh
dGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVw
ZGF0ZSksIG1faWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0
ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246
OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKK30KKwogSVBDOjpDb25u
ZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdAogewogICAgIHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRleCAzNjNjYTIw
ZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi5hN2Y3NmQzOGVlNTAxZTU4MmY3OWE1
NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVyLmg+CiAjaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU4LDEwICs1OSw5
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIGhhbmRs
ZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBz
dG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lk
IGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2
b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4g
PSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBzZW5kVXBkYXRlKGNvbnN0
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CiAKICAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtNzIsOSArNzIsOSBAQCBwcml2YXRlOgogCiAg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFNwZWVjaFJlY29nbml0
aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXplcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="commit-queue"
          id="431307"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414426</attachid>
            <date>2020-11-18 00:50:19 -0800</date>
            <delta_ts>2020-11-18 01:36:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201118005018.patch</filename>
            <type>text/plain</type>
            <size>44752</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY4NjhiYTgyZmZkNTg2NjhkYWViNTAxMjc5MjU4NGQz
NDcxYWI3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorCisjaWYgUExB
VEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJXZWJB
dWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFW
Rm91bmRhdGlvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNh
bGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKKyAgICA6IG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0
YUNhbGxiYWNrKSkKKyAgICAsIG1fZXJyb3JDYWxsYmFjayhXVEZNb3ZlKGVycm9yQ2FsbGJhY2sp
KQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVy
ZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykg
eworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVyZURl
dmljZSA9IGRldmljZTsKKyAgICAgICAgaWYgKGRldmljZS5pc0RlZmF1bHQoKSkgeworICAgICAg
ICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZXJyb3JD
YWxsYmFjaygiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgYXVkaW8gY2FwdHVyZSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQp
IHsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAg
bV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisjZWxzZQorICAgIG1f
ZXJyb3JDYWxsYmFjaygiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIGlzIG5vdCBpbXBs
ZW1lbnRlZCIpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CisgICAgQVNTRVJUKGRlc2Ny
aXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246
OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIHRvQ01UaW1lKHRpbWUpLCBzYW1w
bGVDb3VudCk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZGF0YUNhbGxiYWNrKHNhbXBsZUJ1ZmZlcik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0
aW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0
aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oc2FtcGxlQ291bnQpOworI2VuZGlmCit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICAv
LyBQYXNzIGFuIGVtcHR5IGJ1ZmZlciB0byBzaWduYWwgc291cmNlIHN0YXJ0LgorICAgIG1fZGF0
YUNhbGxiYWNrKG51bGxwdHIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6c291cmNlU3RvcHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlk
RmFpbCgpKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3BwZWQiKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZU11dGVkQ2hh
bmdlZCgpCit7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQi
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U5MmJiMjg0M2Y3ZWY3ZDRjMDdhNWYwOTk3OTUyZmJi
Y2IzNWNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisK
K3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB1c2luZyBCdWZm
ZXIgPSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+OworI2Vsc2UKKyAgICB1c2luZyBCdWZm
ZXIgPSBSZWZQdHI8U2hhcmVkQnVmZmVyPjsKKyNlbmRpZgorICAgIHVzaW5nIERhdGFDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoQnVmZmVyKT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworCitwcml2YXRlOgorICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZCgpIGZpbmFsOworCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1f
c291cmNlOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsKKyAgICBFcnJvckNhbGxi
YWNrIG1fZXJyb3JDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA3MzRlMzk4NGMyZTQwNTY1OWFjNGUyMmE0ZDVkOWE3ZDQxNjhj
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6
OlNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9k
ZWxlZ2F0ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCitTcGVlY2hSZWNvZ25p
emVyOjp+U3BlZWNoUmVjb2duaXplcigpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKG1fY2xpZW50SWRlbnRp
ZmllcikgeworICAgICAgICBpZiAobV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51
bGxwdHI7CisKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBz
dGFydGVkIiB9OworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQor
CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICBtX3NvdXJjZSA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPihbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpCdWZm
ZXIgYnVmZmVyKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gVE9ETzogcmVjb2duaXplIHRoZSBidWZmZXIg
YW5kIHJldHVybiByZWNvZ25pdGlvbiByZXN1bHQuCisKKyAgICB9LCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oU3RyaW5nIGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc291cmNlID0gbnVs
bHB0cjsKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBXVEZNb3ZlKGVycm9yTWVzc2Fn
ZSkgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICBtX2Ns
aWVudElkZW50aWZpZXIgPSBXVEY6Om51bGxvcHQ7CisgICAgfSk7CisKKyAgICBtX2RlbGVnYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShpZGVudGlmaWVyKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0KQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKCFtX2NsaWVudElkZW50
aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQpKTsKKyAgICB9CisKKyAgICBpZiAoc2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCA9PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpIHsKKyAgICAg
ICAgLy8gVE9ETzogZ2VuZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBzcGVlY2ggcmVjb2duaXRpb24g
YmFja2VuZCBpcyBpbXBsZW1lbnRlZC4KKyAgICAgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4gcmVzdWx0RGF0YXM7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2NsaWVudElkZW50aWZpZXIsIHJl
c3VsdERhdGFzKSk7CisgICAgfQorCisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICBtX2NsaWVudElkZW50aWZpZXIgPSBXVEY6Om51bGxv
cHQ7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KTsK
KyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0NzE3OGVi
ZjJmN2UxNzVmMjA2YzE0ZjMzMTE3NDBkN2ZlMDk5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3BlZWNoUmVjb2duaXplcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB+U3BlZWNoUmVjb2duaXplcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNs
YXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50
aWZpZXI7CisgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlPiBtX3NvdXJjZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NmJmZDU1YjE0NTA2MjMwMGEyMzVjOWNlMmIzNGYwMzll
OWEwZThlLi5kODhjYjMxYTUxYzQwNDkyYjhmNTNmY2NmZGE3YjgwMzc5NDVhN2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTkyLDEyICsxOTIsMTQgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBs
YXliYWNrLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAK
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNw
cAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4
YmEzY2IyYTQ0OTMxNTQ2YjU5YTYwLi4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4
NjA2MTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0
Zm9ybS9jb2NvYS9GaWxlTW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3Jt
L2NvY29hL01JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGls
aXRpZXMuY3BwCiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5t
bQogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRm
b3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlMWM1Zjk1YzFhOTcyMGI2MTg1NmUz
MTVlMjFkMzRlNjk4YzY4OWIuLjFlZjBiYjU5NTAxOTdkYzY1YTUxYzI4NDE0YjM0MmFiMzNiZmI1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI3ODcsNiArMjc4Nyw5IEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAv
KiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4
NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5MzlDMEQyNjI1NjRFNDdBMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIy
NTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVk
aWFVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1
NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTQyNyw2ICsxMTQzMCwxMiBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAy
RUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyNTI1NjRBMTFDMDBC
MzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVV0aWxpdGll
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI5MjU2NEU3RjIwMEIz
MjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgx
QjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQzOTYs
NiArMjQ0MDUsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENv
Y29hLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9j
YWxpemVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8q
IE1lZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTEx
QjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0y
NTU5Nyw2ICsyNTYwOCw4IEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIy
NTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAor
CQkJCTkzOUMwRDI1MjU2NEExMUMwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwICovLAorCQkJCTkzOUMwRDI0MjU2NDkxQ0MwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRF
OTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJ
CTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmggKi8sCkBAIC0yNTYyMSw2ICsyNTYzNCw4IEBACiAJCQkJOTM0OTUw
QzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8s
CiAJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLywKIAkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCAqLywKKwkJCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8sCisJCQkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zMzUwNSw2ICszMzUyMCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1
ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlh
VXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4g
SGVhZGVycyAqLywKQEAgLTM0Mzk2LDYgKzM0NDEyLDcgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1
MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI2MjU2NEU0N0EwMEIzMjExQiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJEMjU0OTU1
MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDEwLDYgKzM0NDI3LDcgQEAKIAkJCQk5M0EwNDgyOTI1
NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI3
MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGNiODg0M2Uz
NDJkZDg3ZTc1ZDVlNWVkM2I3MjQ2Y2NhMmQzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxp
dGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2lu
Y2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6
Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVs
bHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVy
biBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90
IHNhbXBsZUNvdW50KQoreworICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFmb3JtYXQpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsK
KyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVC
dWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9y
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0Pihk
YXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBl
cnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVy
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjY3YzY2Nzg1ZDQ3ZDI3MDJi
NWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01UaW1lLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZv
cm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qg
b3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1
ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVRpbWUsIHNp
emVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCBhY2I0
OTQ0MzA4ZDFjYTQzZjlmNjk5YzUxMDQ2MDA4ZjNkNzM1NTA3Li5iZGQ3MGZkOWNhYWUyZGVjY2Ni
MjQwYmMyMWIyNWE0MmZjNjM3NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZU9w
dGlvbnMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ik1lZGlhVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
LmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8QVZGb3VuZGF0
aW9uL0FWQXNzZXRXcml0ZXIuaD4KQEAgLTQ0Myw0MCArNDQ0LDYgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJX
aXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTUZv
cm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQotewotICAgIGF1dG8gYmFzaWNEZXNj
cmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRl
c2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7Ci0gICAgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNj
cmlwdGlvbiwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdCk7Ci0gICAgaWYgKGVycm9y
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJu
IGFkb3B0Q0YoZm9ybWF0KTsKLX0KLQotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1l
IHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKLXsKLSAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwotICAgIGlmICghZm9ybWF0KQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVX
aXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGZhbHNlLCBO
VUxMLCBOVUxMLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBOVUxMLCAmc2FtcGxl
QnVmZmVyKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyKTsKLQotICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQogdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVfdCBzYW1wbGVDb3VudCkKIHsK
ICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRh
LCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKaW5kZXggODU2NTE5ZmI2ODcxM2VkZDlhY2NmMmVlMWMyNDc3NGY5NzNmOTkxNi4uZDc4ZWEw
MmNiN2E2ZjU0ODdlMjUxOTE2MzIwZTUxODI1NjhmY2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtNDYsMTIgKzQ2
LDExIEBAIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3RpCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywg
Ym9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlm
aWVyKTsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKTsKLSAgICBBU1NFUlQoIW1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKKyAgICBBU1NFUlQoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpOwogICAgIGF1dG8gcmVxdWVzdEluZm8gPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHsgY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShsYW5nKSwgY29udGludW91
cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcywgV1RGTW92ZShvcmlnaW4pIH07Ci0g
ICAgYXV0byYgcGVuZGluZ1JlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQoY2xpZW50SWRl
bnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdU
Rk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIG5ld1JlcXVl
c3QgPSBtX3JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CiAKLSAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKnBlbmRpbmdSZXF1
ZXN0KTsKKyAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKm5ld1JlcXVlc3QpOwogfQog
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNjQsNjYg
KzYzLDcwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KTsKLSAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKGlk
ZW50aWZpZXIpOwogICAgICAgICBpZiAoZGVjaXNpb24gPT0gU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uRGVjaXNpb246OkRlbnkpIHsKKyAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlk
ZW50aWZpZXIpOwogICAgICAgICAgICAgYXV0byBlcnJvciA9IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxs
b3dlZCwgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIl9zIH07CiAgICAgICAgICAgICBzZW5kVXBk
YXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1f
b25nb2luZ1JlcXVlc3RzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHRha2VuUmVxdWVzdCkpOwot
ICAgICAgICBoYW5kbGVSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoaWRlbnRpZmllcikp
OworICAgICAgICBoYW5kbGVSZXF1ZXN0KGlkZW50aWZpZXIpOwogICAgIH0pOwogfQogCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sK
KyAgICBpZiAoIW1fcmVjb2duaXplcikgeworICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
XShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKSB7CisgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0
byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAg
ICAgIGlmICghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7
CisgICAgICAgICAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yIHx8IHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAg
ICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGll
bnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElk
ZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6
ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElk
ZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50
SWRlbnRpZmllcikpOwotICAgIHN0b3BSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xp
ZW50SWRlbnRpZmllcikpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlm
aWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcjo6U2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNs
aWVudElkZW50aWZpZXIpOwotICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1
cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2Vp
dmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1f
b25nb2luZ1JlcXVlc3RzLnRha2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3Qp
Ci0gICAgICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQg
cmVjb2duaXRpb24uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAv
LyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJl
Y29nbml6aW5nIGNhcHR1cmVkIGF1ZGlvLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjphYm9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1
ZXN0KQotewotICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlv
biBpbW1lZGlhdGVseSB3aXRob3V0IGdlbmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1
ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+IHJlc3VsdCkKQEAgLTEzNiw2ICsxMzksMTEg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlm
aWVyKTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0
ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThm
ZWUzNGZiYzJlMWQxOGEyNGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhm
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVz
dChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBP
cHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwg
T3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0g
V1RGOjpudWxsb3B0KTsKKyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CkBAIC03Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdS
ZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Cg==
</data>
<flag name="commit-queue"
          id="431312"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414429</attachid>
            <date>2020-11-18 01:34:43 -0800</date>
            <delta_ts>2020-11-18 09:28:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201118013442.patch</filename>
            <type>text/plain</type>
            <size>45322</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZjJjM2I2NGU2NGUxNzkyODg0ZTc4NzFhMTA3OTFkODdhNmFjOGYyYi4uOWFiYWIyYjAxNTUy
NDUzYzVhMWJjOTkyODA0NjM1ZjdlYjg1YWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjIs
NiArMTIyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaAogICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCiAgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuaAogCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAg
IE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY4NjhiYTgyZmZkNTg2NjhkYWViNTAxMjc5MjU4NGQz
NDcxYWI3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorCisjaWYgUExB
VEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJXZWJB
dWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFW
Rm91bmRhdGlvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNh
bGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKKyAgICA6IG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0
YUNhbGxiYWNrKSkKKyAgICAsIG1fZXJyb3JDYWxsYmFjayhXVEZNb3ZlKGVycm9yQ2FsbGJhY2sp
KQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVy
ZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykg
eworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVyZURl
dmljZSA9IGRldmljZTsKKyAgICAgICAgaWYgKGRldmljZS5pc0RlZmF1bHQoKSkgeworICAgICAg
ICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZXJyb3JD
YWxsYmFjaygiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgYXVkaW8gY2FwdHVyZSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQp
IHsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAg
bV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisjZWxzZQorICAgIG1f
ZXJyb3JDYWxsYmFjaygiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIGlzIG5vdCBpbXBs
ZW1lbnRlZCIpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CisgICAgQVNTRVJUKGRlc2Ny
aXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246
OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIHRvQ01UaW1lKHRpbWUpLCBzYW1w
bGVDb3VudCk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZGF0YUNhbGxiYWNrKHNhbXBsZUJ1ZmZlcik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0
aW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0
aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oc2FtcGxlQ291bnQpOworI2VuZGlmCit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICAv
LyBQYXNzIGFuIGVtcHR5IGJ1ZmZlciB0byBzaWduYWwgc291cmNlIHN0YXJ0LgorICAgIG1fZGF0
YUNhbGxiYWNrKG51bGxwdHIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6c291cmNlU3RvcHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlk
RmFpbCgpKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3BwZWQiKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZU11dGVkQ2hh
bmdlZCgpCit7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQi
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U5MmJiMjg0M2Y3ZWY3ZDRjMDdhNWYwOTk3OTUyZmJi
Y2IzNWNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisK
K3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB1c2luZyBCdWZm
ZXIgPSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+OworI2Vsc2UKKyAgICB1c2luZyBCdWZm
ZXIgPSBSZWZQdHI8U2hhcmVkQnVmZmVyPjsKKyNlbmRpZgorICAgIHVzaW5nIERhdGFDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoQnVmZmVyKT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworCitwcml2YXRlOgorICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZCgpIGZpbmFsOworCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1f
c291cmNlOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsKKyAgICBFcnJvckNhbGxi
YWNrIG1fZXJyb3JDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA3MzRlMzk4NGMyZTQwNTY1OWFjNGUyMmE0ZDVkOWE3ZDQxNjhj
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6
OlNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9k
ZWxlZ2F0ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCitTcGVlY2hSZWNvZ25p
emVyOjp+U3BlZWNoUmVjb2duaXplcigpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKG1fY2xpZW50SWRlbnRp
ZmllcikgeworICAgICAgICBpZiAobV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51
bGxwdHI7CisKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBz
dGFydGVkIiB9OworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQor
CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICBtX3NvdXJjZSA9IG1h
a2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPihbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpCdWZm
ZXIgYnVmZmVyKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gVE9ETzogcmVjb2duaXplIHRoZSBidWZmZXIg
YW5kIHJldHVybiByZWNvZ25pdGlvbiByZXN1bHQuCisKKyAgICB9LCBbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oU3RyaW5nIGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc291cmNlID0gbnVs
bHB0cjsKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBXVEZNb3ZlKGVycm9yTWVzc2Fn
ZSkgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICBtX2Ns
aWVudElkZW50aWZpZXIgPSBXVEY6Om51bGxvcHQ7CisgICAgfSk7CisKKyAgICBtX2RlbGVnYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShpZGVudGlmaWVyKTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0KQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKCFtX2NsaWVudElkZW50
aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQpKTsKKyAgICB9CisKKyAgICBpZiAoc2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdCA9PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpIHsKKyAgICAg
ICAgLy8gVE9ETzogZ2VuZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBzcGVlY2ggcmVjb2duaXRpb24g
YmFja2VuZCBpcyBpbXBsZW1lbnRlZC4KKyAgICAgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YT4gcmVzdWx0RGF0YXM7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2NsaWVudElkZW50aWZpZXIsIHJl
c3VsdERhdGFzKSk7CisgICAgfQorCisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICBtX2NsaWVudElkZW50aWZpZXIgPSBXVEY6Om51bGxv
cHQ7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KTsK
KyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg0NzE3OGVi
ZjJmN2UxNzVmMjA2YzE0ZjMzMTE3NDBkN2ZlMDk5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMCwwICsxLDU0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8U3BlZWNoUmVjb2duaXplcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB+U3BlZWNoUmVjb2duaXplcigpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNs
YXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50
aWZpZXI7CisgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlPiBtX3NvdXJjZTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA5NmJmZDU1YjE0NTA2MjMwMGEyMzVjOWNlMmIzNGYwMzll
OWEwZThlLi5kODhjYjMxYTUxYzQwNDkyYjhmNTNmY2NmZGE3YjgwMzc5NDVhN2ZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTkyLDEyICsxOTIsMTQgQEAgTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL1Bp
Y3R1cmVJblBpY3R1cmVXaW5kb3cuY3BwCiBNb2R1bGVzL3JlbW90ZXBsYXliYWNrL1JlbW90ZVBs
YXliYWNrLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcAorTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvckV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25FdmVudC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAK
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNw
cAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lz
RXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4
YmEzY2IyYTQ0OTMxNTQ2YjU5YTYwLi4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4
NjA2MTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0
Zm9ybS9jb2NvYS9GaWxlTW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3Jt
L2NvY29hL01JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGls
aXRpZXMuY3BwCiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5t
bQogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRm
b3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlMWM1Zjk1YzFhOTcyMGI2MTg1NmUz
MTVlMjFkMzRlNjk4YzY4OWIuLjFlZjBiYjU5NTAxOTdkYzY1YTUxYzI4NDE0YjM0MmFiMzNiZmI1
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI3ODcsNiArMjc4Nyw5IEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAv
KiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOTg4
NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5MzlDMEQyNjI1NjRFNDdBMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIy
NTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVk
aWFVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNB
MDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1
NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAw
QUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xMTQyNyw2ICsxMTQzMCwxMiBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAy
RUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzlDMEQyNDI1NjQ5MUNDMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyNTI1NjRBMTFDMDBC
MzIxMUIgLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVV0aWxpdGll
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI5MjU2NEU3RjIwMEIz
MjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgx
QjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQzOTYs
NiArMjQ0MDUsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENv
Y29hLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9j
YWxpemVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8q
IE1lZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTEx
QjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0y
NTU5Nyw2ICsyNTYwOCw4IEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVj
aFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIy
NTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAor
CQkJCTkzOUMwRDI1MjU2NEExMUMwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuY3BwICovLAorCQkJCTkzOUMwRDI0MjU2NDkxQ0MwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRF
OTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJ
CTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLmggKi8sCkBAIC0yNTYyMSw2ICsyNTYzNCw4IEBACiAJCQkJOTM0OTUw
QzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8s
CiAJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmNwcCAqLywKIAkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCAqLywKKwkJCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5jcHAgKi8sCisJCQkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3lu
dGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpcy5pZGwgKi8sCkBAIC0zMzUwNSw2ICszMzUyMCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1
ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlh
VXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUw
MDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4g
SGVhZGVycyAqLywKQEAgLTM0Mzk2LDYgKzM0NDEyLDcgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRD
MDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1
MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI2MjU2NEU0N0EwMEIzMjExQiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJEMjU0OTU1
MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDEwLDYgKzM0NDI3LDcgQEAKIAkJCQk5M0EwNDgyOTI1
NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0Eg
LyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI3
MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGNiODg0M2Uz
NDJkZDg3ZTc1ZDVlNWVkM2I3MjQ2Y2NhMmQzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSw3MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxp
dGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2lu
Y2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6
Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVs
bHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVy
biBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90
IHNhbXBsZUNvdW50KQoreworICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFmb3JtYXQpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsK
KyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNj
cmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51
bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVC
dWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9y
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0Pihk
YXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBl
cnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVy
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjY3YzY2Nzg1ZDQ3ZDI3MDJi
NWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01UaW1lLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZv
cm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qg
b3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1
ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVRpbWUsIHNp
emVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCBhY2I0
OTQ0MzA4ZDFjYTQzZjlmNjk5YzUxMDQ2MDA4ZjNkNzM1NTA3Li5iZGQ3MGZkOWNhYWUyZGVjY2Ni
MjQwYmMyMWIyNWE0MmZjNjM3NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZU9w
dGlvbnMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ik1lZGlhVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
LmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8QVZGb3VuZGF0
aW9uL0FWQXNzZXRXcml0ZXIuaD4KQEAgLTQ0Myw0MCArNDQ0LDYgQEAgdm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNh
bXBsZSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJX
aXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTUZv
cm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQotewotICAgIGF1dG8gYmFzaWNEZXNj
cmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRl
c2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7Ci0gICAgQ01Gb3Jt
YXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNj
cmlwdGlvbiwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1hdCk7Ci0gICAgaWYgKGVycm9y
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJu
IGFkb3B0Q0YoZm9ybWF0KTsKLX0KLQotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1l
IHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKLXsKLSAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwotICAgIGlmICghZm9ybWF0KQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVX
aXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGZhbHNlLCBO
VUxMLCBOVUxMLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBOVUxMLCAmc2FtcGxl
QnVmZmVyKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyKTsKLQotICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFT
dHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQogdm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3Qg
UGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRl
c2NyaXB0aW9uLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVfdCBzYW1wbGVDb3VudCkKIHsK
ICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRh
LCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5j
cHAKaW5kZXggODU2NTE5ZmI2ODcxM2VkZDlhY2NmMmVlMWMyNDc3NGY5NzNmOTkxNi4uZDc4ZWEw
MmNiN2E2ZjU0ODdlMjUxOTE2MzIwZTUxODI1NjhmY2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtNDYsMTIgKzQ2
LDExIEBAIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3RpCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywg
Ym9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlm
aWVyKTsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKTsKLSAgICBBU1NFUlQoIW1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKKyAgICBBU1NFUlQoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpOwogICAgIGF1dG8gcmVxdWVzdEluZm8gPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3RJbmZvIHsgY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShsYW5nKSwgY29udGludW91
cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcywgV1RGTW92ZShvcmlnaW4pIH07Ci0g
ICAgYXV0byYgcGVuZGluZ1JlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQoY2xpZW50SWRl
bnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdU
Rk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIG5ld1JlcXVl
c3QgPSBtX3JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CiAKLSAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKnBlbmRpbmdSZXF1
ZXN0KTsKKyAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKm5ld1JlcXVlc3QpOwogfQog
CiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNjQsNjYg
KzYzLDcwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElkZW50aWZpZXIo
KTsKLSAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKGlk
ZW50aWZpZXIpOwogICAgICAgICBpZiAoZGVjaXNpb24gPT0gU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uRGVjaXNpb246OkRlbnkpIHsKKyAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlk
ZW50aWZpZXIpOwogICAgICAgICAgICAgYXV0byBlcnJvciA9IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxs
b3dlZCwgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIl9zIH07CiAgICAgICAgICAgICBzZW5kVXBk
YXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1f
b25nb2luZ1JlcXVlc3RzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHRha2VuUmVxdWVzdCkpOwot
ICAgICAgICBoYW5kbGVSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoaWRlbnRpZmllcikp
OworICAgICAgICBoYW5kbGVSZXF1ZXN0KGlkZW50aWZpZXIpOwogICAgIH0pOwogfQogCit2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sK
KyAgICBpZiAoIW1fcmVjb2duaXplcikgeworICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5p
cXVlPFNwZWVjaFJlY29nbml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
XShjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKSB7CisgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0
byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAg
ICAgIGlmICghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7
CisgICAgICAgICAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yIHx8IHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAg
ICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNv
Z25pemVyLT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGll
bnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElk
ZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6
ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElk
ZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50
SWRlbnRpZmllcikpOwotICAgIHN0b3BSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xp
ZW50SWRlbnRpZmllcikpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlm
aWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcjo6U2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElk
ZW50aWZpZXIpKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNs
aWVudElkZW50aWZpZXIpOwotICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1
cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2Vp
dmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1f
b25nb2luZ1JlcXVlc3RzLnRha2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3Qp
Ci0gICAgICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQg
cmVjb2duaXRpb24uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAv
LyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJl
Y29nbml6aW5nIGNhcHR1cmVkIGF1ZGlvLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjphYm9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1
ZXN0KQotewotICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlv
biBpbW1lZGlhdGVseSB3aXRob3V0IGdlbmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1
ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+IHJlc3VsdCkKQEAgLTEzNiw2ICsxMzksMTEg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlm
aWVyKTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25z
dCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0
ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThm
ZWUzNGZiYzJlMWQxOGEyNGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhm
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVz
dChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBP
cHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwg
T3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0g
V1RGOjpudWxsb3B0KTsKKyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CkBAIC03Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdS
ZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkNoZWNrZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414456</attachid>
            <date>2020-11-18 09:28:43 -0800</date>
            <delta_ts>2020-11-20 08:35:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201118092842.patch</filename>
            <type>text/plain</type>
            <size>45444</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjOGJhOGJjMDQwNzFi
Njc0ZGY0OGNlMzk3ZWEyODRhNzVkMTc4ZC4uZWU3YjQ2YjlhMjEzNDI1Y2QxYjBjZTMxOWUxOTU1
NTE1YTBlMmY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTE3ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciBjbGFzcywgd2hpY2ggcGVyZm9ybXMg
YXVkaW8gY2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQs
CisgICAgICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVj
b2duaXplciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5n
LiBTcGVlY2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUs
IHNvIGNhbGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29n
bml6ZXIgd291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAg
ICAgTWFudWFsbHkgdGVzdGVkIHdpdGggTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6c291cmNlU3RhcnRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZVN0b3BwZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3Vy
Y2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6On5TcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogbW92ZSBjb2RlIGZvciBjcmVh
dGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBz
byBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYS4K
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgor
CiAyMDIwLTExLTE3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIERpc2FibGUgcGVyY2VudGFnZSB0eXBlIG1pbi9tYXgtd2lkdGgv
aGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGY4YWViOGI4ODY3MmIyMjE4YjU0NWQzMmFiNzA0ZTg1ZWU3NjMz
ZmQuLmM3Yjc1MGViMWFiMDJiZDZjMmRmOTU5NmQyY2FlNmEzM2Q4MjY1NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0
aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTcgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgZGVmYXVsdCBhY3Rpb24gZm9y
IFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZjJjM2I2NGU2NGUxNzkyODg0ZTc4NzFhMTA3OTFkODdhNmFjOGYyYi4uOWFiYWIyYjAxNTUy
NDUzYzVhMWJjOTkyODA0NjM1ZjdlYjg1YWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjIs
NiArMTIyLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8uaAogICAgIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCiAgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuaAogCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAg
IE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY4NjhiYTgyZmZkNTg2NjhkYWViNTAxMjc5MjU4NGQz
NDcxYWI3MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorCisjaWYgUExB
VEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJXZWJB
dWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFW
Rm91bmRhdGlvbi5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFt
ZXNwYWNlIFBBTDsKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNh
bGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKKyAgICA6IG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0
YUNhbGxiYWNrKSkKKyAgICAsIG1fZXJyb3JDYWxsYmFjayhXVEZNb3ZlKGVycm9yQ2FsbGJhY2sp
KQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVy
ZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykg
eworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVyZURl
dmljZSA9IGRldmljZTsKKyAgICAgICAgaWYgKGRldmljZS5pc0RlZmF1bHQoKSkgeworICAgICAg
ICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAgICAgIG1fZXJyb3JD
YWxsYmFjaygiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgYXVkaW8gY2FwdHVyZSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQp
IHsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAg
bV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5h
ZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisjZWxzZQorICAgIG1f
ZXJyb3JDYWxsYmFjaygiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIGlzIG5vdCBpbXBs
ZW1lbnRlZCIpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBBU1NFUlQoaXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CisgICAgQVNTRVJUKGRlc2Ny
aXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246
OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAgIGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIHRvQ01UaW1lKHRpbWUpLCBzYW1w
bGVDb3VudCk7CisgICAgaWYgKCFzYW1wbGVCdWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZGF0YUNhbGxiYWNrKHNhbXBsZUJ1ZmZlcik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0
aW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0
aW9uKTsKKyAgICBVTlVTRURfUEFSQU0oc2FtcGxlQ291bnQpOworI2VuZGlmCit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICAv
LyBQYXNzIGFuIGVtcHR5IGJ1ZmZlciB0byBzaWduYWwgc291cmNlIHN0YXJ0LgorICAgIG1fZGF0
YUNhbGxiYWNrKG51bGxwdHIpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZTo6c291cmNlU3RvcHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlk
RmFpbCgpKTsKKyAgICBtX2Vycm9yQ2FsbGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3BwZWQiKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OnNvdXJjZU11dGVkQ2hh
bmdlZCgpCit7CisgICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQi
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U5MmJiMjg0M2Y3ZWY3ZDRjMDdhNWYwOTk3OTUyZmJi
Y2IzNWNkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisK
K3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB1c2luZyBCdWZm
ZXIgPSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+OworI2Vsc2UKKyAgICB1c2luZyBCdWZm
ZXIgPSBSZWZQdHI8U2hhcmVkQnVmZmVyPjsKKyNlbmRpZgorICAgIHVzaW5nIERhdGFDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoQnVmZmVyKT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
KERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworCitwcml2YXRlOgorICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZCgpIGZpbmFsOworCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1f
c291cmNlOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsKKyAgICBFcnJvckNhbGxi
YWNrIG1fZXJyb3JDYWxsYmFjazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg0YmI3MDE3YjU4YzQyNTg0YmM2N2UwMGUxMDhmMTYxZmExNGYy
M2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6
OlNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9k
ZWxlZ2F0ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCitTcGVlY2hSZWNvZ25p
emVyOjp+U3BlZWNoUmVjb2duaXplcigpCit7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6
c3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgaWYgKG1fY2xpZW50SWRlbnRp
ZmllcikgeworICAgICAgICBpZiAobV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51
bGxwdHI7CisKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBz
dGFydGVkIiB9OworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZUVycm9yKCptX2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQor
CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2Fs
bGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7CisgICAgbV9zb3VyY2UgPSBt
YWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZT4oW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXJdKFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6QnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZpZXIgJiYgbV9j
bGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRpZmllcik7CisgICAgICAgIGlmICghYnVm
ZmVyKSB7CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1
ZGlvU3RhcnQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IFRPRE86IHJlY29nbml6ZSB0aGUgYnVmZmVyIGFuZCByZXR1cm4gcmVjb2duaXRpb24gcmVzdWx0
LgorCisgICAgfSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZp
ZXJdKFN0cmluZyBlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBBU1NFUlQobV9jbGllbnRJZGVudGlmaWVyICYmIG1f
Y2xpZW50SWRlbnRpZmllci52YWx1ZSgpID09IGlkZW50aWZpZXIpOworICAgICAgICBhdXRvIGVy
cm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpBdWRpb0NhcHR1cmUsIFdURk1vdmUoZXJyb3JNZXNzYWdlKSB9OworICAgICAgICBtX2RlbGVn
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGlkZW50aWZp
ZXIsIGVycm9yKSk7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICB9KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGlkZW50aWZpZXIpOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNo
UmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQpCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBpZiAoIW1fY2xp
ZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc291cmNlKSB7Cisg
ICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkpOworICAgIH0KKworICAgIGlmIChzaG91
bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcykg
eworICAgICAgICAvLyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVjaCByZWNv
Z25pdGlvbiBiYWNrZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0b3I8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50SWRlbnRp
ZmllciwgcmVzdWx0RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdU
Rjo6bnVsbG9wdDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNob3VsZEdlbmVyYXRlRmluYWxS
ZXN1bHQpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ODQ3MTc4ZWJmMmY3ZTE3NWYyMDZjMTRmMzMxMTc0MGQ3ZmUwOTk4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciA6IHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZv
aWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAgV0VCQ09SRV9FWFBPUlQg
ZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOworICAgIFdFQkNP
UkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworICAg
IGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNob3Vs
ZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAgIE9w
dGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xp
ZW50SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworI2VuZGlmCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDk2YmZkNTViMTQ1MDYyMzAwYTIzNWM5Y2Uy
YjM0ZjAzOWU5YTBlOGUuLmQ4OGNiMzFhNTFjNDA0OTJiOGY1M2ZjY2ZkYTdiODAzNzk0NWE3ZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC0xOTIsMTIgKzE5MiwxNCBAQCBNb2R1bGVzL3BpY3R1cmVpbnBp
Y3R1cmUvUGljdHVyZUluUGljdHVyZVdpbmRvdy5jcHAKIE1vZHVsZXMvcmVtb3RlcGxheWJhY2sv
UmVtb3RlUGxheWJhY2suY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5jcHAK
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwCitNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yRXZlbnQuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0
ZGRlYWQ4MThiYTNjYjJhNDQ5MzE1NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNmYjI1ZjEyNjAyNWQz
MmYxMGQ3Nzg2MDYxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3
IEBAIHBsYXRmb3JtL2NvY29hL0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tl
eUV2ZW50Q29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQog
cGxhdGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9N
ZWRpYVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5t
bQogcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmUxYzVmOTVjMWE5NzIw
YjYxODU2ZTMxNWUyMWQzNGU2OThjNjg5Yi4uMWVmMGJiNTk1MDE5N2RjNjVhNTFjMjg0MTRiMzQy
YWIzM2JmYjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjc4Nyw2ICsyNzg3LDkgQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAw
MDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNl
dFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdD
NCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVB
MkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzOUMwRDI2MjU2NEU0
N0EwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDI0MjU2NDkxQ0MwMEIz
MjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzlDMEQyNzI1NjRFNDdGMDBCMzIx
MUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDI5MjU2NEU3RjIwMEIzMjEx
QiAvKiBNZWRpYVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
QTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0
OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyQTI1NDk1NTE0
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDI3LDYgKzExNDMwLDEyIEBACiAJCTkzOTg4NUMyMDhC
N0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQw
MEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI0MjU2NDkxQ0MwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI1MjU2
NEExMUMwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlh
VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjkyNTY0
RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFGMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNDM5Niw2ICsyNDQwNSw4IEBACiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtl
eUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERG
RSAvKiBMb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gKi8sCisJCQkJOTM5QzBEMjgyNTY0RTdGMjAw
QjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmNwcCAqLywKKwkJCQk5MzlDMEQyOTI1NjRFN0YyMDBC
MzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNB
RTkgLyogTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUw
MEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5
MzQ4MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAq
LywKQEAgLTI1NTk3LDYgKzI1NjA4LDggQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5
MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5p
ZGwgKi8sCisJCQkJOTM5QzBEMjUyNTY0QTExQzAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5jcHAgKi8sCisJCQkJOTM5QzBEMjQyNTY0OTFDQzAwQjMyMTFCIC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovLAogCQkJCTkzQTA0ODFEMjU0OTU0RTUw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0EwNDgy
NDI1NDk1NEU5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50Lmgg
Ki8sCiAJCQkJOTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCAqLywKQEAgLTI1NjIxLDYgKzI1NjM0LDggQEAKIAkJ
CQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmlkbCAqLywKIAkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuY3BwICovLAogCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oICovLAorCQkJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBT
cGVlY2hSZWNvZ25pemVyLmNwcCAqLywKKwkJCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyog
U3BlZWNoUmVjb2duaXplci5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3Bl
ZWNoU3ludGhlc2lzLmlkbCAqLywKQEAgLTMzNTA1LDYgKzMzNTIwLDcgQEAKIAkJCQk5MzJDQzBC
NzFERkZEMTU4MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwN0MxQzBFMjFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENv
bnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQg
LyogTWVkaWFVc2FnZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDJCMjU2NEU3RjMw
MEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMx
QkQ4MDY0RTAwNTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0IxNkMxODA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJz
b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzOTYsNiArMzQ0MTIsNyBAQAogCQkJCTYyNkNERTBG
MTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMjYyNTY0RTQ3QTAwQjMy
MTFCIC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4
MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ0MTAsNiArMzQ0MjcsNyBAQAogCQkJCTkz
QTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcxMjU0QkFCNDUw
MDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50
aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEy
NSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM0
Y2I4ODQzZTM0MmRkODdlNzVkNWU1ZWQzYjcyNDZjY2EyZDM3MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMCww
ICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1l
ZGlhVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisj
aW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5n
Lmg+CisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworUmV0YWluUHRyPENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9u
ID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRp
b24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKyAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9u
LCAwLCBudWxscHRyLCAwLCBudWxscHRyLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uIGZh
aWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKK30KKworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVy
UmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0
YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1l
LCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisgICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zv
cm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBu
dWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBh
Y2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwgbnVs
bHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0ciwg
JnNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3Jl
YXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVzY3JpcHRpb25zIGZhaWxlZCAtICVk
IiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgYXV0byBidWZm
ZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CisKKyAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZl
ckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJP
UigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRpbyBidWZmZXIgbGlzdCBmYWlsZWQg
LSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVy
biBidWZmZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNjdjNjY3ODVk
NDdkMjcwMmI1YzY0OWVmMjg1ZTRiMGE1ZTEyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVNZWRpYS9DTVRpbWUu
aD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IG9w
YXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7Cit0eXBlZGVm
IHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciogQ01TYW1wbGVCdWZmZXJSZWY7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3Jl
YXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJik7
CitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENN
VGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmlu
ZGV4IGFjYjQ5NDQzMDhkMWNhNDNmOWY2OTljNTEwNDYwMDhmM2Q3MzU1MDcuLmJkZDcwZmQ5Y2Fh
ZTJkZWNjY2IyNDBiYzIxYjI1YTQyZmM2Mzc2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQ
cml2YXRlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCisj
aW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKICNpbmNsdWRlIDxB
VkZvdW5kYXRpb24vQVZBc3NldFdyaXRlci5oPgpAQCAtNDQzLDQwICs0NDQsNiBAQCB2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNh
bXBsZSYgc2FtcGxlKQogICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVy
KGJ1ZmZlcldpdGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmV0YWlu
UHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24o
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCi17Ci0gICAgYXV0byBi
YXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKLSAg
ICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJv
ciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBi
YXNpY0Rlc2NyaXB0aW9uLCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0KTsKLSAgICBp
ZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOwotfQotCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxD
TVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQotewotICAgIGF1dG8gZm9ybWF0ID0g
Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7Ci0gICAgaWYgKCFmb3Jt
YXQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZl
ckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwg
ZmFsc2UsIE5VTEwsIE5VTEwsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIE5VTEws
ICZzYW1wbGVCdWZmZXIpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihzYW1wbGVCdWZmZXIpOwotCi0gICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFC
dWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0Pihk
YXRhKS5saXN0KCkpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVy
U2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYnVmZmVyOwotfQot
CiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZl
cihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgc2l6ZV90IHNhbXBsZUNv
dW50KQogewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVm
ZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHNhbXBsZUNv
dW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFjY2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2
Li5kNzhlYTAyY2I3YTZmNTQ4N2UyNTE5MTYzMjBlNTE4MjU2OGZjYWQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC00
NiwxMiArNDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGkKIHZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250
aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElkZW50aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5nUmVxdWVzdHMuY29udGFpbnMoY2xp
ZW50SWRlbnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMo
Y2xpZW50SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9yZXF1ZXN0cy5jb250YWlucyhjbGll
bnRJZGVudGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5mbyA9IFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGxhbmcpLCBj
b250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9yaWdp
bikgfTsKLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmFkZChj
bGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYg
bmV3UmVxdWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkp
Lml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqcGVu
ZGluZ1JlcXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqbmV3UmVxdWVz
dCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCkBA
IC02NCw2NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBl
cm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbmkKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3ZWFrUmVxdWVzdC0+Y2xpZW50SWRl
bnRpZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3Rz
LnRha2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAgICAgICAgICAgbV9yZXF1ZXN0cy5y
ZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRvIGVycm9yID0gV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3MgfTsKICAgICAgICAgICAg
IHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodGFrZW5SZXF1
ZXN0KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChpZGVu
dGlmaWVyKSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRlbnRpZmllcik7CiAgICAgfSk7CiB9
CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyKQoreworICAgIGlmICghbV9yZWNvZ25pemVyKSB7CisgICAgICAgIG1fcmVjb2duaXplciA9
IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyldKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpIHsKKyAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICBhdXRvIGNsaWVudElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOwor
ICAgICAgICAgICAgaWYgKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byB0eXBlID0gdXBkYXRl
LnR5cGUoKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6RXJyb3IgfHwgdHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkK
KyAgICAgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKwor
ICAgICAgICAgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBtX3JlY29nbml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOworfQorCiB2b2lkIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NI
RUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUo
Y2xpZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1f
cmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0g
Y2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlu
cyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgc3RvcFJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3Rz
LmdldChjbGllbnRJZGVudGlmaWVyKSk7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hF
Q0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShj
bGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIs
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9y
ZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBj
bGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyOjpTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpObyk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMo
Y2xpZW50SWRlbnRpZmllcikpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3Rz
LnRha2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAg
ICBhdXRvIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUo
Y2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
bmQpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6
RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIGlmIChtX3JlcXVl
c3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
KQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byByZXF1
ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAo
cmVxdWVzdCkKLSAgICAgICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLX0KLQotdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RhcnQgY2FwdHVyaW5nIGF1
ZGlvIGFuZCByZWNvZ25pdGlvbi4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c3RvcFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCBmaW5hbGl6aW5nIHJlc3Vs
dHMgYnkgcmVjb2duaXppbmcgY2FwdHVyZWQgYXVkaW8uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJl
Y29nbml0aW9uIGltbWVkaWF0ZWx5IHdpdGhvdXQgZ2VuZXJhdGluZyByZXN1bHRzLgorICAgIGlm
IChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBpZiAobV9y
ZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBj
bGllbnRJZGVudGlmaWVyKQorICAgICAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CisgICAg
fQogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIE9wdGlvbmFs
PFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yLCBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gcmVzdWx0KQpAQCAtMTM2LDYg
KzEzOSwxMSBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaQogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBt
X2lkZW50aWZpZXIpOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBk
YXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNl
aXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7Cit9CisKIElQQzo6Q29ubmVjdGlvbiog
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2Zj
ZWVkYWY1OGZlZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdj
YjBiMzIyOGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJl
cXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5k
bGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpOwogICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpu
dWxsb3B0LCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhPj4gPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhh
c2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1f
b25nb2luZ1JlcXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414679</attachid>
            <date>2020-11-20 08:35:25 -0800</date>
            <delta_ts>2020-11-20 08:50:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120083524.patch</filename>
            <type>text/plain</type>
            <size>68839</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uZWUyYzRiYmVmMDE0Zjg3ZDhiM2RkYTRjNGQxZTI1
OGEwMzBjMTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFVwU291cmNlKTogQ3Jl
YXRlIGEgCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUpOiBQdXNoIGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAg
ICAgcHVsbCBmcm9tIGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJl
YWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
Ojpzb3VyY2VTdGFydGVkKTogSW52b2tlIHN0YXJ0IGNhbGxiYWNrLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCk6IElu
dm9rZSBlcnJvciBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6IEludm9rZSBlcnJvciBjYWxs
YmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmg6IEFkZGVkLiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsIHBy
b3ZpZGVzIAorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2Ugb24gd2hlbiBFTkFCTEUoTUVESUFfU1RSRUFNKSBpcyB0cnVlLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOiBBYm9ydCBvbmdvaW5nIHJlcXVlc3QgaWYg
YW55IGFuZCBzZW5kIGVycm9yIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcjo6c3RhcnQpOiBTdGFydCBoYW5kbGluZyBhIG5ldyByZXF1ZXN0IGFuZCBzZW5kIHN0YXJ0
IGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5h
bCk6IENyZWF0ZSBhIG5ldyBzb3VyY2UgYW5kIHNldCBjYWxsYmFja3Mgb2YgdGhlIHNvdXJjZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOiBTdG9wIG9uZ29pbmcg
cmVxdWVzdC4gVGhpcyBzZW5kcyBlbmQgZXZlbnQgc3luY2hyb25vdXNseSBub3cgYXMgd2UgY2Fu
IHN0b3AKKyAgICAgICAgY2FwdHVyaW5nIGF1ZGlvIGltbWVkaWF0ZWx5LiBBZnRlciB3ZSBpbXBs
ZW1lbnQgc3BlZWNoIHJlY29nbml0aW9uIGJhY2tlbmQsIHRoaXMgY291bGQgYmUgYXN5bmNocm9u
b3VzLiAKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmN1cnJlbnRDbGllbnRJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVk
aWFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOiBNb3ZlIGNvZGUgZm9yIGNy
ZWF0aW5nIENNU2FtcGxlQnVmZmVyUmVmIHRvCisgICAgICAgIE1lZGlhVXRpbGl0aWVzLmgvY3Bw
IHNvIGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBTcGVlY2hSZWNvZ25pdGlvbiBhbmQgVXNlck1lZGlh
LCBhcyBTcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCAKKyAgICAgICAgd2lsbCB0YWtlIENNU2Ft
cGxlQnVmZmVyUmVmIGFzIGlucHV0LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrbGV0LmFkZE1vZHVsZSgpIHNob3VsZCByZWplY3Qg
cHJvbWlzZSB3aXRoIGFuIEFib3J0RXJyb3Igd2hlbiB0aGUgbmV0d29yayBsb2FkIGZhaWxzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0YjQ3MWE0ZWI4MjBmNTIyNzYyYjJhMTgzZjNkYmI3Nzc3YzliMzIuLjgxOTI4
YzQyZmRiMjc2N2U1YWVjMTk4ODIyNDBlNTg4Y2I3NmU0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVl
c3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNp
b24gdG8gV2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUz
ZGEzYzY3ZGUxN2EyNTJiZWYxY2FiMjY4N2Q0MzkzMDZkLi42MmJjNWVlZDU2OTQ0MTU5NGZlMmQw
OGNiYzQ2MDBhMzY1MmVjMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyNCw2ICsxMjQsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCiAK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTNkYWRjMDk5MGU3NGViZWNlMTkxMTA0M2JhNzY5YjE3NzBkNjU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFN0YXJ0Q2FsbGJhY2smJiBz
dGFydENhbGxiYWNrLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIEVycm9yQ2FsbGJhY2sm
JiBlcnJvckNhbGxiYWNrKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9pbXBs
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihXVEZNb3Zl
KHN0YXJ0Q2FsbGJhY2spLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxs
YmFjaykpOworI2Vsc2UKKyAgICBVTlVTRUQoc3RhcnRDYWxsYmFjayk7CisgICAgVU5VU0VEKGRh
dGFDYWxsYmFjayk7CisgICAgVU5VU0VEKGVycm9yQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGQ4ZTI4MjNjZjFjNTc1NWFkOWZiZmRhOWMwOWFlNmQwN2MwYzUxZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFt
ZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZh
dWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKwor
ICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKCk+OworICAgIHVzaW5nIEVy
cm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+OworICAgIHVzaW5nIERhdGFDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3RhcnRDYWxsYmFjayYmLCBEYXRhQ2Fs
bGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsPiBtX2ltcGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YTY4YWVjN2EzYjZmNjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
VHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
ID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTM3N2ExMWI0OTU2ZGRjODlkNDNhY2Fi
MzA3OWQ3MzE1ZDRmYzljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTAsMCAr
MSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK3N0YXRpYyBjb25zdCB2b2lkKiBu
ZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIg
PSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitzdGF0aWMgUmVmUHRy
PExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQ
dHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBsb2dnZXI7Cit9CisjZW5kaWYKKworU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbChTdGFydENhbGxiYWNrJiYgc3RhcnRDYWxsYmFjaywgRGF0YUNhbGxiYWNrJiYg
ZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKKyAgICA6IG1faWRl
bnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQorICAgICwgbV9zdGFydENhbGxiYWNrKFdURk1vdmUoc3RhcnRDYWxsYmFjaykpCisgICAg
LCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX2Vycm9yQ2Fs
bGJhY2soV1RGTW92ZShlcnJvckNhbGxiYWNrKSkKK3sKKyAgICBhdXRvIGRldmljZXMgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDog
ZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAg
Y2FwdHVyZURldmljZSA9IGRldmljZTsKKworICAgICAgICBpZiAoZGV2aWNlLmlzRGVmYXVsdCgp
KSB7CisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKKyAgICAg
ICAgbV9lcnJvckNhbGxiYWNrKCJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBhdWRpbyBjYXB0
dXJlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRVcFNvdXJjZSgqY2FwdHVy
ZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyICwgY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURl
dmljZSwgU3RhcnRDYWxsYmFjayYmIHN0YXJ0Q2FsbGJhY2ssIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCisgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICAsIG1fc3RhcnRDYWxsYmFjayhXVEZNb3ZlKHN0YXJ0Q2FsbGJh
Y2spKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwg
bV9lcnJvckNhbGxiYWNrKFdURk1vdmUoZXJyb3JDYWxsYmFjaykpCit7CisgICAgc2V0VXBTb3Vy
Y2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6c2V0VXBTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkK
K3sKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZSwgeyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZXJyb3JD
YWxsYmFjayhyZXN1bHQuZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1fc291cmNlID0gcmVzdWx0LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIG1fc291cmNlLT5zdGFydCgpOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
aWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVsbExvZ2dlcigpID0gTG9nZ2Vy
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+c2V0RW5hYmxlZCh0aGlzLCBm
YWxzZSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnNldExvZ2dlcigqbnVsbExvZ2dlcigpLCBu
ZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpCit7Cisg
ICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50
KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1
ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKworICAgIGlmICghbV9kYXRhU291cmNlIHx8ICFtX2RhdGFT
b3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSB8fCAqbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0
aW9uKCkgIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9T
YW1wbGVEYXRhU291cmNlOjpjcmVhdGUoZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMiwgKm1f
c291cmNlKTsKKyAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JD
YWxsYmFjaygiVW5hYmxlIHRvIHNldCB0aGUgaW5wdXQgZm9ybWF0IG9mIGRhdGEgc291cmNlIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJj
ZS0+c2V0T3V0cHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9u
KSkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JDYWxsYmFjaygiVW5hYmxlIHRvIHNldCB0aGUgb3V0
cHV0IGZvcm1hdCBvZiBkYXRhIHNvdXJjZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICB9
CisKKyAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRhdGEsIHNhbXBsZUNvdW50
KTsKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bihkZXNjcmlwdGlvbik7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBB
U1NFUlQobV9kYXRhU291cmNlKTsKKyAgICAgICAgYXV0byBkYXRhID0gV2ViQXVkaW9CdWZmZXJM
aXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZUNvdW50
KSB9OworICAgICAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1wbGVzKCpkYXRhLmxpc3QoKSwgc2Ft
cGxlQ291bnQsIHRpbWUudGltZVZhbHVlKCksIDAsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Q29w
eSk7CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3JpcHRpb24s
IHNhbXBsZUNvdW50KTsKKyAgICB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBtX3N0YXJ0Q2FsbGJhY2soKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOworICAgIG1f
ZXJyb3JDYWxsYmFjaygiQ2FwdHVyZSBzb3VyY2Ugc3RvcHBlZCIpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCit7Cisg
ICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQiKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMWQ1YmEwNmNkMzA4OTZlZmJiZDRkNzgyODgyZGMwNmIzODU5
MDhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmll
ci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZv
cm1BdWRpb0RhdGE7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwK
KyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHVibGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKCk+OworICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bChTdGFydENhbGxiYWNrJiYsIERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0YXJ0Q2FsbGJhY2sm
JiwgRGF0YUNhbGxiYWNrJiYsIEVycm9yQ2FsbGJhY2smJik7CisgICAgflNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNldFVwU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJj
ZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CisgICAgU3RhcnRDYWxsYmFjayBtX3N0YXJ0Q2FsbGJhY2s7CisgICAgRGF0YUNhbGxiYWNr
IG1fZGF0YUNhbGxiYWNrOworICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOworICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWZQdHI8QXVkaW9T
YW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhOTRlZGM4NDA2MDY5ZDkwNmJmNzU4MGFm
NDJjOGEwMTI2ZjI5NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisK
KyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRp
b24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hS
ZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVsZWdhdGVD
YWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVy
OjpyZXNldCgpCit7CisgICAgaWYgKG1fY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBpZiAo
bV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICAgICAgYXV0
byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OworICAgICAgICBt
X2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKCpt
X2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0g
aWRlbnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKGlkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3RhcnRDYWxsYmFj
ayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXSgpIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBB
U1NFUlQobV9jbGllbnRJZGVudGlmaWVyICYmIG1fY2xpZW50SWRlbnRpZmllci52YWx1ZSgpID09
IGlkZW50aWZpZXIpOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvU3RhcnQpKTsKKyAgICB9OworICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXJdKGNvbnN0IFdURjo6TWVkaWFU
aW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVCht
X2NsaWVudElkZW50aWZpZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRp
Zmllcik7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgYXV0byBidWZmZXIgPSBjcmVh
dGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgUEFMOjp0b0NNVGltZSh0aW1l
KSwgc2FtcGxlQ291bnQpOworICAgICAgICBVTlVTRURfUEFSQU0oYnVmZmVyKTsKKyNlbmRpZgor
ICAgIH07CisgICAgYXV0byBlcnJvckNhbGxiYWNrID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyksIGlkZW50aWZpZXJdKFN0cmluZyBlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBBU1NFUlQobV9j
bGllbnRJZGVudGlmaWVyICYmIG1fY2xpZW50SWRlbnRpZmllci52YWx1ZSgpID09IGlkZW50aWZp
ZXIpOworICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIFdURk1vdmUoZXJyb3JNZXNzYWdl
KSB9OworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGlkZW50aWZpZXIsIGVycm9yKSk7CisgICAgICAgIG1fc291cmNlID0gbnVs
bHB0cjsKKyAgICB9OworCisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZT4oV1RGTW92ZShzdGFydENhbGxiYWNrKSwgV1RGTW92ZShkYXRhQ2Fs
bGJhY2spLCBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
emVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3RvcEludGVybmFsKCk7CisKKyAgICBpZiAoc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3Vs
dCA9PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpIHsKKyAgICAgICAgLy8gVE9ETzog
Z2VuZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBzcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCBpcyBp
bXBsZW1lbnRlZC4KKyAgICAgICAgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4g
cmVzdWx0RGF0YXM7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2NsaWVudElkZW50aWZpZXIsIHJlc3VsdERhdGFzKSk7
CisgICAgfQorCisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQpKTsKKyAgICBtX2NsaWVudElkZW50aWZpZXIgPSBXVEY6Om51bGxvcHQ7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcEludGVybmFsKCkKK3sKKyAgICBpZiAobV9zb3VyY2Up
IHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJh
Y2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSk7CisgICAgfQorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUxNTYzYjE4YzcxNjI3MjljOTZmMWNkNGZi
NWZmMTY0MTcxODRmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
aCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3Bl
ZWNoUmVjb2duaXplcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlJik+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJl
Y29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNo
UmVjb2duaXplcigpID0gZGVmYXVsdDsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQo
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgZW51bSBj
bGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVyOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNl
dCgpOworICAgIHZvaWQgc3RhcnRJbnRlcm5hbChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOworCisgICAgT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJ
ZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNTk0NTgx
YjcyMDkxMmMwYjk1NTNiYjQxMGQ1MWQ4OGQwYTgxNTZjLi44YWEzYWM0ZjY5MDJkNjIyMDRiNWM3
YjI2NDhmMmIwZjQ1NDUwYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTk5LDYgKzE5OSw5IEBAIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
CitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAor
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdp
bmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5j
cHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKaW5kZXggMmIzM2M0YmNlNzRkZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4u
MTk5ZDg5ZDYxOTkwM2ZiMjVmMTI2MDI1ZDMyZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC0yMzgsNiArMjM4LDcgQEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JD
b2NvYS5tbQogcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2Ev
TG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5
Q29jb2EubW0KK3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29j
b2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVu
dGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29j
b2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3NWE1MjJjMmFiZWIwZDE2ZDVjNjg4NmM3MTcwNjU3MjQ5MjBjOTRlLi5lN2U1
YjkyODQxYzkzOWE1NzYwZjRhYjM0NzRlNzMxMTQ0MDM3MTE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjAsOCArMTIwLDgg
QEAKIAkJMDczNzk0RkUxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggKi87IH07CiAJCTA3MzhFNUVDMjQ5OTgz
OTAwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEy
NDk5NjhBRDAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNr
ZXIubW0gKi87IH07CiAJCTA3M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1Nh
bXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
QTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDczQjg3NjcxRTQzODVBQzAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oICovOyB9OwotCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLmggKi87IH07CisJCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBs
ZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzNCODc2
OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMw
RUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRm
b3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4
MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgw
MEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNr
LmggKi87IH07CkBAIC0yNzg3LDYgKzI3ODcsOCBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFs
dWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJD
NDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLzsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAw
QjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBC
MzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgx
QjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5
NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yODQ4LDYgKzI4NTAsOSBAQAogCQk5M0YxRDVCQjEy
RDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdl
YkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMUQ1QzExMkQ1MzM1NjAwODMyQkVDIC8qIEpT
V2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5o
ICovOyB9OwogCQk5M0YyQ0M5MzI0MjdGQjlDMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjJDQzkxMjQy
N0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRjZCODIxMjU2N0EwRDgwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODgg
LyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzRjZCODIyMjU2N0E2NTYw
MEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZCODFCMjU2NzlGNkYwMEEwODQ4
OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYg
LyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRjZGMUVCMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVu
dC5oICovOyB9OwogCQk5M0Y5MjU0MzBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91
cHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjky
NTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRpb0J1dHRvbkdyb3Vwcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1
NDA2NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsK
QEAgLTExNDI5LDYgKzExNDM0LDEwIEBACiAJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBF
dmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0
ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRl
cmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0
MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMw
RDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBE
MjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1MTUsNiArMTE1MjQsMTEgQEAK
IAkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMg
LyogSlNXZWJHTExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViR0xMb3NlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Yy
Q0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2hhcmFjdGVyUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNGNkI4MUIyNTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNG
NkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2Qjgx
RDI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNG
NkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2Qjgy
MDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjZGMUVBMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjZGMUVCMTI3RjcwQjEwMDU1Q0IwNiAvKiBX
ZWJHTENvbnRleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
TENvbnRleHRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQzEy
N0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIzNTcyLDYgKzIzNTg2LDEzIEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2Eg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJKTsKKwkJCXBh
dGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk0NkQzNzI3
MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMjQ0MDksNiArMjQ0MzAsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVG
RjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkw
MEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJC
MjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkz
OUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5
QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5
MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlB
MTlEOTM0OTFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIu
aCAqLywKIAkJCQlBMTlEOTM0ODFBQTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0yNTYwMSw2ICsyNTYyNCw3IEBACiAJCUFBMkE1QUI3MTZB
NDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJ
CQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5p
ZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5
bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRv
d1NwZWVjaFN5bnRoZXNpcy5oICovLApAQCAtMjU2MTAsNiArMjU2MzQsMTEgQEAKIAkJCQk5MzQ5
NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAg
Ki8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBCQjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8sCisJCQkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgKi8sCisJCQkJOTNGNkI4MUIy
NTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovLAor
CQkJCTkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwICovLAorCQkJCTkzRjZCODFDMjU2
NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8s
CiAJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oICovLAogCQkJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywKIAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAt
MjU2MzQsNiArMjU2NjMsOCBAQAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBE
MjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMw
RDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVB
QkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJG
MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzM1MTksNiAr
MzM1NTAsNyBAQAogCQkJCTkzMkNDMEI3MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29u
c3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAv
KiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2
Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERF
RjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICsz
NDQ0Miw5IEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgyMTI1NjdBMEQ4MDBBMDg0ODggLyogU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTNGNkI4MUYyNTY3QTA4QzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTM0NDI0LDYgKzM0NDU5LDcgQEAKIAkJCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1
Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBT
cGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5
NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIy
MzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3ludGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFV
dGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjNGNiODg0M2UzNDJkZDg3ZTc1ZDVlNWVkM2I3MjQ2
Y2NhMmQzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAi
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5o
IgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVk
aWFTb2Z0TGluay5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQ
QUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1h
dERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQor
eworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNj
cmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwor
ICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgbnVs
bHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3Jl
YXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Cit9
CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIo
Y29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworICAg
IGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7
CisgICAgaWYgKCFmb3JtYXQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQ01TYW1w
bGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01B
dWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgbnVsbHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwg
c2FtcGxlQ291bnQsIHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGlmIChlcnJv
cikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIHdpdGggcGFj
a2V0IGRlc2NyaXB0aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwor
CisgICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJM
aXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOworICAgIGlm
IChlcnJvcikgeworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIGZy
b20gYXVkaW8gYnVmZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYnVmZmVyOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRp
YVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YjY3YzY2Nzg1ZDQ3ZDI3MDJiNWM2NDllZjI4NWU0YjBhNWUxMjY2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFV
dGlsaXRpZXMuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDxDb3JlTWVkaWEvQ01UaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZv
cm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIq
IENNU2FtcGxlQnVmZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworUmV0YWluUHRy
PENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBDTVRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQppbmRleCBhY2I0OTQ0MzA4ZDFjYTQzZjlmNjk5YzUx
MDQ2MDA4ZjNkNzM1NTA3Li5iZGQ3MGZkOWNhYWUyZGVjY2NiMjQwYmMyMWIyNWE0MmZjNjM3NjVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNv
Y29hLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUu
aCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgiCiAjaW5jbHVkZSAiV2ViQXVk
aW9CdWZmZXJMaXN0LmgiCiAjaW5jbHVkZSA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXIuaD4K
QEAgLTQ0Myw0MCArNDQ0LDYgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBw
ZW5kVmlkZW9TYW1wbGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgbV92aWRl
b0NvbXByZXNzb3ItPmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkp
OwogfQogCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBj
cmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uKQotewotICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNv
bnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVz
Y3JpcHRpb24oKS5kZXNjcmlwdGlvbik7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3Jt
YXQgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgTlVMTCwgMCwg
TlVMTCwgTlVMTCwgJmZvcm1hdCk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKLX0K
LQotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVD
b3VudCkKLXsKLSAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24o
ZGVzY3JpcHRpb24pOwotICAgIGlmICghZm9ybWF0KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0
byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
KGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxMLCBmb3JtYXQuZ2V0
KCksIHNhbXBsZUNvdW50LCB0aW1lLCBOVUxMLCAmc2FtcGxlQnVmZmVyKTsKLSAgICBpZiAoZXJy
b3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlciBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQYWNrZXREZXNjcmlw
dGlvbnMgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIH0KLSAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKLQotICAgIGVy
cm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZm
ZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRv
d25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKLSAgICBpZiAoZXJyb3Ip
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJM
aXN0IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6
Ok1lZGlhVGltZSYsIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBpZiAoYXV0byBzYW1wbGVC
dWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJy
ZW50QXVkaW9TYW1wbGVUaW1lLCBzYW1wbGVDb3VudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXggODU2NTE5ZmI2ODcx
M2VkZDlhY2NmMmVlMWMyNDc3NGY5NzNmOTkxNi4uZDMxMGE2NTBhYWY2N2Q3NjUyMGMzMzUxZjIz
ZjEyNmIxMzZjMTc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtNDYsMTIgKzQ2LDExIEBAIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYm
IGNvbm5lY3RpCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIsIFN0cmluZyYmIGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywg
dWludDY0X3QgbWF4QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4p
CiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBBU1NFUlQoIW1f
cGVuZGluZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBBU1NFUlQo
IW1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBBU1NF
UlQoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwogICAgIGF1dG8gcmVx
dWVzdEluZm8gPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsgY2xpZW50
SWRlbnRpZmllciwgV1RGTW92ZShsYW5nKSwgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1h
eEFsdGVybmF0aXZlcywgV1RGTW92ZShvcmlnaW4pIH07Ci0gICAgYXV0byYgcGVuZGluZ1JlcXVl
c3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSku
aXRlcmF0b3ItPnZhbHVlOworICAgIGF1dG8mIG5ld1JlcXVlc3QgPSBtX3JlcXVlc3RzLmFkZChj
bGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICByZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoKnBlbmRpbmdSZXF1ZXN0KTsKKyAgICByZXF1ZXN0UGVy
bWlzc2lvbkZvclJlcXVlc3QoKm5ld1JlcXVlc3QpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNjQsNjYgKzYzLDcwIEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBpZGVudGlm
aWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKTsKLSAgICAgICAgYXV0byB0YWtl
blJlcXVlc3QgPSBtX3BlbmRpbmdSZXF1ZXN0cy50YWtlKGlkZW50aWZpZXIpOwogICAgICAgICBp
ZiAoZGVjaXNpb24gPT0gU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkp
IHsKKyAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgICAgICAg
ICAgYXV0byBlcnJvciA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBlcm1pc3Npb24gY2hl
Y2sgZmFpbGVkIl9zIH07CiAgICAgICAgICAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1fb25nb2luZ1JlcXVlc3RzLmFkZChp
ZGVudGlmaWVyLCBXVEZNb3ZlKHRha2VuUmVxdWVzdCkpOwotICAgICAgICBoYW5kbGVSZXF1ZXN0
KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoaWRlbnRpZmllcikpOworICAgICAgICBoYW5kbGVSZXF1
ZXN0KGlkZW50aWZpZXIpOwogICAgIH0pOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fcmVjb2duaXpl
cikgeworICAgICAgICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml6ZXI+
KFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSYgdXBkYXRlKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0g
dXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGlmICghbV9yZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7CisgICAgICAgICAgICBpZiAodHlw
ZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIHx8IHR5cGUgPT0gU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAgICAgICAgICAgbV9yZXF1ZXN0cy5y
ZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRl
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJ
ZGVudGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElk
ZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBp
ZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAg
IHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5j
dXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAg
bV9yZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NF
UlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIHN0
b3BSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xpZW50SWRlbnRpZmllcikpOworICAg
IGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVw
ZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlm
IChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAg
c2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1
cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBt
X3JlY29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U2hvdWxkR2VuZXJh
dGVGaW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJU
KG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBhdXRv
IHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAg
IGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1cGRhdGUgPSBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9p
ZGVudGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikp
CisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElkZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRha2Uo
Y2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3QpCi0gICAgICAgIGFib3J0UmVxdWVz
dCgqcmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJl
cXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAg
IC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24uCi19Ci0KLXZv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmlu
ZyBhdWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJlY29nbml6aW5nIGNhcHR1cmVkIGF1
ZGlvLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86
IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlvbiBpbW1lZGlhdGVseSB3aXRob3V0
IGdlbmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1
cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgICAg
IG1fcmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YT4+IHJlc3VsdCkKQEAgLTEzMyw3ICsxMzYsMTIgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGkKICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsICplcnJvcik7CiAgICAgaWYgKHR5cGUgPT0g
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQpCiAgICAgICAgIHVw
ZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoY2xp
ZW50SWRlbnRpZmllciwgKnJlc3VsdCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmll
cik7CisgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzZW5kVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
JiB1cGRhdGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSkpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24q
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aAppbmRleCAzNjNjYTIwZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi5hN2Y3NmQz
OGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNv
Z25pemVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU4LDEwICs1OSw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQ
ZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsK
LSAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7Ci0gICAgdm9pZCBzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QmKTsKLSAgICB2b2lkIGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QmKTsKKyAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVXBkYXRlKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvcj4gPSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBz
ZW5kVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CiAKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtNzIsOSArNzIsOSBA
QCBwcml2YXRlOgogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAg
IFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFz
aE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9w
ZW5kaW5nUmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsK
ICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNr
ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVj
b2duaXplcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRmYjQ4ZTE1ZjU3
NDU1NTliYTZjMWFiZmNkMjM2NjE0NDAzNGZlZjQuLjhjZTczOGI0N2JmZjRhMmQ5OGI3ZjZlODk1
ZGUyNjg1ZGMwYzM5NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMS0yMCAgU2lodWkg
TGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2Fw
dHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3Rv
cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVj
b2duaXRpb24uaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBvcnQgd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRz
IHRlc3RzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNo
cmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1z
dG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmE3NDYxZGM3Y2MwMTRkYjYyZDY1YzZiMjBi
NmIwZGEyNTZlYTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTYgQEAKK1ZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0bHkgd2hl
biBzdGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24o
KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0KCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitSZWNlaXZlZCBzdGFydCBldmVudAorUmVjZWl2ZWQgYXVk
aW9zdGFydCBldmVudAorUEFTUyByZWNvZ25pdGlvbi5zdG9wKCkgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitSZWNlaXZlZCBhdWRpb2VuZCBldmVudAorUmVjZWl2ZWQgZW5kIGV2ZW50CitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10
aGVuLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
cmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ1ZDJiMDc4YzZlMjE5NGM1
OWU3ODlkMzVhNDY3OGIxNGRmY2VjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKQEAg
LTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3aGVuIHN0
YXJ0IGFuZCBzdG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LiIpOworCitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3co
InJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNvZ25pdGlvbi5v
bnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIHN0YXJ0IGV2ZW50Iik7
Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9zdGFydCA9IChldmVudCkgPT4geworICAgIGRlYnVn
KCJSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50Iik7CisKKyAgICBzaG91bGROb3RUaHJvdygicmVj
b2duaXRpb24uc3RvcCgpIik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9lbmQgPSAoZXZlbnQp
ID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQiKTsKK30KKworcmVjb2du
aXRpb24ub25lbmQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgZW5kIGV2ZW50
Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0
aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIyMTBjOTRhMjRjYzk4NWYwZjYyNjA1M2RkMTI0NDMxYjM1YzNk
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAor
VmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24gYWJvcnRzIG9uZ29pbmcg
b25lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNvZ25pdGlvbiA9
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
cmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc2Vjb25k
UmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHJlY2VpdmVkU3RhcnQgaXMgdHJ1ZQorUEFTUyBldmVudC5lcnJvciBpcyAi
YWJvcnRlZCIKK1BBU1MgZXZlbnQubWVzc2FnZSBpcyAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0
ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNv
bmQtcmVjb2duaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFlNzQzZmYzZjYwOTEw
YTFkMTQ0MGYxNDRkNmJkOTVhMWZjNzM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwKQEAg
LTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24gYWJvcnRz
IG9uZ29pbmcgb25lLiIpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNw
ZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNlaXZlZFN0YXJ0ID0gZmFsc2U7CityZWNvZ25pdGlv
bi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgcmVjZWl2ZWRTdGFydCA9IHRydWU7Cit9CisK
K3JlY29nbml0aW9uLm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKKyAgICBzaG91bGRCZVRydWUoInJl
Y2VpdmVkU3RhcnQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmVycm9yIiwg
ImFib3J0ZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm1lc3NhZ2UiLCAi
QW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
CitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworc2hvdWxkTm90VGhyb3co
InNlY29uZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CitzaG91bGRO
b3RUaHJvdygic2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="431640"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414681</attachid>
            <date>2020-11-20 08:38:19 -0800</date>
            <delta_ts>2020-11-20 08:45:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120083818.patch</filename>
            <type>text/plain</type>
            <size>68853</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uZWUyYzRiYmVmMDE0Zjg3ZDhiM2RkYTRjNGQxZTI1
OGEwMzBjMTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFVwU291cmNlKTogQ3Jl
YXRlIGEgCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUpOiBQdXNoIGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAg
ICAgcHVsbCBmcm9tIGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJl
YWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
Ojpzb3VyY2VTdGFydGVkKTogSW52b2tlIHN0YXJ0IGNhbGxiYWNrLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCk6IElu
dm9rZSBlcnJvciBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6IEludm9rZSBlcnJvciBjYWxs
YmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmg6IEFkZGVkLiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsIHBy
b3ZpZGVzIAorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2Ugb24gd2hlbiBFTkFCTEUoTUVESUFfU1RSRUFNKSBpcyB0cnVlLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOiBBYm9ydCBvbmdvaW5nIHJlcXVlc3QgaWYg
YW55IGFuZCBzZW5kIGVycm9yIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcjo6c3RhcnQpOiBTdGFydCBoYW5kbGluZyBhIG5ldyByZXF1ZXN0IGFuZCBzZW5kIHN0YXJ0
IGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5h
bCk6IENyZWF0ZSBhIG5ldyBzb3VyY2UgYW5kIHNldCBjYWxsYmFja3Mgb2YgdGhlIHNvdXJjZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOiBTdG9wIG9uZ29pbmcg
cmVxdWVzdC4gVGhpcyBzZW5kcyBlbmQgZXZlbnQgc3luY2hyb25vdXNseSBub3cgYXMgd2UgY2Fu
IHN0b3AKKyAgICAgICAgY2FwdHVyaW5nIGF1ZGlvIGltbWVkaWF0ZWx5LiBBZnRlciB3ZSBpbXBs
ZW1lbnQgc3BlZWNoIHJlY29nbml0aW9uIGJhY2tlbmQsIHRoaXMgY291bGQgYmUgYXN5bmNocm9u
b3VzLiAKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmN1cnJlbnRDbGllbnRJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVk
aWFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOiBNb3ZlIGNvZGUgZm9yIGNy
ZWF0aW5nIENNU2FtcGxlQnVmZmVyUmVmIHRvCisgICAgICAgIE1lZGlhVXRpbGl0aWVzLmgvY3Bw
IHNvIGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBTcGVlY2hSZWNvZ25pdGlvbiBhbmQgVXNlck1lZGlh
LCBhcyBTcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCAKKyAgICAgICAgd2lsbCB0YWtlIENNU2Ft
cGxlQnVmZmVyUmVmIGFzIGlucHV0LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrbGV0LmFkZE1vZHVsZSgpIHNob3VsZCByZWplY3Qg
cHJvbWlzZSB3aXRoIGFuIEFib3J0RXJyb3Igd2hlbiB0aGUgbmV0d29yayBsb2FkIGZhaWxzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0YjQ3MWE0ZWI4MjBmNTIyNzYyYjJhMTgzZjNkYmI3Nzc3YzliMzIuLjgxOTI4
YzQyZmRiMjc2N2U1YWVjMTk4ODIyNDBlNTg4Y2I3NmU0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVl
c3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNp
b24gdG8gV2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUz
ZGEzYzY3ZGUxN2EyNTJiZWYxY2FiMjY4N2Q0MzkzMDZkLi42MmJjNWVlZDU2OTQ0MTU5NGZlMmQw
OGNiYzQ2MDBhMzY1MmVjMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyNCw2ICsxMjQsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCiAK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTNkYWRjMDk5MGU3NGViZWNlMTkxMTA0M2JhNzY5YjE3NzBkNjU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFN0YXJ0Q2FsbGJhY2smJiBz
dGFydENhbGxiYWNrLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIEVycm9yQ2FsbGJhY2sm
JiBlcnJvckNhbGxiYWNrKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9pbXBs
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihXVEZNb3Zl
KHN0YXJ0Q2FsbGJhY2spLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxs
YmFjaykpOworI2Vsc2UKKyAgICBVTlVTRUQoc3RhcnRDYWxsYmFjayk7CisgICAgVU5VU0VEKGRh
dGFDYWxsYmFjayk7CisgICAgVU5VU0VEKGVycm9yQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGQ4ZTI4MjNjZjFjNTc1NWFkOWZiZmRhOWMwOWFlNmQwN2MwYzUxZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFt
ZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZh
dWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKwor
ICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKCk+OworICAgIHVzaW5nIEVy
cm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+OworICAgIHVzaW5nIERhdGFDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3RhcnRDYWxsYmFjayYmLCBEYXRhQ2Fs
bGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsPiBtX2ltcGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YTY4YWVjN2EzYjZmNjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
VHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
ID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTM3N2ExMWI0OTU2ZGRjODlkNDNhY2Fi
MzA3OWQ3MzE1ZDRmYzljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTAsMCAr
MSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK3N0YXRpYyBjb25zdCB2b2lkKiBu
ZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIg
PSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitzdGF0aWMgUmVmUHRy
PExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQ
dHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBsb2dnZXI7Cit9CisjZW5kaWYKKworU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbChTdGFydENhbGxiYWNrJiYgc3RhcnRDYWxsYmFjaywgRGF0YUNhbGxiYWNrJiYg
ZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKKyAgICA6IG1faWRl
bnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQorICAgICwgbV9zdGFydENhbGxiYWNrKFdURk1vdmUoc3RhcnRDYWxsYmFjaykpCisgICAg
LCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX2Vycm9yQ2Fs
bGJhY2soV1RGTW92ZShlcnJvckNhbGxiYWNrKSkKK3sKKyAgICBhdXRvIGRldmljZXMgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDog
ZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAg
Y2FwdHVyZURldmljZSA9IGRldmljZTsKKworICAgICAgICBpZiAoZGV2aWNlLmlzRGVmYXVsdCgp
KSB7CisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKKyAgICAg
ICAgbV9lcnJvckNhbGxiYWNrKCJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBhdWRpbyBjYXB0
dXJlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRVcFNvdXJjZSgqY2FwdHVy
ZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyICwgY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURl
dmljZSwgU3RhcnRDYWxsYmFjayYmIHN0YXJ0Q2FsbGJhY2ssIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCisgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICAsIG1fc3RhcnRDYWxsYmFjayhXVEZNb3ZlKHN0YXJ0Q2FsbGJh
Y2spKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwg
bV9lcnJvckNhbGxiYWNrKFdURk1vdmUoZXJyb3JDYWxsYmFjaykpCit7CisgICAgc2V0VXBTb3Vy
Y2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6c2V0VXBTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkK
K3sKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZSwgeyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZXJyb3JD
YWxsYmFjayhyZXN1bHQuZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1fc291cmNlID0gcmVzdWx0LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIG1fc291cmNlLT5zdGFydCgpOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
aWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVsbExvZ2dlcigpID0gTG9nZ2Vy
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+c2V0RW5hYmxlZCh0aGlzLCBm
YWxzZSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnNldExvZ2dlcigqbnVsbExvZ2dlcigpLCBu
ZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpCit7Cisg
ICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50
KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1
ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKworICAgIGlmICghbV9kYXRhU291cmNlIHx8ICFtX2RhdGFT
b3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSB8fCAqbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0
aW9uKCkgIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9T
YW1wbGVEYXRhU291cmNlOjpjcmVhdGUoZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMiwgKm1f
c291cmNlKTsKKyAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JD
YWxsYmFjaygiVW5hYmxlIHRvIHNldCB0aGUgaW5wdXQgZm9ybWF0IG9mIGRhdGEgc291cmNlIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJj
ZS0+c2V0T3V0cHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9u
KSkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JDYWxsYmFjaygiVW5hYmxlIHRvIHNldCB0aGUgb3V0
cHV0IGZvcm1hdCBvZiBkYXRhIHNvdXJjZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICB9
CisKKyAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRhdGEsIHNhbXBsZUNvdW50
KTsKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bihkZXNjcmlwdGlvbik7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBB
U1NFUlQobV9kYXRhU291cmNlKTsKKyAgICAgICAgYXV0byBkYXRhID0gV2ViQXVkaW9CdWZmZXJM
aXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZUNvdW50
KSB9OworICAgICAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1wbGVzKCpkYXRhLmxpc3QoKSwgc2Ft
cGxlQ291bnQsIHRpbWUudGltZVZhbHVlKCksIDAsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Q29w
eSk7CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3JpcHRpb24s
IHNhbXBsZUNvdW50KTsKKyAgICB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBtX3N0YXJ0Q2FsbGJhY2soKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOworICAgIG1f
ZXJyb3JDYWxsYmFjaygiQ2FwdHVyZSBzb3VyY2Ugc3RvcHBlZCIpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCit7Cisg
ICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQiKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMWQ1YmEwNmNkMzA4OTZlZmJiZDRkNzgyODgyZGMwNmIzODU5
MDhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmll
ci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZv
cm1BdWRpb0RhdGE7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwK
KyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHVibGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKCk+OworICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bChTdGFydENhbGxiYWNrJiYsIERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0YXJ0Q2FsbGJhY2sm
JiwgRGF0YUNhbGxiYWNrJiYsIEVycm9yQ2FsbGJhY2smJik7CisgICAgflNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNldFVwU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJj
ZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CisgICAgU3RhcnRDYWxsYmFjayBtX3N0YXJ0Q2FsbGJhY2s7CisgICAgRGF0YUNhbGxiYWNr
IG1fZGF0YUNhbGxiYWNrOworICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOworICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWZQdHI8QXVkaW9T
YW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxYzI5OGE4ZDhkY2E2MzBmMzhmMTg0MGE0
ZjgxNmIxZjVjNzhmYzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisK
KyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRp
b24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hS
ZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVsZWdhdGVD
YWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVy
OjpyZXNldCgpCit7CisgICAgaWYgKG1fY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBpZiAo
bV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICAgICAgYXV0
byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OworICAgICAgICBt
X2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKCpt
X2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0g
aWRlbnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKGlkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3RhcnRDYWxsYmFj
ayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXSgpIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBB
U1NFUlQobV9jbGllbnRJZGVudGlmaWVyICYmIG1fY2xpZW50SWRlbnRpZmllci52YWx1ZSgpID09
IGlkZW50aWZpZXIpOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvU3RhcnQpKTsKKyAgICB9OworICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXJdKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0
aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVCh3ZWFrVGhp
cy0+bV9jbGllbnRJZGVudGlmaWVyICYmIHdlYWtUaGlzLT5tX2NsaWVudElkZW50aWZpZXIudmFs
dWUoKSA9PSBpZGVudGlmaWVyKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBhdXRv
IGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCBQQUw6
OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgICAgIFVOVVNFRF9QQVJBTShidWZm
ZXIpOworI2VuZGlmCisgICAgfTsKKyAgICBhdXRvIGVycm9yQ2FsbGJhY2sgPSBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllcl0oU3RyaW5nIGVycm9yTWVzc2Fn
ZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZpZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVl
KCkgPT0gaWRlbnRpZmllcik7CisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgV1RGTW92
ZShlcnJvck1lc3NhZ2UpIH07CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoaWRlbnRpZmllciwgZXJyb3IpKTsKKyAgICAgICAg
bV9zb3VyY2UgPSBudWxscHRyOworICAgIH07CisKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPihXVEZNb3ZlKHN0YXJ0Q2FsbGJhY2spLCBX
VEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjaykpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRH
ZW5lcmF0ZUZpbmFsUmVzdWx0KQoreworICAgIGlmICghbV9jbGllbnRJZGVudGlmaWVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBzdG9wSW50ZXJuYWwoKTsKKworICAgIGlmIChzaG91bGRHZW5l
cmF0ZUZpbmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6OlllcykgeworICAg
ICAgICAvLyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVjaCByZWNvZ25pdGlv
biBiYWNrZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRp
b25SZXN1bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50SWRlbnRpZmllciwg
cmVzdWx0RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVs
bG9wdDsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwoKQoreworICAg
IGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIG1f
ZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVu
dElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQpKTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTE1NjNiMThjNzE2
MjcyOWM5NmYxY2Q0ZmI1ZmYxNjQxNzE4NGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQo
Y29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBkZWZhdWx0OworCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
KTsKKyAgICBlbnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQg
PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAgT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKworcHJpdmF0ZToK
KyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCBzdGFydEludGVybmFsKFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcEludGVybmFsKCk7
CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyPiBtX2NsaWVudElkZW50aWZpZXI7CisgICAgRGVsZWdhdGVDYWxsYmFjayBtX2RlbGVnYXRl
Q2FsbGJhY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZT4gbV9zb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDI1OTQ1ODFiNzIwOTEyYzBiOTU1M2JiNDEwZDUxZDg4ZDBhODE1NmMuLjhhYTNhYzRm
NjkwMmQ2MjIwNGI1YzdiMjY0OGYyYjBmNDU0NTBhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xOTks
NiArMTk5LDkgQEAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmNwcAog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAogTW9kdWxl
cy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4YmEzY2IyYTQ0
OTMxNTQ2YjU5YTYwLi4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4NjA2MTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0Zm9ybS9jb2Nv
YS9GaWxlTW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCiBw
bGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL01J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3Bw
CiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQogcGxhdGZv
cm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29h
L1Bhc3RlYm9hcmRDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1YTUyMmMyYWJlYjBkMTZkNWM2ODg2YzcxNzA2NTcy
NDkyMGM5NGUuLmU3ZTViOTI4NDFjOTM5YTU3NjBmNGFiMzQ3NGU3MzExNDQwMzcxMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEyMCw4ICsxMjAsOCBAQAogCQkwNzM3OTRGRTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZp
ZXJzTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDczNzk0RjgxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLzsgfTsKIAkJ
MDczOEU1RUMyNDk5ODM5MDAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJU
YXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzM4RTVFQTI0OTk2OEFEMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlclRhcmdldFBpY2tlci5tbSAqLzsgfTsKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8q
IFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzNC
ODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IH07Ci0JCTA3M0I4NzY5MUU0Mzg1
QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBB
dWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLzsgfTsKKwkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxl
QnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY1
MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzRFODJCQjE4QTY5RjBFMDA3
RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1U
aW1lUmFuZ2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc1MDMzQTgyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0
cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1
MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTM4NjAz
MTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBD
YWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKQEAgLTI3ODcsNiArMjc4Nyw4IEBACiAJCTkzOTNFNjAw
MTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyog
Q1NTSW1hZ2VTZXRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdF
M0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5MzlD
MEQyNzI1NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFC
IC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMw
RDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1
NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4NDgsNiArMjg1MCw5IEBA
CiAJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEyRDUzMkM0
MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YxRDVDMTEyRDUzMzU2
MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJH
TExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjJDQzkzMjQyN0ZCOUMwMDU4NTFEOCAvKiBDaGFy
YWN0ZXJSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MUYyNTY3QTA4
QzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZCODFDMjU2NzlGNzAw
MEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MjEyNTY3QTBE
ODAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZCODIwMjU2
N0EwQ0MwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNG
NkI4MjIyNTY3QTY1NjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MUIy
NTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjZGMUVFMTI3
RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkYxRUIxMjdGNzBCMTAwNTVDQjA2IC8qIFdl
YkdMQ29udGV4dEV2ZW50LmggKi87IH07CiAJCTkzRjkyNTQzMEY3RUY1QjgwMDdFMzdDOSAvKiBS
YWRpb0J1dHRvbkdyb3Vwcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGOTI1NDEwRjdFRjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGOUI2
RTEwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29t
bWVudC5oICovOyB9OwpAQCAtMTE0MjksNiArMTE0MzQsMTAgQEAKIAkJOTM5ODg1QzIwOEI3RTNE
MTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJDNDAwQzU0
NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
OUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjkyNTY0RTdGMjAwQjMy
MTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFC
MjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTUxNSw2
ICsxMTUyNCwxMSBAQAogCQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VD
b250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xM
b3NlQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjFENUJGMTJE
NTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNXZWJHTExvc2VDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJSYW5nZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFyYWN0ZXJSYW5nZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRjZCODFEMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Y2QjgxRTI1Njc5RjcxMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMQ29udGV4
dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUIxMjdGNzBC
MTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRjZGMUVDMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjM1NzIsNiArMjM1ODYsMTMgQEAKIAkJCXBhdGggPSBjb2NvYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzRjZCODBFMjU2NkVERTEwMEEw
ODQ4OCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNDQwOSw2ICsyNDQzMCw4IEBACiAJCQkJ
QTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMDZF
ODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICov
LAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJpbmdzQ29jb2Eu
bW0gKi8sCisJCQkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmNw
cCAqLywKKwkJCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAq
LywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNBRTkgLyogTUlNRVR5cGVSZWdpc3RyeUNvY29h
Lm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5MzQ4MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAqLywKQEAgLTI1NjAxLDYgKzI1NjI0LDcgQEAK
IAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8q
IGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3Bl
ZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9N
V2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVB
MjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCkBAIC0yNTYxMCw2ICsyNTYzNCwx
MSBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0Y2QjgxRTI1
Njc5RjcxMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLywK
KwkJCQk5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlLmggKi8sCisJCQkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Y2QjgxRDI1Njc5Rjcw
MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8sCisJ
CQkJOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuaCAqLywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJCTkzQTA0ODIwMjU0
OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyLmggKi8sCkBAIC0yNTYzNCw2ICsyNTY2Myw4IEBACiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJOTNENkI3
NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKIAkJ
CQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAq
LywKKwkJCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5jcHAg
Ki8sCisJCQkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAq
LywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAq
LywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8s
CiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8s
CkBAIC0zMzUxOSw2ICszMzU1MCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8q
IE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZC
NjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBN
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZD
MTgwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4gSGVhZGVycyAqLywK
QEAgLTM0NDEwLDYgKzM0NDQyLDkgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyog
U3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUw
Q0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODIxMjU2N0EwRDgw
MEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5M0Y2QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkMyNTQ5
NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzQ0MjQsNiArMzQ0NTksNyBAQAogCQkJCTkzQTA0ODI5MjU0OTU1MTEw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMjcyNTY0RTQ3
RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1
QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50
aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGM0Y2I4ODQzZTM0MmRkODdl
NzVkNWU1ZWQzYjcyNDZjY2EyZDM3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgi
CisKKyNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVk
aW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW5jbHVkZSA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNp
bmcgbmFtZXNwYWNlIFBBTDsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNy
ZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24pCit7CisgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29u
c3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNj
cmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dCA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCAw
LCBudWxscHRyLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGFkb3B0
Q0YoZm9ybWF0KTsKK30KKworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxl
Q291bnQpCit7CisgICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9u
KGRlc2NyaXB0aW9uKTsKKyAgICBpZiAoIWZvcm1hdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOworICAgIGF1
dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwg
Zm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7
CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIgd2l0aCBwYWNrZXQgZGVzY3JpcHRpb25zIGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNh
bXBsZUJ1ZmZlcik7CisKKyAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZy
b21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxp
c3QoKSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIgZnJvbSBhdWRpbyBidWZmZXIgbGlzdCBmYWlsZWQgLSAlZCIsIGVycm9yKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNjdjNjY3ODVkNDdkMjcwMmI1YzY0OWVm
Mjg1ZTRiMGE1ZTEyNjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPENvcmVNZWRpYS9DTVRpbWUuaD4KKyNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVz
Y3JpcHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVD
TVNhbXBsZUJ1ZmZlciogQ01TYW1wbGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRh
OworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJik7CitSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIENNVGltZSwgc2l6ZV90IHNh
bXBsZUNvdW50KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IGFjYjQ5NDQzMDhk
MWNhNDNmOWY2OTljNTEwNDYwMDhmM2Q3MzU1MDcuLmJkZDcwZmQ5Y2FhZTJkZWNjY2IyNDBiYzIx
YjI1YTQyZmM2Mzc2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyQ29jb2EubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucy5o
IgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCIKICNp
bmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKICNpbmNsdWRlIDxBVkZvdW5kYXRpb24vQVZB
c3NldFdyaXRlci5oPgpAQCAtNDQzLDQwICs0NDQsNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjphcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQog
ICAgICAgICBtX3ZpZGVvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJy
ZW50VGltZS5nZXQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCi17Ci0gICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9u
ID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRp
b24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKLSAgICBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9u
LCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0KTsKLSAgICBpZiAoZXJyb3IpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlciBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYWRvcHRD
Rihmb3JtYXQpOwotfQotCi1zdGF0aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJl
Zj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwg
c2l6ZV90IHNhbXBsZUNvdW50KQotewotICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7Ci0gICAgaWYgKCFmb3JtYXQpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVs
bHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNr
ZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZmFsc2UsIE5VTEwsIE5V
TEwsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUsIE5VTEwsICZzYW1wbGVCdWZmZXIp
OwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVh
bSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0
aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZm
ZXIpOwotCi0gICAgZXJyb3IgPSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9C
dWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgZG93bmNhc3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwot
ICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZy
b21BdWRpb0J1ZmZlckxpc3QgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYnVmZmVyOwotfQotCiB2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24sIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIGlm
IChhdXRvIHNhbXBsZUJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2Ny
aXB0aW9uLCBtX2N1cnJlbnRBdWRpb1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRl
eCA4NTY1MTlmYjY4NzEzZWRkOWFjY2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5kMzEwYTY1MGFhZjY3
ZDc2NTIwYzMzNTFmMjNmMTI2YjEzNmMxNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC00NiwxMiArNDYsMTEgQEAg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGkKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGlu
dGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYmIG9yaWdpbikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwot
ICAgIEFTU0VSVCghbV9wZW5kaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikp
OwotICAgIEFTU0VSVCghbV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmll
cikpOworICAgIEFTU0VSVCghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7
CiAgICAgYXV0byByZXF1ZXN0SW5mbyA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dEluZm8geyBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250aW51b3VzLCBpbnRl
cmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikgfTsKLSAgICBhdXRv
JiBwZW5kaW5nUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVy
LCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShy
ZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYgbmV3UmVxdWVzdCA9IG1f
cmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1
ZTsKIAotICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1JlcXVlc3QpOwor
ICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9CiAKIHZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2NiArNjMsNzAg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbmkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBhdXRvIGlkZW50aWZpZXIgPSB3ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpOwotICAg
ICAgICBhdXRvIHRha2VuUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2UoaWRlbnRpZmll
cik7CiAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25E
ZWNpc2lvbjo6RGVueSkgeworICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoaWRlbnRpZmll
cik7CiAgICAgICAgICAgICBhdXRvIGVycm9yID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAi
UGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3MgfTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRl
bnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJy
b3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9vbmdvaW5n
UmVxdWVzdHMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7Ci0gICAgICAg
IGhhbmRsZVJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChpZGVudGlmaWVyKSk7CisgICAg
ICAgIGhhbmRsZVJlcXVlc3QoaWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlm
ICghbV9yZWNvZ25pemVyKSB7CisgICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXplcj4oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGNvbnN0
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRhdGUpIHsKKyAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIGNsaWVu
dElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAgICAgICAgICAgaWYg
KCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgYXV0byB0eXBlID0gdXBkYXRlLnR5cGUoKTsKKyAgICAg
ICAgICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IgfHwg
dHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkKKyAgICAgICAgICAgICAg
ICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKworICAgICAgICAgICAgc2Vu
ZFVwZGF0ZSh1cGRhdGUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBtX3JlY29nbml6ZXIt
PnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOworfQorCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50
aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBt
X3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmll
cikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlm
aWVyKSk7Ci0gICAgc3RvcFJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChjbGllbnRJZGVu
dGlmaWVyKSk7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRp
Zmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVy
KSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVyICYmIG1f
cmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVy
KSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVy
OjpTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpObyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmll
cikpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRha2UoY2xpZW50SWRl
bnRpZmllcik7Ci0gICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBhdXRvIHVwZGF0ZSA9
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwotICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0
ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NB
R0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
UmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAocmVxdWVzdCkKLSAgICAg
ICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RhcnQgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25p
dGlvbi4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86
IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCBmaW5hbGl6aW5nIHJlc3VsdHMgYnkgcmVjb2duaXpp
bmcgY2FwdHVyZWQgYXVkaW8uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFi
b3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uIGltbWVk
aWF0ZWx5IHdpdGhvdXQgZ2VuZXJhdGluZyByZXN1bHRzLgorICAgIGlmIChtX3JlcXVlc3RzLnJl
bW92ZShjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBpZiAobV9yZWNvZ25pemVyICYmIG1f
cmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVy
KQorICAgICAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CisgICAgfQogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3I+IGVycm9yLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhPj4gcmVzdWx0KQpAQCAtMTMzLDcgKzEzNiwxMiBAQCB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgKmVycm9yKTsKICAg
ICBpZiAodHlwZSA9PSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3Vs
dCkKICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdChjbGllbnRJZGVudGlmaWVyLCAqcmVzdWx0KTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRl
KSwgbV9pZGVudGlmaWVyKTsKKyAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSk7CiB9CiAKIElQ
Qzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThmZWUzNGZiYzJlMWQx
OGEyNGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNl
bmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBPcHRpb25hbDxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwgT3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0gV1RGOjpudWxsb3B0
KTsKKyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBA
IC03Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdSZXF1ZXN0czsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9w
ZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNGZiNDhlMTVmNTc0NTU1OWJhNmMxYWJmY2QyMzY2MTQ0MDM0ZmVmNC4uOGNlNzM4YjQ3YmZm
NGEyZDk4YjdmNmU4OTVkZTI2ODVkYzBjMzk2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIw
LTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0
YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMC0xMS0xOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCB3ZWItcGxhdGZvcm0t
dGVzdHMvdWlldmVudHMgdGVzdHMgZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNv
Z25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYTc0NjFkYzdjYzAx
NGRiNjJkNjVjNmIyMGI2YjBkYTI1NmVhNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZl
ZCBjb3JyZXRseSB3aGVuIHN0YXJ0IGFuZCBzdG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVl
Y2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRp
b24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1JlY2VpdmVkIHN0YXJ0IGV2ZW50
CitSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50CitQQVNTIHJlY29nbml0aW9uLnN0b3AoKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1JlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50CitSZWNlaXZlZCBl
bmQgZXZlbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDVk
MmIwNzhjNmUyMTk0YzU5ZTc4OWQzNWE0Njc4YjE0ZGZjZWNmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVu
LXN0b3AuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNv
cnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3AgcmVjb2duaXRpb24gbm9ybWFsbHkuIik7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworfQorCitz
aG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsK
K3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQg
c3RhcnQgZXZlbnQiKTsKK30KKworcmVjb2duaXRpb24ub25hdWRpb3N0YXJ0ID0gKGV2ZW50KSA9
PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQiKTsKKworICAgIHNob3Vs
ZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdG9wKCkiKTsKK30KKworcmVjb2duaXRpb24ub25hdWRp
b2VuZCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBhdWRpb2VuZCBldmVudCIp
OworfQorCityZWNvZ25pdGlvbi5vbmVuZCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNl
aXZlZCBlbmQgZXZlbnQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitzaG91bGROb3RU
aHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNv
Z25pdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIxMGM5NGEyNGNjOTg1ZjBmNjI2MDUz
ZGQxMjQ0MzFiMzVjM2Q3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBzdGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBh
Ym9ydHMgb25nb2luZyBvbmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjZWl2ZWRTdGFydCBpcyB0cnVlCitQQVNTIGV2
ZW50LmVycm9yIGlzICJhYm9ydGVkIgorUEFTUyBldmVudC5tZXNzYWdlIGlzICJBbm90aGVyIHJl
cXVlc3QgaXMgc3RhcnRlZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MWU3NDNmZjNmNjA5MTBhMWQxNDQwZjE0NGQ2YmQ5NWExZmM3MzViCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2du
aXRpb24uaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBzdGFydGluZyBhIHNlY29uZCByZWNv
Z25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2du
aXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3JlY2VpdmVkU3RhcnQgPSBmYWxz
ZTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICByZWNlaXZlZFN0YXJ0
ID0gdHJ1ZTsKK30KKworcmVjb2duaXRpb24ub25lcnJvciA9IChldmVudCkgPT4geworICAgIHNo
b3VsZEJlVHJ1ZSgicmVjZWl2ZWRTdGFydCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXZlbnQuZXJyb3IiLCAiYWJvcnRlZCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZl
bnQubWVzc2FnZSIsICJBbm90aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIpOworCisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7Citz
aG91bGROb3RUaHJvdygic2Vjb25kUmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24o
KTsiKTsKK3Nob3VsZE5vdFRocm93KCJzZWNvbmRSZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="431638"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414684</attachid>
            <date>2020-11-20 08:43:35 -0800</date>
            <delta_ts>2020-11-20 09:04:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120084334.patch</filename>
            <type>text/plain</type>
            <size>68738</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uZWUyYzRiYmVmMDE0Zjg3ZDhiM2RkYTRjNGQxZTI1
OGEwMzBjMTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFVwU291cmNlKTogQ3Jl
YXRlIGEgCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUpOiBQdXNoIGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAg
ICAgcHVsbCBmcm9tIGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJl
YWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
Ojpzb3VyY2VTdGFydGVkKTogSW52b2tlIHN0YXJ0IGNhbGxiYWNrLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCk6IElu
dm9rZSBlcnJvciBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6IEludm9rZSBlcnJvciBjYWxs
YmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmg6IEFkZGVkLiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsIHBy
b3ZpZGVzIAorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2Ugb24gd2hlbiBFTkFCTEUoTUVESUFfU1RSRUFNKSBpcyB0cnVlLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOiBBYm9ydCBvbmdvaW5nIHJlcXVlc3QgaWYg
YW55IGFuZCBzZW5kIGVycm9yIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcjo6c3RhcnQpOiBTdGFydCBoYW5kbGluZyBhIG5ldyByZXF1ZXN0IGFuZCBzZW5kIHN0YXJ0
IGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5h
bCk6IENyZWF0ZSBhIG5ldyBzb3VyY2UgYW5kIHNldCBjYWxsYmFja3Mgb2YgdGhlIHNvdXJjZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOiBTdG9wIG9uZ29pbmcg
cmVxdWVzdC4gVGhpcyBzZW5kcyBlbmQgZXZlbnQgc3luY2hyb25vdXNseSBub3cgYXMgd2UgY2Fu
IHN0b3AKKyAgICAgICAgY2FwdHVyaW5nIGF1ZGlvIGltbWVkaWF0ZWx5LiBBZnRlciB3ZSBpbXBs
ZW1lbnQgc3BlZWNoIHJlY29nbml0aW9uIGJhY2tlbmQsIHRoaXMgY291bGQgYmUgYXN5bmNocm9u
b3VzLiAKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmN1cnJlbnRDbGllbnRJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVk
aWFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOiBNb3ZlIGNvZGUgZm9yIGNy
ZWF0aW5nIENNU2FtcGxlQnVmZmVyUmVmIHRvCisgICAgICAgIE1lZGlhVXRpbGl0aWVzLmgvY3Bw
IHNvIGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBTcGVlY2hSZWNvZ25pdGlvbiBhbmQgVXNlck1lZGlh
LCBhcyBTcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCAKKyAgICAgICAgd2lsbCB0YWtlIENNU2Ft
cGxlQnVmZmVyUmVmIGFzIGlucHV0LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrbGV0LmFkZE1vZHVsZSgpIHNob3VsZCByZWplY3Qg
cHJvbWlzZSB3aXRoIGFuIEFib3J0RXJyb3Igd2hlbiB0aGUgbmV0d29yayBsb2FkIGZhaWxzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0YjQ3MWE0ZWI4MjBmNTIyNzYyYjJhMTgzZjNkYmI3Nzc3YzliMzIuLjgxOTI4
YzQyZmRiMjc2N2U1YWVjMTk4ODIyNDBlNTg4Y2I3NmU0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVl
c3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNp
b24gdG8gV2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUz
ZGEzYzY3ZGUxN2EyNTJiZWYxY2FiMjY4N2Q0MzkzMDZkLi42MmJjNWVlZDU2OTQ0MTU5NGZlMmQw
OGNiYzQ2MDBhMzY1MmVjMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyNCw2ICsxMjQsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCiAK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTNkYWRjMDk5MGU3NGViZWNlMTkxMTA0M2JhNzY5YjE3NzBkNjU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFN0YXJ0Q2FsbGJhY2smJiBz
dGFydENhbGxiYWNrLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIEVycm9yQ2FsbGJhY2sm
JiBlcnJvckNhbGxiYWNrKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9pbXBs
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihXVEZNb3Zl
KHN0YXJ0Q2FsbGJhY2spLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxs
YmFjaykpOworI2Vsc2UKKyAgICBVTlVTRUQoc3RhcnRDYWxsYmFjayk7CisgICAgVU5VU0VEKGRh
dGFDYWxsYmFjayk7CisgICAgVU5VU0VEKGVycm9yQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGQ4ZTI4MjNjZjFjNTc1NWFkOWZiZmRhOWMwOWFlNmQwN2MwYzUxZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFt
ZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZh
dWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKwor
ICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKCk+OworICAgIHVzaW5nIEVy
cm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+OworICAgIHVzaW5nIERhdGFDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3RhcnRDYWxsYmFjayYmLCBEYXRhQ2Fs
bGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsPiBtX2ltcGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YTY4YWVjN2EzYjZmNjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
VHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
ID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlm
aWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTM3N2ExMWI0OTU2ZGRjODlkNDNhY2Fi
MzA3OWQ3MzE1ZDRmYzljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTAsMCAr
MSwxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK3N0YXRpYyBjb25zdCB2b2lkKiBu
ZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIg
PSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitzdGF0aWMgUmVmUHRy
PExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQ
dHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBsb2dnZXI7Cit9CisjZW5kaWYKKworU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbChTdGFydENhbGxiYWNrJiYgc3RhcnRDYWxsYmFjaywgRGF0YUNhbGxiYWNrJiYg
ZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxsYmFjaykKKyAgICA6IG1faWRl
bnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQorICAgICwgbV9zdGFydENhbGxiYWNrKFdURk1vdmUoc3RhcnRDYWxsYmFjaykpCisgICAg
LCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX2Vycm9yQ2Fs
bGJhY2soV1RGTW92ZShlcnJvckNhbGxiYWNrKSkKK3sKKyAgICBhdXRvIGRldmljZXMgPSBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCku
YXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZpY2VzKCk7CisgICAgT3B0aW9u
YWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDog
ZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAg
Y2FwdHVyZURldmljZSA9IGRldmljZTsKKworICAgICAgICBpZiAoZGV2aWNlLmlzRGVmYXVsdCgp
KSB7CisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWNhcHR1cmVEZXZpY2UpIHsKKyAgICAg
ICAgbV9lcnJvckNhbGxiYWNrKCJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBhdWRpbyBjYXB0
dXJlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRVcFNvdXJjZSgqY2FwdHVy
ZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSWRlbnRpZmllciBpZGVudGlmaWVyICwgY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURl
dmljZSwgU3RhcnRDYWxsYmFjayYmIHN0YXJ0Q2FsbGJhY2ssIERhdGFDYWxsYmFjayYmIGRhdGFD
YWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2spCisgICAgOiBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKKyAgICAsIG1fc3RhcnRDYWxsYmFjayhXVEZNb3ZlKHN0YXJ0Q2FsbGJh
Y2spKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwg
bV9lcnJvckNhbGxiYWNrKFdURk1vdmUoZXJyb3JDYWxsYmFjaykpCit7CisgICAgc2V0VXBTb3Vy
Y2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6c2V0VXBTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2FwdHVyZURldmljZSkK
K3sKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZSwgeyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fZXJyb3JD
YWxsYmFjayhyZXN1bHQuZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1fc291cmNlID0gcmVzdWx0LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRpb1Nh
bXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIG1fc291cmNlLT5zdGFydCgpOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAg
aWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVsbExvZ2dlcigpID0gTG9nZ2Vy
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+c2V0RW5hYmxlZCh0aGlzLCBm
YWxzZSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnNldExvZ2dlcigqbnVsbExvZ2dlcigpLCBu
ZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpCit7Cisg
ICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50
KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1
ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKworICAgIGlmICghbV9kYXRhU291cmNlIHx8ICFtX2RhdGFT
b3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSB8fCAqbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0
aW9uKCkgIT0gZGVzY3JpcHRpb24pIHsKKyAgICAgICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9T
YW1wbGVEYXRhU291cmNlOjpjcmVhdGUoZGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpICogMiwgKm1f
c291cmNlKTsKKyAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KHRvQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JD
YWxsYmFjaygiVW5hYmxlIHRvIHNldCB0aGUgaW5wdXQgZm9ybWF0IG9mIGRhdGEgc291cmNlIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJj
ZS0+c2V0T3V0cHV0Rm9ybWF0KHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9u
KSkpIHsKKyAgICAgICAgICAgIG1fZXJyb3JDYWxsYmFjaygiVW5hYmxlIHRvIHNldCB0aGUgb3V0
cHV0IGZvcm1hdCBvZiBkYXRhIHNvdXJjZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbV9kYXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICB9
CisKKyAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRhdGEsIHNhbXBsZUNvdW50
KTsKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bihkZXNjcmlwdGlvbik7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBB
U1NFUlQobV9kYXRhU291cmNlKTsKKyAgICAgICAgYXV0byBkYXRhID0gV2ViQXVkaW9CdWZmZXJM
aXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZUNvdW50
KSB9OworICAgICAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1wbGVzKCpkYXRhLmxpc3QoKSwgc2Ft
cGxlQ291bnQsIHRpbWUudGltZVZhbHVlKCksIDAsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Q29w
eSk7CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3JpcHRpb24s
IHNhbXBsZUNvdW50KTsKKyAgICB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBtX3N0YXJ0Q2FsbGJhY2soKTsK
K30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKCkKK3sKKyAgICBBU1NFUlQobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOworICAgIG1f
ZXJyb3JDYWxsYmFjaygiQ2FwdHVyZSBzb3VyY2Ugc3RvcHBlZCIpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCit7Cisg
ICAgbV9lcnJvckNhbGxiYWNrKCJDYXB0dXJlIHNvdXJjZSBnb3QgbXV0ZWQiKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMWQ1YmEwNmNkMzA4OTZlZmJiZDRkNzgyODgyZGMwNmIzODU5
MDhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlICJBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmll
ci5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZv
cm1BdWRpb0RhdGE7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwK
KyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHVibGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKCk+OworICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29u
c3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgRXJyb3JDYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoU3RyaW5nKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bChTdGFydENhbGxiYWNrJiYsIERhdGFDYWxsYmFjayYmLCBFcnJvckNhbGxiYWNrJiYpOworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYsIFN0YXJ0Q2FsbGJhY2sm
JiwgRGF0YUNhbGxiYWNrJiYsIEVycm9yQ2FsbGJhY2smJik7CisgICAgflNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNldFVwU291cmNl
KGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJj
ZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CisgICAgU3RhcnRDYWxsYmFjayBtX3N0YXJ0Q2FsbGJhY2s7CisgICAgRGF0YUNhbGxiYWNr
IG1fZGF0YUNhbGxiYWNrOworICAgIEVycm9yQ2FsbGJhY2sgbV9lcnJvckNhbGxiYWNrOworICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKyAgICBSZWZQdHI8QXVkaW9T
YW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NmY3ZmFlMWJmNDAzNmY5OWRhNWZlZGFm
OGNlOTNkNTZlZjEzZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisK
KyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRp
b24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hS
ZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVsZWdhdGVD
YWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVy
OjpyZXNldCgpCit7CisgICAgaWYgKG1fY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBpZiAo
bV9zb3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICAgICAgYXV0
byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OworICAgICAgICBt
X2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKCpt
X2NsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0g
aWRlbnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKGlkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3RhcnRDYWxsYmFj
ayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXSgpIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBB
U1NFUlQobV9jbGllbnRJZGVudGlmaWVyICYmIG1fY2xpZW50SWRlbnRpZmllci52YWx1ZSgpID09
IGlkZW50aWZpZXIpOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvU3RhcnQpKTsKKyAgICB9OworICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyldKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGF1dG8g
YnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIFBBTDo6
dG9DTVRpbWUodGltZSksIHNhbXBsZUNvdW50KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJ1ZmZl
cik7CisjZW5kaWYKKyAgICB9OworICAgIGF1dG8gZXJyb3JDYWxsYmFjayA9IFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXShTdHJpbmcgZXJyb3JNZXNzYWdl
KSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgQVNTRVJUKG1fY2xpZW50SWRlbnRpZmllciAmJiBtX2NsaWVudElkZW50aWZpZXIudmFsdWUo
KSA9PSBpZGVudGlmaWVyKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBXVEZNb3Zl
KGVycm9yTWVzc2FnZSkgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihpZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICBt
X3NvdXJjZSA9IG51bGxwdHI7CisgICAgfTsKKworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KFdURk1vdmUoc3RhcnRDYWxsYmFjayksIFdU
Rk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIHN0b3BJbnRlcm5hbCgpOworCisgICAgaWYgKHNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKSB7CisgICAg
ICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3BlZWNoIHJlY29nbml0aW9u
IGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGllbnRJZGVudGlmaWVyLCBy
ZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpudWxs
b3B0OworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCgpCit7CisgICAg
aWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgbV9k
ZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkpOworICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MTU2M2IxOGM3MTYy
NzI5Yzk2ZjFjZDRmYjVmZjE2NDE3MTg0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDogcHVibGljIENhbk1h
a2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChj
b25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIp
OworICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9
IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorCitwcml2YXRlOgor
ICAgIHZvaWQgcmVzZXQoKTsKKyAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wSW50ZXJuYWwoKTsK
KworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVD
YWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlPiBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggMjU5NDU4MWI3MjA5MTJjMGI5NTUzYmI0MTBkNTFkODhkMGE4MTU2Yy4uOGFhM2FjNGY2
OTAyZDYyMjA0YjVjN2IyNjQ4ZjJiMGY0NTQ1MGE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5OSw2
ICsxOTksOSBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCiBNb2R1bGVz
L3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRlYWQ4MThiYTNjYjJhNDQ5
MzE1NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNmYjI1ZjEyNjAyNWQzMmYxMGQ3Nzg2MDYxMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3IEBAIHBsYXRmb3JtL2NvY29h
L0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KIHBs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTUlN
RVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAK
IHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCiBwbGF0Zm9y
bS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0
OTIwYzk0ZS4uZTdlNWI5Mjg0MWM5MzlhNTc2MGY0YWIzNDc0ZTczMTE0NDAzNzExNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIwLDggKzEyMCw4IEBACiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmll
cnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9OwogCQkw
NzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRh
cmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyog
UmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA3M0I4
NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcx
QzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKLQkJMDczQjg3NjkxRTQzODVB
QzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OworCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVC
dWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUx
RTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdF
RjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRp
bWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUw
MzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMx
NDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENh
Y2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtMjc4Nyw2ICsyNzg3LDggQEAKIAkJOTM5M0U2MDAx
NTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBD
U1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0Uz
RDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
OUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzOUMw
RDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIg
LyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBE
MjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0
OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg0OCw2ICsyODUwLDkgQEAK
IAkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUI4MTJENTMyQzQw
MDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjFENUMxMTJENTMzNTYw
MDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdM
TG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMkNDOTMyNDI3RkI5QzAwNTg1MUQ4IC8qIENoYXJh
Y3RlclJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgxRjI1NjdBMDhD
MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MUMyNTY3OUY3MDAw
QTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgyMTI1NjdBMEQ4
MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MjAyNTY3
QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2
QjgyMjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2QjgxQjI1
Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNkYxRUUxMjdG
NzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1NUNCMDYgLyogV2Vi
R0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAwN0UzN0M5IC8qIFJh
ZGlvQnV0dG9uR3JvdXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y5QjZF
MTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21t
ZW50LmggKi87IH07CkBAIC0xMTQyOSw2ICsxMTQzNCwxMCBAQAogCQk5Mzk4ODVDMjA4QjdFM0Qx
MDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1
NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5
QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIx
MUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUIy
NTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTE1LDYg
KzExNTI0LDExIEBACiAJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNv
bnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTExv
c2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1QkYxMkQ1
MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3RlclJhbmdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xDb250ZXh0
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQjEyN0Y3MEIx
MDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNGNkYxRUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMzU3Miw2ICsyMzU4NiwxMyBAQAogCQkJcGF0aCA9IGNvY29hOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTNGNkI4MEUyNTY2RURFMTAwQTA4
NDg4IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NDA5LDYgKzI0NDMwLDggQEAKIAkJCQlB
NUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJCQkwNkU4
MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8s
CiAJCQkJMUE0ODMyQjIxQTk1M0JBNjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5t
bSAqLywKKwkJCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3Bw
ICovLAorCQkJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICov
LAogCQkJCUM1M0QzOTMzMUM5Nzg5MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2Eu
bW0gKi8sCiAJCQkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25D
b250ZW50RmlsdGVyLmggKi8sCiAJCQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tICovLApAQCAtMjU2MDEsNiArMjU2MjQsNyBAQAog
CQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyog
Y29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVl
Y2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01X
aW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEy
NSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKQEAgLTI1NjEwLDYgKzI1NjM0LDEx
IEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0
ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRjZCODFFMjU2
NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovLAor
CQkJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCAqLywKKwkJCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovLAorCQkJCTkzRjZCODFEMjU2NzlGNzAw
MEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCAqLywKKwkJ
CQk5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5oICovLAogCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8sCiAJCQkJOTNBMDQ4MjAyNTQ5
NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIuaCAqLywKQEAgLTI1NjM0LDYgKzI1NjYzLDggQEAKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQk5M0Q2Qjc2
RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAogCQkJ
CTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICov
LAorCQkJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAq
LywKKwkJCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICov
LAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICov
LAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywK
IAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywK
QEAgLTMzNTE5LDYgKzMzNTUwLDcgQEAKIAkJCQk5MzJDQzBCNzFERkZEMTU4MDA0QzBGOUYgLyog
TWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0MxQzBFMjFCRkI2
MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCBp
biBIZWFkZXJzICovLAorCQkJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMxQkQ4MDY0RTAwNTVEODFGIC8qIE1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMx
ODA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
NzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJzb3IuaCBpbiBIZWFkZXJzICovLApA
QCAtMzQ0MTAsNiArMzQ0NDIsOSBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBT
cGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBD
RTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTNGNkI4MjIyNTY3QTY1NjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MjEyNTY3QTBEODAw
QTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyQzI1NDk1
NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zNDQyNCw2ICszNDQ1OSw3IEBACiAJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNBIC8qIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNzI1NjRFNDdG
MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVB
RDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRo
ZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzRjYjg4NDNlMzQyZGQ4N2U3
NWQ1ZTVlZDNiNzI0NmNjYTJkMzcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIK
KworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJXZWJBdWRp
b0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbmNsdWRlIDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2lu
ZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3Jl
YXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25z
dCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0
ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIDAs
IG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBM
T0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYWRvcHRD
Rihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVD
b3VudCkKK3sKKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24o
ZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0
byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBm
b3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsK
KyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYy
ODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNVGltZS5oPgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNj
cmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNN
U2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7
CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKK1JldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2Ft
cGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggYWNiNDk0NDMwOGQx
Y2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRkNzBmZDljYWFlMmRlY2NjYjI0MGJjMjFi
MjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmgi
CiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIgogI2lu
Y2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFz
c2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAg
ICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJl
bnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24g
PSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwotICAgIENNRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24s
IDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQpOwotICAgIGlmIChlcnJvcikgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENG
KGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBz
aXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1h
dERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBpZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxs
cHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVM
TCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7
Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRo
UGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZl
cik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1
ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0g
ICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZmZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgaWYg
KGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3Jp
cHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4
IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRmOTczZjk5MTYuLmQzMTBhNjUwYWFmNjdk
NzY1MjBjMzM1MWYyM2YxMjZiMTM2YzE3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTQ2LDEyICs0NiwxMSBAQCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3Rh
cnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBj
bGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50
ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0g
ICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7
Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVy
KSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsK
ICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUobGFuZyksIGNvbnRpbnVvdXMsIGludGVy
aW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1vdmUob3JpZ2luKSB9OwotICAgIGF1dG8m
IHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIs
IG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJl
cXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9y
ZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVl
OwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpwZW5kaW5nUmVxdWVzdCk7Cisg
ICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpuZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTY0LDY2ICs2Myw3MCBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCk7Ci0gICAg
ICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZShpZGVudGlmaWVy
KTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShpZGVudGlmaWVy
KTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQ
ZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAgICAgICAgICAgc2VuZFVwZGF0ZShpZGVu
dGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBlcnJv
cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtX29uZ29pbmdS
ZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0YWtlblJlcXVlc3QpKTsKLSAgICAgICAg
aGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGlkZW50aWZpZXIpKTsKKyAgICAg
ICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgaWYg
KCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkgeworICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gY2xpZW50
SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBpZiAo
IW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciB8fCB0
eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAgICAgICAgICAgICAg
IG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAgICAgICAgICBzZW5k
VXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1fcmVjb2duaXplci0+
c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRp
Zmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVy
KSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVyICYmIG1f
cmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVy
KSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZp
ZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGNsaWVudElkZW50
aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpCisg
ICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlm
aWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIp
KSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9y
ZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIp
IHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6
OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVy
KSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVu
dGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1dG8gdXBkYXRlID0g
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRl
KHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FH
RV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdS
ZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1ZXN0KQotICAgICAg
ICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVx
dWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0
aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVzdChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzog
c3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBieSByZWNvZ25pemlu
ZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJv
cnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsK
LSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24gaW1tZWRp
YXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1fcmVxdWVzdHMucmVt
b3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9y
ZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIp
CisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9CiAKIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2LDEyIEBAIHZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAqZXJyb3IpOwogICAg
IGlmICh0eXBlID09IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0
KQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlUmVzdWx0KGNsaWVudElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUp
LCBtX2lkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpKTsKIH0KIAogSVBD
OjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZlZTM0ZmJjMmUxZDE4
YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgc2Vu
ZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9wdGlvbmFsPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBPcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBXVEY6Om51bGxvcHQp
OworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAg
LTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1JlcXVlc3RzOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+
IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Bl
cm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA0ZmI0OGUxNWY1NzQ1NTU5YmE2YzFhYmZjZDIzNjYxNDQwMzRmZWY0Li44Y2U3MzhiNDdiZmY0
YTJkOThiN2Y2ZTg5NWRlMjY4NWRjMGMzOTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAt
MTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1hY09TCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTE5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wb3J0IHdlYi1wbGF0Zm9ybS10
ZXN0cy91aWV2ZW50cyB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29n
bml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJhNzQ2MWRjN2NjMDE0
ZGI2MmQ2NWM2YjIwYjZiMGRhMjU2ZWE0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVk
IGNvcnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3AgcmVjb2duaXRpb24gbm9ybWFsbHkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVj
aFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlv
bi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQK
K1JlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQKK1BBU1MgcmVjb2duaXRpb24uc3RvcCgpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQKK1JlY2VpdmVkIGVu
ZCBldmVudAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
cmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNWQy
YjA3OGM2ZTIxOTRjNTllNzg5ZDM1YTQ2NzhiMTRkZmNlY2YKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29y
cmV0bHkgd2hlbiBzdGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4iKTsKKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3No
b3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOwor
cmVjb2duaXRpb24ub25zdGFydCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBz
dGFydCBldmVudCIpOworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+
IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxk
Tm90VGhyb3coInJlY29nbml0aW9uLnN0b3AoKSIpOworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlv
ZW5kID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50Iik7
Cit9CisKK3JlY29nbml0aW9uLm9uZW5kID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2Vp
dmVkIGVuZCBldmVudCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRo
cm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29n
bml0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjEwYzk0YTI0Y2M5ODVmMGY2MjYwNTNk
ZDEyNDQzMWIzNWMzZDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTYgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFi
b3J0cyBvbmdvaW5nIG9uZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
cmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CitQQVNTIHNlY29uZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNlaXZlZFN0YXJ0IGlzIHRydWUKK1BBU1MgZXZl
bnQuZXJyb3IgaXMgImFib3J0ZWQiCitQQVNTIGV2ZW50Lm1lc3NhZ2UgaXMgIkFub3RoZXIgcmVx
dWVzdCBpcyBzdGFydGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRp
b24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEx
ZTc0M2ZmM2Y2MDkxMGExZDE0NDBmMTQ0ZDZiZDk1YTFmYzczNWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25p
dGlvbi5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29n
bml0aW9uIGFib3J0cyBvbmdvaW5nIG9uZS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25p
dGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjZWl2ZWRTdGFydCA9IGZhbHNl
OworcmVjb2duaXRpb24ub25zdGFydCA9IChldmVudCkgPT4geworICAgIHJlY2VpdmVkU3RhcnQg
PSB0cnVlOworfQorCityZWNvZ25pdGlvbi5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgc2hv
dWxkQmVUcnVlKCJyZWNlaXZlZFN0YXJ0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJl
dmVudC5lcnJvciIsICJhYm9ydGVkIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC5tZXNzYWdlIiwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIik7CisKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3No
b3VsZE5vdFRocm93KCJzZWNvbmRSZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigp
OyIpOworc2hvdWxkTm90VGhyb3coInNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="431645"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414687</attachid>
            <date>2020-11-20 08:53:29 -0800</date>
            <delta_ts>2020-11-20 10:29:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120085328.patch</filename>
            <type>text/plain</type>
            <size>68849</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uZWUyYzRiYmVmMDE0Zjg3ZDhiM2RkYTRjNGQxZTI1
OGEwMzBjMTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFVwU291cmNlKTogQ3Jl
YXRlIGEgCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUpOiBQdXNoIGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAg
ICAgcHVsbCBmcm9tIGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJl
YWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
Ojpzb3VyY2VTdGFydGVkKTogSW52b2tlIHN0YXJ0IGNhbGxiYWNrLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCk6IElu
dm9rZSBlcnJvciBjYWxsYmFjay4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6IEludm9rZSBlcnJvciBjYWxs
YmFjay4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmg6IEFkZGVkLiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsIHBy
b3ZpZGVzIAorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2Ugb24gd2hlbiBFTkFCTEUoTUVESUFfU1RSRUFNKSBpcyB0cnVlLgorICAgICAgICAq
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOiBBYm9ydCBvbmdvaW5nIHJlcXVlc3QgaWYg
YW55IGFuZCBzZW5kIGVycm9yIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcjo6c3RhcnQpOiBTdGFydCBoYW5kbGluZyBhIG5ldyByZXF1ZXN0IGFuZCBzZW5kIHN0YXJ0
IGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RhcnRJbnRlcm5h
bCk6IENyZWF0ZSBhIG5ldyBzb3VyY2UgYW5kIHNldCBjYWxsYmFja3Mgb2YgdGhlIHNvdXJjZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3ApOiBTdG9wIG9uZ29pbmcg
cmVxdWVzdC4gVGhpcyBzZW5kcyBlbmQgZXZlbnQgc3luY2hyb25vdXNseSBub3cgYXMgd2UgY2Fu
IHN0b3AKKyAgICAgICAgY2FwdHVyaW5nIGF1ZGlvIGltbWVkaWF0ZWx5LiBBZnRlciB3ZSBpbXBs
ZW1lbnQgc3BlZWNoIHJlY29nbml0aW9uIGJhY2tlbmQsIHRoaXMgY291bGQgYmUgYXN5bmNocm9u
b3VzLiAKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCk6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmN1cnJlbnRDbGllbnRJZGVudGlmaWVy
IGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVk
aWFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOiBNb3ZlIGNvZGUgZm9yIGNy
ZWF0aW5nIENNU2FtcGxlQnVmZmVyUmVmIHRvCisgICAgICAgIE1lZGlhVXRpbGl0aWVzLmgvY3Bw
IHNvIGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBTcGVlY2hSZWNvZ25pdGlvbiBhbmQgVXNlck1lZGlh
LCBhcyBTcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCAKKyAgICAgICAgd2lsbCB0YWtlIENNU2Ft
cGxlQnVmZmVyUmVmIGFzIGlucHV0LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrbGV0LmFkZE1vZHVsZSgpIHNob3VsZCByZWplY3Qg
cHJvbWlzZSB3aXRoIGFuIEFib3J0RXJyb3Igd2hlbiB0aGUgbmV0d29yayBsb2FkIGZhaWxzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0YjQ3MWE0ZWI4MjBmNTIyNzYyYjJhMTgzZjNkYmI3Nzc3YzliMzIuLjgxOTI4
YzQyZmRiMjc2N2U1YWVjMTk4ODIyNDBlNTg4Y2I3NmU0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVl
c3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpz
ZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0
b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmg6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNp
b24gdG8gV2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUz
ZGEzYzY3ZGUxN2EyNTJiZWYxY2FiMjY4N2Q0MzkzMDZkLi42MmJjNWVlZDU2OTQ0MTU5NGZlMmQw
OGNiYzQ2MDBhMzY1MmVjMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyNCw2ICsxMjQsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCiAK
ICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1DaHVuay5oCiAgICAgTW9kdWxlcy9z
dHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42Y2IxMWQ1Y2ZiOTc5ZmNmYzRmOTFiZmI0OWRjMmJmMWQ2YTk2YjM2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFN0YXJ0Q2FsbGJhY2smJiBz
dGFydENhbGxiYWNrLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIEVycm9yQ2FsbGJhY2sm
JiBlcnJvckNhbGxiYWNrKQoreworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgbV9pbXBs
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPihXVEZNb3Zl
KHN0YXJ0Q2FsbGJhY2spLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxs
YmFjaykpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3RhcnRDYWxsYmFjayk7CisgICAgVU5V
U0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKGVycm9yQ2FsbGJhY2sp
OworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ4ZTI4MjNjZjFjNTc1NWFkOWZiZmRhOWMwOWFlNmQwN2Mw
YzUxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDsKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlv
RGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZSgpID0gZGVmYXVsdDsKKworICAgIHVzaW5nIFN0YXJ0Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lk
KCk+OworICAgIHVzaW5nIEVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFN0cmluZyk+Owor
ICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3RhcnRD
YWxsYmFjayYmLCBEYXRhQ2FsbGJhY2smJiwgRXJyb3JDYWxsYmFjayYmKTsKKworcHJpdmF0ZToK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPiBtX2ltcGw7CisjZW5kaWYKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZp
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YTY4YWVjN2EzYjZmNjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTQwZDgw
OTE1NmUwY2JjMzM3MzRkMGJkN2JmZGNkYWQzZjIyZTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAKQEAgLTAsMCArMSwxNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbi5oIgorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK3N0
YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2
NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOwor
fQorCitzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSZWZQdHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBsb2dnZXI7
Cit9CisjZW5kaWYKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChTdGFydENhbGxiYWNrJiYgc3RhcnRDYWxsYmFj
aywgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBFcnJvckNhbGxiYWNrJiYgZXJyb3JDYWxs
YmFjaykKKyAgICA6IG1faWRlbnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQorICAgICwgbV9zdGFydENhbGxiYWNrKFdURk1vdmUoc3Rh
cnRDYWxsYmFjaykpCisgICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykp
CisgICAgLCBtX2Vycm9yQ2FsbGJhY2soV1RGTW92ZShlcnJvckNhbGxiYWNrKSkKK3sKKyAgICBh
dXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRp
b0NhcHR1cmVGYWN0b3J5KCkuYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpLmNhcHR1cmVEZXZp
Y2VzKCk7CisgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKKyAgICBm
b3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVk
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2
aWNlKQorICAgICAgICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsKKworICAgICAgICBpZiAo
ZGV2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWNhcHR1
cmVEZXZpY2UpIHsKKyAgICAgICAgbV9lcnJvckNhbGxiYWNrKCJObyBkZXZpY2UgaXMgYXZhaWxh
YmxlIGZvciBhdWRpbyBjYXB0dXJlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
ZXRVcFNvdXJjZSgqY2FwdHVyZURldmljZSk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGw6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyICwgY29uc3QgQ2FwdHVy
ZURldmljZSYgY2FwdHVyZURldmljZSwgU3RhcnRDYWxsYmFjayYmIHN0YXJ0Q2FsbGJhY2ssIERh
dGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgRXJyb3JDYWxsYmFjayYmIGVycm9yQ2FsbGJhY2sp
CisgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fc3RhcnRDYWxsYmFjayhX
VEZNb3ZlKHN0YXJ0Q2FsbGJhY2spKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRh
Q2FsbGJhY2spKQorICAgICwgbV9lcnJvckNhbGxiYWNrKFdURk1vdmUoZXJyb3JDYWxsYmFjaykp
Cit7CisgICAgc2V0VXBTb3VyY2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c2V0VXBTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7
CisgICAgICAgIG1fZXJyb3JDYWxsYmFjayhyZXN1bHQuZXJyb3JNZXNzYWdlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIG1fc291cmNlID0gcmVzdWx0LnNvdXJjZSgpOworICAgIG1f
c291cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRk
T2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5zdGFydCgpOworCisjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECisgICAgaWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVs
bExvZ2dlcigpID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+
c2V0RW5hYmxlZCh0aGlzLCBmYWxzZSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnNldExvZ2dl
cigqbnVsbExvZ2dlcigpLCBuZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbCgpCit7CisgICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZS0+c3Rv
cCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
c2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3Jp
cHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5
cGUpOworCisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNj
cmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlw
dGlvbikgeworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6
OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAyLCAqbV9zb3VyY2UpOworICAgICAg
ICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQodG9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24oZGVzY3JpcHRpb24pKSkgeworICAgICAgICAgICAgbV9lcnJvckNhbGxiYWNrKCJVbmFibGUg
dG8gc2V0IHRoZSBpbnB1dCBmb3JtYXQgb2YgZGF0YSBzb3VyY2UiKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3Jt
YXQodG9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKSkgeworICAgICAgICAg
ICAgbV9lcnJvckNhbGxiYWNrKCJVbmFibGUgdG8gc2V0IHRoZSBvdXRwdXQgZm9ybWF0IG9mIGRh
dGEgc291cmNlIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBt
X2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgIH0KKworICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOworICAgIGF1dG8gYXVk
aW9EZXNjcmlwdGlvbiA9IHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsK
KyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudF0geworICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2RhdGFTb3Vy
Y2UpOworICAgICAgICBhdXRvIGRhdGEgPSBXZWJBdWRpb0J1ZmZlckxpc3QgeyBhdWRpb0Rlc2Ny
aXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2FtcGxlQ291bnQpIH07CisgICAgICAgIG1f
ZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlzdCgpLCBzYW1wbGVDb3VudCwgdGltZS50
aW1lVmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpDb3B5KTsKKyAgICAgICAgbV9k
YXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOwor
ICAgIH0pOworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6c291cmNlU3RhcnRlZCgpCit7CisgICAgbV9zdGFydENhbGxiYWNrKCk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCgpCit7
CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKTsKKyAgICBtX2Vycm9yQ2Fs
bGJhY2soIkNhcHR1cmUgc291cmNlIHN0b3BwZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIG1fZXJy
b3JDYWxsYmFjaygiQ2FwdHVyZSBzb3VyY2UgZ290IG11dGVkIik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjVhYjBkOGFiN2ViMTNkZGY4MTczNWRlYTA2MWRkY2NlNDVlYWJjNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUlkZW50aWZpZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkF1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVk
aWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbAorICAgIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6
Ok9ic2VydmVyCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVP
YnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNp
bmcgU3RhcnRDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoKT47CisgICAgdXNpbmcgRGF0YUNhbGxi
YWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlv
RGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICB1c2lu
ZyBFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChTdHJpbmcpPjsKKyAgICBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKFN0YXJ0Q2FsbGJhY2smJiwgRGF0YUNhbGxiYWNrJiYs
IEVycm9yQ2FsbGJhY2smJik7CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bChTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiwgU3RhcnRDYWxsYmFjayYmLCBEYXRhQ2FsbGJhY2smJiwgRXJyb3JDYWxsYmFjayYm
KTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpOworCitwcml2YXRl
OgorICAgIHZvaWQgc2V0VXBTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworCisgICAgLy8g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9TYW1wbGVPYnNlcnZlcgorICAgIHZvaWQgYXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRh
JiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgZmluYWw7CisKKyAgICAv
LyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgIHZvaWQgc291cmNlU3RhcnRlZCgp
IGZpbmFsOworICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsOworICAgIHZvaWQgc291cmNl
TXV0ZWRDaGFuZ2VkKCkgZmluYWw7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBTdGFydENhbGxiYWNrIG1fc3RhcnRDYWxs
YmFjazsKKyAgICBEYXRhQ2FsbGJhY2sgbV9kYXRhQ2FsbGJhY2s7CisgICAgRXJyb3JDYWxsYmFj
ayBtX2Vycm9yQ2FsbGJhY2s7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291
cmNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZT4gbV9kYXRhU291cmNlOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NmY3ZmFlMWJmNDAzNmY5OWRhNWZlZGFmOGNl
OTNkNTZlZjEzZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pemVyLmgiCisKKyNp
bmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24u
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNv
Z25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVsZWdhdGVDYWxs
YmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpy
ZXNldCgpCit7CisgICAgaWYgKG1fY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBpZiAobV9z
b3VyY2UpCisgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICAgICAgYXV0byBl
cnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9OworICAgICAgICBtX2Rl
bGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKCptX2Ns
aWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgfQorfQorCit2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRl
bnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKGlkZW50aWZpZXIpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gc3RhcnRDYWxsYmFjayA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXSgpIHsKKyAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBBU1NF
UlQobV9jbGllbnRJZGVudGlmaWVyICYmIG1fY2xpZW50SWRlbnRpZmllci52YWx1ZSgpID09IGlk
ZW50aWZpZXIpOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1
ZGlvU3RhcnQpKTsKKyAgICB9OworICAgIGF1dG8gZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyldKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIGF1dG8gYnVm
ZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIFBBTDo6dG9D
TVRpbWUodGltZSksIHNhbXBsZUNvdW50KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGJ1ZmZlcik7
CisjZW5kaWYKKyAgICB9OworICAgIGF1dG8gZXJyb3JDYWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhp
cyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyXShTdHJpbmcgZXJyb3JNZXNzYWdlKSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
QVNTRVJUKG1fY2xpZW50SWRlbnRpZmllciAmJiBtX2NsaWVudElkZW50aWZpZXIudmFsdWUoKSA9
PSBpZGVudGlmaWVyKTsKKyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBXVEZNb3ZlKGVy
cm9yTWVzc2FnZSkgfTsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihpZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICBtX3Nv
dXJjZSA9IG51bGxwdHI7CisgICAgfTsKKworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KFdURk1vdmUoc3RhcnRDYWxsYmFjayksIFdURk1v
dmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIHN0b3BJbnRlcm5hbCgpOworCisgICAgaWYgKHNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKSB7CisgICAgICAg
IC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3BlZWNoIHJlY29nbml0aW9uIGJh
Y2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGllbnRJZGVudGlmaWVyLCByZXN1
bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RGOjpudWxsb3B0
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCgpCit7CisgICAgaWYg
KG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgbV9kZWxl
Z2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkpOworICAgIH0K
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MTU2M2IxOGM3MTYyNzI5
Yzk2ZjFjZDRmYjVmZjE2NDE3MTg0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25z
dCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNp
dCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7CisgICAgV0VCQ09SRV9FWFBP
UlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwor
ICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZZXMgfTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9IFNo
b3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50SWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorCitwcml2YXRlOgorICAg
IHZvaWQgcmVzZXQoKTsKKyAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wSW50ZXJuYWwoKTsKKwor
ICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+
IG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxs
YmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
PiBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggMjU5NDU4MWI3MjA5MTJjMGI5NTUzYmI0MTBkNTFkODhkMGE4MTU2Yy4uOGFhM2FjNGY2OTAy
ZDYyMjA0YjVjN2IyNjQ4ZjJiMGY0NTQ1MGE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5OSw2ICsx
OTksOSBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCiBNb2R1bGVzL3Nw
ZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hT
eW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRlYWQ4MThiYTNjYjJhNDQ5MzE1
NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNmYjI1ZjEyNjAyNWQzMmYxMGQ3Nzg2MDYxMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3IEBAIHBsYXRmb3JtL2NvY29hL0Zp
bGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KIHBsYXRm
b3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTUlNRVR5
cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKIHBs
YXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCiBwbGF0Zm9ybS9j
b2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2EvUGFz
dGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0OTIw
Yzk0ZS4uZTdlNWI5Mjg0MWM5MzlhNTc2MGY0YWIzNDc0ZTczMTE0NDAzNzExNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIw
LDggKzEyMCw4IEBACiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3
OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9OwogCQkwNzM4
RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdl
dFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
VGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVt
b3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA3M0I4NzY3
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKLQkJMDczQjg3NjkxRTQzODVBQzAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OworCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZm
ZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQz
ODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0
QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVS
YW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUwMzNB
NjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMxNDQ4
OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hl
ZFRleHRUcmFjay5oICovOyB9OwpAQCAtMjc4Nyw2ICsyNzg3LDggQEAKIAkJOTM5M0U2MDAxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJ
bWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEw
MEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIw
MkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzOUMwRDI3
MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyog
U3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjky
NTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
QTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0
RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg0OCw2ICsyODUwLDkgQEAKIAkJ
OTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUI4MTJENTMyQzQwMDgz
MkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjFENUMxMTJENTMzNTYwMDgz
MkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9z
ZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMkNDOTMyNDI3RkI5QzAwNTg1MUQ4IC8qIENoYXJhY3Rl
clJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgxRjI1NjdBMDhDMDBB
MDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MUMyNTY3OUY3MDAwQTA4
NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgyMTI1NjdBMEQ4MDBB
MDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MjAyNTY3QTBD
QzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2Qjgy
MjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2QjgxQjI1Njc5
RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNkYxRUUxMjdGNzBC
MTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xD
b250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAwN0UzN0M5IC8qIFJhZGlv
QnV0dG9uR3JvdXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y5QjZFMTBC
QTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50
LmggKi87IH07CkBAIC0xMTQyOSw2ICsxMTQzNCwxMCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAg
LyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAy
RUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUIyNTQ5
NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTE1LDYgKzEx
NTI0LDExIEBACiAJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRl
eHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTExvc2VD
b250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1QkYxMkQ1MzM1
NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3RlclJhbmdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xDb250ZXh0RXZl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQjEyN0Y3MEIxMDA1
NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNGNkYxRUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMzU3Miw2ICsyMzU4NiwxMyBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4
IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NDA5LDYgKzI0NDMwLDggQEAKIAkJCQlBNUM5
NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJCQkwNkU4MUVE
NjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8sCiAJ
CQkJMUE0ODMyQjIxQTk1M0JBNjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAq
LywKKwkJCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3BwICov
LAorCQkJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovLAog
CQkJCUM1M0QzOTMzMUM5Nzg5MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0g
Ki8sCiAJCQkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyLmggKi8sCiAJCQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLm1tICovLApAQCAtMjU2MDEsNiArMjU2MjQsNyBAQAogCQlB
QTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29j
b2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvdytTcGVlY2hT
eW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5k
b3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUwMDk3NUEyNSAv
KiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKQEAgLTI1NjEwLDYgKzI1NjM0LDExIEBA
CiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJu
YXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRjZCODFFMjU2NzlG
NzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovLAorCQkJ
CTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuaCAqLywKKwkJCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovLAorCQkJCTkzRjZCODFEMjU2NzlGNzAwMEEw
ODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCAqLywKKwkJCQk5
M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oICovLAogCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8sCiAJCQkJOTNBMDQ4MjAyNTQ5NTRF
NjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIu
aCAqLywKQEAgLTI1NjM0LDYgKzI1NjYzLDggQEAKIAkJCQk5MzQ5NTBDNTI1Mzk0MzUzMDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQk5M0Q2Qjc2RTI1
NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICovLAogCQkJCTkz
RDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oICovLAor
CQkJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLywK
KwkJCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovLAog
CQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuY3BwICovLAog
CQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCAqLywKIAkJ
CQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKQEAg
LTMzNTE5LDYgKzMzNTUwLDcgQEAKIAkJCQk5MzJDQzBCNzFERkZEMTU4MDA0QzBGOUYgLyogTWVk
aWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0MxQzBFMjFCRkI2MDAx
MDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMxQkQ4MDY0RTAwNTVEODFGIC8qIE1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMxODA5
NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzEz
OTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJzb3IuaCBpbiBIZWFkZXJzICovLApAQCAt
MzQ0MTAsNiArMzQ0NDIsOSBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0
aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5NDM2MTAwOTlG
MTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRTI1
Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNGNkI4MjIyNTY3QTY1NjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MjEyNTY3QTBEODAwQTA4
NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyQzI1NDk1NTE5
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRDI1NDk1NTFCMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNDQyNCw2ICszNDQ1OSw3IEBACiAJCQkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNBIC8qIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNzI1NjRFNDdGMDBC
MzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDQx
NkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNp
c0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzRjYjg4NDNlMzQyZGQ4N2U3NWQ1
ZTVlZDNiNzI0NmNjYTJkMzcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKKwor
I2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1
ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbmNsdWRlIDxwYWwv
Y2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBu
YW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRl
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0
aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0g
bnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIDAsIG51
bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0df
RVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGggJWQiLCBlcnJv
cik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYWRvcHRDRihm
b3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3Vu
dCkKK3sKKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVz
Y3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBl
cnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3Jt
YXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAg
ICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZl
ciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxl
QnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1
ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgp
KTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBs
ZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01l
ZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYyODVl
NGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlw
dGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2Ft
cGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisK
K1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKK1JldGFpblB0cjxDTVNhbXBs
ZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2FtcGxl
Q291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29h
L01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0
M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRkNzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVh
NDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxp
dGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1
ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0
V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAg
ICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRU
aW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlw
dGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBX
VEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5w
bGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAs
IE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQpOwotICAgIGlmIChlcnJvcikgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9y
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENGKGZv
cm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXpl
X3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBpZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRy
OwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERl
c2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwg
Zm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0g
ICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFj
a2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7
Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZl
ckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAg
aWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1
ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZmZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVk
aW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwg
Y29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1
dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRp
b24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDg1
NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRmOTczZjk5MTYuLmQzMTBhNjUwYWFmNjdkNzY1
MjBjMzM1MWYyM2YxMjZiMTM2YzE3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTQ2LDEyICs0NiwxMSBAQCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJp
bVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAg
QVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0g
ICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7
CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAg
ICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5m
byB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUobGFuZyksIGNvbnRpbnVvdXMsIGludGVyaW1S
ZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1vdmUob3JpZ2luKSB9OwotICAgIGF1dG8mIHBl
bmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1h
a2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVl
c3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9yZXF1
ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOwog
Ci0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpwZW5kaW5nUmVxdWVzdCk7CisgICAg
cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpuZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTY0LDY2ICs2Myw3MCBAQCB2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3Qo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1
dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCk7Ci0gICAgICAg
IGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZShpZGVudGlmaWVyKTsK
ICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lz
aW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShpZGVudGlmaWVyKTsK
ICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQZXJt
aXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAgICAgICAgICAgc2VuZFVwZGF0ZShpZGVudGlm
aWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBlcnJvcik7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtX29uZ29pbmdSZXF1
ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0YWtlblJlcXVlc3QpKTsKLSAgICAgICAgaGFu
ZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGlkZW50aWZpZXIpKTsKKyAgICAgICAg
aGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7CisgICAgaWYgKCFt
X3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hS
ZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gY2xpZW50SWRl
bnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBpZiAoIW1f
cmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgICAgICAg
ICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBl
ID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAgICAgICAgICAgICAgIG1f
cmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAgICAgICAgICBzZW5kVXBk
YXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1fcmVjb2duaXplci0+c3Rh
cnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmll
cik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkg
ewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVyICYmIG1fcmVj
b2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7
CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIp
KTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGNsaWVudElkZW50aWZp
ZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVy
KTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7
Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNv
Z25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsK
KyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNo
b3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7
Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlm
aWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1dG8gdXBkYXRlID0gV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChNZXNz
YWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVw
ZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElk
ZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9D
SEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1
ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1ZXN0KQotICAgICAgICBh
Ym9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVz
dCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9u
LgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVzdChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3Rv
cCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBieSByZWNvZ25pemluZyBj
YXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRS
ZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAg
ICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24gaW1tZWRpYXRl
bHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3Zl
KGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNv
Z25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpCisg
ICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2LDEyIEBAIHZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAqZXJyb3IpOwogICAgIGlm
ICh0eXBlID09IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KQog
ICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
UmVzdWx0KGNsaWVudElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBt
X2lkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpKTsKIH0KIAogSVBDOjpD
b25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZlZTM0ZmJjMmUxZDE4YTI0
ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgc2VuZFVw
ZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBXVEY6Om51bGxvcHQpOwor
ICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTcy
LDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVx
dWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1JlcXVlc3RzOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1f
cmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1p
c3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
emVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0
ZmI0OGUxNWY1NzQ1NTU5YmE2YzFhYmZjZDIzNjYxNDQwMzRmZWY0Li44Y2U3MzhiNDdiZmY0YTJk
OThiN2Y2ZTg5NWRlMjY4NWRjMGMzOTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTEt
MjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1hY09TCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlv
bi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
c2Vjb25kLXJlY29nbml0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTE5ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wb3J0IHdlYi1wbGF0Zm9ybS10ZXN0
cy91aWV2ZW50cyB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0
aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJhNzQ2MWRjN2NjMDE0ZGI2
MmQ2NWM2YjIwYjZiMGRhMjU2ZWE0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNv
cnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3AgcmVjb2duaXRpb24gbm9ybWFsbHkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5z
dGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQKK1Jl
Y2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQKK1BBU1MgcmVjb2duaXRpb24uc3RvcCgpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQKK1JlY2VpdmVkIGVuZCBl
dmVudAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVj
b2duaXRpb24tdGhlbi1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNWQyYjA3
OGM2ZTIxOTRjNTllNzg5ZDM1YTQ2NzhiMTRkZmNlY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3Rv
cC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0
bHkgd2hlbiBzdGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4iKTsKKworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3Vs
ZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVj
b2duaXRpb24ub25zdGFydCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFy
dCBldmVudCIpOworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsK
KyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxkTm90
VGhyb3coInJlY29nbml0aW9uLnN0b3AoKSIpOworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvZW5k
ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50Iik7Cit9
CisKK3JlY29nbml0aW9uLm9uZW5kID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVk
IGVuZCBldmVudCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93
KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjEwYzk0YTI0Y2M5ODVmMGY2MjYwNTNkZDEy
NDQzMWIzNWMzZDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTYgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0
cyBvbmdvaW5nIG9uZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVj
b2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQ
QVNTIHNlY29uZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNlaXZlZFN0YXJ0IGlzIHRydWUKK1BBU1MgZXZlbnQu
ZXJyb3IgaXMgImFib3J0ZWQiCitQQVNTIGV2ZW50Lm1lc3NhZ2UgaXMgIkFub3RoZXIgcmVxdWVz
dCBpcyBzdGFydGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZTc0
M2ZmM2Y2MDkxMGExZDE0NDBmMTQ0ZDZiZDk1YTFmYzczNWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlv
bi5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0
aW9uIGFib3J0cyBvbmdvaW5nIG9uZS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlv
biA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjZWl2ZWRTdGFydCA9IGZhbHNlOwor
cmVjb2duaXRpb24ub25zdGFydCA9IChldmVudCkgPT4geworICAgIHJlY2VpdmVkU3RhcnQgPSB0
cnVlOworfQorCityZWNvZ25pdGlvbi5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgc2hvdWxk
QmVUcnVlKCJyZWNlaXZlZFN0YXJ0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVu
dC5lcnJvciIsICJhYm9ydGVkIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5t
ZXNzYWdlIiwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIik7CisKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3Nob3Vs
ZE5vdFRocm93KCJzZWNvbmRSZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIp
Oworc2hvdWxkTm90VGhyb3coInNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="431655"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414693</attachid>
            <date>2020-11-20 10:13:50 -0800</date>
            <delta_ts>2020-11-20 10:14:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120101349.patch</filename>
            <type>text/plain</type>
            <size>71515</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uNDYzOGJiOWIzNmM4YWQyZjI1NjNhY2Q2OTNiNzIz
ZGFkMTkyNWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp+U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOiBQdXNo
IGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAgICAgcHVsbCBmcm9t
IGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJlYWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFy
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Omludm9rZVVwZGF0ZVN0YXRlQ2Fs
bGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwuaDogQWRkZWQuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwg
cHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6IEFib3J0IG9uZ29pbmcgcmVxdWVzdCBp
ZiBhbnkgYW5kIHNlbmQgZXJyb3IgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyOjpzdGFydCk6IFN0YXJ0IGhhbmRsaW5nIGEgbmV3IHJlcXVlc3QgYW5kIHNlbmQgc3Rh
cnQgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVy
bmFsKTogQ3JlYXRlIGEgbmV3IHNvdXJjZSBhbmQgc2V0IGNhbGxiYWNrcyBvZiB0aGUgc291cmNl
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcCk6IFN0b3Agb25nb2lu
ZyByZXF1ZXN0LiBUaGlzIHNlbmRzIGVuZCBldmVudCBzeW5jaHJvbm91c2x5IG5vdyBhcyB3ZSBj
YW4gc3RvcAorICAgICAgICBjYXB0dXJpbmcgYXVkaW8gaW1tZWRpYXRlbHkuIEFmdGVyIHdlIGlt
cGxlbWVudCBzcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCwgdGhpcyBjb3VsZCBiZSBhc3luY2hy
b25vdXMuIAorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcEludGVybmFs
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6Y3VycmVudENsaWVudElkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9N
ZWRpYVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06IE1vdmUgY29kZSBmb3Ig
Y3JlYXRpbmcgQ01TYW1wbGVCdWZmZXJSZWYgdG8KKyAgICAgICAgTWVkaWFVdGlsaXRpZXMuaC9j
cHAgc28gaXQgY2FuIHNoYXJlZCBiZXR3ZWVuIFNwZWVjaFJlY29nbml0aW9uIGFuZCBVc2VyTWVk
aWEsIGFzIFNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIAorICAgICAgICB3aWxsIHRha2UgQ01T
YW1wbGVCdWZmZXJSZWYgYXMgaW5wdXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zv
cm1hdERlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyKTogRGVsZXRlZC4KKwogMjAyMC0xMS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxlKCkgc2hvdWxkIHJlamVj
dCBwcm9taXNlIHdpdGggYW4gQWJvcnRFcnJvciB3aGVuIHRoZSBuZXR3b3JrIGxvYWQgZmFpbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRiNDcxYTRlYjgyMGY1MjI3NjJiMmExODNmM2RiYjc3NzdjOWIzMi4uYjll
YTI1ODZiMGM3NzlmOWY0NjQ3N2RkNTRkNjI1MTY3OTg4ZGE5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MyBAQAorMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24g
bWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVx
dWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKworMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3Bl
ZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKwogMjAyMC0xMS0xOSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJ
c3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZpY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDAyM2UxNTNkYTNjNjdkZTE3YTI1MmJlZjFjYWIyNjg3ZDQzOTMwNmQuLjYy
YmM1ZWVkNTY5NDQxNTk0ZmUyZDA4Y2JjNDYwMGEzNjUyZWMxYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTI0LDYgKzEyNCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKICAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAogICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmgKIAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNo
dW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNTllOTY1ZjUwZDc2ZGZkMGExYjdk
MzFiNTk0YzZlZjZjM2QyMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYgdXBk
YXRlU3RhdGVDYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1faW1w
bCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oV1RGTW92
ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZVN0YXRlQ2FsbGJhY2spKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKHVwZGF0ZVN0
YXRlQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhiYzE1YTJhMTAzYzAyMzE2OWNlMjYw
NWM4Njc5YTgwNDZkNzdjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRp
bWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQ
bGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgVXBk
YXRlU3RhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+OworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgVXBkYXRlU3Rh
dGVDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPiBtX2lt
cGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTY4YWVjN2EzYjZm
NjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRp
Zmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZT47CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYTVmZDY5MTE0OTQ1NzdlNDFmMGNhYzQ4MDE1Yzc3NGJjMjMz
ZWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTAsMCArMSwxOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjZW5k
aWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitz
dGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsK
K30KKworc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICByZXR1cm4gbG9nZ2Vy
OworfQorI2VuZGlmCisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNr
LCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYgdXBkYXRlU3RhdGVDYWxsYmFjaykKKyAgICA6IG1faWRl
bnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwg
bV91cGRhdGVTdGF0ZUNhbGxiYWNrKFdURk1vdmUodXBkYXRlU3RhdGVDYWxsYmFjaykpCisgICAg
LCBtX3dlYWtUaGlzKG1ha2VXZWFrUHRyKHRoaXMpKQoreworICAgIGF1dG8gZGV2aWNlcyA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBPcHRp
b25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOworICAgIGZvciAoYXV0byBkZXZpY2Ug
OiBkZXZpY2VzKSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgIAorICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAg
ICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0
KCkpIHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAg
ICAgICBpbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKHsgIk5vIGRldmljZSBpcyBhdmFpbGFibGUg
Zm9yIGF1ZGlvIGNhcHR1cmUiIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0
U291cmNlKCpjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIgLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFVwZGF0ZVN0
YXRlQ2FsbGJhY2smJiB1cGRhdGVTdGF0ZUNhbGxiYWNrKQorICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCisgICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisg
ICAgLCBtX3VwZGF0ZVN0YXRlQ2FsbGJhY2soV1RGTW92ZSh1cGRhdGVTdGF0ZUNhbGxiYWNrKSkK
K3sKKyAgICBzZXRTb3VyY2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c2V0U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAg
ICAgICBpbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7Cisg
ICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNl
LT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisKKyNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKyAgICBpZiAoIW51bGxMb2dnZXIoKS5nZXQoKSkgeworICAgICAg
ICBudWxsTG9nZ2VyKCkgPSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbnVsbExvZ2dl
cigpLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c2V0
TG9nZ2VyKCpudWxsTG9nZ2VyKCksIG5leHRMb2dJZGVudGlmaWVyKCkpOworI2VuZGlmCit9CisK
K1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsKCkKK3sKKyAgICBpZiAobV9zb3VyY2UpCisgICAgICAgIG1fc291cmNl
LT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CisKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0
YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3Jp
cHRpb24oKSAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRp
b1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCAq
bV9zb3VyY2UpOworICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9E
ZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVVwZGF0ZVN0YXRlQ2FsbGJhY2soeyAi
VW5hYmxlIHRvIHNldCB0aGUgaW5wdXQgZm9ybWF0IG9mIGRhdGEgc291cmNlIiB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRP
dXRwdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVVwZGF0
ZVN0YXRlQ2FsbGJhY2soeyAiVW5hYmxlIHRvIHNldCB0aGUgb3V0cHV0IGZvcm1hdCBvZiBkYXRh
IHNvdXJjZSIgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBt
X2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgIH0KKworICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrVGhpcywgdGltZSwgYXVkaW9EZXNjcmlw
dGlvbiwgc2FtcGxlQ291bnRdIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBBU1NFUlQobV9kYXRhU291cmNlKTsKKyAgICAgICAgYXV0byBk
YXRhID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNhbXBsZUNvdW50KSB9OworICAgICAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1w
bGVzKCpkYXRhLmxpc3QoKSwgc2FtcGxlQ291bnQsIHRpbWUudGltZVZhbHVlKCksIDAsIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6Q29weSk7CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRh
dGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyAgICB9KTsKKyNlbHNlCisgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQp
OworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
c291cmNlU3RhcnRlZCgpCit7CisgICAgaW52b2tlVXBkYXRlU3RhdGVDYWxsYmFjayhXVEY6Om51
bGxvcHQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNv
dXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7
CisgICAgaW52b2tlVXBkYXRlU3RhdGVDYWxsYmFjayh7ICJDYXB0dXJlIHNvdXJjZSBzdG9wcGVk
IiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3Vy
Y2VNdXRlZENoYW5nZWQoKQoreworICAgIGludm9rZVVwZGF0ZVN0YXRlQ2FsbGJhY2soeyAiQ2Fw
dHVyZSBzb3VyY2UgZ290IG11dGVkIiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjppbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKE9wdGlvbmFsPFN0cmlu
Zz4gZXJyb3JNZXNzYWdlKQoreworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBt
X3VwZGF0ZVN0YXRlQ2FsbGJhY2soZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrVGhpcywg
b3B0aW9uYWxFcnJvciA9IGVycm9yTWVzc2FnZV0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fdXBkYXRlU3RhdGVDYWxsYmFjayhvcHRp
b25hbEVycm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmI5Y2Rm
Mjg4ZDNmZTI5ZTliNmU1MWIxMDAyYWYzYjM1MTExODk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OworICAgIHVzaW5nIFVwZGF0
ZVN0YXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPjsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKERhdGFDYWxsYmFjayYmLCBVcGRhdGVT
dGF0ZUNhbGxiYWNrJiYpOworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwo
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURl
dmljZSYsIERhdGFDYWxsYmFjayYmLCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYpOworICAgIH5TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBz
ZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIHZvaWQgaW52b2tlVXBkYXRlU3Rh
dGVDYWxsYmFjayhPcHRpb25hbDxTdHJpbmc+IGVycm9yTWVzc2FnZSk7CisKKyAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmlu
YWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsK
KyAgICBVcGRhdGVTdGF0ZUNhbGxiYWNrIG1fdXBkYXRlU3RhdGVDYWxsYmFjazsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CisjZW5kaWYK
KworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4gbV93ZWFr
VGhpczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGM4NWEwNzllZjY4ZjZjYTFhNDJjOTk0OGI2N2JmMDNjNTU1ZTQ0NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
Y3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5k
YXRpb24uaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVz
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpT
cGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVs
ZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpyZXNldCgpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRy
OworCisgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9
OworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgcmVzZXQoKTsKKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9
IGlkZW50aWZpZXI7CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTdGFydCkpOworCisgICAgc3RhcnRJbnRlcm5hbChpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGRhdGFDYWxsYmFj
ayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2Ny
aXB0aW9uLCBQQUw6OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworI2VuZGlmCisgICAgfTsKKworICAgIGF1dG8gdXBkYXRlU3RhdGVD
YWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVy
XShPcHRpb25hbDxTdHJpbmc+IGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZp
ZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRpZmllcik7CisgICAgICAg
IGlmICghZXJyb3JNZXNzYWdlKSB7CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgKmVycm9yTWVzc2FnZSB9OworICAg
ICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKGlkZW50aWZpZXIsIGVycm9yKSk7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAg
ICB9OworCisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZT4oV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZVN0YXRlQ2FsbGJh
Y2spKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmlu
YWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RvcEludGVybmFsKCk7CisKKyAg
ICBpZiAoc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0OjpZZXMpIHsKKyAgICAgICAgLy8gVE9ETzogZ2VuZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBz
cGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCBpcyBpbXBsZW1lbnRlZC4KKyAgICAgICAgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0RGF0YXM7CisgICAgICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2Ns
aWVudElkZW50aWZpZXIsIHJlc3VsdERhdGFzKSk7CisgICAgfQorCisgICAgbV9kZWxlZ2F0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICBtX2NsaWVudElkZW50
aWZpZXIgPSBXVEY6Om51bGxvcHQ7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcElu
dGVybmFsKCkKK3sKKyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxs
cHRyOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTUxNTYzYjE4YzcxNjI3MjljOTZmMWNkNGZiNWZmMTY0MTcxODRmZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXplcj4geworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OworICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllcik7CisgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5l
cmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1
cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVy
OyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNldCgpOworICAgIHZvaWQgc3RhcnRJbnRlcm5h
bChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHN0b3BJbnRlcm5hbCgpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2Fs
bGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNTk0NTgxYjcyMDkxMmMwYjk1NTNiYjQxMGQ1MWQ4OGQw
YTgxNTZjLi44YWEzYWM0ZjY5MDJkNjIyMDRiNWM3YjI2NDhmMmIwZjQ1NDUwYTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTk5LDYgKzE5OSw5IEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNw
cAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIzM2M0YmNlNzRk
ZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVmMTI2MDI1ZDMy
ZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgsNiArMjM4LDcg
QEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvS2V5
RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCiBw
bGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3JtL2NvY29hL01l
ZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1t
CiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NWE1MjJjMmFiZWIwZDE2
ZDVjNjg4NmM3MTcwNjU3MjQ5MjBjOTRlLi5lN2U1YjkyODQxYzkzOWE1NzYwZjRhYjM0NzRlNzMx
MTQ0MDM3MTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMjAsOCArMTIwLDggQEAKIAkJMDczNzk0RkUxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmggKi87IH07CiAJCTA3MzhFNUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEyNDk5NjhBRDAwREExMDFDIC8qIEFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi87IH07CiAJCTA3M0ExNTU0MjE3
N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJl
bW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9Owot
CQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4
NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07CisJCTA3M0I4NzY3
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc0
RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VG
NTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC0yNzg3LDYgKzI3ODcs
OCBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLzsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDIx
MjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFC
IC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgy
ODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
ODQ4LDYgKzI4NTAsOSBAQAogCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3Nl
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJ
OTNGMUQ1QzExMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAw
ODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YyQ0M5MzI0MjdGQjlD
MDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJS
YW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRjZCODIxMjU2N0EwRDgwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVCMTI3Rjcw
QjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovOyB9OwogCQk5M0Y5MjU0MzBGN0VG
NUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRp
b0J1dHRvbkdyb3Vwcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIw
MDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKQEAgLTExNDI5LDYgKzExNDM0LDEwIEBACiAJ
CTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIw
MkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMw
RDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgx
RjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTE1MTUsNiArMTE1MjQsMTEgQEAKIAkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xMb3NlQ29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hh
cmFjdGVyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhcmFjdGVy
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUIyNTY3OUY2RjAw
QTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgxRDI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjZGMUVBMTI3RjcwQjEwMDU1Q0IwNiAv
KiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHTENvbnRleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjZGMUVCMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQzEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250
ZXh0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNTcyLDYgKzIzNTg2LDEzIEBACiAJ
CQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0Y2
QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjQ0MDksNiAr
MjQ0MzAsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29h
Lm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBN
ZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1l
ZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1JTUVU
eXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQgLyog
TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0yNTYw
MSw2ICsyNTYyNCw3IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTkzRjZCODBFMjU2
NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUg
LyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApAQCAt
MjU2MTAsNiArMjU2MzQsMTEgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBC
QjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8s
CisJCQkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgKi8sCisJCQkJOTNGNkI4MUIyNTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovLAorCQkJCTkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4
OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJ
OTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuY3BwICovLAorCQkJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8sCiAJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJCTkzQTA0ODI0MjU0
OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywK
IAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2MzQsNiArMjU2NjMsOCBAQAogCQkJCTkz
NDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRs
ICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaWRsICovLApAQCAtMzM1MTksNiArMzM1NTAsNyBAQAogCQkJCTkzMkNDMEI3MURG
RkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3Ry
YWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBN
ZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIyNTY0RTdGMzAwQjMy
MTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxQkFDMzFCRDgw
NjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICszNDQ0Miw5IEBACiAJCQkJNjI2Q0RFMEYxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODgg
LyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0Y2QjgyMTI1NjdBMEQ4MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MUYyNTY3QTA4QzAwQTA4NDg4
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDI0LDYgKzM0NDU5LDcgQEAKIAkJCQk5
M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVB
MjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
OGI0ZjU2MzMyZDA1OWQ5ZmIxNzc1NTQzMGExZjhlMDU2MmNjYzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJN
ZWRpYVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgor
I2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2lu
Zy5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERl
c2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlv
biA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlv
biwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVy
cm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGlt
ZSwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIC8vIEZJWE1FOiBjaGVjayBpZiB3ZSBjYW4g
cmV1c2UgdGhlIGZvcm1hdCBmb3IgbXVsdGlwbGUgc2FtcGxlIGJ1ZmZlcnMuCisgICAgYXV0byBm
b3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICBp
ZiAoIWZvcm1hdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVD
b3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVz
Y3JpcHRpb25zIGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CisKKyAgICBl
cnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVm
ZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBk
b3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgaWYgKGVycm9y
KSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRp
byBidWZmZXIgbGlzdCBmYWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiNjdjNjY3ODVkNDdkMjcwMmI1YzY0OWVmMjg1ZTRiMGE1ZTEyNjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPENvcmVNZWRpYS9DTVRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24qIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciogQ01TYW1w
bGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOworCitSZXRhaW5QdHI8Q01Gb3Jt
YXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJik7CitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIENNVGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IGFjYjQ5NDQzMDhkMWNhNDNmOWY2OTljNTEwNDYwMDhm
M2Q3MzU1MDcuLmJkZDcwZmQ5Y2FhZTJkZWNjY2IyNDBiYzIxYjI1YTQyZmM2Mzc2NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1ZmZl
ckxpc3QuaCIKICNpbmNsdWRlIDxBVkZvdW5kYXRpb24vQVZBc3NldFdyaXRlci5oPgpAQCAtNDQz
LDQwICs0NDQsNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRl
b1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICBtX3ZpZGVvQ29tcHJl
c3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24pCi17Ci0gICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLmRlc2NyaXB0aW9uKTsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51
bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBOVUxMLCAwLCBOVUxMLCBO
VUxMLCAmZm9ybWF0KTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOwotfQotCi1zdGF0
aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQot
ewotICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlw
dGlvbik7Ci0gICAgaWYgKCFmb3JtYXQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9y
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgTlVMTCwgZmFsc2UsIE5VTEwsIE5VTEwsIGZvcm1hdC5nZXQoKSwgc2Ft
cGxlQ291bnQsIHRpbWUsIE5VTEwsICZzYW1wbGVCdWZmZXIpOwotICAgIGlmIChlcnJvcikgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyIGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotCi0gICAgZXJyb3IgPSBD
TVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQo
KSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8
V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwotICAgIGlmIChlcnJvcikgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gYnVmZmVyOwotfQotCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjph
cHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9
IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRp
b1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFj
Y2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5kNjkwNzNmODU5MDdiYmJjMzcyZWZmZjY1MDgzOGZkYjFk
MDc3MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwCkBAIC00NiwxMiArNDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGkKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3Ry
aW5nJiYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRf
dCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5n
UmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdv
aW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9y
ZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5m
byA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlm
aWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJu
YXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikgfTsKLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1f
cGVuZGluZ1JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgYXV0byYgbmV3UmVxdWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihX
VEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJt
aXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1JlcXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbmkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3
ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVz
dCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNp
c2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRv
IGVycm9yID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWls
ZWQiX3MgfTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZp
ZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25n
b2luZ1JlcXVlc3RzLmdldChpZGVudGlmaWVyKSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRl
bnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Omhh
bmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmICghbV9yZWNvZ25pemVyKSB7Cisg
ICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIHVwZGF0ZSkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAg
ICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlw
ZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAg
ICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAg
ICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1f
cmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0so
Y2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNs
aWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0
KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhj
bGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGll
bnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFr
ZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1
dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRS
ZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50
aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7
CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3Qg
PSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1
ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8g
YW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9w
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBi
eSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2du
aXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1f
cmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2
LDEyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAq
ZXJyb3IpOwogICAgIGlmICh0eXBlID09IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6UmVzdWx0KQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlUmVzdWx0KGNsaWVudElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVw
ZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUp
KTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZl
ZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9w
dGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBP
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBX
VEY6Om51bGxvcHQpOworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1Jl
cXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
Q2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0ZmI0OGUxNWY1NzQ1NTU5YmE2YzFhYmZjZDIzNjYxNDQwMzRmZWY0Li45
Nzc1MDdkOTVlNGFkYjY1NjkxMzIwOTNjMzhkNzI3ZWY1ZDAzMmM1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2du
aXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzIHRlc3RzIGZyb20gdXBzdHJl
YW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA1Y2Y1YTAwYzA5MjE5OWRjYTUzMzhkZTgyY2I5OTE4
ZmJiYTJlZjEuLmI0MzBhMmEyZGQ2YjM0YTY5NThkNTI0ZWYxZGUzZDA4NmMyYWI0ODMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTc5LDYgKzE3OSw4IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQk9i
amVjdC1sZWFrLmh0bWwgWyBTa2lwIF0KIGZhc3QvZm9ybXMvY2FsbC10ZXh0LWRpZC1jaGFuZ2Ut
aW4tdGV4dC1maWVsZC13aGVuLXR5cGluZy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1p
c3Npb24tZXJyb3IuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1y
ZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIE9ubHkgcGFydGlh
bCBzdXBwb3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmE3NDYxZGM3Y2MwMTRkYjYyZDY1
YzZiMjBiNmIwZGEyNTZlYTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTYgQEAKK1ZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0
bHkgd2hlbiBzdGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2du
aXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0
KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitSZWNlaXZlZCBzdGFydCBldmVudAorUmVjZWl2
ZWQgYXVkaW9zdGFydCBldmVudAorUEFTUyByZWNvZ25pdGlvbi5zdG9wKCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitSZWNlaXZlZCBhdWRpb2VuZCBldmVudAorUmVjZWl2ZWQgZW5kIGV2ZW50
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10aGVuLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ1ZDJiMDc4YzZl
MjE5NGM1OWU3ODlkMzVhNDY3OGIxNGRmY2VjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3
aGVuIHN0YXJ0IGFuZCBzdG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LiIpOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90
VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNvZ25p
dGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIHN0YXJ0IGV2
ZW50Iik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9zdGFydCA9IChldmVudCkgPT4geworICAg
IGRlYnVnKCJSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50Iik7CisKKyAgICBzaG91bGROb3RUaHJv
dygicmVjb2duaXRpb24uc3RvcCgpIik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9lbmQgPSAo
ZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQiKTsKK30KKwor
cmVjb2duaXRpb24ub25lbmQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgZW5k
IGV2ZW50Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coInJl
Y29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMTBjOTRhMjRjYzk4NWYwZjYyNjA1M2RkMTI0NDMx
YjM1YzNkN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24gYWJvcnRzIG9u
Z29pbmcgb25lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNvZ25p
dGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
c2Vjb25kUmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHJlY2VpdmVkU3RhcnQgaXMgdHJ1ZQorUEFTUyBldmVudC5lcnJv
ciBpcyAiYWJvcnRlZCIKK1BBU1MgZXZlbnQubWVzc2FnZSBpcyAiQW5vdGhlciByZXF1ZXN0IGlz
IHN0YXJ0ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2du
aXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFlNzQzZmYz
ZjYwOTEwYTFkMTQ0MGYxNDRkNmJkOTVhMWZjNzM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0
bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24g
YWJvcnRzIG9uZ29pbmcgb25lLiIpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0g
bmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNlaXZlZFN0YXJ0ID0gZmFsc2U7CityZWNv
Z25pdGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgcmVjZWl2ZWRTdGFydCA9IHRydWU7
Cit9CisKK3JlY29nbml0aW9uLm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKKyAgICBzaG91bGRCZVRy
dWUoInJlY2VpdmVkU3RhcnQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmVy
cm9yIiwgImFib3J0ZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm1lc3Nh
Z2UiLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworc2hvdWxkTm90
VGhyb3coInNlY29uZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7Citz
aG91bGROb3RUaHJvdygic2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkNTM0YTA2YTIyYTNiMjk3Yjc1
NDNkNDFiODY5ZjU0ZWYwYmNjMmIuLjk3ZDFmZjA5Y2QwZmEwMGVjODk5ZGU0NDEyMTFjYjljYzNi
MGMxZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04
MDQsNCArODA0LDYgQEAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtcG9y
dC1kZWxheS5odG1sIFsgUGFzcyBdCiAjIFdlYktpdDIgb25seS4KIGpzL3Rocm93LWxhcmdlLXN0
cmluZy1vb20uaHRtbCBbIFBhc3MgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9u
LWVycm9yLmh0bWwgWyBQYXNzIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdGhlbi1zdG9wLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KIGZ1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tZW50ZXItd2hpbGUtZXhpdGluZy5odG1sIFsgUGFzcyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414694</attachid>
            <date>2020-11-20 10:14:39 -0800</date>
            <delta_ts>2020-11-20 10:24:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120101438.patch</filename>
            <type>text/plain</type>
            <size>71515</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uNDYzOGJiOWIzNmM4YWQyZjI1NjNhY2Q2OTNiNzIz
ZGFkMTkyNWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp+U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOiBQdXNo
IGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAgICAgcHVsbCBmcm9t
IGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJlYWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFy
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Omludm9rZVVwZGF0ZVN0YXRlQ2Fs
bGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwuaDogQWRkZWQuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwg
cHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6IEFib3J0IG9uZ29pbmcgcmVxdWVzdCBp
ZiBhbnkgYW5kIHNlbmQgZXJyb3IgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyOjpzdGFydCk6IFN0YXJ0IGhhbmRsaW5nIGEgbmV3IHJlcXVlc3QgYW5kIHNlbmQgc3Rh
cnQgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVy
bmFsKTogQ3JlYXRlIGEgbmV3IHNvdXJjZSBhbmQgc2V0IGNhbGxiYWNrcyBvZiB0aGUgc291cmNl
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcCk6IFN0b3Agb25nb2lu
ZyByZXF1ZXN0LiBUaGlzIHNlbmRzIGVuZCBldmVudCBzeW5jaHJvbm91c2x5IG5vdyBhcyB3ZSBj
YW4gc3RvcAorICAgICAgICBjYXB0dXJpbmcgYXVkaW8gaW1tZWRpYXRlbHkuIEFmdGVyIHdlIGlt
cGxlbWVudCBzcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCwgdGhpcyBjb3VsZCBiZSBhc3luY2hy
b25vdXMuIAorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcEludGVybmFs
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6Y3VycmVudENsaWVudElkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9N
ZWRpYVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06IE1vdmUgY29kZSBmb3Ig
Y3JlYXRpbmcgQ01TYW1wbGVCdWZmZXJSZWYgdG8KKyAgICAgICAgTWVkaWFVdGlsaXRpZXMuaC9j
cHAgc28gaXQgY2FuIHNoYXJlZCBiZXR3ZWVuIFNwZWVjaFJlY29nbml0aW9uIGFuZCBVc2VyTWVk
aWEsIGFzIFNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIAorICAgICAgICB3aWxsIHRha2UgQ01T
YW1wbGVCdWZmZXJSZWYgYXMgaW5wdXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zv
cm1hdERlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyKTogRGVsZXRlZC4KKwogMjAyMC0xMS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxlKCkgc2hvdWxkIHJlamVj
dCBwcm9taXNlIHdpdGggYW4gQWJvcnRFcnJvciB3aGVuIHRoZSBuZXR3b3JrIGxvYWQgZmFpbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRiNDcxYTRlYjgyMGY1MjI3NjJiMmExODNmM2RiYjc3NzdjOWIzMi4uYjll
YTI1ODZiMGM3NzlmOWY0NjQ3N2RkNTRkNjI1MTY3OTg4ZGE5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MyBAQAorMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24g
bWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVx
dWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKworMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3Bl
ZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKwogMjAyMC0xMS0xOSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJ
c3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZpY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDAyM2UxNTNkYTNjNjdkZTE3YTI1MmJlZjFjYWIyNjg3ZDQzOTMwNmQuLjYy
YmM1ZWVkNTY5NDQxNTk0ZmUyZDA4Y2JjNDYwMGEzNjUyZWMxYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTI0LDYgKzEyNCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKICAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAogICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmgKIAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNo
dW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNTllOTY1ZjUwZDc2ZGZkMGExYjdk
MzFiNTk0YzZlZjZjM2QyMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYgdXBk
YXRlU3RhdGVDYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1faW1w
bCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oV1RGTW92
ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZVN0YXRlQ2FsbGJhY2spKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKHVwZGF0ZVN0
YXRlQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhiYzE1YTJhMTAzYzAyMzE2OWNlMjYw
NWM4Njc5YTgwNDZkNzdjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRp
bWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQ
bGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgVXBk
YXRlU3RhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+OworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgVXBkYXRlU3Rh
dGVDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPiBtX2lt
cGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTY4YWVjN2EzYjZm
NjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRp
Zmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZT47CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYTVmZDY5MTE0OTQ1NzdlNDFmMGNhYzQ4MDE1Yzc3NGJjMjMz
ZWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTAsMCArMSwxOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjZW5k
aWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitz
dGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsK
K30KKworc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICByZXR1cm4gbG9nZ2Vy
OworfQorI2VuZGlmCisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNr
LCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYgdXBkYXRlU3RhdGVDYWxsYmFjaykKKyAgICA6IG1faWRl
bnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwg
bV91cGRhdGVTdGF0ZUNhbGxiYWNrKFdURk1vdmUodXBkYXRlU3RhdGVDYWxsYmFjaykpCisgICAg
LCBtX3dlYWtUaGlzKG1ha2VXZWFrUHRyKHRoaXMpKQoreworICAgIGF1dG8gZGV2aWNlcyA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBPcHRp
b25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOworICAgIGZvciAoYXV0byBkZXZpY2Ug
OiBkZXZpY2VzKSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgIAorICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAg
ICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0
KCkpIHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAg
ICAgICBpbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKHsgIk5vIGRldmljZSBpcyBhdmFpbGFibGUg
Zm9yIGF1ZGlvIGNhcHR1cmUiIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0
U291cmNlKCpjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIgLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFVwZGF0ZVN0
YXRlQ2FsbGJhY2smJiB1cGRhdGVTdGF0ZUNhbGxiYWNrKQorICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCisgICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisg
ICAgLCBtX3VwZGF0ZVN0YXRlQ2FsbGJhY2soV1RGTW92ZSh1cGRhdGVTdGF0ZUNhbGxiYWNrKSkK
K3sKKyAgICBzZXRTb3VyY2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c2V0U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAg
ICAgICBpbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7Cisg
ICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNl
LT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisKKyNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKyAgICBpZiAoIW51bGxMb2dnZXIoKS5nZXQoKSkgeworICAgICAg
ICBudWxsTG9nZ2VyKCkgPSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbnVsbExvZ2dl
cigpLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c2V0
TG9nZ2VyKCpudWxsTG9nZ2VyKCksIG5leHRMb2dJZGVudGlmaWVyKCkpOworI2VuZGlmCit9CisK
K1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsKCkKK3sKKyAgICBpZiAobV9zb3VyY2UpCisgICAgICAgIG1fc291cmNl
LT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CisKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0
YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3Jp
cHRpb24oKSAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRp
b1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCAq
bV9zb3VyY2UpOworICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9E
ZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVVwZGF0ZVN0YXRlQ2FsbGJhY2soeyAi
VW5hYmxlIHRvIHNldCB0aGUgaW5wdXQgZm9ybWF0IG9mIGRhdGEgc291cmNlIiB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRP
dXRwdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVVwZGF0
ZVN0YXRlQ2FsbGJhY2soeyAiVW5hYmxlIHRvIHNldCB0aGUgb3V0cHV0IGZvcm1hdCBvZiBkYXRh
IHNvdXJjZSIgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBt
X2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgIH0KKworICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrVGhpcywgdGltZSwgYXVkaW9EZXNjcmlw
dGlvbiwgc2FtcGxlQ291bnRdIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBBU1NFUlQobV9kYXRhU291cmNlKTsKKyAgICAgICAgYXV0byBk
YXRhID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNhbXBsZUNvdW50KSB9OworICAgICAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1w
bGVzKCpkYXRhLmxpc3QoKSwgc2FtcGxlQ291bnQsIHRpbWUudGltZVZhbHVlKCksIDAsIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6Q29weSk7CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRh
dGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyAgICB9KTsKKyNlbHNlCisgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQp
OworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
c291cmNlU3RhcnRlZCgpCit7CisgICAgaW52b2tlVXBkYXRlU3RhdGVDYWxsYmFjayhXVEY6Om51
bGxvcHQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNv
dXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7
CisgICAgaW52b2tlVXBkYXRlU3RhdGVDYWxsYmFjayh7ICJDYXB0dXJlIHNvdXJjZSBzdG9wcGVk
IiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3Vy
Y2VNdXRlZENoYW5nZWQoKQoreworICAgIGludm9rZVVwZGF0ZVN0YXRlQ2FsbGJhY2soeyAiQ2Fw
dHVyZSBzb3VyY2UgZ290IG11dGVkIiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjppbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKE9wdGlvbmFsPFN0cmlu
Zz4gZXJyb3JNZXNzYWdlKQoreworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBt
X3VwZGF0ZVN0YXRlQ2FsbGJhY2soZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrVGhpcywg
b3B0aW9uYWxFcnJvciA9IGVycm9yTWVzc2FnZV0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fdXBkYXRlU3RhdGVDYWxsYmFjayhvcHRp
b25hbEVycm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmI5Y2Rm
Mjg4ZDNmZTI5ZTliNmU1MWIxMDAyYWYzYjM1MTExODk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OworICAgIHVzaW5nIFVwZGF0
ZVN0YXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPjsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKERhdGFDYWxsYmFjayYmLCBVcGRhdGVT
dGF0ZUNhbGxiYWNrJiYpOworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwo
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURl
dmljZSYsIERhdGFDYWxsYmFjayYmLCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYpOworICAgIH5TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBz
ZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIHZvaWQgaW52b2tlVXBkYXRlU3Rh
dGVDYWxsYmFjayhPcHRpb25hbDxTdHJpbmc+IGVycm9yTWVzc2FnZSk7CisKKyAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmlu
YWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsK
KyAgICBVcGRhdGVTdGF0ZUNhbGxiYWNrIG1fdXBkYXRlU3RhdGVDYWxsYmFjazsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CisjZW5kaWYK
KworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4gbV93ZWFr
VGhpczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGM4NWEwNzllZjY4ZjZjYTFhNDJjOTk0OGI2N2JmMDNjNTU1ZTQ0NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
Y3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5k
YXRpb24uaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVz
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpT
cGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVs
ZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpyZXNldCgpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRy
OworCisgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9
OworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgcmVzZXQoKTsKKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9
IGlkZW50aWZpZXI7CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTdGFydCkpOworCisgICAgc3RhcnRJbnRlcm5hbChpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGRhdGFDYWxsYmFj
ayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2Ny
aXB0aW9uLCBQQUw6OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworI2VuZGlmCisgICAgfTsKKworICAgIGF1dG8gdXBkYXRlU3RhdGVD
YWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVy
XShPcHRpb25hbDxTdHJpbmc+IGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZp
ZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRpZmllcik7CisgICAgICAg
IGlmICghZXJyb3JNZXNzYWdlKSB7CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgKmVycm9yTWVzc2FnZSB9OworICAg
ICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKGlkZW50aWZpZXIsIGVycm9yKSk7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAg
ICB9OworCisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZT4oV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZVN0YXRlQ2FsbGJh
Y2spKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmlu
YWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RvcEludGVybmFsKCk7CisKKyAg
ICBpZiAoc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0OjpZZXMpIHsKKyAgICAgICAgLy8gVE9ETzogZ2VuZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBz
cGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCBpcyBpbXBsZW1lbnRlZC4KKyAgICAgICAgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0RGF0YXM7CisgICAgICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2Ns
aWVudElkZW50aWZpZXIsIHJlc3VsdERhdGFzKSk7CisgICAgfQorCisgICAgbV9kZWxlZ2F0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICBtX2NsaWVudElkZW50
aWZpZXIgPSBXVEY6Om51bGxvcHQ7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcElu
dGVybmFsKCkKK3sKKyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxs
cHRyOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTUxNTYzYjE4YzcxNjI3MjljOTZmMWNkNGZiNWZmMTY0MTcxODRmZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXplcj4geworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OworICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllcik7CisgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5l
cmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1
cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVy
OyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNldCgpOworICAgIHZvaWQgc3RhcnRJbnRlcm5h
bChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHN0b3BJbnRlcm5hbCgpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2Fs
bGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNTk0NTgxYjcyMDkxMmMwYjk1NTNiYjQxMGQ1MWQ4OGQw
YTgxNTZjLi44YWEzYWM0ZjY5MDJkNjIyMDRiNWM3YjI2NDhmMmIwZjQ1NDUwYTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTk5LDYgKzE5OSw5IEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNw
cAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIzM2M0YmNlNzRk
ZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVmMTI2MDI1ZDMy
ZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgsNiArMjM4LDcg
QEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvS2V5
RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCiBw
bGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3JtL2NvY29hL01l
ZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1t
CiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NWE1MjJjMmFiZWIwZDE2
ZDVjNjg4NmM3MTcwNjU3MjQ5MjBjOTRlLi5lN2U1YjkyODQxYzkzOWE1NzYwZjRhYjM0NzRlNzMx
MTQ0MDM3MTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMjAsOCArMTIwLDggQEAKIAkJMDczNzk0RkUxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmggKi87IH07CiAJCTA3MzhFNUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEyNDk5NjhBRDAwREExMDFDIC8qIEFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi87IH07CiAJCTA3M0ExNTU0MjE3
N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJl
bW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9Owot
CQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4
NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07CisJCTA3M0I4NzY3
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc0
RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VG
NTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC0yNzg3LDYgKzI3ODcs
OCBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLzsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDIx
MjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFC
IC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgy
ODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
ODQ4LDYgKzI4NTAsOSBAQAogCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3Nl
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJ
OTNGMUQ1QzExMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAw
ODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YyQ0M5MzI0MjdGQjlD
MDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJS
YW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRjZCODIxMjU2N0EwRDgwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVCMTI3Rjcw
QjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovOyB9OwogCQk5M0Y5MjU0MzBGN0VG
NUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRp
b0J1dHRvbkdyb3Vwcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIw
MDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKQEAgLTExNDI5LDYgKzExNDM0LDEwIEBACiAJ
CTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIw
MkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMw
RDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgx
RjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTE1MTUsNiArMTE1MjQsMTEgQEAKIAkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xMb3NlQ29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hh
cmFjdGVyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhcmFjdGVy
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUIyNTY3OUY2RjAw
QTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgxRDI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjZGMUVBMTI3RjcwQjEwMDU1Q0IwNiAv
KiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHTENvbnRleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjZGMUVCMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQzEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250
ZXh0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNTcyLDYgKzIzNTg2LDEzIEBACiAJ
CQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0Y2
QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjQ0MDksNiAr
MjQ0MzAsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29h
Lm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBN
ZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1l
ZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1JTUVU
eXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQgLyog
TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0yNTYw
MSw2ICsyNTYyNCw3IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTkzRjZCODBFMjU2
NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUg
LyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApAQCAt
MjU2MTAsNiArMjU2MzQsMTEgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBC
QjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8s
CisJCQkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgKi8sCisJCQkJOTNGNkI4MUIyNTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovLAorCQkJCTkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4
OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJ
OTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuY3BwICovLAorCQkJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8sCiAJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJCTkzQTA0ODI0MjU0
OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywK
IAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2MzQsNiArMjU2NjMsOCBAQAogCQkJCTkz
NDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRs
ICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaWRsICovLApAQCAtMzM1MTksNiArMzM1NTAsNyBAQAogCQkJCTkzMkNDMEI3MURG
RkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3Ry
YWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBN
ZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIyNTY0RTdGMzAwQjMy
MTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxQkFDMzFCRDgw
NjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICszNDQ0Miw5IEBACiAJCQkJNjI2Q0RFMEYxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODgg
LyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0Y2QjgyMTI1NjdBMEQ4MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MUYyNTY3QTA4QzAwQTA4NDg4
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDI0LDYgKzM0NDU5LDcgQEAKIAkJCQk5
M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVB
MjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
OGI0ZjU2MzMyZDA1OWQ5ZmIxNzc1NTQzMGExZjhlMDU2MmNjYzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJN
ZWRpYVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgor
I2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2lu
Zy5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERl
c2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlv
biA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlv
biwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVy
cm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGlt
ZSwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIC8vIEZJWE1FOiBjaGVjayBpZiB3ZSBjYW4g
cmV1c2UgdGhlIGZvcm1hdCBmb3IgbXVsdGlwbGUgc2FtcGxlIGJ1ZmZlcnMuCisgICAgYXV0byBm
b3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICBp
ZiAoIWZvcm1hdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVD
b3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVz
Y3JpcHRpb25zIGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CisKKyAgICBl
cnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVm
ZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBk
b3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgaWYgKGVycm9y
KSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRp
byBidWZmZXIgbGlzdCBmYWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiNjdjNjY3ODVkNDdkMjcwMmI1YzY0OWVmMjg1ZTRiMGE1ZTEyNjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPENvcmVNZWRpYS9DTVRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24qIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciogQ01TYW1w
bGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOworCitSZXRhaW5QdHI8Q01Gb3Jt
YXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJik7CitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIENNVGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IGFjYjQ5NDQzMDhkMWNhNDNmOWY2OTljNTEwNDYwMDhm
M2Q3MzU1MDcuLmJkZDcwZmQ5Y2FhZTJkZWNjY2IyNDBiYzIxYjI1YTQyZmM2Mzc2NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1ZmZl
ckxpc3QuaCIKICNpbmNsdWRlIDxBVkZvdW5kYXRpb24vQVZBc3NldFdyaXRlci5oPgpAQCAtNDQz
LDQwICs0NDQsNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRl
b1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICBtX3ZpZGVvQ29tcHJl
c3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24pCi17Ci0gICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLmRlc2NyaXB0aW9uKTsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51
bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBOVUxMLCAwLCBOVUxMLCBO
VUxMLCAmZm9ybWF0KTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOwotfQotCi1zdGF0
aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQot
ewotICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlw
dGlvbik7Ci0gICAgaWYgKCFmb3JtYXQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9y
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgTlVMTCwgZmFsc2UsIE5VTEwsIE5VTEwsIGZvcm1hdC5nZXQoKSwgc2Ft
cGxlQ291bnQsIHRpbWUsIE5VTEwsICZzYW1wbGVCdWZmZXIpOwotICAgIGlmIChlcnJvcikgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyIGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotCi0gICAgZXJyb3IgPSBD
TVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQo
KSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8
V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwotICAgIGlmIChlcnJvcikgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gYnVmZmVyOwotfQotCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjph
cHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9
IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRp
b1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFj
Y2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5kNjkwNzNmODU5MDdiYmJjMzcyZWZmZjY1MDgzOGZkYjFk
MDc3MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwCkBAIC00NiwxMiArNDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGkKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3Ry
aW5nJiYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRf
dCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5n
UmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdv
aW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9y
ZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5m
byA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlm
aWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJu
YXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikgfTsKLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1f
cGVuZGluZ1JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgYXV0byYgbmV3UmVxdWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihX
VEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJt
aXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1JlcXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbmkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3
ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVz
dCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNp
c2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRv
IGVycm9yID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWls
ZWQiX3MgfTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZp
ZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25n
b2luZ1JlcXVlc3RzLmdldChpZGVudGlmaWVyKSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRl
bnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Omhh
bmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmICghbV9yZWNvZ25pemVyKSB7Cisg
ICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIHVwZGF0ZSkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAg
ICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlw
ZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAg
ICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAg
ICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1f
cmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0so
Y2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNs
aWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0
KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhj
bGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGll
bnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFr
ZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1
dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRS
ZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50
aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7
CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3Qg
PSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1
ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8g
YW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9w
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBi
eSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2du
aXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1f
cmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2
LDEyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAq
ZXJyb3IpOwogICAgIGlmICh0eXBlID09IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6UmVzdWx0KQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlUmVzdWx0KGNsaWVudElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVw
ZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUp
KTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZl
ZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9w
dGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBP
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBX
VEY6Om51bGxvcHQpOworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1Jl
cXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
Q2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0ZmI0OGUxNWY1NzQ1NTU5YmE2YzFhYmZjZDIzNjYxNDQwMzRmZWY0Li45
Nzc1MDdkOTVlNGFkYjY1NjkxMzIwOTNjMzhkNzI3ZWY1ZDAzMmM1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2du
aXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzIHRlc3RzIGZyb20gdXBzdHJl
YW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA1Y2Y1YTAwYzA5MjE5OWRjYTUzMzhkZTgyY2I5OTE4
ZmJiYTJlZjEuLmI0MzBhMmEyZGQ2YjM0YTY5NThkNTI0ZWYxZGUzZDA4NmMyYWI0ODMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTc5LDYgKzE3OSw4IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQk9i
amVjdC1sZWFrLmh0bWwgWyBTa2lwIF0KIGZhc3QvZm9ybXMvY2FsbC10ZXh0LWRpZC1jaGFuZ2Ut
aW4tdGV4dC1maWVsZC13aGVuLXR5cGluZy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1p
c3Npb24tZXJyb3IuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1y
ZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIE9ubHkgcGFydGlh
bCBzdXBwb3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmE3NDYxZGM3Y2MwMTRkYjYyZDY1
YzZiMjBiNmIwZGEyNTZlYTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTYgQEAKK1ZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0
bHkgd2hlbiBzdGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2du
aXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0
KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitSZWNlaXZlZCBzdGFydCBldmVudAorUmVjZWl2
ZWQgYXVkaW9zdGFydCBldmVudAorUEFTUyByZWNvZ25pdGlvbi5zdG9wKCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitSZWNlaXZlZCBhdWRpb2VuZCBldmVudAorUmVjZWl2ZWQgZW5kIGV2ZW50
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10aGVuLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ1ZDJiMDc4YzZl
MjE5NGM1OWU3ODlkMzVhNDY3OGIxNGRmY2VjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3
aGVuIHN0YXJ0IGFuZCBzdG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LiIpOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90
VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNvZ25p
dGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIHN0YXJ0IGV2
ZW50Iik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9zdGFydCA9IChldmVudCkgPT4geworICAg
IGRlYnVnKCJSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50Iik7CisKKyAgICBzaG91bGROb3RUaHJv
dygicmVjb2duaXRpb24uc3RvcCgpIik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9lbmQgPSAo
ZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQiKTsKK30KKwor
cmVjb2duaXRpb24ub25lbmQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgZW5k
IGV2ZW50Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coInJl
Y29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMTBjOTRhMjRjYzk4NWYwZjYyNjA1M2RkMTI0NDMx
YjM1YzNkN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24gYWJvcnRzIG9u
Z29pbmcgb25lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNvZ25p
dGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
c2Vjb25kUmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHJlY2VpdmVkU3RhcnQgaXMgdHJ1ZQorUEFTUyBldmVudC5lcnJv
ciBpcyAiYWJvcnRlZCIKK1BBU1MgZXZlbnQubWVzc2FnZSBpcyAiQW5vdGhlciByZXF1ZXN0IGlz
IHN0YXJ0ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2du
aXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFlNzQzZmYz
ZjYwOTEwYTFkMTQ0MGYxNDRkNmJkOTVhMWZjNzM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0
bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24g
YWJvcnRzIG9uZ29pbmcgb25lLiIpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0g
bmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNlaXZlZFN0YXJ0ID0gZmFsc2U7CityZWNv
Z25pdGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgcmVjZWl2ZWRTdGFydCA9IHRydWU7
Cit9CisKK3JlY29nbml0aW9uLm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKKyAgICBzaG91bGRCZVRy
dWUoInJlY2VpdmVkU3RhcnQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmVy
cm9yIiwgImFib3J0ZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm1lc3Nh
Z2UiLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworc2hvdWxkTm90
VGhyb3coInNlY29uZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7Citz
aG91bGROb3RUaHJvdygic2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkNTM0YTA2YTIyYTNiMjk3Yjc1
NDNkNDFiODY5ZjU0ZWYwYmNjMmIuLjgxMzEyMDY0MGIyYTA1MjJiOGZkNjYxNjkyODkxNWZhZjNm
NjE3ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04
MDQsNCArODA0LDYgQEAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtcG9y
dC1kZWxheS5odG1sIFsgUGFzcyBdCiAjIFdlYktpdDIgb25seS4KIGpzL3Rocm93LWxhcmdlLXN0
cmluZy1vb20uaHRtbCBbIFBhc3MgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9u
LWVycm9yLmh0bWwgWyBQYXNzIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdGhlbi1zdG9wLmh0bWwgWyBQYXNzIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBQYXNzIF0KIGZ1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tZW50ZXItd2hpbGUtZXhpdGluZy5odG1sIFsgUGFzcyBdCg==
</data>
<flag name="commit-queue"
          id="431653"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414695</attachid>
            <date>2020-11-20 10:21:38 -0800</date>
            <delta_ts>2020-11-20 14:28:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120102137.patch</filename>
            <type>text/plain</type>
            <size>71515</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uNDYzOGJiOWIzNmM4YWQyZjI1NjNhY2Q2OTNiNzIz
ZGFkMTkyNWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHdyYXBzIGFuIGF1ZGlvIGNhcHR1cmUK
KyAgICAgICAgc291cmNlIHdoaWNoIGludm9rZXMgZGlmZmVyZW50IGNhbGxiYWNrcyBvbiBkaWZm
ZXJlbnQgZXZlbnRzLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBJZiBjYXB0
dXJlIGRldmljZSBpcyBub3Qgc3BlY2lmaWVkLCBpdCB3aWxsIHBpY2sgCisgICAgICAgIHRoZSBk
ZWZhdWx0IG9yIGZpcnN0IGVuYWJsZWQgaW5wdXQgZGV2aWNlIGZvciBjYXB0dXJlLgorICAgICAg
ICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6bnVsbExv
Z2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNldFNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp+U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOiBQdXNo
IGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8KKyAgICAgICAgcHVsbCBmcm9t
IGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2sgb24gbWFpbiB0aHJlYWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFy
dGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Omludm9rZVVwZGF0ZVN0YXRlQ2Fs
bGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwuaDogQWRkZWQuIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwg
cHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUuCisgICAgICAg
ICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6IEFib3J0IG9uZ29pbmcgcmVxdWVzdCBp
ZiBhbnkgYW5kIHNlbmQgZXJyb3IgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyOjpzdGFydCk6IFN0YXJ0IGhhbmRsaW5nIGEgbmV3IHJlcXVlc3QgYW5kIHNlbmQgc3Rh
cnQgZXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVy
bmFsKTogQ3JlYXRlIGEgbmV3IHNvdXJjZSBhbmQgc2V0IGNhbGxiYWNrcyBvZiB0aGUgc291cmNl
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcCk6IFN0b3Agb25nb2lu
ZyByZXF1ZXN0LiBUaGlzIHNlbmRzIGVuZCBldmVudCBzeW5jaHJvbm91c2x5IG5vdyBhcyB3ZSBj
YW4gc3RvcAorICAgICAgICBjYXB0dXJpbmcgYXVkaW8gaW1tZWRpYXRlbHkuIEFmdGVyIHdlIGlt
cGxlbWVudCBzcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCwgdGhpcyBjb3VsZCBiZSBhc3luY2hy
b25vdXMuIAorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcEludGVybmFs
KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6Y3VycmVudENsaWVudElkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9N
ZWRpYVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06IE1vdmUgY29kZSBmb3Ig
Y3JlYXRpbmcgQ01TYW1wbGVCdWZmZXJSZWYgdG8KKyAgICAgICAgTWVkaWFVdGlsaXRpZXMuaC9j
cHAgc28gaXQgY2FuIHNoYXJlZCBiZXR3ZWVuIFNwZWVjaFJlY29nbml0aW9uIGFuZCBVc2VyTWVk
aWEsIGFzIFNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIAorICAgICAgICB3aWxsIHRha2UgQ01T
YW1wbGVCdWZmZXJSZWYgYXMgaW5wdXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zv
cm1hdERlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlv
U2FtcGxlQnVmZmVyKTogRGVsZXRlZC4KKwogMjAyMC0xMS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxlKCkgc2hvdWxkIHJlamVj
dCBwcm9taXNlIHdpdGggYW4gQWJvcnRFcnJvciB3aGVuIHRoZSBuZXR3b3JrIGxvYWQgZmFpbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRiNDcxYTRlYjgyMGY1MjI3NjJiMmExODNmM2RiYjc3NzdjOWIzMi4uYjll
YTI1ODZiMGM3NzlmOWY0NjQ3N2RkNTRkNjI1MTY3OTg4ZGE5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MyBAQAorMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24g
bWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVx
dWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6
c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKworMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlf
bGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3Bl
ZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKwogMjAyMC0xMS0xOSAg
UGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBJ
c3N1ZSBzYW5kYm94IGV4dGVuc2lvbiB0byBXZWIgSW5zcGVjdG9yIHNlcnZpY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDAyM2UxNTNkYTNjNjdkZTE3YTI1MmJlZjFjYWIyNjg3ZDQzOTMwNmQuLjYy
YmM1ZWVkNTY5NDQxNTk0ZmUyZDA4Y2JjNDYwMGEzNjUyZWMxYjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMTI0LDYgKzEyNCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvLmgKICAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAogICAgIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pemVyLmgKIAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbUNo
dW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjNTllOTY1ZjUwZDc2ZGZkMGExYjdk
MzFiNTk0YzZlZjZjM2QyMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYgdXBk
YXRlU3RhdGVDYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIG1faW1w
bCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oV1RGTW92
ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZVN0YXRlQ2FsbGJhY2spKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKHVwZGF0ZVN0
YXRlQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhiYzE1YTJhMTAzYzAyMzE2OWNlMjYw
NWM4Njc5YTgwNDZkNzdjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRp
bWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQ
bGF0Zm9ybUF1ZGlvRGF0YTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgVXBk
YXRlU3RhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+OworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgVXBkYXRlU3Rh
dGVDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPiBtX2lt
cGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YTY4YWVjN2EzYjZm
NjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRp
Zmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1
c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZT47CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYTVmZDY5MTE0OTQ1NzdlNDFmMGNhYzQ4MDE1Yzc3NGJjMjMz
ZWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTAsMCArMSwxOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2lu
Y2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjZW5k
aWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitz
dGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRpYyB1aW50
NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIoKTsKKyAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlmaWVyKTsK
K30KKworc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICByZXR1cm4gbG9nZ2Vy
OworfQorI2VuZGlmCisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNr
LCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYgdXBkYXRlU3RhdGVDYWxsYmFjaykKKyAgICA6IG1faWRl
bnRpZmllcihTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpKQorICAgICwgbV9kYXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwg
bV91cGRhdGVTdGF0ZUNhbGxiYWNrKFdURk1vdmUodXBkYXRlU3RhdGVDYWxsYmFjaykpCisgICAg
LCBtX3dlYWtUaGlzKG1ha2VXZWFrUHRyKHRoaXMpKQoreworICAgIGF1dG8gZGV2aWNlcyA9IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBPcHRp
b25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlOworICAgIGZvciAoYXV0byBkZXZpY2Ug
OiBkZXZpY2VzKSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgIAorICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAg
ICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0
KCkpIHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAg
ICAgICBpbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKHsgIk5vIGRldmljZSBpcyBhdmFpbGFibGUg
Zm9yIGF1ZGlvIGNhcHR1cmUiIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0
U291cmNlKCpjYXB0dXJlRGV2aWNlKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIgLCBjb25zdCBDYXB0dXJlRGV2
aWNlJiBjYXB0dXJlRGV2aWNlLCBEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFVwZGF0ZVN0
YXRlQ2FsbGJhY2smJiB1cGRhdGVTdGF0ZUNhbGxiYWNrKQorICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCisgICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisg
ICAgLCBtX3VwZGF0ZVN0YXRlQ2FsbGJhY2soV1RGTW92ZSh1cGRhdGVTdGF0ZUNhbGxiYWNrKSkK
K3sKKyAgICBzZXRTb3VyY2UoY2FwdHVyZURldmljZSk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c2V0U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAg
ICAgICBpbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7Cisg
ICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNl
LT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisKKyNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKKyAgICBpZiAoIW51bGxMb2dnZXIoKS5nZXQoKSkgeworICAgICAg
ICBudWxsTG9nZ2VyKCkgPSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbnVsbExvZ2dl
cigpLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c2V0
TG9nZ2VyKCpudWxsTG9nZ2VyKCksIG5leHRMb2dJZGVudGlmaWVyKCkpOworI2VuZGlmCit9CisK
K1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsKCkKK3sKKyAgICBpZiAobV9zb3VyY2UpCisgICAgICAgIG1fc291cmNl
LT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1E
ZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJh
c2ljVHlwZSk7CisKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0
YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3Jp
cHRpb24oKSAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRp
b1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCAq
bV9zb3VyY2UpOworICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9E
ZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVVwZGF0ZVN0YXRlQ2FsbGJhY2soeyAi
VW5hYmxlIHRvIHNldCB0aGUgaW5wdXQgZm9ybWF0IG9mIGRhdGEgc291cmNlIiB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRP
dXRwdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVVwZGF0
ZVN0YXRlQ2FsbGJhY2soeyAiVW5hYmxlIHRvIHNldCB0aGUgb3V0cHV0IGZvcm1hdCBvZiBkYXRh
IHNvdXJjZSIgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBt
X2RhdGFTb3VyY2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgIH0KKworICAgIG1fZGF0YVNv
dXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxlQ291bnQpOworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrVGhpcywgdGltZSwgYXVkaW9EZXNjcmlw
dGlvbiwgc2FtcGxlQ291bnRdIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBBU1NFUlQobV9kYXRhU291cmNlKTsKKyAgICAgICAgYXV0byBk
YXRhID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KHNhbXBsZUNvdW50KSB9OworICAgICAgICBtX2RhdGFTb3VyY2UtPnB1bGxTYW1w
bGVzKCpkYXRhLmxpc3QoKSwgc2FtcGxlQ291bnQsIHRpbWUudGltZVZhbHVlKCksIDAsIEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZTo6Q29weSk7CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRh
dGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyAgICB9KTsKKyNlbHNlCisgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQp
OworI2VuZGlmCit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
c291cmNlU3RhcnRlZCgpCit7CisgICAgaW52b2tlVXBkYXRlU3RhdGVDYWxsYmFjayhXVEY6Om51
bGxvcHQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNv
dXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7
CisgICAgaW52b2tlVXBkYXRlU3RhdGVDYWxsYmFjayh7ICJDYXB0dXJlIHNvdXJjZSBzdG9wcGVk
IiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3Vy
Y2VNdXRlZENoYW5nZWQoKQoreworICAgIGludm9rZVVwZGF0ZVN0YXRlQ2FsbGJhY2soeyAiQ2Fw
dHVyZSBzb3VyY2UgZ290IG11dGVkIiB9KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjppbnZva2VVcGRhdGVTdGF0ZUNhbGxiYWNrKE9wdGlvbmFsPFN0cmlu
Zz4gZXJyb3JNZXNzYWdlKQoreworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBt
X3VwZGF0ZVN0YXRlQ2FsbGJhY2soZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbV93ZWFrVGhpcywg
b3B0aW9uYWxFcnJvciA9IGVycm9yTWVzc2FnZV0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fdXBkYXRlU3RhdGVDYWxsYmFjayhvcHRp
b25hbEVycm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmI5Y2Rm
Mjg4ZDNmZTI5ZTliNmU1MWIxMDAyYWYzYjM1MTExODk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgi
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQXVkaW9TYW1wbGVEYXRhU291cmNlLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBG
dW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OworICAgIHVzaW5nIFVwZGF0
ZVN0YXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPjsKKyAgICBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKERhdGFDYWxsYmFjayYmLCBVcGRhdGVT
dGF0ZUNhbGxiYWNrJiYpOworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwo
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURl
dmljZSYsIERhdGFDYWxsYmFjayYmLCBVcGRhdGVTdGF0ZUNhbGxiYWNrJiYpOworICAgIH5TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBz
ZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIHZvaWQgaW52b2tlVXBkYXRlU3Rh
dGVDYWxsYmFjayhPcHRpb25hbDxTdHJpbmc+IGVycm9yTWVzc2FnZSk7CisKKyAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmlu
YWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VNdXRl
ZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsK
KyAgICBVcGRhdGVTdGF0ZUNhbGxiYWNrIG1fdXBkYXRlU3RhdGVDYWxsYmFjazsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBSZWZQdHI8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX2RhdGFTb3VyY2U7CisjZW5kaWYK
KworICAgIFdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4gbV93ZWFr
VGhpczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjBmZDYyY2EyZjBiMDZhMTQwNzZjMjE0YWJlM2ZiOWYxYTcwNGY5NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
Y3BwCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNZWRpYVV0aWxp
dGllcy5oIgorI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9u
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpT
cGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVs
ZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpyZXNldCgpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRy
OworCisgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9
OworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgcmVzZXQoKTsKKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9
IGlkZW50aWZpZXI7CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTdGFydCkpOworCisgICAgc3RhcnRJbnRlcm5hbChpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGRhdGFDYWxsYmFj
ayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2Ny
aXB0aW9uLCBQQUw6OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworI2VuZGlmCisgICAgfTsKKworICAgIGF1dG8gdXBkYXRlU3RhdGVD
YWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVy
XShPcHRpb25hbDxTdHJpbmc+IGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZp
ZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRpZmllcik7CisgICAgICAg
IGlmICghZXJyb3JNZXNzYWdlKSB7CisgICAgICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShpZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgKmVycm9yTWVzc2FnZSB9OworICAg
ICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVy
cm9yKGlkZW50aWZpZXIsIGVycm9yKSk7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAg
ICB9OworCisgICAgbV9zb3VyY2UgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZT4oV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZVN0YXRlQ2FsbGJh
Y2spKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wKFNob3VsZEdlbmVyYXRlRmlu
YWxSZXN1bHQgc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCkKK3sKKyAgICBpZiAoIW1fY2xpZW50
SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RvcEludGVybmFsKCk7CisKKyAg
ICBpZiAoc2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCA9PSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0OjpZZXMpIHsKKyAgICAgICAgLy8gVE9ETzogZ2VuZXJhdGUgcmVhbCByZXN1bHQgd2hlbiBz
cGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCBpcyBpbXBsZW1lbnRlZC4KKyAgICAgICAgVmVjdG9y
PFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4gcmVzdWx0RGF0YXM7CisgICAgICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KCptX2Ns
aWVudElkZW50aWZpZXIsIHJlc3VsdERhdGFzKSk7CisgICAgfQorCisgICAgbV9kZWxlZ2F0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpKTsKKyAgICBtX2NsaWVudElkZW50
aWZpZXIgPSBXVEY6Om51bGxvcHQ7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcElu
dGVybmFsKCkKK3sKKyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxs
cHRyOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkF1ZGlvRW5kKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTUxNTYzYjE4YzcxNjI3MjljOTZmMWNkNGZiNWZmMTY0MTcxODRmZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml6
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXplcj4geworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIERlbGVnYXRlQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+OworICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U3BlZWNoUmVjb2duaXplcigpID0gZGVmYXVsdDsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllcik7CisgICAgZW51bSBjbGFzcyBTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcChTaG91bGRHZW5l
cmF0ZUZpbmFsUmVzdWx0ID0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKTsKKworICAg
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IGN1
cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnRJZGVudGlmaWVy
OyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNldCgpOworICAgIHZvaWQgc3RhcnRJbnRlcm5h
bChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lk
IHN0b3BJbnRlcm5hbCgpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERlbGVnYXRlQ2Fs
bGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNTk0NTgxYjcyMDkxMmMwYjk1NTNiYjQxMGQ1MWQ4OGQw
YTgxNTZjLi44YWEzYWM0ZjY5MDJkNjIyMDRiNWM3YjI2NDhmMmIwZjQ1NDUwYTc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTk5LDYgKzE5OSw5IEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmNw
cAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNwcAogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5
bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIzM2M0YmNlNzRk
ZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVmMTI2MDI1ZDMy
ZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgsNiArMjM4LDcg
QEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvS2V5
RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0NvY29hLm1tCiBw
bGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3JtL2NvY29hL01l
ZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1t
CiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NWE1MjJjMmFiZWIwZDE2
ZDVjNjg4NmM3MTcwNjU3MjQ5MjBjOTRlLi5lN2U1YjkyODQxYzkzOWE1NzYwZjRhYjM0NzRlNzMx
MTQ0MDM3MTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMjAsOCArMTIwLDggQEAKIAkJMDczNzk0RkUxOUY1ODY0RTAwRTVB
MDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNN
b2NrLmggKi87IH07CiAJCTA3MzhFNUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEyNDk5NjhBRDAwREExMDFDIC8qIEFWT3V0cHV0
RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi87IH07CiAJCTA3M0ExNTU0MjE3
N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJl
bW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVy
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oICovOyB9Owot
CQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4
NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07CisJCTA3M0I4NzY3
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc0
RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2OUYwRTAwN0VG
NTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC0yNzg3LDYgKzI3ODcs
OCBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5M0U1RkUxNTFB
OTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBFQTJEQkM0MDBD
NTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLzsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDIx
MjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFC
IC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgy
ODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYyNTQ5NTUwMDAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
ODQ4LDYgKzI4NTAsOSBAQAogCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3Nl
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJ
OTNGMUQ1QzExMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAw
ODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YyQ0M5MzI0MjdGQjlD
MDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJS
YW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTkzRjZCODIxMjU2N0EwRDgwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVCMTI3Rjcw
QjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovOyB9OwogCQk5M0Y5MjU0MzBGN0VG
NUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRp
b0J1dHRvbkdyb3Vwcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIw
MDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKQEAgLTExNDI5LDYgKzExNDM0LDEwIEBACiAJ
CTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIw
MkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMw
RDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1
bHREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgx
RjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTE1MTUsNiArMTE1MjQsMTEgQEAKIAkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xMb3NlQ29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hh
cmFjdGVyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhcmFjdGVy
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUIyNTY3OUY2RjAw
QTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgxRDI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjZGMUVBMTI3RjcwQjEwMDU1Q0IwNiAv
KiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJHTENvbnRleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjZGMUVCMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQzEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250
ZXh0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNTcyLDYgKzIzNTg2LDEzIEBACiAJ
CQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5M0Y2
QjgwRTI1NjZFREUxMDBBMDg0ODggLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjQ0MDksNiAr
MjQ0MzAsOCBAQAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29h
Lm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQuaCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxp
emVkU3RyaW5nc0NvY29hLm1tICovLAorCQkJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBN
ZWRpYVV0aWxpdGllcy5jcHAgKi8sCisJCQkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1l
ZGlhVXRpbGl0aWVzLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1JTUVU
eXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQgLyog
TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTExQjFF
MDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCkBAIC0yNTYw
MSw2ICsyNTYyNCw3IEBACiAJCUFBMkE1QUI3MTZBNDg1QTQwMDk3NUEyNSAvKiBzcGVlY2ggKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTkzRjZCODBFMjU2
NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLywKIAkJCQlBQTJBNUFCQTE2QTQ4NUQ1MDA5NzVBMjUg
LyogRE9NV2luZG93K1NwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCiAJCQkJQUEyQTVBQjgxNkE0ODVE
NTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QjkxNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRvd1NwZWVjaFN5bnRoZXNpcy5oICovLApAQCAt
MjU2MTAsNiArMjU2MzQsMTEgQEAKIAkJCQk5MzQ5NTBCNzI1Mzk0MzRCMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAgKi8sCiAJCQkJOTM0OTUwQkMyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLywKIAkJCQk5MzQ5NTBC
QjI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwgKi8s
CisJCQkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZS5jcHAgKi8sCisJCQkJOTNGNkI4MUIyNTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovLAorCQkJCTkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4
OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJ
OTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuY3BwICovLAorCQkJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8sCiAJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJCTkzQTA0ODI0MjU0
OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywK
IAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2MzQsNiArMjU2NjMsOCBAQAogCQkJCTkz
NDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRs
ICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVj
aFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hT
eW50aGVzaXMuaWRsICovLApAQCAtMzM1MTksNiArMzM1NTAsNyBAQAogCQkJCTkzMkNDMEI3MURG
RkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3Ry
YWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBN
ZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIyNTY0RTdGMzAwQjMy
MTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxQkFDMzFCRDgw
NjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICszNDQ0Miw5IEBACiAJCQkJNjI2Q0RFMEYxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFs
dGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODgg
LyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
M0Y2QjgyMTI1NjdBMEQ4MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MUYyNTY3QTA4QzAwQTA4NDg4
IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzQTA0ODJDMjU0OTU1MTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0ODJFMjU0OTU1MUUwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTA0
ODJEMjU0OTU1MUIwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDI0LDYgKzM0NDU5LDcgQEAKIAkJCQk5
M0EwNDgyOTI1NDk1NTExMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBENjI1Mzk0MzgxMDA5OUYxNzEgLyogU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3MTI1NEJBQjQ1
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBQTJBNUFENDE2QTQ4NjExMDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMTQ5MzgwNzIyMzQ1NTFBMDAwQ0Q3MDcgLyogU3BlZWNoU3lu
dGhlc2lzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTJBNUFEMjE2QTQ4NjBBMDA5NzVB
MjUgLyogU3BlZWNoU3ludGhlc2lzRXZlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
OGI0ZjU2MzMyZDA1OWQ5ZmIxNzc1NTQzMGExZjhlMDU2MmNjYzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJN
ZWRpYVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgor
I2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2lu
Zy5oPgorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CisKK1JldGFpblB0cjxDTUZvcm1hdERl
c2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQoreworICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlv
biA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0
aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CisgICAgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlv
biwgMCwgbnVsbHB0ciwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJmZvcm1hdCk7CisgICAgaWYgKGVy
cm9yKSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbiBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGlt
ZSwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworICAgIC8vIEZJWE1FOiBjaGVjayBpZiB3ZSBjYW4g
cmV1c2UgdGhlIGZvcm1hdCBmb3IgbXVsdGlwbGUgc2FtcGxlIGJ1ZmZlcnMuCisgICAgYXV0byBm
b3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICBp
ZiAoIWZvcm1hdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2Ft
cGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBmYWxzZSwgbnVsbHB0ciwgbnVsbHB0ciwgZm9ybWF0LmdldCgpLCBzYW1wbGVD
b3VudCwgdGltZSwgbnVsbHB0ciwgJnNhbXBsZUJ1ZmZlcik7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgd2l0aCBwYWNrZXQgZGVz
Y3JpcHRpb25zIGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisgICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7CisKKyAgICBl
cnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVm
ZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBk
b3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgaWYgKGVycm9y
KSB7CisgICAgICAgIExPR19FUlJPUigiY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIgZnJvbSBhdWRp
byBidWZmZXIgbGlzdCBmYWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0
aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZiNjdjNjY3ODVkNDdkMjcwMmI1YzY0OWVmMjg1ZTRiMGE1ZTEyNjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPENvcmVNZWRpYS9DTVRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24qIENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciogQ01TYW1w
bGVCdWZmZXJSZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOworCitSZXRhaW5QdHI8Q01Gb3Jt
YXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJik7CitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIENNVGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCmluZGV4IGFjYjQ5NDQzMDhkMWNhNDNmOWY2OTljNTEwNDYwMDhm
M2Q3MzU1MDcuLmJkZDcwZmQ5Y2FhZTJkZWNjY2IyNDBiYzIxYjI1YTQyZmM2Mzc2NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0K
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucy5oIgogI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1ZmZl
ckxpc3QuaCIKICNpbmNsdWRlIDxBVkZvdW5kYXRpb24vQVZBc3NldFdyaXRlci5oPgpAQCAtNDQz
LDQwICs0NDQsNiBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRWaWRl
b1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICBtX3ZpZGVvQ29tcHJl
c3Nvci0+YWRkU2FtcGxlQnVmZmVyKGJ1ZmZlcldpdGhDdXJyZW50VGltZS5nZXQoKSk7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1
ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3Jp
cHRpb24pCi17Ci0gICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlv
bigpLmRlc2NyaXB0aW9uKTsKLSAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51
bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBOVUxMLCAwLCBOVUxMLCBO
VUxMLCAmZm9ybWF0KTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gYWRvcHRDRihmb3JtYXQpOwotfQotCi1zdGF0
aWMgaW5saW5lIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBDTVRpbWUgdGltZSwgc2l6ZV90IHNhbXBsZUNvdW50KQot
ewotICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlw
dGlvbik7Ci0gICAgaWYgKCFmb3JtYXQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9y
ID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgTlVMTCwgZmFsc2UsIE5VTEwsIE5VTEwsIGZvcm1hdC5nZXQoKSwgc2Ft
cGxlQ291bnQsIHRpbWUsIE5VTEwsICZzYW1wbGVCdWZmZXIpOwotICAgIGlmIChlcnJvcikgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyIGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotCi0gICAgZXJyb3IgPSBD
TVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQo
KSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8
V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOwotICAgIGlmIChlcnJvcikgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QgZmFp
bGVkIHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gYnVmZmVyOwotfQotCiB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjph
cHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6TWVkaWFU
aW1lJiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIGlmIChhdXRvIHNhbXBsZUJ1ZmZlciA9
IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9uLCBtX2N1cnJlbnRBdWRp
b1NhbXBsZVRpbWUsIHNhbXBsZUNvdW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFj
Y2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5kNjkwNzNmODU5MDdiYmJjMzcyZWZmZjY1MDgzOGZkYjFk
MDc3MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwCkBAIC00NiwxMiArNDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGkKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3Ry
aW5nJiYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRf
dCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5n
UmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdv
aW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9y
ZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5m
byA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlm
aWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJu
YXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikgfTsKLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1f
cGVuZGluZ1JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgYXV0byYgbmV3UmVxdWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihX
VEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJt
aXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1JlcXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbmkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3
ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVz
dCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNp
c2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRv
IGVycm9yID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWls
ZWQiX3MgfTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZp
ZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25n
b2luZ1JlcXVlc3RzLmdldChpZGVudGlmaWVyKSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRl
bnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Omhh
bmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmICghbV9yZWNvZ25pemVyKSB7Cisg
ICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIHVwZGF0ZSkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAg
ICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlw
ZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAg
ICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAg
ICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1f
cmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0so
Y2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNs
aWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0
KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhj
bGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGll
bnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFr
ZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1
dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRS
ZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50
aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7
CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3Qg
PSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1
ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8g
YW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9w
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBi
eSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2du
aXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1f
cmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2
LDEyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAq
ZXJyb3IpOwogICAgIGlmICh0eXBlID09IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6UmVzdWx0KQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlUmVzdWx0KGNsaWVudElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVw
ZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUp
KTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZl
ZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9w
dGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBP
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBX
VEY6Om51bGxvcHQpOworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1Jl
cXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
Q2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0ZmI0OGUxNWY1NzQ1NTU5YmE2YzFhYmZjZDIzNjYxNDQwMzRmZWY0Li45
Nzc1MDdkOTVlNGFkYjY1NjkxMzIwOTNjMzhkNzI3ZWY1ZDAzMmM1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1h
Y09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2du
aXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzIHRlc3RzIGZyb20gdXBzdHJl
YW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA1Y2Y1YTAwYzA5MjE5OWRjYTUzMzhkZTgyY2I5OTE4
ZmJiYTJlZjEuLmI0MzBhMmEyZGQ2YjM0YTY5NThkNTI0ZWYxZGUzZDA4NmMyYWI0ODMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTc5LDYgKzE3OSw4IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQk9i
amVjdC1sZWFrLmh0bWwgWyBTa2lwIF0KIGZhc3QvZm9ybXMvY2FsbC10ZXh0LWRpZC1jaGFuZ2Ut
aW4tdGV4dC1maWVsZC13aGVuLXR5cGluZy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2luLWFw
cC1icm93c2VyLXByaXZhY3kvIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1p
c3Npb24tZXJyb3IuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1y
ZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIE9ubHkgcGFydGlh
bCBzdXBwb3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmE3NDYxZGM3Y2MwMTRkYjYyZDY1
YzZiMjBiNmIwZGEyNTZlYTQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTYgQEAKK1ZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0
bHkgd2hlbiBzdGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2du
aXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0
KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitSZWNlaXZlZCBzdGFydCBldmVudAorUmVjZWl2
ZWQgYXVkaW9zdGFydCBldmVudAorUEFTUyByZWNvZ25pdGlvbi5zdG9wKCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitSZWNlaXZlZCBhdWRpb2VuZCBldmVudAorUmVjZWl2ZWQgZW5kIGV2ZW50
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10aGVuLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ1ZDJiMDc4YzZl
MjE5NGM1OWU3ODlkMzVhNDY3OGIxNGRmY2VjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3
aGVuIHN0YXJ0IGFuZCBzdG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LiIpOworCitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90
VGhyb3coInJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNvZ25p
dGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIHN0YXJ0IGV2
ZW50Iik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9zdGFydCA9IChldmVudCkgPT4geworICAg
IGRlYnVnKCJSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50Iik7CisKKyAgICBzaG91bGROb3RUaHJv
dygicmVjb2duaXRpb24uc3RvcCgpIik7Cit9CisKK3JlY29nbml0aW9uLm9uYXVkaW9lbmQgPSAo
ZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQiKTsKK30KKwor
cmVjb2duaXRpb24ub25lbmQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgZW5k
IGV2ZW50Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3coInJl
Y29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMTBjOTRhMjRjYzk4NWYwZjYyNjA1M2RkMTI0NDMx
YjM1YzNkN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NiBAQAorVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24gYWJvcnRzIG9u
Z29pbmcgb25lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZWNvZ25p
dGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
c2Vjb25kUmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHJlY2VpdmVkU3RhcnQgaXMgdHJ1ZQorUEFTUyBldmVudC5lcnJv
ciBpcyAiYWJvcnRlZCIKK1BBU1MgZXZlbnQubWVzc2FnZSBpcyAiQW5vdGhlciByZXF1ZXN0IGlz
IHN0YXJ0ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2du
aXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFlNzQzZmYz
ZjYwOTEwYTFkMTQ0MGYxNDRkNmJkOTVhMWZjNzM1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0
bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgc3RhcnRpbmcgYSBzZWNvbmQgcmVjb2duaXRpb24g
YWJvcnRzIG9uZ29pbmcgb25lLiIpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK30KKworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uID0g
bmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7CityZWNlaXZlZFN0YXJ0ID0gZmFsc2U7CityZWNv
Z25pdGlvbi5vbnN0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgcmVjZWl2ZWRTdGFydCA9IHRydWU7
Cit9CisKK3JlY29nbml0aW9uLm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKKyAgICBzaG91bGRCZVRy
dWUoInJlY2VpdmVkU3RhcnQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LmVy
cm9yIiwgImFib3J0ZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm1lc3Nh
Z2UiLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworc2hvdWxkTm90
VGhyb3coInNlY29uZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7Iik7Citz
aG91bGROb3RUaHJvdygic2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkNTM0YTA2YTIyYTNiMjk3Yjc1
NDNkNDFiODY5ZjU0ZWYwYmNjMmIuLjgxMzEyMDY0MGIyYTA1MjJiOGZkNjYxNjkyODkxNWZhZjNm
NjE3ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04
MDQsNCArODA0LDYgQEAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtcG9y
dC1kZWxheS5odG1sIFsgUGFzcyBdCiAjIFdlYktpdDIgb25seS4KIGpzL3Rocm93LWxhcmdlLXN0
cmluZy1vb20uaHRtbCBbIFBhc3MgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9u
LWVycm9yLmh0bWwgWyBQYXNzIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdGhlbi1zdG9wLmh0bWwgWyBQYXNzIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBQYXNzIF0KIGZ1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tZW50ZXItd2hpbGUtZXhpdGluZy5odG1sIFsgUGFzcyBdCg==
</data>
<flag name="commit-queue"
          id="431690"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414720</attachid>
            <date>2020-11-20 14:06:24 -0800</date>
            <delta_ts>2020-11-20 14:07:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120140622.patch</filename>
            <type>text/plain</type>
            <size>195006</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uMjJhOGU4MWFhZmY3NDY0MzZiMDU0NWQ2MzIyMTIw
NWJmMzZhNDBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOiBBZGRlZC4gSWYgY2FwdHVyZSBkZXZpY2Ug
aXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBwaWNrIAorICAgICAgICB0aGUgZGVmYXVsdCBvciBm
aXJzdCBlbmFibGVkIGlucHV0IGRldmljZSBmb3IgY2FwdHVyZS4KKyAgICAgICAgKFdlYkNvcmU6
Om5leHRMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxMb2dnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwgcHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpz
ZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6flNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKTogUHVzaCBkYXRhIHRvIGJ1ZmZlciwgc2lnbmFsIG1haW4gdGhyZWFkIHRvCisg
ICAgICAgIHB1bGwgZnJvbSBidWZmZXIgYW5kIGludm9rZSBkYXRhIGNhbGxiYWNrIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6c291cmNlU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjppbnZv
a2VTdGFydE9yRXJyb3JDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OnJlc2V0KTogQWJvcnQgb25nb2luZyByZXF1ZXN0IGlmIGFueSBhbmQg
c2VuZCBlcnJvciBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0
YXJ0KTogU3RhcnQgaGFuZGxpbmcgYSBuZXcgcmVxdWVzdCBhbmQgc2VuZCBzdGFydCBldmVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBDcmVh
dGUgYSBuZXcgc291cmNlIGFuZCBzZXQgY2FsbGJhY2tzIG9mIHRoZSBzb3VyY2UuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wKTogU3RvcCBvbmdvaW5nIHJlcXVlc3Qu
IFRoaXMgc2VuZHMgZW5kIGV2ZW50IHN5bmNocm9ub3VzbHkgbm93IGFzIHdlIGNhbiBzdG9wCisg
ICAgICAgIGNhcHR1cmluZyBhdWRpbyBpbW1lZGlhdGVseS4gQWZ0ZXIgd2UgaW1wbGVtZW50IHNw
ZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kLCB0aGlzIGNvdWxkIGJlIGFzeW5jaHJvbm91cy4gCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlcy50eHQub3JpZzogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQuCisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L01lZGlhVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogTW92ZSBjb2RlIGZv
ciBjcmVhdGluZyBDTVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5o
L2NwcCBzbyBpdCBjYW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJN
ZWRpYSwgYXMgU3BlZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgCisgICAgICAgIHdpbGwgdGFrZSBD
TVNhbXBsZUJ1ZmZlclJlZiBhcyBpbnB1dC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlv
Rm9ybWF0RGVzY3JpcHRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVk
aW9TYW1wbGVCdWZmZXIpOiBEZWxldGVkLgorCiAyMDIwLTExLTE5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUoKSBzaG91bGQgcmVq
ZWN0IHByb21pc2Ugd2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdvcmsgbG9hZCBmYWls
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJiNzc3N2M5YjMyLi44
MTkyOGM0MmZkYjI3NjdlNWFlYzE5ODgyMjQwZTU4OGNiNzZlNGMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBv
biBtYWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c2VuZFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzdG9wUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjphYm9ydFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOgorCiAyMDIwLTExLTE5ICBQZXIgQXJuZSBWb2xsYW4g
IDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3VlIHNhbmRib3ggZXh0
ZW5zaW9uIHRvIFdlYiBJbnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMDIz
ZTE1M2RhM2M2N2RlMTdhMjUyYmVmMWNhYjI2ODdkNDM5MzA2ZC4uN2Y1NjllNmJlNjY0MmZlMmFj
MmZmZDUwNjRjMGFmMjBjMmZlOGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTYsNiArMTE2
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMv
cGx1Z2lucy9QbHVnaW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VycmNlLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb24uaAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bkNsaWVudC5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oCkBAIC0xMjQsNiArMTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVxdWVzdEluZm8uaAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorICAg
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAogCiAgICAgTW9kdWxlcy9zdHJlYW1z
L1JlYWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNpbmsuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5N2Jj
YjA4NTRiYmNmMDk4MDY0MTJkZGE0NzQwYTM3MGE2ZjJjMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZS5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXJ0T3JF
cnJvckNhbGxiYWNrJiYgc3RhcnRPckVycm9yQ2FsbGJhY2spCit7CisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGw+KFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGFydE9yRXJyb3JD
YWxsYmFjaykpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKKyAgICBV
TlVTRURfUEFSQU0odXBkYXRlQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk0YTMxNDkz
ODZiZWE1MWRmMzExZDkxN2QzNjY0ZTg5MGFjMDY2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7
CitjbGFzcyBNZWRpYVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgflNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJh
Y2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAg
dXNpbmcgU3RhcnRPckVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSwgY29uc3QgU3RyaW5nJik+OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZShEYXRhQ2FsbGJhY2smJiwgU3RhcnRPckVycm9yQ2FsbGJhY2smJik7CisKK3By
aXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4gbV9pbXBsOworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
ZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E2OGFlYzdhM2I2ZjY2OGFjOTBlMmQ4YTY4ZjdmZjcz
MjljZDIwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDM2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRl
bnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDYyMjNkYjNlNTkzYWY4ZjI3NWRiN2M4ZjA5NzQ4ODVhMTY0NTYxYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGwuY3BwCkBAIC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJDYXB0dXJlRGV2aWNl
TWFuYWdlci5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKKyNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisj
aW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9C
dWZmZXJMaXN0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQor
eworICAgIHN0YXRpYyB1aW50NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4o
Kytsb2dJZGVudGlmaWVyKTsKK30KKworc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2Vy
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsK
KyAgICByZXR1cm4gbG9nZ2VyOworfQorI2VuZGlmCisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGw6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoRGF0YUNhbGxi
YWNrJiYgZGF0YUNhbGxiYWNrLCBTdGFydE9yRXJyb3JDYWxsYmFjayYmIHN0YXJ0T3JFcnJvckNh
bGxiYWNrKQorICAgIDogbV9pZGVudGlmaWVyKFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCisgICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRh
dGFDYWxsYmFjaykpCisgICAgLCBtX3N0YXJ0T3JFcnJvckNhbGxiYWNrKFdURk1vdmUoc3RhcnRP
ckVycm9yQ2FsbGJhY2spKQoreworICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVE
ZXZpY2U7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0Nh
cHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBmb3IgKGF1dG8gZGV2
aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAg
ICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsKKworICAgICAgICBpZiAoZGV2aWNlLmlzRGVm
YXVsdCgpKSB7CisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIGlmICghY2FwdHVyZURl
dmljZSkgeworICAgICAgICBpbnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVy
ZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0U291cmNlKCpjYXB0dXJlRGV2
aWNlKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyk7Cit9CisKK3ZvaWQg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c2V0U291cmNlKGNvbnN0IENhcHR1
cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKKyAgICBpZiAoIXJl
c3VsdCkgeworICAgICAgICBpbnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yLCByZXN1bHQuZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fc291cmNlID0gcmVzdWx0LnNvdXJjZSgpOworICAgIG1fc291
cmNlLT5hZGRBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRkT2Jz
ZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5zdGFydCgpOworCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisgICAgaWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVsbExv
Z2dlcigpID0gTG9nZ2VyOjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+c2V0
RW5hYmxlZCh0aGlzLCBmYWxzZSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnNldExvZ2dlcigq
bnVsbExvZ2dlcigpLCBuZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbCgpCit7CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5yZW1v
dmVBdWRpb1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxl
Q291bnQpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUg
PT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisKKyAgICBh
dXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihkZXNjcmlw
dGlvbik7CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNj
cmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlw
dGlvbikgeworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6
OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCAqbV9zb3VyY2UpOworICAgICAg
ICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAg
ICAgICAgICAgIGludm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RXJyb3IsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1
dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgaW52b2tlU3RhcnRPckVy
cm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgIlVuYWJsZSB0
byBzZXQgb3V0cHV0IGZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKG1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygpKQorICAgICAgICAgICAgbV9k
YXRhU291cmNlID0gV1RGTW92ZShkYXRhU291cmNlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZGF0YVNvdXJjZS0+cHVzaFNhbXBsZXModGltZSwg
ZGF0YSwgc2FtcGxlQ291bnQpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyksIHRpbWUsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50
XSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgYXV0byBkYXRhID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZUNvdW50KSB9OworICAgICAgICAKKyAgICAgICAgbV9k
YXRhU291cmNlTG9jay5sb2NrKCk7CisgICAgICAgIG1fZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMo
KmRhdGEubGlzdCgpLCBzYW1wbGVDb3VudCwgdGltZS50aW1lVmFsdWUoKSwgMCwgQXVkaW9TYW1w
bGVEYXRhU291cmNlOjpDb3B5KTsKKyAgICAgICAgbV9kYXRhU291cmNlTG9jay51bmxvY2soKTsK
KworICAgICAgICBtX2RhdGFDYWxsYmFjayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBz
YW1wbGVDb3VudCk7CisgICAgfSk7CisjZWxzZQorICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRh
dGEsIGRlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7CisjZW5kaWYKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBpbnZv
a2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlv
U3RhcnQpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNv
dXJjZVN0b3BwZWQoKQoreworICAgIEFTU0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7
CisgICAgaW52b2tlU3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwgIlNvdXJjZSBpcyBzdG9wcGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKK3sKKyAgICBpbnZv
a2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9y
LCAiU291cmNlIGlzIG11dGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbDo6aW52b2tlU3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpCit7CisgICAgaWYgKGlzTWFpblRo
cmVhZCgpKSB7CisgICAgICAgIG1fc3RhcnRPckVycm9yQ2FsbGJhY2sodHlwZSwgZXJyb3IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdHlwZSwgZXJyb3IgPSBlcnJvci5pc29sYXRlZENv
cHkoKV0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIG1fc3RhcnRPckVycm9yQ2FsbGJhY2sodHlwZSwgZXJyb3IpOworICAgIH0pOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3NGJjNDQyYzY0NDFhZTYyYWFjMzE4YzdlMmM1NDEx
N2IxMjk3NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTAsMCArMSw4NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNp
bmNsdWRlICJBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV1RG
IHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK2VudW0g
Y2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOworCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9i
c2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2lu
ZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+
OworICAgIHVzaW5nIFN0YXJ0T3JFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGUsIGNvbnN0IFN0cmluZyYpPjsKKyAgICBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsKERhdGFDYWxsYmFjayYmLCBTdGFydE9yRXJyb3JDYWxsYmFj
ayYmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpOworCitwcml2
YXRlOgorICAgIHZvaWQgc2V0U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lk
IGludm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwg
Y29uc3QgU3RyaW5nJiA9IG51bGxTdHJpbmcoKSk7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmluYWw7CisgICAgdm9p
ZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBm
aW5hbDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOworICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsKKyAgICBTdGFydE9y
RXJyb3JDYWxsYmFjayBtX3N0YXJ0T3JFcnJvckNhbGxiYWNrOworICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJlZlB0
cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBMb2NrIG1fZGF0YVNv
dXJjZUxvY2s7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXpl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzMxZWVlZGExMWNjNzk1OGY3YmYwNTY0NTI3YzdmYjIyNTg0MWFj
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJNZWRpYVV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1l
QVZGb3VuZGF0aW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hS
ZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykK
KyAgICA6IG1fZGVsZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpyZXNldCgpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZp
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3Vy
Y2UgPSBudWxscHRyOworCisgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBp
cyBzdGFydGVkIiB9OworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgcmVzZXQoKTsKKworICAgIG1fY2xpZW50
SWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpTdGFydCkpOworCisgICAgc3RhcnRJbnRlcm5hbChpZGVudGlmaWVy
KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRv
IGRhdGFDYWxsYmFjayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBXVEY6
Ok1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgICAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVy
KGRhdGEsIGRlc2NyaXB0aW9uLCBQQUw6OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7Cisg
ICAgICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFN
KHRpbWUpOworICAgICAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAgICAgIFVOVVNFRF9QQVJB
TShkZXNjcmlwdGlvbik7CisgICAgICAgIFVOVVNFRF9QQVJBTShzYW1wbGVDb3VudCk7CisjZW5k
aWYKKyAgICB9OworCisgICAgYXV0byB1cGRhdGVTdGF0ZUNhbGxiYWNrID0gW3RoaXMsIHdlYWtU
aGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXJdKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVu
dElkZW50aWZpZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRpZmllcik7
CisgICAgICAgIGlmICh0eXBlICE9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3Ip
IHsKKyAgICAgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlKGlkZW50aWZpZXIsIHR5cGUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgZXJyb3JNZXNzYWdlIH07Cisg
ICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoaWRlbnRpZmllciwgZXJyb3IpKTsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwor
ICAgIH07CisKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlPihXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUodXBkYXRlU3RhdGVDYWxs
YmFjaykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQoreworICAgIGlmICghbV9jbGll
bnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBzdG9wSW50ZXJuYWwoKTsKKwor
ICAgIGlmIChzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxS
ZXN1bHQ6OlllcykgeworICAgICAgICAvLyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVu
IHNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0
b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9k
ZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1f
Y2xpZW50SWRlbnRpZmllciwgcmVzdWx0RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRl
bnRpZmllciA9IFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9w
SW50ZXJuYWwoKQoreworICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZSA9IG51
bGxwdHI7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6QXVkaW9FbmQpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NTE1NjNiMThjNzE2MjcyOWM5NmYxY2Q0ZmI1ZmYxNjQxNzE4NGZkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5o
CkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2du
aXplciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyPiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNr
JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBkZWZhdWx0Owor
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxS
ZXN1bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdl
bmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOworCisg
ICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4g
Y3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZp
ZXI7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCBzdGFydEludGVy
bmFsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworICAgIHZv
aWQgc3RvcEludGVybmFsKCk7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CisgICAgRGVsZWdhdGVD
YWxsYmFjayBtX2RlbGVnYXRlQ2FsbGJhY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZT4gbV9zb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDI1OTQ1ODFiNzIwOTEyYzBiOTU1M2JiNDEwZDUxZDg4
ZDBhODE1NmMuLjhhYTNhYzRmNjkwMmQ2MjIwNGI1YzdiMjY0OGYyYjBmNDU0NTBhNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xOTksNiArMTk5LDkgQEAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pemVyLmNwcAogTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAog
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dC5vcmlnIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQub3JpZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTk0
NTgxYjcyMDkxMmMwYjk1NTNiYjQxMGQ1MWQ4OGQwYTgxNTZjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQub3JpZwpAQCAtMCwwICsxLDM3NTIgQEAKKy8vIENv
cHlyaWdodCAoQykgMjAxNy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
CisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworLy8gYXJlIG1ldDoKKy8vIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisv
LyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLy8gICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisvLyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKy8vIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKy8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworLy8gQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorLy8gQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKy8vIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworLy8gSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKy8vIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisvLyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50
LmNwcAorTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJz
ZXIuY3BwCitNb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuY3BwCitNb2R1bGVzL2Fz
eW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJbWFnZVJlYWRlci5jcHAKK01vZHVsZXMvYXN5bmMtY2xp
cGJvYXJkL0NsaXBib2FyZEl0ZW0uY3BwCitNb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9h
cmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmNwcAorTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xp
cGJvYXJkSXRlbVBhc3RlYm9hcmREYXRhU291cmNlLmNwcAorTW9kdWxlcy9hc3luYy1jbGlwYm9h
cmQvTmF2aWdhdG9yQ2xpcGJvYXJkLmNwcAorTW9kdWxlcy9iZWFjb24vTmF2aWdhdG9yQmVhY29u
LmNwcAorTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5jcHAKK01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwCitNb2R1
bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKK01vZHVsZXMvY2FjaGUvRE9NV2luZG93Q2Fj
aGVzLmNwcAorTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAor
TW9kdWxlcy9jYWNoZS9Xb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKK01vZHVsZXMvY29udGFj
dC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcAorTW9kdWxlcy9jb250YWN0LXBpY2tlci9OYXZp
Z2F0b3JDb250YWN0cy5jcHAKK01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQmFzaWNDcmVk
ZW50aWFsLmNwcAorTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRh
aW5lci5jcHAKK01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvTmF2aWdhdG9yQ3JlZGVudGlh
bHMuY3BwCitNb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKK01vZHVsZXMvZW50
cmllc2FwaS9FcnJvckNhbGxiYWNrLmNwcAorTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1E
aXJlY3RvcnlFbnRyeS5jcHAKK01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5
UmVhZGVyLmNwcAorTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2su
Y3BwCitNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUVudHJ5LmNwcAorTW9kdWxlcy9lbnRy
aWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCitNb2R1bGVzL2VudHJpZXNhcGkvSFRNTElu
cHV0RWxlbWVudEVudHJpZXNBUEkuY3BwCitNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKK01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCitNb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eU93bmVyLmNwcAorTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuY3BwCitNb2R1bGVzL2Zl
dGNoL0ZldGNoSGVhZGVycy5jcHAKK01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCitNb2R1
bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKK01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5j
cHAKK01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcAorTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKK01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb24uY3BwCitNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5j
cHAKK01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKK01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCitNb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKK01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5jcHAK
K01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKK01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhW
YWx1ZS5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAorTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VOYW1lQW5kVmVyc2lvblJlcXVlc3QuY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0QWxsUmVzdWx0LmNwcAorTW9kdWxlcy9p
bmRleGVkZGIvSURCR2V0UmVzdWx0LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3Bw
CitNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAKK01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleVJhbmdlLmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmNw
cAorTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCitNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAK
K01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3BwCitNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL0lEQlZhbHVl
LmNwcAorTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmNwcAorTW9kdWxl
cy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCitNb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblByb3h5LmNwcAorTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
aWFsaXphdGlvbi5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9u
Q29udGV4dC5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCitNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSW5kZXhWYWx1ZUVudHJ5LmNwcAorTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0luZGV4VmFsdWVTdG9yZS5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlDdXJzb3IuY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFj
a2luZ1N0b3JlLmNwcAorTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUluZGV4LmNwcAor
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUluZGV4Q3Vyc29yLmNwcAorTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAorTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcAorTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJDdXJzb3IuY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCVHJh
bnNhY3Rpb24uY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVz
dC5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKK01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uY3BwCitN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAK
K01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmNwcAorTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJFcnJvci5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNvcmRz
RGF0YS5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcAor
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKK01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5jcHAKK01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
UmVxdWVzdERhdGEuY3BwCitNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVu
dGlmaWVyLmNwcAorTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwCitN
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmNwcAorTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0luZGV4S2V5LmNwcAorTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9N
ZWRpYUNhcGFiaWxpdGllcy5jcHAKK01vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvTmF2aWdhdG9y
TWVkaWFDYXBhYmlsaXRpZXMuY3BwCitNb2R1bGVzL21lZGlhc2Vzc2lvbi9NZWRpYU1ldGFkYXRh
LmNwcAorTW9kdWxlcy9tZWRpYXNlc3Npb24vTWVkaWFTZXNzaW9uLmNwcAorTW9kdWxlcy9tZWRp
YXNlc3Npb24vTmF2aWdhdG9yTWVkaWFTZXNzaW9uLmNwcAorTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcAorTW9kdWxlcy9tZWRpYXJlY29yZGVyL0Jsb2JFdmVudC5j
cHAKK01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorTW9kdWxlcy9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJFcnJvckV2ZW50LmNwcAorTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAKK01vZHVsZXMvbWVkaWFzb3VyY2UvRE9NVVJM
TWVkaWFTb3VyY2UuY3BwCitNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorTW9k
dWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcAorTW9kdWxlcy9tZWRpYXNv
dXJjZS9TYW1wbGVNYXAuY3BwCitNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAK
K01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAKK01vZHVsZXMvbWVkaWFz
b3VyY2UvVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL0NhbnZh
c0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcAorTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURl
dmljZUluZm8uY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKK01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2suY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVu
dC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcAorTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYURldmljZXMuY3BwCitNb2R1bGVzL21lZGlh
c3RyZWFtL092ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDQ2VydGlm
aWNhdGUuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0NvbnRyb2xsZXIuY3BwCitNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXIuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZUb25lQ2hhbmdlRXZlbnQuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
LmNwcAorTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbEV2ZW50LmNwcAorTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0ljZVRyYW5zcG9ydC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQuY3BwCitN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFJlY2VpdmVyLmNwcAorTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyLmNwcAorTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTZW5kZXIuY3Bw
CitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybS5jcHAKK01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvbi5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVHJhY2tFdmVudC5jcHAK
K01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKK01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ0NlcnRpZmljYXRlR2VuZXJhdG9yLmNwcAorTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJUcmFuc2Zvcm1CYWNrZW5kLmNwcAorTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFj
a2VuZC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuY3BwCitNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5j
cHAKK01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCitNb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKK01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1Bh
eW1lbnRBZGRyZXNzLmNwcAorTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5j
cHAKK01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50LmNwcAor
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKK01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5jcHAKK01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcAorTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0RvY3Vt
ZW50UGljdHVyZUluUGljdHVyZS5jcHAKK01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9FbnRlclBp
Y3R1cmVJblBpY3R1cmVFdmVudC5jcHAKK01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlk
ZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKK01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9Q
aWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAorTW9kdWxlcy9yZW1vdGVwbGF5YmFjay9SZW1vdGVQ
bGF5YmFjay5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmNwcAorTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKK01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3Bl
ZWNoU3ludGhlc2lzLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAorTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZlbnQuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNW
b2ljZS5jcHAKK01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuY3BwCitNb2R1bGVz
L3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5
c2VyTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXN5bmNBdWRpb0RlY29kZXIuY3BwCitNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcAorTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0Jhc2ljUHJvY2Vzc29yTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXIuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKK01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKK01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1
dC5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlT3V0cHV0LmNwcAorTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtTWFwLmNwcAor
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCitNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxl
ZFNvdXJjZU5vZGUuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNw
cAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXQuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldEdsb2JhbFNjb3BlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRN
ZXNzYWdpbmdQcm94eS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAK
K01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRUaHJlYWQuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0Nv
bnRleHQuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKK01vZHVsZXMv
d2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJv
Y2Vzc29yLmNwcAorTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsTWVyZ2VyTm9kZS5jcHAKK01vZHVs
ZXMvd2ViYXVkaW8vQ2hhbm5lbFNwbGl0dGVyTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vQ29u
c3RhbnRTb3VyY2VOb2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAor
TW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCitNb2R1bGVz
L3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmNwcAorTW9kdWxlcy93ZWJhdWRpby9EZWxheU5vZGUu
Y3BwCitNb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorTW9kdWxlcy93ZWJhdWRp
by9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5j
cHAKK01vZHVsZXMvd2ViYXVkaW8vSUlSRFNQS2VybmVsLmNwcAorTW9kdWxlcy93ZWJhdWRpby9J
SVJGaWx0ZXJOb2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9JSVJQcm9jZXNzb3IuY3BwCitNb2R1
bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKK01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBs
ZXRpb25FdmVudC5jcHAKK01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAK
K01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorTW9kdWxl
cy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmNwcAorTW9kdWxlcy93ZWJhdWRp
by9SZWFsdGltZUFuYWx5c2VyLmNwcAorTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JO
b2RlLmNwcAorTW9kdWxlcy93ZWJhdWRpby9TdGVyZW9QYW5uZXJOb2RlLmNwcAorTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmNwcAorTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hh
cGVyTm9kZS5jcHAKK01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKK01v
ZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9Db250ZXh0LmNwcAorTW9kdWxlcy93ZWJhdWRpby9X
ZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwCitNb2R1bGVzL3dlYmF1ZGlvL1dlYktpdE9mZmxpbmVB
dWRpb0NvbnRleHQuY3BwCitNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZS5jcHAKK01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2UuY3BwCitNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclJlc3BvbnNlLmNwcAorTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsLmNwcAorTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50
aWNhdGlvblV0aWxzLmNwcAorTW9kdWxlcy93ZWJhdXRobi9hcGR1L0FwZHVDb21tYW5kLmNwcAor
TW9kdWxlcy93ZWJhdXRobi9hcGR1L0FwZHVSZXNwb25zZS5jcHAKK01vZHVsZXMvd2ViYXV0aG4v
Y2Jvci9DQk9SUmVhZGVyLmNwcAorTW9kdWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5jcHAK
K01vZHVsZXMvd2ViYXV0aG4vY2Jvci9DQk9SV3JpdGVyLmNwcAorTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0F1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnMuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3Rh
bnRzLmNwcAorTW9kdWxlcy93ZWJhdXRobi9maWRvL0ZpZG9IaWRNZXNzYWdlLmNwcAorTW9kdWxl
cy93ZWJhdXRobi9maWRvL0ZpZG9IaWRQYWNrZXQuY3BwCitNb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
Rmlkb1BhcnNpbmdVdGlscy5jcHAKK01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCitNb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0cnVjdG9yLmNwcAorTW9kdWxlcy93ZWJh
dXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAorTW9kdWxlcy93ZWJkYXRhYmFzZS9D
aGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKK01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2Vi
RGF0YWJhc2UuY3BwCitNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCitNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHAKK01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNw
cAorTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suY3BwCitNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVGhyZWFkLmNwcAorTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNr
ZXIuY3BwCitNb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwCitNb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFJlc3VsdFNldC5jcHAKK01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0
Um93TGlzdC5jcHAKK01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcAorTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKK01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb25CYWNrZW5kLmNwcAorTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yLmNwcAorTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN0YXRl
TWFjaGluZS5jcHAKK01vZHVsZXMvd2ViZHJpdmVyL05hdmlnYXRvcldlYkRyaXZlci5jcHAKK01v
ZHVsZXMvd2ViZ3B1L0dQVUNhbnZhc0NvbnRleHQuY3BwCitNb2R1bGVzL3dlYmdwdS9HUFVVbmNh
cHR1cmVkRXJyb3JFdmVudC5jcHAKK01vZHVsZXMvd2ViZ3B1L05hdmlnYXRvckdQVS5jcHAKK01v
ZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTEJ1aWx0SW5TZW1hbnRpYy5jcHAKK01vZHVsZXMv
d2ViZ3B1L1dITFNML0FTVC9XSExTTEV4cHJlc3Npb24uY3BwCitNb2R1bGVzL3dlYmdwdS9XSExT
TC9BU1QvV0hMU0xGbG9hdExpdGVyYWxUeXBlLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNU
L1dITFNMSW50ZWdlckxpdGVyYWwuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xJ
bnRlZ2VyTGl0ZXJhbFR5cGUuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xSZXNv
dXJjZVNlbWFudGljLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3BlY2lhbGl6
YXRpb25Db25zdGFudFNlbWFudGljLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNM
U3RhZ2VJbk91dFNlbWFudGljLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMU3Rh
dGVtZW50LmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvQVNUL1dITFNMVHlwZS5jcHAKK01vZHVs
ZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFR5cGVBcmd1bWVudC5jcHAKK01vZHVsZXMvd2ViZ3B1
L1dITFNML0FTVC9XSExTTFR5cGVSZWZlcmVuY2UuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9B
U1QvV0hMU0xVbm5hbWVkVHlwZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML0FTVC9XSExTTFVu
c2lnbmVkSW50ZWdlckxpdGVyYWwuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9BU1QvV0hMU0xV
bnNpZ25lZEludGVnZXJMaXRlcmFsVHlwZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFs
L1dITFNMRW50cnlQb2ludFNjYWZmb2xkaW5nLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0
YWwvV0hMU0xGdW5jdGlvbldyaXRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dI
TFNMTWV0YWxDb2RlR2VuZXJhdG9yLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hM
U0xOYXRpdmVGdW5jdGlvbldyaXRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dI
TFNMTmF0aXZlVHlwZVdyaXRlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNM
VHlwZU5hbWVyLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xWZXJ0ZXhCdWZm
ZXJJbmRleENhbGN1bGF0b3IuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTEFTVER1bXBl
ci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMQ2hlY2tEdXBsaWNhdGVGdW5jdGlvbnMu
Y3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNrUmVmZXJlbmNlVHlwZXMuY3BwCitN
b2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNrVGV4dHVyZVJlZmVyZW5jZXMuY3BwCitNb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTENoZWNrZXIuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9X
SExTTENvbXB1dGVEaW1lbnNpb25zLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xGdW5j
dGlvblN0YWdlQ2hlY2tlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMR2F0aGVyRW50
cnlQb2ludEl0ZW1zLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xIaWdoWm9tYmllRmlu
ZGVyLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xJbmZlclR5cGVzLmNwcAorTW9kdWxl
cy93ZWJncHUvV0hMU0wvV0hMU0xJbnRyaW5zaWNzLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wv
V0hMU0xMZXhlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMTGl0ZXJhbFR5cGVDaGVj
a2VyLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xOYW1lQ29udGV4dC5jcHAKK01vZHVs
ZXMvd2ViZ3B1L1dITFNML1dITFNMTmFtZVJlc29sdmVyLmNwcAorTW9kdWxlcy93ZWJncHUvV0hM
U0wvV0hMU0xQYXJzZXIuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3Bw
CitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXNlcnZlVmFyaWFibGVMaWZldGltZXMuY3Bw
CitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByb2dyYW0uY3BwCitNb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFByb3BlcnR5UmVzb2x2ZXIuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExT
TFBydW5lVW5yZWFjaGFibGVTdGFuZGFyZExpYnJhcnlGdW5jdGlvbnMuY3BwCitNb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTFJlY3Vyc2lvbkNoZWNrZXIuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExT
TC9XSExTTFJlY3Vyc2l2ZVR5cGVDaGVja2VyLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hM
U0xSZXNvbHZlT3ZlcmxvYWRJbXBsLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTZW1h
bnRpY01hdGNoZXIuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFy
eVV0aWxpdGllcy5jcHAKK01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3RhdGVtZW50QmVoYXZp
b3JDaGVja2VyLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTeW50aGVzaXplQ29uc3Ry
dWN0b3JzLmNwcAorTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTeW50aGVzaXplRW51bWVyYXRp
b25GdW5jdGlvbnMuY3BwCitNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFZpc2l0b3IuY3BwCitN
b2R1bGVzL3dlYmdwdS9XZWJHUFUuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVBZGFwdGVyLmNw
cAorTW9kdWxlcy93ZWJncHUvV2ViR1BVQmluZEdyb3VwLmNwcAorTW9kdWxlcy93ZWJncHUvV2Vi
R1BVQmluZEdyb3VwRGVzY3JpcHRvci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJpbmRHcm91
cExheW91dC5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVUJ1ZmZlci5jcHAKK01vZHVsZXMvd2Vi
Z3B1L1dlYkdQVUNvbW1hbmRCdWZmZXIuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVDb21tYW5k
RW5jb2Rlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQYXNzRW5jb2Rlci5jcHAK
K01vZHVsZXMvd2ViZ3B1L1dlYkdQVUNvbXB1dGVQaXBlbGluZS5jcHAKK01vZHVsZXMvd2ViZ3B1
L1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJH
UFVEZXZpY2UuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVEZXZpY2VFcnJvclNjb3Blcy5jcHAK
K01vZHVsZXMvd2ViZ3B1L1dlYkdQVVBpcGVsaW5lLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BV
UGlwZWxpbmVMYXlvdXQuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVQaXBlbGluZUxheW91dERl
c2NyaXB0b3IuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rl
ci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5j
cHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVF1ZXVlLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BV
UmVuZGVyUGFzc0Rlc2NyaXB0b3IuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVSZW5kZXJQYXNz
RW5jb2Rlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVJlbmRlclBpcGVsaW5lLmNwcAorTW9k
dWxlcy93ZWJncHUvV2ViR1BVUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yLmNwcAorTW9kdWxlcy93
ZWJncHUvV2ViR1BVU2FtcGxlci5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVNoYWRlck1vZHVs
ZS5jcHAKK01vZHVsZXMvd2ViZ3B1L1dlYkdQVVN3YXBDaGFpbi5jcHAKK01vZHVsZXMvd2ViZ3B1
L1dlYkdQVVN3YXBDaGFpbkRlc2NyaXB0b3IuY3BwCitNb2R1bGVzL3dlYmdwdS9XZWJHUFVUZXh0
dXJlLmNwcAorTW9kdWxlcy93ZWJncHUvV2ViR1BVVGV4dHVyZVZpZXcuY3BwCitNb2R1bGVzL3dl
YmdwdS9Xb3JrZXJOYXZpZ2F0b3JHUFUuY3BwCitNb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVu
dC5jcHAKK01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAK
K01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuY3BwCitNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCitNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbEluc3BlY3Rvci5jcHAKK01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJh
bWVyLmNwcAorTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVyLmNwcAorTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCitNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmNwcAorTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEZyYW1lLmNwcAorTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5jcHAKK01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAKK01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuY3BwIEBuby11bmlmeQorTW9kdWxl
cy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVz
L3dlYnhyL1dlYlhSRnJhbWUuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0
U291cmNlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5
LmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJMYXllci5jcHAgQG5vLXVuaWZ5CitN
b2R1bGVzL3dlYnhyL1dlYlhSUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhS
UmVmZXJlbmNlU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlJlbmRlclN0
YXRlLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAg
QG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5jcHAgQG5vLXVuaWZ5CitNb2R1
bGVzL3dlYnhyL1dlYlhSU3BhY2UuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlN5
c3RlbS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dlYnhyL1dlYlhSVmlldy5jcHAgQG5vLXVuaWZ5
CitNb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5jcHAgQG5vLXVuaWZ5CitNb2R1bGVzL3dl
YnhyL1dlYlhSVmlld3BvcnQuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdM
TGF5ZXIuY3BwIEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlRXZlbnQuY3Bw
IEBuby11bmlmeQorTW9kdWxlcy93ZWJ4ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBA
bm8tdW5pZnkKK01vZHVsZXMvd2VieHIvWFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5p
ZnkKK01vZHVsZXMvd2VieHIvWFJTZXNzaW9uRXZlbnQuY3BwIEBuby11bmlmeQorYWNjZXNzaWJp
bGl0eS9BWExvZ2dlci5jcHAKK2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKK2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5QVJJQUdyaWRDZWxsLmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdy
aWRSb3cuY3BwCithY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBdHRhY2htZW50LmNwcAorYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmNwcAorYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5TGFiZWwuY3BwCithY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmNw
cAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKK2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwCithY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNYXRoTUxFbGVtZW50LmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwCithY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5jcHAKK2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCithY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNb2NrT2JqZWN0LmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKK2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKK2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmNwcAorYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5U1ZHRWxlbWVudC5jcHAKK2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuY3Bw
CithY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAorYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2xpZGVyLmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5jcHAKK2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcAorYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1
bW4uY3BwCithY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lci5j
cHAKK2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcAorYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKK2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWVJ
dGVtLmNwcAorYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAK
K2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorYW5pbWF0aW9u
L0FuaW1hdGlvbkVmZmVjdC5jcHAKK2FuaW1hdGlvbi9BbmltYXRpb25FdmVudEJhc2UuY3BwCith
bmltYXRpb24vQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAKK2FuaW1hdGlvbi9BbmltYXRpb25U
aW1lbGluZS5jcHAKK2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwCithbmltYXRpb24vQ1NTUHJv
cGVydHlBbmltYXRpb24uY3BwCithbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5jcHAKK2FuaW1hdGlv
bi9EZWNsYXJhdGl2ZUFuaW1hdGlvbi5jcHAKK2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNw
cAorYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmVzQ29udHJvbGxlci5jcHAKK2FuaW1hdGlvbi9F
bGVtZW50QW5pbWF0aW9uUmFyZURhdGEuY3BwCithbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3Bw
CithbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RTdGFjay5jcHAKK2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwCithbmltYXRpb24vV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmNwcAorYmluZGluZ3MvanMv
Q2FjaGVkTW9kdWxlU2NyaXB0TG9hZGVyLmNwcAorYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0RmV0
Y2hlci5jcHAKK2JpbmRpbmdzL2pzL0NhbGxUcmFjZXIuY3BwCitiaW5kaW5ncy9qcy9Db21tb25W
TS5jcHAKK2JpbmRpbmdzL2pzL0RPTUdDT3V0cHV0Q29uc3RyYWludC5jcHAKK2JpbmRpbmdzL2pz
L0RPTVdyYXBwZXJXb3JsZC5jcHAKK2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKK2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCitiaW5kaW5ncy9qcy9KU0Fib3J0Q29udHJv
bGxlckN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTQWJvcnRTaWduYWxDdXN0b20uY3BwCitiaW5k
aW5ncy9qcy9KU0Fic3RyYWN0UmFuZ2VDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0FuaW1hdGlv
bkVmZmVjdEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTQW5pbWF0aW9uVGltZWxpbmVDdXN0b20u
Y3BwCitiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0F1ZGlvQnVm
ZmVyQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcAorYmluZGlu
Z3MvanMvSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTQXVkaW9Xb3Jr
bGV0UHJvY2Vzc29yQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNBdXRoZW50aWNhdG9yUmVzcG9u
c2VDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0Jhc2ljQ3JlZGVudGlhbEN1c3RvbS5jcHAKK2Jp
bmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5j
cHAKK2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0NT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5j
cHAKK2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAorYmlu
ZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAorYmluZGluZ3MvanMvSlNDdXN0
b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0N1c3RvbUV2ZW50Q3Vz
dG9tLmNwcAorYmluZGluZ3MvanMvSlNET01CaW5kaW5nU2VjdXJpdHkuY3BwCitiaW5kaW5ncy9q
cy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvckJhc2UuY3BwCitiaW5kaW5ncy9qcy9KU0RPTUNvbnN0
cnVjdG9yQmFzZS5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQu
Y3BwCitiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcAorYmluZGluZ3MvanMvSlNET01D
b252ZXJ0TnVtYmVycy5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFN0cmluZ3MuY3BwCiti
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRXZWJHTC5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuY3BwCitiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKK2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NR3VhcmRl
ZE9iamVjdC5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuY3BwCitiaW5kaW5ncy9qcy9K
U0RPTU1hcExpa2UuY3BwCitiaW5kaW5ncy9qcy9KU0RPTVByb21pc2UuY3BwCitiaW5kaW5ncy9q
cy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NUXVhZEN1c3RvbS5j
cHAKK2JpbmRpbmdzL2pzL0pTRE9NU2V0TGlrZS5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKK2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorYmluZGluZ3MvanMv
SlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcAorYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcAor
YmluZGluZ3MvanMvSlNET01XcmFwcGVyQ2FjaGUuY3BwCitiaW5kaW5ncy9qcy9KU0RlcHJlY2F0
ZWRDU1NPTVZhbHVlQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAK
K2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRGcmFnbWVudEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRXJyb3JFdmVudEN1c3RvbS5jcHAKK2Jp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAorYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5j
cHAKK2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKK2JpbmRpbmdzL2pzL0pTRXZlbnRU
YXJnZXRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZS5jcHAKK2JpbmRpbmdzL2pz
L0pTRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRmV0Y2hF
dmVudEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTRmlsZVN5c3RlbUVudHJ5Q3VzdG9tLmNwcAor
YmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
SFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3Rv
bS5jcHAKK2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9K
U0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0
b20uY3BwCitiaW5kaW5ncy9qcy9KU0lEQkN1cnNvckN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
SURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNJREJJbmRleEN1c3Rv
bS5jcHAKK2JpbmRpbmdzL2pzL0pTSURCT2JqZWN0U3RvcmVDdXN0b20uY3BwCitiaW5kaW5ncy9q
cy9KU0lEQlJlcXVlc3RDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0lEQlRyYW5zYWN0aW9uQ3Vz
dG9tLmNwcAorYmluZGluZ3MvanMvSlNJREJTZXJpYWxpemF0aW9uR2xvYmFsT2JqZWN0LmNwcAor
YmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU0ludGVyc2Vj
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNJbnRlcnNlY3Rpb25PYnNlcnZl
ckVudHJ5Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5jcHAKK2Jp
bmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFt
VHJhY2tDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcAor
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAorYmluZGluZ3MvanMvSlNNdXRhdGlvblJlY29yZEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
TmF2aWdhdG9yQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorYmluZGlu
Z3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3Vz
dG9tLmNwcAorYmluZGluZ3MvanMvSlNPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
dXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1BhaW50UmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cAorYmluZGluZ3MvanMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUN1c3RvbS5jcHAKK2JpbmRp
bmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcAorYmluZGluZ3MvanMv
SlNQYXltZW50UmVzcG9uc2VDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50
cnlDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20uY3Bw
CitiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCitiaW5kaW5ncy9qcy9K
U1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1Byb21pc2VSZWplY3Rpb25F
dmVudEN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20u
Y3BwCitiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCitiaW5kaW5ncy9qcy9K
U1JlbW90ZURPTVdpbmRvd0N1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTUmVzaXplT2JzZXJ2ZXJD
dXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1Jlc2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwCiti
aW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1NWR1ZpZXdT
cGVjQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNTZXJ2aWNlV29ya2VyQ2xpZW50Q3VzdG9tLmNw
cAorYmluZGluZ3MvanMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwCitiaW5k
aW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20u
Y3BwCitiaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pT
VGV4dFRyYWNrQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNw
cAorYmluZGluZ3MvanMvSlNUcmFja0N1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtl
ckN1c3RvbS5jcHAKK2JpbmRpbmdzL2pzL0pTVHlwZWRPTUNTU1N0eWxlVmFsdWVDdXN0b20uY3Bw
CitiaW5kaW5ncy9qcy9KU1VuZG9JdGVtQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNWaWRlb1Ry
YWNrQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAKK2Jp
bmRpbmdzL2pzL0pTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNwcAorYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCitiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQ3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3Bw
CitiaW5kaW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCitiaW5kaW5ncy9qcy9K
U1hNTERvY3VtZW50Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAKK2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbS5jcHAKK2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIuY3BwCitiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCitiaW5kaW5ncy9qcy9T
Y3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCitiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNw
cAorYmluZGluZ3MvanMvU2NyaXB0TW9kdWxlTG9hZGVyLmNwcAorYmluZGluZ3MvanMvU2NyaXB0
U3RhdGUuY3BwCitiaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuY3BwCitiaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCitiaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3Bw
CitiaW5kaW5ncy9qcy9XZWJDb3JlSklUT3BlcmF0aW9ucy5jcHAKK2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0NsaWVudERhdGEuY3BwCitiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xs
ZXIuY3BwCitiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKK2JyaWRnZS9JZGVudGlmaWVyUmVw
LmNwcAorYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuY3Bw
CiticmlkZ2UvYy9jX2NsYXNzLmNwcAorYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKK2JyaWRnZS9j
L2NfcnVudGltZS5jcHAKK2JyaWRnZS9jL2NfdXRpbGl0eS5jcHAKK2JyaWRnZS9qc2MvQnJpZGdl
SlNDLmNwcAorYnJpZGdlL25wcnVudGltZS5jcHAKK2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAor
YnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAorYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorYnJp
ZGdlL3J1bnRpbWVfcm9vdC5jcHAKK2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkRmlsdGVyc0Fs
cGhhYmV0LmNwcAorY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAorY29u
dGVudGV4dGVuc2lvbnMvQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmNwcAorY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAKK2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb25Db21waWxlci5jcHAKK2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25FcnJv
ci5jcHAKK2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCitjb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUnVsZS5jcHAKK2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcAorY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbnNCYWNrZW5kLmNwcAorY29udGVudGV4dGVuc2lvbnMvREZBLmNwcAorY29udGVu
dGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVDb21waWxlci5jcHAKK2NvbnRlbnRleHRlbnNpb25zL0RG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwCitjb250ZW50ZXh0ZW5zaW9ucy9ERkFDb21iaW5lci5j
cHAKK2NvbnRlbnRleHRlbnNpb25zL0RGQU1pbmltaXplci5jcHAKK2NvbnRlbnRleHRlbnNpb25z
L0RGQU5vZGUuY3BwCitjb250ZW50ZXh0ZW5zaW9ucy9ORkEuY3BwCitjb250ZW50ZXh0ZW5zaW9u
cy9ORkFUb0RGQS5jcHAKK2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKK2Ny
eXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCitjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnku
Y3BwCitjcnlwdG8vQ3J5cHRvS2V5LmNwcAorY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKK2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCitjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcAorY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NUUi5jcHAKK2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19H
Q00uY3BwCitjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCitjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmNwcAorY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtRUNEU0EuY3BwCitjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1IS0RGLmNwcAorY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAKK2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKK2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwCitjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKK2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcAorY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBX1BTUy5jcHAKK2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEu
Y3BwCitjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCitjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwCitjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEEzODQuY3BwCitjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEE1MTIuY3BwCitjcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCitjcnlwdG8va2V5cy9D
cnlwdG9LZXlFQy5jcHAKK2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCitjcnlwdG8va2V5
cy9DcnlwdG9LZXlSU0EuY3BwCitjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0FDb21wb25lbnRzLmNw
cAorY3J5cHRvL2tleXMvQ3J5cHRvS2V5UmF3LmNwcAorY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMu
Y3BwCitjc3MvQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAKK2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAK
K2Nzcy9DU1NCb3JkZXJJbWFnZS5jcHAKK2Nzcy9DU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuY3Bw
Citjc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKK2Nzcy9DU1NDYW52YXNWYWx1ZS5jcHAKK2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCitjc3MvQ1NTQ29uZGl0aW9uUnVsZS5j
cHAKK2Nzcy9DU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3BwCitjc3MvQ1NTQ3Jvc3NmYWRl
VmFsdWUuY3BwCitjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKK2Nzcy9DU1NDdXN0b21JZGVu
dFZhbHVlLmNwcAorY3NzL0NTU0N1c3RvbVByb3BlcnR5VmFsdWUuY3BwCitjc3MvQ1NTRmlsdGVy
SW1hZ2VWYWx1ZS5jcHAKK2Nzcy9DU1NGb250RmFjZS5jcHAKK2Nzcy9DU1NGb250RmFjZVJ1bGUu
Y3BwCitjc3MvQ1NTRm9udEZhY2VTZXQuY3BwCitjc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCitj
c3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKK2Nzcy9DU1NGb250RmVhdHVyZVZhbHVlLmNwcAor
Y3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAKK2Nzcy9DU1NGb250U3R5bGVSYW5nZVZhbHVlLmNwcAor
Y3NzL0NTU0ZvbnRTdHlsZVZhbHVlLmNwcAorY3NzL0NTU0ZvbnRWYWx1ZS5jcHAKK2Nzcy9DU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwCitjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKK2Nzcy9DU1NH
cmFkaWVudFZhbHVlLmNwcAorY3NzL0NTU0dyaWRBdXRvUmVwZWF0VmFsdWUuY3BwCitjc3MvQ1NT
R3JpZEludGVnZXJSZXBlYXRWYWx1ZS5jcHAKK2Nzcy9DU1NHcmlkTGluZU5hbWVzVmFsdWUuY3Bw
Citjc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKK2Nzcy9DU1NHcm91cGluZ1J1bGUu
Y3BwCitjc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKK2Nzcy9DU1NJbWFnZVNldFZhbHVl
LmNwcAorY3NzL0NTU0ltYWdlVmFsdWUuY3BwCitjc3MvQ1NTSW1wb3J0UnVsZS5jcHAKK2Nzcy9D
U1NJbmhlcml0ZWRWYWx1ZS5jcHAKK2Nzcy9DU1NJbml0aWFsVmFsdWUuY3BwCitjc3MvQ1NTS2V5
ZnJhbWVSdWxlLmNwcAorY3NzL0NTU0tleWZyYW1lc1J1bGUuY3BwCitjc3MvQ1NTTGluZUJveENv
bnRhaW5WYWx1ZS5jcHAKK2Nzcy9DU1NNYXJrdXAuY3BwCitjc3MvQ1NTTWVkaWFSdWxlLmNwcAor
Y3NzL0NTU05hbWVkSW1hZ2VWYWx1ZS5jcHAKK2Nzcy9DU1NOYW1lc3BhY2VSdWxlLmNwcAorY3Nz
L0NTU1BhZ2VSdWxlLmNwcAorY3NzL0NTU1BhaW50SW1hZ2VWYWx1ZS5jcHAKK2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAKK2Nzcy9DU1NQcm9wZXJ0eS5jcHAKK2Nzcy9DU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuY3BwCitjc3MvQ1NTUmVmbGVjdFZhbHVlLmNwcAorY3NzL0NTU1JlZ2lzdGVyZWRDdXN0
b21Qcm9wZXJ0eS5jcHAKK2Nzcy9DU1NSZXZlcnRWYWx1ZS5jcHAKK2Nzcy9DU1NSdWxlLmNwcAor
Y3NzL0NTU1J1bGVMaXN0LmNwcAorY3NzL0NTU1NlZ21lbnRlZEZvbnRGYWNlLmNwcAorY3NzL0NT
U1NlbGVjdG9yLmNwcAorY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKK2Nzcy9DU1NTaGFkb3dWYWx1
ZS5jcHAKK2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorY3NzL0NTU1N0eWxlUnVsZS5jcHAK
K2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorY3NzL0NTU1N1cHBvcnRzUnVsZS5jcHAKK2Nzcy9DU1NU
aW1pbmdGdW5jdGlvblZhbHVlLmNwcAorY3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3Bw
Citjc3MvQ1NTVG9TdHlsZU1hcC5jcHAKK2Nzcy9DU1NVbmljb2RlUmFuZ2VWYWx1ZS5jcHAKK2Nz
cy9DU1NVbml0cy5jcHAKK2Nzcy9DU1NVbnNldFZhbHVlLmNwcAorY3NzL0NTU1ZhbHVlLmNwcAor
Y3NzL0NTU1ZhbHVlTGlzdC5jcHAKK2Nzcy9DU1NWYWx1ZVBvb2wuY3BwCitjc3MvQ1NTVmFyaWFi
bGVEYXRhLmNwcAorY3NzL0NTU1ZhcmlhYmxlUmVmZXJlbmNlVmFsdWUuY3BwCitjc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcAorY3NzL0RPTUNTU1BhaW50V29ya2xldC5jcHAKK2Nzcy9ET01DU1NSZWdp
c3RlckN1c3RvbVByb3BlcnR5LmNwcAorY3NzL0RPTU1hdHJpeC5jcHAKK2Nzcy9ET01NYXRyaXhS
ZWFkT25seS5jcHAKK2Nzcy9EZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5jcHAKK2Nzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKK2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3QuY3Bw
Citjc3MvRm9udEZhY2UuY3BwCitjc3MvRm9udEZhY2VTZXQuY3BwCitjc3MvRm9udFZhcmlhbnRC
dWlsZGVyLmNwcAorY3NzL0xlbmd0aEZ1bmN0aW9ucy5jcHAKK2Nzcy9NZWRpYUZlYXR1cmVOYW1l
cy5jcHAKK2Nzcy9NZWRpYUxpc3QuY3BwCitjc3MvTWVkaWFRdWVyeS5jcHAKK2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAorY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAorY3NzL01lZGlh
UXVlcnlMaXN0LmNwcAorY3NzL01lZGlhUXVlcnlMaXN0RXZlbnQuY3BwCitjc3MvTWVkaWFRdWVy
eU1hdGNoZXIuY3BwCitjc3MvTWVkaWFRdWVyeVBhcnNlckNvbnRleHQuY3BwCitjc3MvUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKK2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCitjc3MvU2VsZWN0b3JGaWx0ZXIu
Y3BwCitjc3MvU3R5bGVDb2xvci5jcHAKK2Nzcy9TdHlsZU1lZGlhLmNwcAorY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAKK2Nzcy9TdHlsZVByb3BlcnR5U2hvcnRoYW5kLmNwcAorY3NzL1N0eWxlUnVs
ZS5jcHAKK2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCitjc3MvU3R5bGVTaGVldC5jcHAKK2Nzcy9T
dHlsZVNoZWV0Q29udGVudHMuY3BwCitjc3MvU3R5bGVTaGVldExpc3QuY3BwCitjc3MvVHJhbnNm
b3JtRnVuY3Rpb25zLmNwcAorY3NzL3BhcnNlci9DU1NBdFJ1bGVJRC5jcHAKK2Nzcy9wYXJzZXIv
Q1NTRGVmZXJyZWRQYXJzZXIuY3BwCitjc3MvcGFyc2VyL0NTU1BhcnNlci5jcHAKK2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKK2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNw
cAorY3NzL3BhcnNlci9DU1NQYXJzZXJJZGlvbXMuY3BwCitjc3MvcGFyc2VyL0NTU1BhcnNlcklt
cGwuY3BwCitjc3MvcGFyc2VyL0NTU1BhcnNlck9ic2VydmVyV3JhcHBlci5jcHAKK2Nzcy9wYXJz
ZXIvQ1NTUGFyc2VyU2VsZWN0b3IuY3BwCitjc3MvcGFyc2VyL0NTU1BhcnNlclRva2VuLmNwcAor
Y3NzL3BhcnNlci9DU1NQYXJzZXJUb2tlblJhbmdlLmNwcAorY3NzL3BhcnNlci9DU1NQcm9wZXJ0
eVBhcnNlci5jcHAKK2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorY3Nz
L3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKK2Nzcy9wYXJzZXIvQ1NTU3VwcG9ydHNQYXJz
ZXIuY3BwCitjc3MvcGFyc2VyL0NTU1Rva2VuaXplci5jcHAKK2Nzcy9wYXJzZXIvQ1NTVG9rZW5p
emVySW5wdXRTdHJlYW0uY3BwCitjc3MvcGFyc2VyL0NTU1ZhcmlhYmxlUGFyc2VyLmNwcAorY3Nz
L3BhcnNlci9NZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmNwcAorY3NzL3BhcnNlci9NZWRpYVF1ZXJ5
UGFyc2VyLmNwcAorY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKK2Nzcy9wYXJz
ZXIvU2l6ZXNDYWxjUGFyc2VyLmNwcAorY3NzL3R5cGVkb20vU3R5bGVQcm9wZXJ0eU1hcFJlYWRP
bmx5LmNwcAorY3NzL3R5cGVkb20vVHlwZWRPTUNTU0ltYWdlVmFsdWUuY3BwCitjc3MvdHlwZWRv
bS9UeXBlZE9NQ1NTTnVtZXJpY1ZhbHVlLmNwcAorY3NzL3R5cGVkb20vVHlwZWRPTUNTU1N0eWxl
VmFsdWUuY3BwCitjc3MvdHlwZWRvbS9UeXBlZE9NQ1NTVW5pdFZhbHVlLmNwcAorY3NzL3R5cGVk
b20vVHlwZWRPTUNTU1VucGFyc2VkVmFsdWUuY3BwCitjc3NqaXQvU2VsZWN0b3JDb21waWxlci5j
cHAKK2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3guY3BwCitkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RGVj
b3JhdGlvbkRhdGEuY3BwCitkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RGVjb3JhdGlvblBhaW50ZXIu
Y3BwCitkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94RmFjdG9yeS5jcHAKK2Rpc3BsYXkvY3NzL0Rpc3Bs
YXlCb3hNb2RlbEJveC5jcHAKK2Rpc3BsYXkvY3NzL0Rpc3BsYXlCb3hQYWludGVyLmNwcAorZGlz
cGxheS9jc3MvRGlzcGxheUNvbnRhaW5lckJveC5jcHAKK2Rpc3BsYXkvY3NzL0Rpc3BsYXlDU1NQ
YWludGVyLmNwcAorZGlzcGxheS9jc3MvRGlzcGxheUZpbGxMYXllckltYWdlR2VvbWV0cnkuY3Bw
CitkaXNwbGF5L2Nzcy9EaXNwbGF5SW1hZ2VCb3guY3BwCitkaXNwbGF5L2Nzcy9EaXNwbGF5UmVw
bGFjZWRCb3guY3BwCitkaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuY3BwCitkaXNwbGF5L2Nzcy9E
aXNwbGF5VGV4dEJveC5jcHAKK2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAKK2Rp
c3BsYXkvRGlzcGxheVRyZWUuY3BwCitkaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKK2Rp
c3BsYXkvRGlzcGxheVZpZXcuY3BwCitkb20vQWJvcnRDb250cm9sbGVyLmNwcAorZG9tL0Fib3J0
U2lnbmFsLmNwcAorZG9tL0Fic3RyYWN0UmFuZ2UuY3BwCitkb20vQWN0aXZlRE9NQ2FsbGJhY2su
Y3BwCitkb20vQWN0aXZlRE9NT2JqZWN0LmNwcAorZG9tL0FsbERlc2NlbmRhbnRzQ29sbGVjdGlv
bi5jcHAKK2RvbS9BbmltYXRpb25FdmVudC5jcHAKK2RvbS9BdHRyLmNwcAorZG9tL0JlZm9yZUxv
YWRFdmVudC5jcHAKK2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAKK2RvbS9CZWZvcmVV
bmxvYWRFdmVudC5jcHAKK2RvbS9Cb3VuZGFyeVBvaW50LmNwcAorZG9tL0NEQVRBU2VjdGlvbi5j
cHAKK2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorZG9tL0NoaWxkTGlzdE11dGF0aW9uU2NvcGUuY3Bw
Citkb20vQ2hpbGROb2RlTGlzdC5jcHAKK2RvbS9DbGFzc0NvbGxlY3Rpb24uY3BwCitkb20vQ2xp
cGJvYXJkRXZlbnQuY3BwCitkb20vQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwCitkb20vQ29tbWVu
dC5jcHAKK2RvbS9Db21wb3NlZFRyZWVJdGVyYXRvci5jcHAKK2RvbS9Db21wb3NpdGlvbkV2ZW50
LmNwcAorZG9tL0NvbnN0YW50UHJvcGVydHlNYXAuY3BwCitkb20vQ29udGFpbmVyTm9kZS5jcHAK
K2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKK2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlci5jcHAKK2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAKK2RvbS9DdXN0
b21FbGVtZW50UmVnaXN0cnkuY3BwCitkb20vQ3VzdG9tRXZlbnQuY3BwCitkb20vRE9NRXhjZXB0
aW9uLmNwcAorZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorZG9tL0RPTVBvaW50UmVhZE9ubHku
Y3BwCitkb20vRE9NUXVhZC5jcHAKK2RvbS9ET01SZWN0TGlzdC5jcHAKK2RvbS9ET01SZWN0UmVh
ZE9ubHkuY3BwCitkb20vRE9NU3RyaW5nTGlzdC5jcHAKK2RvbS9EYXRhVHJhbnNmZXIuY3BwCitk
b20vRGF0YVRyYW5zZmVySXRlbS5jcHAKK2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKK2Rv
bS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAorZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIu
Y3BwCitkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKK2RvbS9EZXZpY2VNb3Rpb25EYXRh
LmNwcAorZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcAorZG9tL0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKK2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuY3BwCitkb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcAorZG9tL0RldmljZU9yaWVudGF0
aW9uRXZlbnQuY3BwCitkb20vRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvbkV2ZW50LmNwcAorZG9t
L0RvY3VtZW50LmNwcAorZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCitkb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmNwcAorZG9tL0RvY3VtZW50UGFyc2VyLmNwcAorZG9tL0RvY3VtZW50U2hh
cmVkT2JqZWN0UG9vbC5jcHAKK2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwCitkb20vRG9j
dW1lbnRUb3VjaC5jcHAgQG5vLXVuaWZ5Citkb20vRG9jdW1lbnRUeXBlLmNwcAorZG9tL0RyYWdF
dmVudC5jcHAKK2RvbS9FbGVtZW50LmNwcAorZG9tL0VsZW1lbnREYXRhLmNwcAorZG9tL0VsZW1l
bnRSYXJlRGF0YS5jcHAKK2RvbS9FcnJvckV2ZW50LmNwcAorZG9tL0V2ZW50LmNwcAorZG9tL0V2
ZW50Q29udGV4dC5jcHAKK2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCitkb20vRXZlbnRMaXN0ZW5l
ck1hcC5jcHAKK2RvbS9FdmVudExvb3AuY3BwCitkb20vRXZlbnROYW1lcy5jcHAKK2RvbS9FdmVu
dFBhdGguY3BwCitkb20vRXZlbnRUYXJnZXQuY3BwCitkb20vRXZlbnRUYXJnZXRDb25jcmV0ZS5j
cHAKK2RvbS9FeGNlcHRpb25EYXRhLmNwcAorZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmNwcAor
ZG9tL0ZvY3VzRXZlbnQuY3BwCitkb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCitkb20vR0NSZWFj
aGFibGVSZWYuY3BwCitkb20vR2VuZXJpY0V2ZW50UXVldWUuY3BwCitkb20vSGFzaENoYW5nZUV2
ZW50LmNwcAorZG9tL0lkVGFyZ2V0T2JzZXJ2ZXIuY3BwCitkb20vSWRUYXJnZXRPYnNlcnZlclJl
Z2lzdHJ5LmNwcAorZG9tL0lkbGVDYWxsYmFja0NvbnRyb2xsZXIuY3BwCitkb20vSWRsZURlYWRs
aW5lLmNwcAorZG9tL0lubGluZUNsYXNzaWNTY3JpcHQuY3BwCitkb20vSW5saW5lU3R5bGVTaGVl
dE93bmVyLmNwcAorZG9tL0lucHV0RXZlbnQuY3BwCitkb20vS2V5Ym9hcmRFdmVudC5jcHAKK2Rv
bS9MaXZlTm9kZUxpc3QuY3BwCitkb20vTG9hZGFibGVDbGFzc2ljU2NyaXB0LmNwcAorZG9tL0xv
YWRhYmxlTW9kdWxlU2NyaXB0LmNwcAorZG9tL0xvYWRhYmxlU2NyaXB0LmNwcAorZG9tL01lc3Nh
Z2VDaGFubmVsLmNwcAorZG9tL01lc3NhZ2VFdmVudC5jcHAKK2RvbS9NZXNzYWdlUG9ydC5jcHAK
K2RvbS9NaWNyb3Rhc2tzLmNwcAorZG9tL01vdXNlRXZlbnQuY3BwCitkb20vTW91c2VSZWxhdGVk
RXZlbnQuY3BwCitkb20vTXV0YXRpb25FdmVudC5jcHAKK2RvbS9NdXRhdGlvbk9ic2VydmVyLmNw
cAorZG9tL011dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmNwcAorZG9tL011dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCitkb20vTXV0YXRpb25SZWNvcmQuY3BwCitkb20vTmFtZU5v
ZGVMaXN0LmNwcAorZG9tL05hbWVkTm9kZU1hcC5jcHAKK2RvbS9OYXRpdmVOb2RlRmlsdGVyLmNw
cAorZG9tL05vZGUuY3BwCitkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKK2RvbS9Ob2RlSXRl
cmF0b3IuY3BwCitkb20vTm9kZUxpc3QuY3BwCitkb20vTm9kZVJhcmVEYXRhLmNwcAorZG9tL05v
ZGVUcmF2ZXJzYWwuY3BwCitkb20vT3ZlcmZsb3dFdmVudC5jcHAKK2RvbS9QYWdlVHJhbnNpdGlv
bkV2ZW50LmNwcAorZG9tL1BlbmRpbmdTY3JpcHQuY3BwCitkb20vUG9pbnRlckV2ZW50LmNwcAor
ZG9tL1BvcFN0YXRlRXZlbnQuY3BwCitkb20vUG9zaXRpb24uY3BwCitkb20vUG9zaXRpb25JdGVy
YXRvci5jcHAKK2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCitkb20vUHJvZ3Jlc3NFdmVu
dC5jcHAKK2RvbS9Qcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCitkb20vUHNldWRvRWxlbWVudC5j
cHAKK2RvbS9RdWFsaWZpZWROYW1lLmNwcAorZG9tL1F1YWxpZmllZE5hbWVDYWNoZS5jcHAKK2Rv
bS9SYWRpb0J1dHRvbkdyb3Vwcy5jcHAKK2RvbS9SYW5nZS5jcHAKK2RvbS9SZWplY3RlZFByb21p
c2VUcmFja2VyLmNwcAorZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwCitkb20vU2NyaXB0RWxlbWVu
dC5jcHAKK2RvbS9TY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5jcHAKK2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcAorZG9tL1NjcmlwdFJ1bm5lci5jcHAKK2RvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwCitkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNw
cAorZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKK2RvbS9TZWN1cml0eU9yaWdpblBvbGljeS5jcHAK
K2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcAorZG9tL1NlbGVjdG9yUXVlcnku
Y3BwCitkb20vU2hhZG93Um9vdC5jcHAKK2RvbS9TaW1wbGVSYW5nZS5jcHAKK2RvbS9TaW11bGF0
ZWRDbGljay5jcHAKK2RvbS9TbG90QXNzaWdubWVudC5jcHAKK2RvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcAorZG9tL1N0YXRpY05vZGVMaXN0LmNwcAorZG9tL1N0YXRpY1JhbmdlLmNwcAorZG9tL1N0
cmluZ0NhbGxiYWNrLmNwcAorZG9tL1N0eWxlZEVsZW1lbnQuY3BwCitkb20vVGFnQ29sbGVjdGlv
bi5jcHAKK2RvbS9UZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50LmNwcAorZG9tL1RleHQu
Y3BwCitkb20vVGV4dERlY29kZXIuY3BwCitkb20vVGV4dERlY29kZXJTdHJlYW1EZWNvZGVyLmNw
cAorZG9tL1RleHRFbmNvZGVyLmNwcAorZG9tL1RleHRFbmNvZGVyU3RyZWFtRW5jb2Rlci5jcHAK
K2RvbS9UZXh0RXZlbnQuY3BwCitkb20vVGV4dE5vZGVUcmF2ZXJzYWwuY3BwCitkb20vVG91Y2gu
Y3BwIEBuby11bmlmeQorZG9tL1RvdWNoRXZlbnQuY3BwIEBuby11bmlmeQorZG9tL1RvdWNoTGlz
dC5jcHAgQG5vLXVuaWZ5Citkb20vVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAKK2RvbS9UcmFu
c2l0aW9uRXZlbnQuY3BwCitkb20vVHJhdmVyc2FsLmNwcAorZG9tL1RyZWVTY29wZS5jcHAKK2Rv
bS9UcmVlU2NvcGVPcmRlcmVkTWFwLmNwcAorZG9tL1RyZWVXYWxrZXIuY3BwCitkb20vVUlFdmVu
dC5jcHAKK2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmNwcAorZG9tL1VzZXJBY3Rpb25FbGVtZW50
U2V0LmNwcAorZG9tL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmNwcAorZG9tL1VzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yLmNwcAorZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAorZG9tL1Zpc2l0ZWRM
aW5rU3RhdGUuY3BwCitkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwCitkb20vV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmNwcAorZG9tL1doZWVsRXZlbnQuY3BwCitkb20vV2luZG93RXZlbnRMb29w
LmNwcAorZG9tL1hNTERvY3VtZW50LmNwcAorZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENo
YW5uZWwuY3BwCitkb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNw
cAorZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3BwCitk
b20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5LmNwcAorZG9tL21lc3Nh
Z2Vwb3J0cy9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5jcHAKK2RvbS9tZXNzYWdlcG9ydHMvV29y
a2VyTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCitkb21qaXQvRE9NSklUSGVscGVycy5j
cHAKK2RvbWppdC9KU0RvY3VtZW50RE9NSklULmNwcAorZG9taml0L0pTRG9jdW1lbnRGcmFnbWVu
dERPTUpJVC5jcHAKK2RvbWppdC9KU0VsZW1lbnRET01KSVQuY3BwCitkb21qaXQvSlNFdmVudERP
TUpJVC5jcHAKK2RvbWppdC9KU05vZGVET01KSVQuY3BwCitlZGl0aW5nL0FsdGVybmF0aXZlVGV4
dENvbnRyb2xsZXIuY3BwCitlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcAorZWRpdGluZy9B
cHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwCitlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cAorZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmNwcAorZWRpdGluZy9DaGFuZ2VMaXN0
VHlwZUNvbW1hbmQuY3BwCitlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorZWRpdGlu
Zy9DcmVhdGVMaW5rQ29tbWFuZC5jcHAKK2VkaXRpbmcvQ3VzdG9tVW5kb1N0ZXAuY3BwCitlZGl0
aW5nL0RlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwCitlZGl0aW5nL0RlbGV0ZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCitlZGl0aW5nL0RpY3RhdGlvbkNvbW1hbmQuY3BwCitlZGl0aW5nL0VkaXRB
Y3Rpb24uY3BwCitlZGl0aW5nL0VkaXRDb21tYW5kLmNwcAorZWRpdGluZy9FZGl0aW5nLmNwcAor
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCitlZGl0aW5nL0VkaXRvci5jcHAKK2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAKK2VkaXRpbmcvRm9udEF0dHJpYnV0ZUNoYW5nZXMuY3BwCitlZGl0aW5n
L0Zvcm1hdEJsb2NrQ29tbWFuZC5jcHAKK2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCitlZGl0
aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKK2VkaXRpbmcvSW5kZW50T3V0ZGVudENvbW1hbmQuY3Bw
CitlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCitlZGl0aW5nL0luc2VydExp
bmVCcmVha0NvbW1hbmQuY3BwCitlZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAorZWRpdGlu
Zy9JbnNlcnROZXN0ZWRMaXN0Q29tbWFuZC5jcHAKK2VkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNv
bW1hbmQuY3BwCitlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCitl
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcAorZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKK2VkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuY3BwCitlZGl0aW5nL01v
ZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAKK2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQu
Y3BwCitlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwCitlZGl0aW5nL1JlbW92ZU5vZGVD
b21tYW5kLmNwcAorZWRpdGluZy9SZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5j
cHAKK2VkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAKK2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRo
U3BhbkNvbW1hbmQuY3BwCitlZGl0aW5nL1JlcGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZC5jcHAK
K2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCitlZGl0aW5nL1NldE5vZGVBdHRy
aWJ1dGVDb21tYW5kLmNwcAorZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5kLmNwcAorZWRpdGlu
Zy9TaW1wbGlmeU1hcmt1cENvbW1hbmQuY3BwCitlZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKK2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcAorZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5k
LmNwcAorZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcAorZWRpdGluZy9TcGxpdFRleHRO
b2RlQ29tbWFuZC5jcHAKK2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29t
bWFuZC5jcHAKK2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAorZWRpdGluZy9UZXh0SW5z
ZXJ0aW9uQmFzZUNvbW1hbmQuY3BwCitlZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKK2VkaXRpbmcv
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwCitlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3Bw
CitlZGl0aW5nL1VubGlua0NvbW1hbmQuY3BwCitlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAK
K2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKK2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcAor
ZWRpdGluZy9XZWJDb250ZW50UmVhZGVyLmNwcAorZWRpdGluZy9XZWJDb3JlUGFzdGVib2FyZEZp
bGVSZWFkZXIuY3BwCitlZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAK
K2VkaXRpbmcvbWFya3VwLmNwcAorZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCitmaWxlYXBp
L0Jsb2IuY3BwCitmaWxlYXBpL0Jsb2JCdWlsZGVyLmNwcAorZmlsZWFwaS9CbG9iQ2FsbGJhY2su
Y3BwCitmaWxlYXBpL0Jsb2JVUkwuY3BwCitmaWxlYXBpL0ZpbGUuY3BwCitmaWxlYXBpL0ZpbGVM
aXN0LmNwcAorZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAorZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
LmNwcAorZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHAKK2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1
ZS5jcHAKK2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKK2hpc3RvcnkvQmFja0Zv
cndhcmRDYWNoZS5jcHAKK2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAoraGlzdG9y
eS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmNwcAoraGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAK
K2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAKK2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCitodG1sL0F1
dG9jYXBpdGFsaXplLmNwcAoraHRtbC9BdXRvZmlsbC5jcHAKK2h0bWwvQmFzZUJ1dHRvbklucHV0
VHlwZS5jcHAKK2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKK2h0bWwvQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwCitodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKK2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuY3BwCitodG1sL0J1dHRvbklucHV0VHlwZS5jcHAK
K2h0bWwvQ2FudmFzQmFzZS5jcHAKK2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCitodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcAoraHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAKK2h0bWwvRE9NRm9y
bURhdGEuY3BwCitodG1sL0RPTVRva2VuTGlzdC5jcHAKK2h0bWwvRE9NVVJMLmNwcAoraHRtbC9E
YXRlSW5wdXRUeXBlLmNwcAoraHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAoraHRtbC9E
aXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwCitodG1sL0VtYWlsSW5wdXRUeXBlLmNwcAoraHRt
bC9FbnRlcktleUhpbnQuY3BwCitodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcAoraHRtbC9G
ZWF0dXJlUG9saWN5LmNwcAoraHRtbC9GaWxlSW5wdXRUeXBlLmNwcAoraHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuY3BwCitodG1sL0Zvcm1Db250cm9sbGVyLmNwcAoraHRtbC9HZW5lcmljQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uY3BwCitodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmNwcAoraHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKK2h0bWwvSFRNTEFyZWFFbGVtZW50LmNwcAoraHRtbC9IVE1M
QXR0YWNobWVudEVsZW1lbnQuY3BwCitodG1sL0hUTUxBdWRpb0VsZW1lbnQuY3BwCitodG1sL0hU
TUxCRElFbGVtZW50LmNwcAoraHRtbC9IVE1MQlJFbGVtZW50LmNwcAoraHRtbC9IVE1MQmFzZUVs
ZW1lbnQuY3BwCitodG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKK2h0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuY3BwCitodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAoraHRtbC9IVE1MQ29sbGVjdGlvbi5j
cHAKK2h0bWwvSFRNTERMaXN0RWxlbWVudC5jcHAKK2h0bWwvSFRNTERhdGFFbGVtZW50LmNwcAor
aHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcAoraHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
CitodG1sL0hUTUxEaWFsb2dFbGVtZW50LmNwcAoraHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5j
cHAKK2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwCitodG1sL0hUTUxEb2N1bWVudC5jcHAKK2h0bWwv
SFRNTEVsZW1lbnQuY3BwCitodG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCitodG1sL0hUTUxGaWVs
ZFNldEVsZW1lbnQuY3BwCitodG1sL0hUTUxGb250RWxlbWVudC5jcHAKK2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKK2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5j
cHAKK2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwCitodG1sL0hUTUxGb3JtRWxl
bWVudC5jcHAKK2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAKK2h0bWwvSFRNTEZyYW1lRWxlbWVu
dEJhc2UuY3BwCitodG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKK2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5jcHAKK2h0bWwvSFRNTEhSRWxlbWVudC5jcHAKK2h0bWwvSFRNTEhlYWRFbGVt
ZW50LmNwcAoraHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuY3BwCitodG1sL0hUTUxIdG1sRWxlbWVu
dC5jcHAKK2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCitodG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCitodG1sL0hUTUxJbWFnZUxvYWRlci5jcHAKK2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
K2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCitodG1sL0hUTUxMSUVsZW1lbnQuY3BwCitodG1s
L0hUTUxMYWJlbEVsZW1lbnQuY3BwCitodG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAoraHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCitodG1sL0hUTUxNYXBFbGVtZW50LmNwcAoraHRtbC9IVE1MTWFy
cXVlZUVsZW1lbnQuY3BwCitodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCitodG1sL0hUTUxNZW51
RWxlbWVudC5jcHAKK2h0bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5jcHAKK2h0bWwvSFRNTE1ldGFF
bGVtZW50LmNwcAoraHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAoraHRtbC9IVE1MTW9kRWxlbWVu
dC5jcHAKK2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmNwcAoraHRtbC9IVE1MT0xpc3RFbGVtZW50
LmNwcAoraHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKK2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5jcHAKK2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCitodG1sL0hUTUxPcHRpb25zQ29sbGVj
dGlvbi5jcHAKK2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuY3BwCitodG1sL0hUTUxQYXJhZ3JhcGhF
bGVtZW50LmNwcAoraHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcAoraHRtbC9IVE1MUGljdHVyZUVs
ZW1lbnQuY3BwCitodG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAoraHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcAoraHRtbC9IVE1MUHJlRWxlbWVudC5jcHAKK2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAKK2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAKK2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuY3BwCitodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAoraHRtbC9IVE1MU2xvdEVsZW1l
bnQuY3BwCitodG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAoraHRtbC9IVE1MU3BhbkVsZW1lbnQu
Y3BwCitodG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCitodG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5j
cHAKK2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwCitodG1sL0hUTUxUYWJsZUNlbGxF
bGVtZW50LmNwcAoraHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAoraHRtbC9IVE1MVGFibGVF
bGVtZW50LmNwcAoraHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAKK2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5jcHAKK2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCitodG1sL0hU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAoraHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmNwcAor
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAoraHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKK2h0bWwvSFRNTFRpbWVFbGVtZW50LmNwcAoraHRtbC9IVE1MVGl0bGVFbGVtZW50
LmNwcAoraHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAoraHRtbC9IVE1MVUxpc3RFbGVtZW50LmNw
cAoraHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuY3BwCitodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
CitodG1sL0hUTUxXQlJFbGVtZW50LmNwcAoraHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCitodG1s
L0ltYWdlQml0bWFwLmNwcAoraHRtbC9JbWFnZUJpdG1hcEJhY2tpbmcuY3BwCitodG1sL0ltYWdl
RGF0YS5jcHAKK2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKK2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CitodG1sL0lucHV0TW9kZS5jcHAKK2h0bWwvSW5wdXRUeXBlLmNwcAoraHRtbC9JbnB1dFR5cGVO
YW1lcy5jcHAKK2h0bWwvTGFiZWxhYmxlRWxlbWVudC5jcHAKK2h0bWwvTGFiZWxzTm9kZUxpc3Qu
Y3BwCitodG1sL0xhenlMb2FkRnJhbWVPYnNlcnZlci5jcHAKK2h0bWwvTGF6eUxvYWRJbWFnZU9i
c2VydmVyLmNwcAoraHRtbC9MaW5rSWNvbkNvbGxlY3Rvci5jcHAKK2h0bWwvTGlua1JlbEF0dHJp
YnV0ZS5jcHAKK2h0bWwvTWVkaWFDb250cm9sbGVyLmNwcAoraHRtbC9NZWRpYURvY3VtZW50LmNw
cAoraHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAoraHRtbC9NZWRpYUZyYWdtZW50VVJJUGFy
c2VyLmNwcAoraHRtbC9Nb250aElucHV0VHlwZS5jcHAKK2h0bWwvTnVtYmVySW5wdXRUeXBlLmNw
cAoraHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCitodG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAor
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKK2h0bWwvUHVibGljVVJMTWFuYWdlci5jcHAKK2h0bWwv
UmFkaW9JbnB1dFR5cGUuY3BwCitodG1sL1JhZGlvTm9kZUxpc3QuY3BwCitodG1sL1JhbmdlSW5w
dXRUeXBlLmNwcAoraHRtbC9SZXNldElucHV0VHlwZS5jcHAKK2h0bWwvUnVieUVsZW1lbnQuY3Bw
CitodG1sL1J1YnlUZXh0RWxlbWVudC5jcHAKK2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAoraHRt
bC9TdGVwUmFuZ2UuY3BwCitodG1sL1N1Ym1pdElucHV0VHlwZS5jcHAKK2h0bWwvVGVsZXBob25l
SW5wdXRUeXBlLmNwcAoraHRtbC9UZXh0RG9jdW1lbnQuY3BwCitodG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAKK2h0bWwvVGV4dElucHV0VHlwZS5jcHAKK2h0bWwvVGltZUlucHV0VHlwZS5jcHAK
K2h0bWwvVGltZVJhbmdlcy5jcHAKK2h0bWwvVHlwZUFoZWFkLmNwcAoraHRtbC9VUkxEZWNvbXBv
c2l0aW9uLmNwcAoraHRtbC9VUkxJbnB1dFR5cGUuY3BwCitodG1sL1VSTFNlYXJjaFBhcmFtcy5j
cHAKK2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCitodG1sL1dlZWtJbnB1dFR5cGUuY3BwCito
dG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKK2h0bWwvY2FudmFzL0NhbnZhc0dy
YWRpZW50LmNwcAoraHRtbC9jYW52YXMvQ2FudmFzUGF0aC5jcHAKK2h0bWwvY2FudmFzL0NhbnZh
c1BhdHRlcm4uY3BwCitodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAoraHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAoraHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKK2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAor
aHRtbC9jYW52YXMvRVhUQmxlbmRNaW5NYXguY3BwCitodG1sL2NhbnZhcy9FWFRDb2xvckJ1ZmZl
ckZsb2F0LmNwcAoraHRtbC9jYW52YXMvRVhUQ29sb3JCdWZmZXJIYWxmRmxvYXQuY3BwCitodG1s
L2NhbnZhcy9FWFRGbG9hdEJsZW5kLmNwcAoraHRtbC9jYW52YXMvRVhURnJhZ0RlcHRoLmNwcAor
aHRtbC9jYW52YXMvRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAKK2h0bWwvY2FudmFzL0VYVFRleHR1
cmVDb21wcmVzc2lvblJHVEMuY3BwCitodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290
cm9waWMuY3BwCitodG1sL2NhbnZhcy9FWFRzUkdCLmNwcAoraHRtbC9jYW52YXMvR1BVQmFzZWRD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcAoraHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0LmNwcAoraHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKK2h0bWwv
Y2FudmFzL09FU0ZCT1JlbmRlck1pcG1hcC5jcHAKK2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuY3BwCitodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwCitodG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIuY3BwCitodG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZs
b2F0LmNwcAoraHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKK2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAoraHRtbC9jYW52YXMvT2Zmc2NyZWVuQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAoraHRtbC9jYW52YXMvUGFpbnRSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCitodG1sL2NhbnZhcy9QYXRoMkQuY3BwCitodG1sL2NhbnZhcy9QbGFjZWhvbGRl
clJlbmRlcmluZ0NvbnRleHQuY3BwCitodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmNwcAoraHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCitodG1sL2NhbnZhcy9XZWJHTENvbG9y
QnVmZmVyRmxvYXQuY3BwCitodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5j
cHAKK2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCitodG1sL2NhbnZh
cy9XZWJHTENvbXByZXNzZWRUZXh0dXJlRVRDLmNwcAoraHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUVUQzEuY3BwCitodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZS
VEMuY3BwCitodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAKK2h0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDc1JHQi5jcHAKK2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dEV2ZW50LmNwcAoraHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCito
dG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCitodG1sL2NhbnZhcy9XZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmNwcAoraHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCitodG1s
L2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5jcHAKK2h0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZl
cnMuY3BwCitodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAKK2h0bWwvY2FudmFzL1dlYkdM
RnJhbWVidWZmZXIuY3BwCitodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcAoraHRtbC9j
YW52YXMvV2ViR0xPYmplY3QuY3BwCitodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCitodG1s
L2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcAoraHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuY3Bw
CitodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCitodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAoraHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmNwcAor
aHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwCitodG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdC5jcHAKK2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcAoraHRtbC9j
YW52YXMvV2ViR0xTeW5jLmNwcAoraHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcAoraHRtbC9j
YW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKK2h0bWwvY2FudmFzL1dlYkdMVW5pZm9y
bUxvY2F0aW9uLmNwcAoraHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5jcHAKK2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcAoraHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKK2h0bWwvZm9ybXMvRmlsZUljb25Mb2FkZXIuY3Bw
CitodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKK2h0bWwvcGFyc2VyL0hUTUxDb25z
dHJ1Y3Rpb25TaXRlLmNwcAoraHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAoraHRt
bC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5jcHAKK2h0bWwvcGFyc2VyL0hUTUxFbnRpdHlQYXJz
ZXIuY3BwCitodG1sL3BhcnNlci9IVE1MRW50aXR5U2VhcmNoLmNwcAoraHRtbC9wYXJzZXIvSFRN
TEZvcm1hdHRpbmdFbGVtZW50TGlzdC5jcHAKK2h0bWwvcGFyc2VyL0hUTUxNZXRhQ2hhcnNldFBh
cnNlci5jcHAKK2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwCitodG1sL3BhcnNlci9I
VE1MUGFyc2VyT3B0aW9ucy5jcHAKK2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3Bw
CitodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCitodG1sL3BhcnNlci9IVE1MUmVz
b3VyY2VQcmVsb2FkZXIuY3BwCitodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAoraHRt
bC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCitodG1sL3BhcnNlci9IVE1MU3Jjc2V0UGFy
c2VyLmNwcAoraHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKK2h0bWwvcGFyc2VyL0hUTUxU
cmVlQnVpbGRlci5jcHAKK2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKK2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwCitodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
CitodG1sL3NoYWRvdy9BdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9EYXRh
TGlzdEJ1dHRvbkVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5j
cHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5j
cHAKK2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKK2h0bWwvc2hh
ZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcAoraHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAoraHRt
bC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCitodG1sL3NoYWRvdy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCitodG1sL3NoYWRvdy9UZXh0UGxhY2Vob2xkZXJFbGVtZW50LmNwcAor
aHRtbC90cmFjay9BdWRpb1RyYWNrLmNwcAoraHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5jcHAK
K2h0bWwvdHJhY2svQnVmZmVyZWRMaW5lUmVhZGVyLmNwcAoraHRtbC90cmFjay9EYXRhQ3VlLmNw
cAoraHRtbC90cmFjay9JbmJhbmREYXRhVGV4dFRyYWNrLmNwcAoraHRtbC90cmFjay9JbmJhbmRH
ZW5lcmljVGV4dFRyYWNrLmNwcAoraHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suY3BwCitodG1s
L3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5jcHAKK2h0bWwvdHJhY2svTG9hZGFibGVUZXh0
VHJhY2suY3BwCitodG1sL3RyYWNrL1RleHRUcmFjay5jcHAKK2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmNwcAoraHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcAoraHRtbC90cmFjay9U
ZXh0VHJhY2tDdWVMaXN0LmNwcAoraHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmNwcAoraHRtbC90
cmFjay9UcmFja0Jhc2UuY3BwCitodG1sL3RyYWNrL1RyYWNrRXZlbnQuY3BwCitodG1sL3RyYWNr
L1RyYWNrTGlzdEJhc2UuY3BwCitodG1sL3RyYWNrL1ZUVEN1ZS5jcHAKK2h0bWwvdHJhY2svVlRU
UmVnaW9uLmNwcAoraHRtbC90cmFjay9WVFRSZWdpb25MaXN0LmNwcAoraHRtbC90cmFjay9WVFRT
Y2FubmVyLmNwcAoraHRtbC90cmFjay9WaWRlb1RyYWNrLmNwcAoraHRtbC90cmFjay9WaWRlb1Ry
YWNrTGlzdC5jcHAKK2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5jcHAKK2h0bWwvdHJhY2svV2Vi
VlRUUGFyc2VyLmNwcAoraHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCitpbnNwZWN0b3Iv
Q29tbWFuZExpbmVBUElIb3N0LmNwcAoraW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJTW9kdWxlLmNw
cAoraW5zcGVjdG9yL0RPTUVkaXRvci5jcHAKK2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3Bw
CitpbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAoraW5zcGVj
dG9yL0luc3BlY3RvckF1ZGl0RE9NT2JqZWN0LmNwcAoraW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0
UmVzb3VyY2VzT2JqZWN0LmNwcAoraW5zcGVjdG9yL0luc3BlY3RvckNhbnZhcy5jcHAKK2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAoraW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNl
UmVzb3VyY2UuY3BwCitpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNw
cAoraW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCitpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAoraW5zcGVjdG9yL0luc3BlY3Rvckhpc3RvcnkuY3Bw
CitpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAoraW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvblB1YmxpYy5jcHAKK2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25XZWJLaXQuY3BwCitpbnNwZWN0b3IvSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAKK2lu
c3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAoraW5zcGVjdG9yL0luc3BlY3RvclNoYWRlclBy
b2dyYW0uY3BwCitpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKK2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmNwcAoraW5zcGVjdG9yL05ldHdvcmtSZXNvdXJjZXNEYXRhLmNw
cAoraW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlci5jcHAKK2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZh
Y3RvcnkuY3BwCitpbnNwZWN0b3IvV2ViSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAoraW5zcGVjdG9y
L1dlYkluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKK2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmNwcAoraW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyLmNwcAoraW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JBbmltYXRpb25BZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
UFVQcm9maWxlckFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAKK2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCitpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQuY3BwCitpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCitp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAoraW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTWVtb3J5QWdlbnQuY3BwCitpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAoraW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvV2ViQ29uc29sZUFnZW50LmNw
cAoraW5zcGVjdG9yL2FnZW50cy9XZWJEZWJ1Z2dlckFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50
cy9XZWJIZWFwQWdlbnQuY3BwCitpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUF1ZGl0QWdlbnQu
Y3BwCitpbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZUNvbnNvbGVBZ2VudC5jcHAKK2luc3BlY3Rv
ci9hZ2VudHMvcGFnZS9QYWdlRE9NRGVidWdnZXJBZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMv
cGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlSGVh
cEFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VOZXR3b3JrQWdlbnQuY3BwCitp
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9Vc2VyR2VzdHVyZUVtdWxhdGlvblNjb3BlLmNwcAoraW5zcGVjdG9yL2FnZW50cy93
b3JrZXIvU2VydmljZVdvcmtlckFnZW50LmNwcAoraW5zcGVjdG9yL2FnZW50cy93b3JrZXIvV29y
a2VyQXVkaXRBZ2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckNvbnNvbGVB
Z2VudC5jcHAKK2luc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlckRPTURlYnVnZ2VyQWdlbnQu
Y3BwCitpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAoraW5z
cGVjdG9yL2FnZW50cy93b3JrZXIvV29ya2VyTmV0d29ya0FnZW50LmNwcAoraW5zcGVjdG9yL2Fn
ZW50cy93b3JrZXIvV29ya2VyUnVudGltZUFnZW50LmNwcAorbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0LmNwcAorbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCitsYXlvdXQvRm9y
bWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCitsYXlvdXQvRm9ybWF0dGluZ1N0YXRlLmNwcAorbGF5
b3V0L0xheW91dENvbnRleHQuY3BwCitsYXlvdXQvTGF5b3V0UGhhc2UuY3BwCitsYXlvdXQvTGF5
b3V0U3RhdGUuY3BwCitsYXlvdXQvTGF5b3V0VW5pdHMuY3BwCitsYXlvdXQvVmVyaWZpY2F0aW9u
LmNwcAorbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAor
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
CitsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
CitsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcAorbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCitsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmNwcAorbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKK2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCitsYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwCitsYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRp
bmdTdGF0ZS5jcHAKK2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmNwcAorbGF5b3V0L2Zsb2F0
cy9GbG9hdGluZ0NvbnRleHQuY3BwCitsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nU3RhdGUuY3BwCits
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVDb250ZW50QnJlYWtlci5jcHAKK2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKK2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcAorbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lSXRlbS5jcHAKK2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUxpbmUuY3BwCitsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcAorbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCitsYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAKK2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3Rl
eHQvVGV4dFV0aWwuY3BwCitsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hU
cmVlLmNwcAorbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3Bw
CitsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRl
ci5jcHAKK2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQu
Y3BwCitsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuY3Bw
CitsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKK2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcAorbGF5b3V0L2ludmFs
aWRhdGlvbi9JbnZhbGlkYXRpb25Db250ZXh0LmNwcAorbGF5b3V0L2ludmFsaWRhdGlvbi9JbnZh
bGlkYXRpb25TdGF0ZS5jcHAKK2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKK2xheW91
dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lckJveC5jcHAKK2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dEJveEdlb21ldHJ5LmNwcAorbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5pdGlhbENvbnRh
aW5pbmdCbG9jay5jcHAKK2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3Bw
CitsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRMaW5lQnJlYWtCb3guY3BwCitsYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRSZXBsYWNlZEJveC5jcHAKK2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVC
dWlsZGVyLmNwcAorbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0
LmNwcAorbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwCitsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRRdWly
a3MuY3BwCitsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ1N0YXRlLmNwcAor
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCitsYXlvdXQvdGFibGVmb3JtYXR0
aW5nL1RhYmxlTGF5b3V0LmNwcAorbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAor
bG9hZGVyL0FwcGxpY2F0aW9uTWFuaWZlc3RMb2FkZXIuY3BwCitsb2FkZXIvQ2FudmFzQWN0aXZp
dHlSZWNvcmQuY3BwCitsb2FkZXIvQ29udGVudEZpbHRlci5jcHAKK2xvYWRlci9Db29raWVKYXIu
Y3BwCitsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorbG9hZGVyL0Nyb3NzT3Jp
Z2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKK2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmNwcAorbG9hZGVyL0N1c3RvbUhlYWRlckZpZWxkcy5jcHAgQG5vLXVuaWZ5Citsb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCitsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNw
cAorbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKK2xv
YWRlci9GVFBEaXJlY3RvcnlQYXJzZXIuY3BwCitsb2FkZXIvRmV0Y2hJZGlvbXMuY3BwCitsb2Fk
ZXIvRm9ybVN0YXRlLmNwcAorbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorbG9hZGVyL0ZyYW1l
TG9hZFJlcXVlc3QuY3BwCitsb2FkZXIvRnJhbWVMb2FkZXIuY3BwCitsb2FkZXIvRnJhbWVMb2Fk
ZXJTdGF0ZU1hY2hpbmUuY3BwCitsb2FkZXIvSFRUUEhlYWRlckZpZWxkLmNwcAorbG9hZGVyL0hl
YWRlckZpZWxkVG9rZW5pemVyLmNwcAorbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorbG9h
ZGVyL0ltYWdlTG9hZGVyLmNwcAorbG9hZGVyL0xpbmtIZWFkZXIuY3BwCitsb2FkZXIvTGlua0xv
YWRlci5jcHAKK2xvYWRlci9MaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5jcHAKK2xvYWRlci9M
b2FkVGltaW5nLmNwcAorbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcAorbG9hZGVyL01lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCitsb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKK2xvYWRlci9O
YXZpZ2F0aW9uQWN0aW9uLmNwcAorbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCitsb2Fk
ZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCitsb2FkZXIvUGluZ0xvYWRlci5jcHAK
K2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKK2xv
YWRlci9SZXNvdXJjZUNyeXB0b2dyYXBoaWNEaWdlc3QuY3BwCitsb2FkZXIvUmVzb3VyY2VMb2Fk
SW5mby5jcHAKK2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKK2xvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHAKK2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAorbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorbG9hZGVyL1Jlc291cmNlVGltaW5nLmNwcAorbG9hZGVy
L1Jlc291cmNlVGltaW5nSW5mb3JtYXRpb24uY3BwCitsb2FkZXIvU2VydmVyVGltaW5nLmNwcAor
bG9hZGVyL1NlcnZlclRpbWluZ1BhcnNlci5jcHAKK2xvYWRlci9TaW5rRG9jdW1lbnQuY3BwCits
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCitsb2FkZXIvU3VicmVzb3VyY2VJbnRlZ3JpdHkuY3Bw
Citsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCitsb2FkZXIvVGV4dFJlc291cmNlRGVjb2Rl
ci5jcHAKK2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCitsb2FkZXIvVGhyZWFkYWJsZUxvYWRl
ci5jcHAKK2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmNwcAorbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGUuY3BwCitsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcAorbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAorbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVNYW5pZmVzdFBhcnNlci5jcHAKK2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwCitsb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlTG9hZGVyLmNwcAorbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmNwcAorbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3Bw
Citsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlLmNwcAorbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZUZhY3Rv
cnkuY3BwCitsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2UuY3BwCitsb2FkZXIvYXJjaGl2
ZS9BcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9uLmNwcAorbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhU
TUxBcmNoaXZlLmNwcAorbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxQYXJzZXIuY3BwCitsb2Fk
ZXIvY2FjaGUvQ2FjaGVkQXBwbGljYXRpb25NYW5pZmVzdC5jcHAKK2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcAorbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCitsb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCitsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
Citsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCitsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuY3BwCitsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCits
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCitsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwCitsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCits
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKK2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQu
Y3BwCitsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAorbG9hZGVyL2NhY2hlL0NhY2hl
ZFhTTFN0eWxlU2hlZXQuY3BwCitsb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIu
Y3BwCitsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCitsb2FkZXIvaWNvbi9JY29uTG9hZGVy
LmNwcAorbWF0aG1sL01hdGhNTEFubm90YXRpb25FbGVtZW50LmNwcAorbWF0aG1sL01hdGhNTEVs
ZW1lbnQuY3BwCittYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmNwcAorbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmNwcAorbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKK21hdGht
bC9NYXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuY3BwCittYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVt
ZW50LmNwcAorbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwCittYXRobWwvTWF0aE1MUHJl
c2VudGF0aW9uRWxlbWVudC5jcHAKK21hdGhtbC9NYXRoTUxSb290RWxlbWVudC5jcHAKK21hdGht
bC9NYXRoTUxSb3dFbGVtZW50LmNwcAorbWF0aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmNwcAor
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCittYXRobWwvTWF0aE1MU3BhY2VFbGVtZW50
LmNwcAorbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHAKK21hdGhtbC9NYXRoTUxVbmRlck92
ZXJFbGVtZW50LmNwcAorbWF0aG1sL01hdGhNTFVua25vd25FbGVtZW50LmNwcAorcGFnZS9BYnN0
cmFjdERPTVdpbmRvdy5jcHAKK3BhZ2UvQWJzdHJhY3RGcmFtZS5jcHAKK3BhZ2UvQWN0aXZpdHlT
dGF0ZS5jcHAKK3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCitwYWdlL0JhclByb3AuY3Bw
CitwYWdlL0Jhc2U2NFV0aWxpdGllcy5jcHAKK3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5j
cHAKK3BhZ2UvQ2hyb21lLmNwcAorcGFnZS9Db250ZXh0TWVudUNvbnRleHQuY3BwCitwYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKK3BhZ2UvQ3J5cHRvLmNwcAorcGFnZS9ET01TZWxlY3Rp
b24uY3BwCitwYWdlL0RPTVRpbWVyLmNwcAorcGFnZS9ET01XaW5kb3cuY3BwCitwYWdlL0RPTVdp
bmRvd0V4dGVuc2lvbi5jcHAKK3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCitwYWdlL0RhdGFi
YXNlUHJvdmlkZXIuY3BwCitwYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAorcGFnZS9EZXByZWNh
dGVkR2xvYmFsU2V0dGluZ3MuY3BwCitwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCitwYWdlL0Rp
YWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKK3BhZ2UvRGlzYWJsZWRBZGFwdGF0aW9ucy5jcHAKK3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCitwYWdlL0V2ZW50SGFuZGxlci5jcHAKK3BhZ2UvRXZlbnRT
b3VyY2UuY3BwCitwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKK3BhZ2UvRnJhbWUuY3BwCitwYWdl
L0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKK3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3Bw
CitwYWdlL0ZyYW1lVHJlZS5jcHAKK3BhZ2UvRnJhbWVWaWV3LmNwcAorcGFnZS9GcmFtZVZpZXdM
YXlvdXRDb250ZXh0LmNwcAorcGFnZS9IaXN0b3J5LmNwcAorcGFnZS9JbnRlcnNlY3Rpb25PYnNl
cnZlci5jcHAKK3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5jcHAKK3BhZ2UvTG9jYXRp
b24uY3BwCitwYWdlL0xvZ2dlZEluU3RhdHVzLmNwcAorcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAor
cGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmNwcAorcGFnZS9OYXZpZ2F0b3IuY3Bw
CitwYWdlL05hdmlnYXRvckJhc2UuY3BwCitwYWdlL05hdmlnYXRvcklzTG9nZ2VkSW4uY3BwCitw
YWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcAorcGFnZS9QYWdlLmNwcAorcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKK3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCitwYWdlL1BhZ2VEZWJ1Z2dh
YmxlLmNwcAorcGFnZS9QYWdlR3JvdXAuY3BwCitwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5j
cHAKK3BhZ2UvUGFnZU92ZXJsYXkuY3BwCitwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAK
K3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCitwYWdlL1BlcmZvcm1hbmNlLmNwcAorcGFnZS9QZXJm
b3JtYW5jZUVudHJ5LmNwcAorcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCitwYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKK3BhZ2UvUGVyZm9ybWFuY2VNYXJrLmNwcAorcGFnZS9Q
ZXJmb3JtYW5jZU1lYXN1cmUuY3BwCitwYWdlL1BlcmZvcm1hbmNlTW9uaXRvci5jcHAKK3BhZ2Uv
UGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcAorcGFnZS9QZXJmb3JtYW5jZU9ic2VydmVyLmNwcAor
cGFnZS9QZXJmb3JtYW5jZU9ic2VydmVyRW50cnlMaXN0LmNwcAorcGFnZS9QZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nLmNwcAorcGFnZS9QZXJmb3JtYW5jZVNlcnZlclRpbWluZy5jcHAKK3BhZ2Uv
UGVyZm9ybWFuY2VUaW1pbmcuY3BwCitwYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKK3Bh
Z2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmNwcAorcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xs
ZXIuY3BwCitwYWdlL1ByaW50Q29udGV4dC5jcHAKK3BhZ2UvUHJvY2Vzc1dhcm1pbmcuY3BwCitw
YWdlL1F1aXJrcy5jcHAKK3BhZ2UvUmVtb3RlRE9NV2luZG93LmNwcAorcGFnZS9SZW1vdGVGcmFt
ZS5jcHAKK3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAorcGFnZS9SZXNpemVPYnNl
cnZhdGlvbi5jcHAKK3BhZ2UvUmVzaXplT2JzZXJ2ZXIuY3BwCitwYWdlL1Jlc291cmNlVXNhZ2VP
dmVybGF5LmNwcAorcGFnZS9SZXNvdXJjZVVzYWdlVGhyZWFkLmNwcAorcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcAorcGFnZS9TY3JlZW4uY3BwCitwYWdlL1Njcm9sbEJlaGF2aW9yLmNw
cAorcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKK3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAor
cGFnZS9TZWN1cml0eVBvbGljeS5jcHAKK3BhZ2UvU2V0dGluZ3NCYXNlLmNwcAorcGFnZS9TaGFy
ZURhdGFSZWFkZXIuY3BwCitwYWdlL1NvY2tldFByb3ZpZGVyLmNwcAorcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5jcHAKK3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAKK3BhZ2UvVGV4dEluZGljYXRv
ci5jcHAKK3BhZ2UvVW5kb0l0ZW0uY3BwCitwYWdlL1VuZG9NYW5hZ2VyLmNwcAorcGFnZS9Vc2Vy
Q29udGVudENvbnRyb2xsZXIuY3BwCitwYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwCitwYWdl
L1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAKK3BhZ2UvVmlzaXRlZExpbmtTdG9yZS5jcHAKK3Bh
Z2UvVmlzdWFsVmlld3BvcnQuY3BwCitwYWdlL1doZWVsRXZlbnREZWx0YUZpbHRlci5jcHAKK3Bh
Z2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcAorcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAKK3Bh
Z2UvV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcAorcGFnZS9Xb3JrZXJOYXZpZ2F0b3Iu
Y3BwCitwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCitwYWdlL2NzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3lDbGllbnQuY3BwCitwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lE
aXJlY3RpdmUuY3BwCitwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVMaXN0
LmNwcAorcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwCitw
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lNZWRpYUxpc3REaXJlY3RpdmUuY3BwCitwYWdl
L2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwCitwYWdlL2NzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2UuY3BwCitwYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2VMaXN0LmNwcAorcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNl
TGlzdERpcmVjdGl2ZS5jcHAKK3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCitwYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCitwYWdlL3Nj
cm9sbGluZy9TY3JvbGxMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCitwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb25zdHJhaW50cy5jcHAKK3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcAorcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuY3BwCitwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZyYW1lSG9zdGluZ05vZGUuY3BwCitwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKK3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlTm9kZS5jcHAKK3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlT3ZlcmZs
b3dTY3JvbGxQcm94eU5vZGUuY3BwCitwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZS5jcHAKK3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlUG9zaXRp
b25lZE5vZGUuY3BwCitwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUu
Y3BwCitwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCitwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCitwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
aHJlYWQuY3BwCitwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05vZGUuY3BwCitwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZUdlc3R1cmVTdGF0ZS5jcHAKK3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGlu
Z0NvbnRyb2xsZXIuY3BwCitwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKK3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwCitwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKK3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKK3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuY3Bw
CitwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAKK3BsYXRmb3JtL0NvbnRleHRNZW51LmNwcAorcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmNwcAorcGxhdGZvcm0vQ3Vyc29yLmNwcAorcGxhdGZvcm0v
RGF0ZUNvbXBvbmVudHMuY3BwCitwbGF0Zm9ybS9EZWNpbWFsLmNwcAorcGxhdGZvcm0vRHJhZ0Rh
dGEuY3BwCitwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCitwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAKK3BsYXRmb3JtL0ZpbGVDaG9vc2VyLmNwcAorcGxhdGZvcm0vRmlsZUhhbmRsZS5j
cHAKK3BsYXRmb3JtL0ZpbGVNb25pdG9yLmNwcAorcGxhdGZvcm0vRmlsZVN0cmVhbS5jcHAKK3Bs
YXRmb3JtL0ZyYW1lUmF0ZU1vbml0b3IuY3BwCitwbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNw
cAorcGxhdGZvcm0vTGF5b3V0VW5pdC5jcHAKK3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5
LmNwcAorcGxhdGZvcm0vTGVuZ3RoLmNwcAorcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAorcGxhdGZv
cm0vTGVuZ3RoUG9pbnQuY3BwCitwbGF0Zm9ybS9MZW5ndGhTaXplLmNwcAorcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKK3BsYXRmb3JtL0xvZ2dpbmcuY3BwCitwbGF0Zm9ybS9Mb3dQb3dl
ck1vZGVOb3RpZmllci5jcHAKK3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCitwbGF0Zm9y
bS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCitwbGF0Zm9ybS9NZWRpYVN0cmF0ZWd5LmNwcAor
cGxhdGZvcm0vTm90SW1wbGVtZW50ZWQuY3BwCitwbGF0Zm9ybS9Ob3dQbGF5aW5nTWFuYWdlci5j
cHAKK3BsYXRmb3JtL1Bhc3RlYm9hcmQuY3BwCitwbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0
YS5jcHAKK3BsYXRmb3JtL1Bhc3RlYm9hcmRXcml0ZXJEYXRhLmNwcAorcGxhdGZvcm0vUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmNwcAorcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwCitwbGF0Zm9y
bS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKK3BsYXRmb3JtL1BsYXRmb3Jt
U3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwCitwbGF0Zm9ybS9QbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyLmNwcAorcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorcGxhdGZvcm0vUGxhdGZv
cm1XaGVlbEV2ZW50LmNwcAorcGxhdGZvcm0vUHJldmlld0NvbnZlcnRlci5jcHAKK3BsYXRmb3Jt
L1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCitwbGF0
Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCitwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuY3BwCitwbGF0Zm9ybS9TU0xLZXlHZW5lcmF0b3IuY3BwCitwbGF0Zm9ybS9TY3Jv
bGxBbmltYXRpb25TbW9vdGguY3BwCitwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKK3BsYXRm
b3JtL1Njcm9sbFR5cGVzLmNwcAorcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKK3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmNwcAorcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAorcGxhdGZvcm0vU2Nyb2xs
YmFyVGhlbWUuY3BwCitwbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZS5jcHAKK3BsYXRm
b3JtL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWUuY3BwCitwbGF0Zm9ybS9TaGFyZWRCdWZmZXIu
Y3BwCitwbGF0Zm9ybS9TaGFyZWRCdWZmZXJDaHVua1JlYWRlci5jcHAKK3BsYXRmb3JtL1NoYXJl
ZFN0cmluZ0hhc2guY3BwCitwbGF0Zm9ybS9TbGVlcERpc2FibGVyLmNwcAorcGxhdGZvcm0vU2xl
ZXBEaXNhYmxlckNsaWVudC5jcHAKK3BsYXRmb3JtL1N5c3RlbVNvdW5kTWFuYWdlci5jcHAKK3Bs
YXRmb3JtL1N0YXRpY1Bhc3RlYm9hcmQuY3BwCitwbGF0Zm9ybS9UaGVtZS5jcHAKK3BsYXRmb3Jt
L1RoZW1lVHlwZXMuY3BwCitwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcAorcGxhdGZvcm0v
VGhyZWFkVGltZXJzLmNwcAorcGxhdGZvcm0vVGltZXIuY3BwCitwbGF0Zm9ybS9Vc2VyQWN0aXZp
dHkuY3BwCitwbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCitwbGF0Zm9ybS9X
ZWJHTFN0YXRlVHJhY2tlci5jcHAKK3BsYXRmb3JtL1dpZGdldC5jcHAKK3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb24uY3BwCitwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAK
K3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKK3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQnVzLmNwcAorcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcAorcGxhdGZvcm0vYXVk
aW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuY3BwCitwbGF0Zm9ybS9hdWRpby9BdWRpb0hhcmR3
YXJlTGlzdGVuZXIuY3BwCitwbGF0Zm9ybS9hdWRpby9BdWRpb1Jlc2FtcGxlci5jcHAKK3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvUmVzYW1wbGVyS2VybmVsLmNwcAorcGxhdGZvcm0vYXVkaW8vQXVkaW9V
dGlsaXRpZXMuY3BwCitwbGF0Zm9ybS9hdWRpby9CaXF1YWQuY3BwCitwbGF0Zm9ybS9hdWRpby9D
b25lLmNwcAorcGxhdGZvcm0vYXVkaW8vRGlyZWN0Q29udm9sdmVyLmNwcAorcGxhdGZvcm0vYXVk
aW8vRGlzdGFuY2UuY3BwCitwbGF0Zm9ybS9hdWRpby9Eb3duU2FtcGxlci5jcHAKK3BsYXRmb3Jt
L2F1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvci5jcHAKK3BsYXRmb3JtL2F1ZGlvL0R5bmFtaWNzQ29t
cHJlc3Nvcktlcm5lbC5jcHAKK3BsYXRmb3JtL2F1ZGlvL0VxdWFsUG93ZXJQYW5uZXIuY3BwCitw
bGF0Zm9ybS9hdWRpby9GRlRDb252b2x2ZXIuY3BwCitwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5j
cHAKK3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAKK3BsYXRmb3JtL2F1ZGlvL0hSVEZE
YXRhYmFzZUxvYWRlci5jcHAKK3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCitwbGF0
Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcAorcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5jcHAK
K3BsYXRmb3JtL2F1ZGlvL0lJUkZpbHRlci5jcHAKK3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5l
bFJlc2FtcGxlci5jcHAKK3BsYXRmb3JtL2F1ZGlvL1Bhbm5lci5jcHAKK3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcAorcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcAorcGxhdGZvcm0vYXVkaW8vUHVzaFB1bGxGSUZPLmNwcAorcGxhdGZv
cm0vYXVkaW8vUmV2ZXJiLmNwcAorcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQWNjdW11bGF0aW9uQnVm
ZmVyLmNwcAorcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcAorcGxhdGZvcm0vYXVk
aW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3BwCitwbGF0Zm9ybS9hdWRpby9SZXZlcmJJbnB1dEJ1
ZmZlci5jcHAKK3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwCitwbGF0Zm9ybS9hdWRp
by9TdGVyZW9QYW5uZXIuY3BwCitwbGF0Zm9ybS9hdWRpby9VcFNhbXBsZXIuY3BwCitwbGF0Zm9y
bS9hdWRpby9WZWN0b3JNYXRoLmNwcAorcGxhdGZvcm0vYXVkaW8vWmVyb1BvbGUuY3BwCitwbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1GYWN0b3J5LmNwcAorcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNTG9nZ2luZy5jcHAKK3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByaXZhdGUuY3Bw
CitwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKK3BsYXRmb3JtL2dhbWVwYWQv
RW1wdHlHYW1lcGFkUHJvdmlkZXIuY3BwCitwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRDb25zdGFu
dHMuY3BwCitwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQcm92aWRlci5jcHAKK3BsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yQmxlbmRpbmcuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCitw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclV0aWxpdGllcy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAor
cGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNz
L0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvckNsaWVudC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmNwcAorcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2ludDNELmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2x5
Z29uLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRSZWN0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5jcHAK
K3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FzY2FkZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24u
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZUZvbnRzLmNwcAorcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEZhbWlseVNw
ZWNpZmljYXRpb25OdWxsLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRm9udEdlbmVyaWNGYW1pbGll
cy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCitwbGF0Zm9ybS9n
cmFwaGljcy9Gb250UmFuZ2VzLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFNlbGVjdGlvbkFs
Z29yaXRobS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKK3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZElt
YWdlLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR2VvbWV0cnlVdGlsaXRpZXMuY3BwCitwbGF0Zm9y
bS9ncmFwaGljcy9HcmFkaWVudC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2Uu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHRHTC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHRJbXBsLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJUcmFuc2Zvcm0uY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyVXBkYXRlci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvSWNvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlckJhY2tlbmQu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlclBpcGUuY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZURlY29kZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmNwcAor
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9JbmJh
bmRHZW5lcmljQ3VlLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VSZXNvbHV0aW9uLmNwcAor
cGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0xh
eW91dFBvaW50LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL0xheW91dFNpemUuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hl
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJ
bWFnZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Q
YXRoVHJhdmVyc2FsU3RhdGUuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9QYXRoVXRpbGl0aWVzLmNw
cAorcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtVGltZVJhbmdlcy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRl
ZFJlY3QuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAorcGxhdGZvcm0vZ3Jh
cGhpY3MvU3RyaW5nVHJ1bmNhdG9yLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvU3Vycm9nYXRlUGFp
ckF3YXJlVGV4dEl0ZXJhdG9yLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAKK3Bs
YXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcAorcGxhdGZvcm0vZ3Jh
cGhpY3MvVHJhY2tQcml2YXRlQmFzZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGll
cy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5jcHAKK3BsYXRmb3JtL2dyYXBo
aWNzL1dPRkZGaWxlRm9ybWF0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5j
cHAKK3BsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vZmlsdGVycy9GRUxpZ2h0aW5nTkVPTi5jcHAK
K3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcAorcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCitwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAorcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCitwbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAorcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQmxlbmQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcAorcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRURpZmZ1c2VMaWdodGluZy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVEaXNwbGFjZW1lbnRNYXAuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNo
YWRvdy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2Uu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFU3BlY3VsYXJMaWdodGluZy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVUaWxl
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRVR1cmJ1bGVuY2UuY3BwCitwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlck9wZXJhdGlvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3Bl
cmF0aW9ucy5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5j
cHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCitwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9HUFVCdWZmZXIu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9ncHUvR1BVRGV2aWNlLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0dQVUVycm9yLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVUVycm9yU2NvcGVz
LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVBpcGVsaW5lLmNwcAorcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0dQVVBpcGVsaW5lTGF5b3V0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQ
VVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0dQVVZh
bGlkYXRpb25FcnJvci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Cb3guY3BwCitwbGF0
Zm9ybS9ncmFwaGljcy9pc28vSVNPT3JpZ2luYWxGb3JtYXRCb3guY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy9pc28vSVNPUHJvdGVjdGlvblNjaGVtZUluZm9Cb3guY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9pc28vSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmNwcAorcGxhdGZvcm0v
Z3JhcGhpY3MvaXNvL0lTT1NjaGVtZUluZm9ybWF0aW9uQm94LmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvaXNvL0lTT1NjaGVtZVR5cGVCb3guY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPVHJh
Y2tFbmNyeXB0aW9uQm94LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1ZUVEN1ZS5jcHAK
K3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKK3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCitwbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5jcHAKK3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKK3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCitwbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKK3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCitw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCitw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKK3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5jcHAKK3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCitwbGF0Zm9ybS9tZWRp
YWNhcGFiaWxpdGllcy9NZWRpYUNhcGFiaWxpdGllc0xvZ2dpbmcuY3BwCitwbGF0Zm9ybS9tZWRp
YWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmNwcAorcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKK3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVNb2NrLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJl
YW0vQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXIuY3BwCitwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Q2FwdHVyZURldmljZU1hbmFnZXIuY3BwCitwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0
cmFpbnRzLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludENvbmZpZ3VyYXRp
b24uY3BwCitwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCitwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKK3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwCitwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcAorcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCitwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncy5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBw
b3J0ZWRDb25zdHJhaW50cy5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZS5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdW
aWRlb1NvdXJjZS5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
K3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEVE1GU2VuZGVyQmFja2Vu
ZC5jcHAKK3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAKK3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcAorcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCitwbGF0Zm9ybS9tb2NrL01lZGlhRW5n
aW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmNwcAorcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAKK3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwCitwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorcGxh
dGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcAorcGxhdGZvcm0vbW9jay9S
VENOb3RpZmllcnNNb2NrLmNwcAorcGxhdGZvcm0vbW9jay9TY3JvbGxBbmltYXRvck1vY2suY3Bw
CitwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAKK3BsYXRmb3JtL25ldHdvcmsv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcAorcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0
YS5jcHAKK3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcAorcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnkuY3BwCitwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuY3BwCitwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKK3BsYXRm
b3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAorcGxhdGZvcm0vbmV0d29yay9Db29raWUu
Y3BwCitwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxCYXNlLmNwcAorcGxhdGZvcm0vbmV0d29y
ay9DcmVkZW50aWFsU3RvcmFnZS5jcHAKK3BsYXRmb3JtL25ldHdvcmsvRE5TLmNwcAorcGxhdGZv
cm0vbmV0d29yay9ETlNSZXNvbHZlUXVldWUuY3BwCitwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxE
ZWNvZGVyLmNwcAorcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKK3BsYXRmb3JtL25ldHdv
cmsvRm9ybURhdGFCdWlsZGVyLmNwcAorcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNw
cAorcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyVmFsdWVzLmNwcAorcGxhdGZvcm0vbmV0d29y
ay9IVFRQUGFyc2Vycy5jcHAKK3BsYXRmb3JtL25ldHdvcmsvTUlNRUhlYWRlci5jcHAKK3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCitwbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKK3BsYXRmb3JtL25ldHdvcmsvUGFyc2VkQ29udGVudFJh
bmdlLmNwcAorcGxhdGZvcm0vbmV0d29yay9QYXJzZWRDb250ZW50VHlwZS5jcHAKK3BsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAKK3BsYXRmb3JtL25ldHdvcmsvUHJveHlT
ZXJ2ZXIuY3BwCitwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAorcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKK3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVDbGllbnQuY3BwCitwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3Bw
CitwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcAorcGxhdGZvcm0vbmV0
d29yay9TYW1lU2l0ZUluZm8uY3BwCitwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRs
ZS5jcHAKK3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlSW1wbC5jcHAKK3BsYXRm
b3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3BwCitwbGF0Zm9ybS9zcWwvU1FM
aXRlQXV0aG9yaXplci5jcHAKK3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKK3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwCitwbGF0Zm9ybS9zcWwvU1FMaXRlRmls
ZVN5c3RlbS5jcHAKK3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCitwbGF0Zm9ybS9z
cWwvU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuY3BwCitwbGF0Zm9ybS9zcWwvU1FMaXRl
VHJhbnNhY3Rpb24uY3BwCitwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAorcGxhdGZvcm0v
dGV4dC9EYXRlVGltZUZvcm1hdC5jcHAKK3BsYXRmb3JtL3RleHQvRW5jb2RpbmdUYWJsZXMuY3Bw
CitwbGF0Zm9ybS90ZXh0L0xvY2FsZVRvU2NyaXB0TWFwcGluZy5jcHAKK3BsYXRmb3JtL3RleHQv
UGxhdGZvcm1Mb2NhbGUuY3BwCitwbGF0Zm9ybS90ZXh0L1F1b3RlZFByaW50YWJsZS5jcHAKK3Bs
YXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcAorcGxhdGZvcm0vdGV4dC9UZXh0Qm91bmRh
cmllcy5jcHAKK3BsYXRmb3JtL3RleHQvVGV4dENvZGVjLmNwcAorcGxhdGZvcm0vdGV4dC9UZXh0
Q29kZWNDSksuY3BwCitwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKK3BsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjTGF0aW4xLmNwcAorcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNSZXBsYWNlbWVu
dC5jcHAKK3BsYXRmb3JtL3RleHQvVGV4dENvZGVjU2luZ2xlQnl0ZS5jcHAKK3BsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjVVRGMTYuY3BwCitwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VURjguY3BwCitw
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcAorcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmcuY3BwCitwbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ0RldGVjdG9ySUNVLmNwcAor
cGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKK3BsYXRmb3JtL3hyL29wZW54
ci9QbGF0Zm9ybVhST3BlblhSLmNwcCBAbm8tdW5pZnkKK3BsdWdpbnMvRE9NTWltZVR5cGUuY3Bw
CitwbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuY3BwCitwbHVnaW5zL0RPTVBsdWdpbi5jcHAKK3Bs
dWdpbnMvRE9NUGx1Z2luQXJyYXkuY3BwCitwbHVnaW5zL1BsdWdpbkRhdGEuY3BwCitwbHVnaW5z
L1BsdWdpbkluZm9Qcm92aWRlci5jcHAKK3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuY3BwCity
ZW5kZXJpbmcvQmlkaVJ1bi5jcHAKK3JlbmRlcmluZy9Cb3JkZXJFZGdlLmNwcAorcmVuZGVyaW5n
L0JyZWFrTGluZXMuY3BwCityZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorcmVuZGVyaW5nL0NsaXBS
ZWN0LmNwcAorcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAorcmVuZGVyaW5nL0NvbnRl
bnRmdWxQYWludENoZWNrZXIuY3BwCityZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwCityZW5kZXJp
bmcvRWxsaXBzaXNCb3guY3BwCityZW5kZXJpbmcvRXZlbnRSZWdpb24uY3BwCityZW5kZXJpbmcv
Rml4ZWRUYWJsZUxheW91dC5jcHAKK3JlbmRlcmluZy9GbGV4aWJsZUJveEFsZ29yaXRobS5jcHAK
K3JlbmRlcmluZy9GbG9hdGluZ09iamVjdHMuY3BwCityZW5kZXJpbmcvR3JpZC5jcHAKK3JlbmRl
cmluZy9HcmlkQmFzZWxpbmVBbGlnbm1lbnQuY3BwCityZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0
aW9ucy5jcHAKK3JlbmRlcmluZy9HcmlkVHJhY2tTaXppbmdBbGdvcml0aG0uY3BwCityZW5kZXJp
bmcvSGlnaGxpZ2h0RGF0YS5jcHAKK3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCityZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKK3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3Rh
dGUuY3BwCityZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5jcHAKK3JlbmRlcmluZy9J
bmxpbmVCb3guY3BwCityZW5kZXJpbmcvSW5saW5lRWxlbWVudEJveC5jcHAKK3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmNwcAorcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmNwcAorcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwCityZW5kZXJpbmcvTGF5ZXJBbmNlc3RvckNsaXBwaW5nU3RhY2su
Y3BwCityZW5kZXJpbmcvTGF5ZXJPdmVybGFwTWFwLmNwcAorcmVuZGVyaW5nL0xheW91dERpc2Fs
bG93ZWRTY29wZS5jcHAKK3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwCityZW5kZXJpbmcv
TWFya2VkVGV4dC5jcHAKK3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmNwcAorcmVuZGVyaW5nL1Bv
aW50ZXJFdmVudHNIaXRSdWxlcy5jcHAKK3JlbmRlcmluZy9SZW5kZXJBdHRhY2htZW50LmNwcAor
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
K3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCityZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCityZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAorcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVU
ZXh0LmNwcAorcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCityZW5kZXJpbmcvUmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94LmNwcAorcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3Bw
CityZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKK3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAKK3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKK3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKK3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudENvbnRhaW5l
ci5jcHAKK3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudENvbnRhaW5lclNldC5jcHAKK3JlbmRlcmlu
Zy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKK3JlbmRlcmluZy9SZW5kZXJGcmFtZS5jcHAKK3Jl
bmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCityZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3Bw
CityZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKK3JlbmRlcmluZy9SZW5kZXJHZW9tZXRy
eU1hcC5jcHAKK3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuY3BwCityZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmNwcAorcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwCityZW5kZXJpbmcvUmVu
ZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuY3BwCityZW5kZXJpbmcvUmVuZGVySW5saW5lLmNw
cAorcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKK3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCityZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJGaWx0ZXJzLmNwcAorcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
CityZW5kZXJpbmcvUmVuZGVyTGF5b3V0U3RhdGUuY3BwCityZW5kZXJpbmcvUmVuZGVyTGluZUJv
eExpc3QuY3BwCityZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAorcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwCityZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCityZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5jcHAKK3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAorcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmNwcAorcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorcmVuZGVyaW5n
L1JlbmRlck1ldGVyLmNwcAorcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvdy5jcHAKK3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKK3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtblNwYW5uZXJQbGFjZWhvbGRlci5jcHAKK3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCity
ZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCityZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCity
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCityZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAK
K3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAorcmVuZGVyaW5nL1JlbmRlclJ1YnlCYXNlLmNwcAor
cmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCityZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuY3Bw
CityZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAorcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
clBhcnQuY3BwCityZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwCityZW5kZXJpbmcv
UmVuZGVyU2VhcmNoRmllbGQuY3BwCityZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAK
K3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCityZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCity
ZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcAorcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHAKK3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAKK3JlbmRlcmluZy9SZW5kZXJUYWJs
ZVJvdy5jcHAKK3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCityZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAKK3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKK3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKK3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuY3BwCityZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmNwcAorcmVuZGVy
aW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwCityZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCity
ZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKK3JlbmRlcmluZy9SZW5kZXJUcmVlTXV0YXRp
b25EaXNhbGxvd2VkU2NvcGUuY3BwCityZW5kZXJpbmcvUmVuZGVyVlRUQ3VlLmNwcAorcmVuZGVy
aW5nL1JlbmRlclZpZGVvLmNwcAorcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCityZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcAorcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCityZW5kZXJpbmcv
U2Nyb2xsQWxpZ25tZW50LmNwcAorcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKK3Jl
bmRlcmluZy9UYWJsZUxheW91dC5jcHAKK3JlbmRlcmluZy9UZXh0RGVjb3JhdGlvblBhaW50ZXIu
Y3BwCityZW5kZXJpbmcvVGV4dFBhaW50U3R5bGUuY3BwCityZW5kZXJpbmcvVGV4dFBhaW50ZXIu
Y3BwCityZW5kZXJpbmcvVHJhaWxpbmdGbG9hdHNSb290SW5saW5lQm94LmNwcAorcmVuZGVyaW5n
L2xpbmUvTGluZUJyZWFrZXIuY3BwCityZW5kZXJpbmcvbGluZS9MaW5lSW5mby5jcHAKK3JlbmRl
cmluZy9saW5lL0xpbmVXaWR0aC5jcHAKK3JlbmRlcmluZy9saW5lL1RyYWlsaW5nT2JqZWN0cy5j
cHAKK3JlbmRlcmluZy9tYXRobWwvTWF0aE1MU3R5bGUuY3BwCityZW5kZXJpbmcvbWF0aG1sL01h
dGhPcGVyYXRvci5jcHAKK3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCity
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKK3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwCityZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEZyYWN0aW9uLmNwcAorcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRoLmNwcAor
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNZW5jbG9zZS5jcHAKK3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCityZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TFBhZGRlZC5jcHAKK3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5jcHAKK3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcAorcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTY3JpcHRzLmNwcAorcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5jcHAK
K3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwCityZW5kZXJpbmcvbWF0aG1s
L1JlbmRlck1hdGhNTFVuZGVyT3Zlci5jcHAKK3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuY3Bw
CityZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFwZS5jcHAKK3JlbmRlcmluZy9zaGFwZXMvUmFz
dGVyU2hhcGUuY3BwCityZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmNwcAorcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZS5jcHAKK3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5j
cHAKK3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKK3JlbmRlcmluZy9zdHlsZS9Cb3Jk
ZXJEYXRhLmNwcAorcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAorcmVuZGVyaW5nL3N0
eWxlL0ZpbGxMYXllci5jcHAKK3JlbmRlcmluZy9zdHlsZS9HYXBMZW5ndGguY3BwCityZW5kZXJp
bmcvc3R5bGUvR3JpZFBvc2l0aW9uLmNwcAorcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNS
ZXNvbHZlci5jcHAKK3JlbmRlcmluZy9zdHlsZS9HcmlkVHJhY2tTaXplLmNwcAorcmVuZGVyaW5n
L3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKK3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5j
cHAKK3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAorcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAorcmVu
ZGVyaW5nL3N0eWxlL1NWR1JlbmRlclN0eWxlLmNwcAorcmVuZGVyaW5nL3N0eWxlL1NWR1JlbmRl
clN0eWxlRGVmcy5jcHAKK3JlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmNwcAorcmVuZGVyaW5n
L3N0eWxlL1NoYXBlVmFsdWUuY3BwCityZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0
YS5jcHAKK3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwCityZW5kZXJpbmcvc3R5bGUv
U3R5bGVDYWNoZWRJbWFnZS5jcHAKK3JlbmRlcmluZy9zdHlsZS9TdHlsZUNvbnRlbnRBbGlnbm1l
bnREYXRhLmNwcAorcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3Vyc29ySW1hZ2UuY3BwCityZW5kZXJp
bmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcAorcmVuZGVyaW5nL3N0
eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAKK3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94
RGF0YS5jcHAKK3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAorcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwCityZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkSXRl
bURhdGEuY3BwCityZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZVNldC5jcHAKK3JlbmRlcmluZy9z
dHlsZS9TdHlsZUluaGVyaXRlZERhdGEuY3BwCityZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVl
RGF0YS5jcHAKK3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAKK3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZU11bHRpSW1hZ2UuY3BwCityZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAKK3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcAorcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2VsZkFsaWdubWVudERhdGEuY3BwCityZW5kZXJp
bmcvc3R5bGUvU3R5bGVTdXJyb3VuZERhdGEuY3BwCityZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFu
c2Zvcm1EYXRhLmNwcAorcmVuZGVyaW5nL3N0eWxlL1N0eWxlVmlzdWFsRGF0YS5jcHAKK3JlbmRl
cmluZy9zdHlsZS9UZXh0U2l6ZUFkanVzdG1lbnQuY3BwCityZW5kZXJpbmcvc3R5bGUvV2lsbENo
YW5nZURhdGEuY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcAorcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0VsbGlw
c2UuY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCityZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SGlkZGVuQ29udGFpbmVyLmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKK3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmVUZXh0LmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKK3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVj
dC5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCityZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VDb250YWluZXIuY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVy
LmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5jcHAK
K3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5jcHAKK3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudC5jcHAKK3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VNYXJrZXIuY3BwCityZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
TWFza2VyLmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uY3BwCity
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuY3BwCityZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKK3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwCityZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RTcGFuLmNwcAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNw
cAorcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0UGF0aC5jcHAKK3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHAKK3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Vmlld3BvcnRDb250YWluZXIuY3BwCityZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3Bw
CityZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCityZW5kZXJpbmcvc3ZnL1NWR1Bh
dGhEYXRhLmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdD
b250ZXh0LmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXMuY3BwCityZW5kZXJpbmcvc3Zn
L1NWR1Jlc291cmNlc0NhY2hlLmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDeWNsZVNv
bHZlci5jcHAKK3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAKK3JlbmRlcmluZy9z
dmcvU1ZHVGV4dENodW5rLmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdUZXh0Q2h1bmtCdWlsZGVyLmNw
cAorcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0QXR0cmlidXRlcy5jcHAKK3JlbmRlcmluZy9z
dmcvU1ZHVGV4dExheW91dEF0dHJpYnV0ZXNCdWlsZGVyLmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdU
ZXh0TGF5b3V0RW5naW5lLmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TGF5b3V0RW5naW5lQmFz
ZWxpbmUuY3BwCityZW5kZXJpbmcvc3ZnL1NWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmNwcAor
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljcy5jcHAKK3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1l
dHJpY3NCdWlsZGVyLmNwcAorcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3BwCityZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCityZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJCbG9jay5jcHAKK3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlckJsb2NrRmxvdy5jcHAKK3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckNv
bnRpbnVhdGlvbi5jcHAKK3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckZpcnN0
TGV0dGVyLmNwcAorcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyRm9ybUNvbnRy
b2xzLmNwcAorcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyRnVsbFNjcmVlbi5j
cHAKK3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAKK3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckxpc3QuY3BwCityZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwCityZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKK3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlclJ1YnkuY3BwCityZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcu
Y3BwCityZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAKK3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlUG9zaXRpb24uY3BwCityZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuY3BwCityZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXJHZW5lcmF0ZWRDb250ZW50LmNwcAorcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKK3N0b3Jh
Z2UvU3RvcmFnZS5jcHAKK3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmNwcAorc3RvcmFnZS9TdG9yYWdl
RXZlbnREaXNwYXRjaGVyLmNwcAorc3RvcmFnZS9TdG9yYWdlTWFwLmNwcAorc3RvcmFnZS9TdG9y
YWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCitzdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuY3Bw
CitzdHlsZS9BdHRyaWJ1dGVDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCitzdHlsZS9DbGFzc0NoYW5n
ZUludmFsaWRhdGlvbi5jcHAKK3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorc3R5bGUv
SWRDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCitzdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCitz
dHlsZS9JbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcAorc3R5bGUvTWF0Y2hlZERlY2xhcmF0aW9u
c0NhY2hlLmNwcAorc3R5bGUvUGFnZVJ1bGVDb2xsZWN0b3IuY3BwCitzdHlsZS9Qcm9wZXJ0eUNh
c2NhZGUuY3BwCitzdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAKK3N0eWxl
L1J1bGVEYXRhLmNwcAorc3R5bGUvUnVsZUZlYXR1cmUuY3BwCitzdHlsZS9SdWxlU2V0LmNwcAor
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKK3N0eWxlL1N0eWxlQnVpbGRlci5jcHAKK3N0eWxlL1N0
eWxlQnVpbGRlclN0YXRlLmNwcAorc3R5bGUvU3R5bGVDaGFuZ2UuY3BwCitzdHlsZS9TdHlsZUZv
bnRTaXplRnVuY3Rpb25zLmNwcAorc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKK3N0eWxlL1N0
eWxlUGVuZGluZ1Jlc291cmNlcy5jcHAKK3N0eWxlL1N0eWxlUmVsYXRpb25zLmNwcAorc3R5bGUv
U3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCitzdHlsZS9TdHlsZVJlc29sdmVGb3JGb250UmF3
LmNwcAorc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKK3N0eWxlL1N0eWxlU2NvcGUuY3BwCitzdHls
ZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCitzdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAK
K3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorc3R5bGUvU3R5bGVVcGRhdGUuY3BwCitzdHls
ZS9Vc2VyQWdlbnRTdHlsZS5jcHAKK3N2Zy9Eb2N1bWVudFNWRy5jcHAKK3N2Zy9TVkdBRWxlbWVu
dC5jcHAKK3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuY3BwCitzdmcvU1ZHQWx0R2x5cGhFbGVt
ZW50LmNwcAorc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuY3BwCitzdmcvU1ZHQW5nbGVWYWx1
ZS5jcHAKK3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAorc3ZnL1NWR0FuaW1hdGVFbGVt
ZW50LmNwcAorc3ZnL1NWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAKK3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAKK3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKK3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmNwcAorc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCitzdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50LmNwcAorc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50LmNwcAorc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCitzdmcvU1ZHRGVmc0VsZW1lbnQuY3Bw
CitzdmcvU1ZHRGVzY0VsZW1lbnQuY3BwCitzdmcvU1ZHRG9jdW1lbnQuY3BwCitzdmcvU1ZHRG9j
dW1lbnRFeHRlbnNpb25zLmNwcAorc3ZnL1NWR0VsZW1lbnQuY3BwCitzdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuY3BwCitzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCitzdmcvU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQuY3BwCitzdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCitzdmcv
U1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAorc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
LmNwcAorc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKK3N2Zy9TVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQuY3BwCitzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcAor
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCitzdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3Bw
CitzdmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCitzdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3BwCitz
dmcvU1ZHRkVGdW5jR0VsZW1lbnQuY3BwCitzdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCitzdmcv
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAorc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAor
c3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAorc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAorc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKK3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNw
cAorc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKK3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50
LmNwcAorc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCitzdmcvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LmNwcAorc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCitzdmcvU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5jcHAKK3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAorc3ZnL1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKK3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3Bw
CitzdmcvU1ZHRm9udEVsZW1lbnQuY3BwCitzdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAorc3Zn
L1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAKK3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
LmNwcAorc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAKK3N2Zy9TVkdGb250RmFjZVVyaUVs
ZW1lbnQuY3BwCitzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCitzdmcvU1ZHR0VsZW1l
bnQuY3BwCitzdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAorc3ZnL1NWR0dseXBoRWxlbWVudC5j
cHAKK3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCitzdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cAorc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKK3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCitz
dmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorc3ZnL1NWR0ltYWdlTG9hZGVyLmNwcAorc3ZnL1NWR0xl
bmd0aENvbnRleHQuY3BwCitzdmcvU1ZHTGVuZ3RoTGlzdC5jcHAKK3N2Zy9TVkdMZW5ndGhWYWx1
ZS5jcHAKK3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKK3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwCitzdmcvU1ZHTG9jYXRhYmxlLmNwcAorc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKK3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5jcHAKK3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAorc3ZnL1NW
R051bWJlckxpc3QuY3BwCitzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAorc3ZnL1NWR1BhdGhC
bGVuZGVyLmNwcAorc3ZnL1NWR1BhdGhCdWlsZGVyLmNwcAorc3ZnL1NWR1BhdGhCeXRlU3RyZWFt
QnVpbGRlci5jcHAKK3N2Zy9TVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5jcHAKK3N2Zy9TVkdQYXRo
RWxlbWVudC5jcHAKK3N2Zy9TVkdQYXRoUGFyc2VyLmNwcAorc3ZnL1NWR1BhdGhTZWdMaXN0QnVp
bGRlci5jcHAKK3N2Zy9TVkdQYXRoU2VnTGlzdFNvdXJjZS5jcHAKK3N2Zy9TVkdQYXRoU3RyaW5n
QnVpbGRlci5jcHAKK3N2Zy9TVkdQYXRoU3RyaW5nU291cmNlLmNwcAorc3ZnL1NWR1BhdGhUcmF2
ZXJzYWxTdGF0ZUJ1aWxkZXIuY3BwCitzdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKK3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5jcHAKK3N2Zy9TVkdQb2ludExpc3QuY3BwCitzdmcvU1ZHUG9seUVsZW1l
bnQuY3BwCitzdmcvU1ZHUG9seWdvbkVsZW1lbnQuY3BwCitzdmcvU1ZHUG9seWxpbmVFbGVtZW50
LmNwcAorc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAKK3N2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuY3BwCitzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCitzdmcvU1ZHU1ZHRWxl
bWVudC5jcHAKK3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorc3ZnL1NWR1NldEVsZW1lbnQuY3Bw
CitzdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCitzdmcvU1ZHU3RyaW5nTGlzdC5jcHAKK3N2Zy9TVkdT
dHlsZUVsZW1lbnQuY3BwCitzdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKK3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcAorc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorc3ZnL1NWR1RTcGFuRWxlbWVudC5j
cHAKK3N2Zy9TVkdUZXN0cy5jcHAKK3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCitzdmcv
U1ZHVGV4dEVsZW1lbnQuY3BwCitzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAorc3ZnL1NWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCitzdmcvU1ZHVGl0bGVFbGVtZW50LmNwcAorc3ZnL1NW
R1RvT1RGRm9udENvbnZlcnNpb24uY3BwCitzdmcvU1ZHVHJhbnNmb3JtRGlzdGFuY2UuY3BwCitz
dmcvU1ZHVHJhbnNmb3JtTGlzdC5jcHAKK3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmNwcAorc3ZnL1NW
R1VSSVJlZmVyZW5jZS5jcHAKK3N2Zy9TVkdVbmtub3duRWxlbWVudC5jcHAKK3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAorc3ZnL1NWR1ZLZXJuRWxlbWVudC5jcHAKK3N2Zy9TVkdWaWV3RWxlbWVudC5j
cHAKK3N2Zy9TVkdWaWV3U3BlYy5jcHAKK3N2Zy9TVkdab29tQW5kUGFuLmNwcAorc3ZnL1NWR1pv
b21FdmVudC5jcHAKK3N2Zy9hbmltYXRpb24vU01JTFRpbWUuY3BwCitzdmcvYW5pbWF0aW9uL1NN
SUxUaW1lQ29udGFpbmVyLmNwcAorc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKK3N2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKK3N2Zy9ncmFwaGljcy9TVkdJbWFnZUNhY2hlLmNwcAor
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAorc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRkVJbWFnZS5jcHAKK3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKK3N2
Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCitzdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5LmNwcAorc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0aW9uQWRkaXRp
dmVWYWx1ZUZ1bmN0aW9uSW1wbC5jcHAKK3N2Zy9wcm9wZXJ0aWVzL1NWR0F0dHJpYnV0ZUFuaW1h
dG9yLmNwcAord29ya2Vycy9BYnN0cmFjdFdvcmtlci5jcHAKK3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUuY3BwCit3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKK3dv
cmtlcnMvV29ya2VyLmNwcAord29ya2Vycy9Xb3JrZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAor
d29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAord29ya2Vycy9Xb3JrZXJFdmVudExvb3Au
Y3BwCit3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAord29ya2Vycy9Xb3JrZXJJbnNwZWN0
b3JQcm94eS5jcHAKK3dvcmtlcnMvV29ya2VyTG9jYXRpb24uY3BwCit3b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcAord29ya2Vycy9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZS5jcHAK
K3dvcmtlcnMvV29ya2VyT3JXb3JrbGV0U2NyaXB0Q29udHJvbGxlci5jcHAKK3dvcmtlcnMvV29y
a2VyT3JXb3JrbGV0VGhyZWFkLmNwcAord29ya2Vycy9Xb3JrZXJSdW5Mb29wLmNwcAord29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCit3b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKK3dvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuY3BwCit3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5jcHAKK3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcAord29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKK3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyLmNwcAord29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCit3b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCit3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudHMuY3BwCit3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKK3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3Bw
Cit3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckRhdGEuY3BwCit3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAord29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwCit3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwCit3b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcAord29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCit3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEuY3BwCit3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleS5jcHAKK3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
T3B0aW9ucy5jcHAKK3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNw
cAord29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKK3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCit3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHAKK3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKK3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJJbnNwZWN0b3JQcm94eS5jcHAKK3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCit3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuY3BwCit3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcAord29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHAKK3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAKK3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuY3BwCit3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUu
Y3BwCit3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAord29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCit3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAord29ya2xldHMvUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwCit3b3JrbGV0cy9Xb3JrbGV0LmNwcAord29ya2xldHMvV29ya2xl
dEdsb2JhbFNjb3BlLmNwcAord29ya2xldHMvV29ya2xldFBlbmRpbmdUYXNrcy5jcHAKK3htbC9D
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCit4bWwvRE9NUGFyc2VyLmNwcAoreG1sL05hdGl2ZVhQ
YXRoTlNSZXNvbHZlci5jcHAKK3htbC9YTUxFcnJvcnMuY3BwCit4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCit4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcAoreG1sL1hNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAoreG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmNw
cAoreG1sL1hNTFNlcmlhbGl6ZXIuY3BwCit4bWwvWE1MVHJlZVZpZXdlci5jcHAKK3htbC9YUGF0
aEV2YWx1YXRvci5jcHAKK3htbC9YUGF0aEV4cHJlc3Npb24uY3BwCit4bWwvWFBhdGhFeHByZXNz
aW9uTm9kZS5jcHAKK3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKK3htbC9YUGF0aEdyYW1tYXIuY3Bw
Cit4bWwvWFBhdGhOU1Jlc29sdmVyLmNwcAoreG1sL1hQYXRoTm9kZVNldC5jcHAKK3htbC9YUGF0
aFBhcnNlci5jcHAKK3htbC9YUGF0aFBhdGguY3BwCit4bWwvWFBhdGhQcmVkaWNhdGUuY3BwCit4
bWwvWFBhdGhSZXN1bHQuY3BwCit4bWwvWFBhdGhTdGVwLmNwcAoreG1sL1hQYXRoVXRpbC5jcHAK
K3htbC9YUGF0aFZhbHVlLmNwcAoreG1sL1hQYXRoVmFyaWFibGVSZWZlcmVuY2UuY3BwCit4bWwv
WFNMSW1wb3J0UnVsZS5jcHAKK3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKK3htbC9YU0xU
RXh0ZW5zaW9ucy5jcHAKK3htbC9YU0xUUHJvY2Vzc29yLmNwcAoreG1sL1hTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcAoreG1sL1hTTFRVbmljb2RlU29ydC5jcHAKK3htbC9wYXJzZXIvWE1MRG9jdW1l
bnRQYXJzZXIuY3BwCit4bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKK3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJTY29wZS5jcHAKKworLy8gRGVyaXZlZCBTb3VyY2Vz
CisKK0NTU1ZhbHVlS2V5d29yZHMuY3BwCitDb2xvckRhdGEuY3BwCitFdmVudEZhY3RvcnkuY3Bw
CitFdmVudFRhcmdldEZhY3RvcnkuY3BwCitIVE1MRWxlbWVudEZhY3RvcnkuY3BwCitIVE1MRW50
aXR5VGFibGUuY3BwCitKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCitKU01hdGhNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKK0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAor
TWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwCitQbHVnSW5zUmVzb3VyY2VzRGF0YS5jcHAKK1NWR0Vs
ZW1lbnRGYWN0b3J5LmNwcAorU3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcAorU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAKK1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAKK1dl
YkNvcmVKU0J1aWx0aW5JbnRlcm5hbHMuY3BwCitXZWJDb3JlSlNCdWlsdGlucy5jcHAKKworLy8g
SURMIGJpbmRpbmdzCisvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IG1vdmUgdGhlc2UgaW50
byAke0Rlcml2ZWRTb3VyY2VzfS9iaW5kaW5ncy9qcy8gc28gdGhleSBnZXQgYnVuZGxlZCB3aXRo
IHRoZSBjdXN0b20gYmluZGluZ3MuCisKK0pTQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwCitKU0Fi
b3J0QWxnb3JpdGhtLmNwcAorSlNBYm9ydENvbnRyb2xsZXIuY3BwCitKU0Fib3J0U2lnbmFsLmNw
cAorSlNBYnN0cmFjdFJhbmdlLmNwcAorSlNBYnN0cmFjdFdvcmtlci5jcHAKK0pTQWRkcmVzc0Vy
cm9ycy5jcHAKK0pTQWVzQ2JjQ2ZiUGFyYW1zLmNwcAorSlNBZXNDdHJQYXJhbXMuY3BwCitKU0Fl
c0djbVBhcmFtcy5jcHAKK0pTQWVzS2V5UGFyYW1zLmNwcAorSlNBbmFseXNlck5vZGUuY3BwCitK
U0FuYWx5c2VyT3B0aW9ucy5jcHAKK0pTQW5pbWF0aW9uRWZmZWN0LmNwcAorSlNBbmltYXRpb25F
dmVudC5jcHAKK0pTQW5pbWF0aW9uUGxheWJhY2tFdmVudC5jcHAKK0pTQW5pbWF0aW9uUGxheWJh
Y2tFdmVudEluaXQuY3BwCitKU0FuaW1hdGlvblRpbWVsaW5lLmNwcAorSlNBdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlLmNwcAorSlNBdHRyLmNwcAorSlNBdWRpb0J1ZmZlci5jcHAKK0pT
QXVkaW9CdWZmZXJDYWxsYmFjay5jcHAKK0pTQXVkaW9CdWZmZXJPcHRpb25zLmNwcAorSlNBdWRp
b0J1ZmZlclNvdXJjZU5vZGUuY3BwCitKU0F1ZGlvQnVmZmVyU291cmNlT3B0aW9ucy5jcHAKK0pT
QXVkaW9Db25maWd1cmF0aW9uLmNwcAorSlNBdWRpb0NvbnRleHQuY3BwCitKU0F1ZGlvQ29udGV4
dExhdGVuY3lDYXRlZ29yeS5jcHAKK0pTQXVkaW9Db250ZXh0T3B0aW9ucy5jcHAKK0pTQXVkaW9D
b250ZXh0U3RhdGUuY3BwCitKU0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorSlNBdWRpb0xpc3Rl
bmVyLmNwcAorSlNBdWRpb05vZGUuY3BwCitKU0F1ZGlvTm9kZU9wdGlvbnMuY3BwCitKU0F1ZGlv
UGFyYW0uY3BwCitKU0F1ZGlvUGFyYW1EZXNjcmlwdG9yLmNwcAorSlNBdWRpb1BhcmFtTWFwLmNw
cAorSlNBdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAKK0pTQXVkaW9Qcm9jZXNzaW5nRXZlbnRJbml0
LmNwcAorSlNBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCitKU0F1ZGlvVGltZXN0YW1wLmNw
cAorSlNBdWRpb1RyYWNrLmNwcAorSlNBdWRpb1RyYWNrTGlzdC5jcHAKK0pTQXVkaW9Xb3JrbGV0
LmNwcAorSlNBdWRpb1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKK0pTQXVkaW9Xb3JrbGV0Tm9kZS5j
cHAKK0pTQXVkaW9Xb3JrbGV0Tm9kZU9wdGlvbnMuY3BwCitKU0F1ZGlvV29ya2xldFByb2Nlc3Nv
ci5jcHAKK0pTQXVkaW9Xb3JrbGV0UHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwIAorSlNBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuY3BwCitKU0F1dGhlbnRpY2F0aW9uRXh0ZW5z
aW9uc0NsaWVudE91dHB1dHMuY3BwCitKU0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5j
cHAKK0pTQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuY3BwCitKU0F1dGhlbnRpY2F0
b3JSZXNwb25zZS5jcHAKK0pTQXV0aGVudGljYXRvclRyYW5zcG9ydC5jcHAKK0pTQXV0b21hdGlv
blJhdGUuY3BwCitKU0JhclByb3AuY3BwCitKU0Jhc2VBdWRpb0NvbnRleHQuY3BwCitKU0Jhc2lj
Q3JlZGVudGlhbC5jcHAKK0pTQmVmb3JlTG9hZEV2ZW50LmNwcAorSlNCZWZvcmVVbmxvYWRFdmVu
dC5jcHAKK0pTQmlxdWFkRmlsdGVyTm9kZS5jcHAKK0pTQmlxdWFkRmlsdGVyT3B0aW9ucy5jcHAK
K0pTQmlxdWFkRmlsdGVyVHlwZS5jcHAKK0pTQmxvYi5jcHAKK0pTQmxvYkNhbGxiYWNrLmNwcAor
SlNCbG9iRXZlbnQuY3BwCitKU0Jsb2JQcm9wZXJ0eUJhZy5jcHAKK0pTQnl0ZUxlbmd0aFF1ZXVp
bmdTdHJhdGVneS5jcHAKK0pTQ0RBVEFTZWN0aW9uLmNwcAorSlNDU1NBbmltYXRpb24uY3BwCitK
U0NTU0NvbmRpdGlvblJ1bGUuY3BwCitKU0NTU0ZvbnRGYWNlUnVsZS5jcHAKK0pTQ1NTR3JvdXBp
bmdSdWxlLmNwcAorSlNDU1NJbXBvcnRSdWxlLmNwcAorSlNDU1NLZXlmcmFtZVJ1bGUuY3BwCitK
U0NTU0tleWZyYW1lc1J1bGUuY3BwCitKU0NTU01lZGlhUnVsZS5jcHAKK0pTQ1NTTmFtZXNwYWNl
UnVsZS5jcHAKK0pTQ1NTUGFnZVJ1bGUuY3BwCitKU0NTU1BhaW50Q2FsbGJhY2suY3BwCitKU0NT
U1BhaW50U2l6ZS5jcHAKK0pTQ1NTUnVsZS5jcHAKK0pTQ1NTUnVsZUxpc3QuY3BwCitKU0NTU1N0
eWxlRGVjbGFyYXRpb24uY3BwCitKU0NTU1N0eWxlUnVsZS5jcHAKK0pTQ1NTU3R5bGVTaGVldC5j
cHAKK0pTQ1NTU3VwcG9ydHNSdWxlLmNwcAorSlNDU1NUcmFuc2l0aW9uLmNwcAorSlNDU1NVbmtu
b3duUnVsZS5jcHAKK0pTQ2FjaGVRdWVyeU9wdGlvbnMuY3BwCitKU0NhbnZhc0NhcHR1cmVNZWRp
YVN0cmVhbVRyYWNrLmNwcAorSlNDYW52YXNDb21wb3NpdGluZy5jcHAKK0pTQ2FudmFzRGlyZWN0
aW9uLmNwcAorSlNDYW52YXNEcmF3SW1hZ2UuY3BwCitKU0NhbnZhc0RyYXdQYXRoLmNwcAorSlND
YW52YXNGaWxsUnVsZS5jcHAKK0pTQ2FudmFzRmlsbFN0cm9rZVN0eWxlcy5jcHAKK0pTQ2FudmFz
RmlsdGVycy5jcHAKK0pTQ2FudmFzR3JhZGllbnQuY3BwCitKU0NhbnZhc0ltYWdlRGF0YS5jcHAK
K0pTQ2FudmFzSW1hZ2VTbW9vdGhpbmcuY3BwCitKU0NhbnZhc0xpbmVDYXAuY3BwCitKU0NhbnZh
c0xpbmVKb2luLmNwcAorSlNDYW52YXNQYXRoLmNwcAorSlNDYW52YXNQYXRoRHJhd2luZ1N0eWxl
cy5jcHAKK0pTQ2FudmFzUGF0dGVybi5jcHAKK0pTQ2FudmFzUmVjdC5jcHAKK0pTQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcAorSlNDYW52YXNTaGFkb3dTdHlsZXMuY3BwCitKU0NhbnZhc1N0
YXRlLmNwcAorSlNDYW52YXNUZXh0LmNwcAorSlNDYW52YXNUZXh0QWxpZ24uY3BwCitKU0NhbnZh
c1RleHRCYXNlbGluZS5jcHAKK0pTQ2FudmFzVGV4dERyYXdpbmdTdHlsZXMuY3BwCitKU0NhbnZh
c1RyYW5zZm9ybS5jcHAKK0pTQ2FudmFzVXNlckludGVyZmFjZS5jcHAKK0pTQ2hhbm5lbENvdW50
TW9kZS5jcHAKK0pTQ2hhbm5lbEludGVycHJldGF0aW9uLmNwcAorSlNDaGFubmVsTWVyZ2VyTm9k
ZS5jcHAKK0pTQ2hhbm5lbE1lcmdlck9wdGlvbnMuY3BwCitKU0NoYW5uZWxTcGxpdHRlck5vZGUu
Y3BwCitKU0NoYW5uZWxTcGxpdHRlck9wdGlvbnMuY3BwCitKU0NoYXJhY3RlckRhdGEuY3BwCitK
U0NoaWxkTm9kZS5jcHAKK0pTQ2xpcGJvYXJkLmNwcAorSlNDbGlwYm9hcmRFdmVudC5jcHAKK0pT
Q2xpcGJvYXJkSXRlbS5jcHAKK0pTQ2xvc2VFdmVudC5jcHAKK0pTQ29sb3JHYW11dC5jcHAKK0pT
Q29tbWFuZExpbmVBUElIb3N0LmNwcAorSlNDb21tZW50LmNwcAorSlNDb21wb3NpdGVPcGVyYXRp
b24uY3BwCitKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5jcHAKK0pTQ29tcG9zaXRpb25FdmVu
dC5jcHAKK0pTQ29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCitKU0NvbnN0YW50U291cmNlTm9kZS5j
cHAKK0pTQ29uc3RhbnRTb3VyY2VPcHRpb25zLmNwcAorSlNDb250YWN0SW5mby5jcHAKK0pTQ29u
dGFjdFByb3BlcnR5LmNwcAorSlNDb250YWN0c01hbmFnZXIuY3BwCitKU0NvbnRhY3RzU2VsZWN0
T3B0aW9ucy5jcHAKK0pTQ29udm9sdmVyTm9kZS5jcHAKK0pTQ29udm9sdmVyT3B0aW9ucy5jcHAK
K0pTQ291bnRRdWV1aW5nU3RyYXRlZ3kuY3BwCitKU0NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMu
Y3BwCitKU0NyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKK0pTQ3JlZGVudGlhbHNDb250YWlu
ZXIuY3BwCitKU0NyeXB0by5jcHAKK0pTQ3J5cHRvQWVzS2V5QWxnb3JpdGhtLmNwcAorSlNDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzLmNwcAorSlNDcnlwdG9FY0tleUFsZ29yaXRobS5jcHAKK0pT
Q3J5cHRvSG1hY0tleUFsZ29yaXRobS5jcHAKK0pTQ3J5cHRvS2V5LmNwcAorSlNDcnlwdG9LZXlB
bGdvcml0aG0uY3BwCitKU0NyeXB0b0tleVBhaXIuY3BwCitKU0NyeXB0b0tleVVzYWdlLmNwcAor
SlNDcnlwdG9Sc2FIYXNoZWRLZXlBbGdvcml0aG0uY3BwCitKU0NyeXB0b1JzYUtleUFsZ29yaXRo
bS5jcHAKK0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmNwcAorSlNDdXN0b21FdmVudC5jcHAKK0pT
RE9NQXBwbGljYXRpb25DYWNoZS5jcHAKK0pTRE9NQ1NTQ3VzdG9tUHJvcGVydHlEZXNjcmlwdG9y
LmNwcAorSlNET01DU1NOYW1lc3BhY2UuY3BwCitKU0RPTUNhY2hlLmNwcAorSlNET01DYWNoZVN0
b3JhZ2UuY3BwCitKU0RPTUV4Y2VwdGlvbi5jcHAKK0pTRE9NRmlsZVN5c3RlbS5jcHAKK0pTRE9N
Rm9ybURhdGEuY3BwCitKU0RPTUltcGxlbWVudGF0aW9uLmNwcAorSlNET01NYXRyaXguY3BwCitK
U0RPTU1hdHJpeDJESW5pdC5jcHAKK0pTRE9NTWF0cml4SW5pdC5jcHAKK0pTRE9NTWF0cml4UmVh
ZE9ubHkuY3BwCitKU0RPTU1pbWVUeXBlLmNwcAorSlNET01NaW1lVHlwZUFycmF5LmNwcAorSlNE
T01QYXJzZXIuY3BwCitKU0RPTVBsdWdpbi5jcHAKK0pTRE9NUGx1Z2luQXJyYXkuY3BwCitKU0RP
TVBvaW50LmNwcAorSlNET01Qb2ludEluaXQuY3BwCitKU0RPTVBvaW50UmVhZE9ubHkuY3BwCitK
U0RPTVF1YWQuY3BwCitKU0RPTVF1YWRJbml0LmNwcAorSlNET01SZWN0LmNwcAorSlNET01SZWN0
SW5pdC5jcHAKK0pTRE9NUmVjdExpc3QuY3BwCitKU0RPTVJlY3RSZWFkT25seS5jcHAKK0pTRE9N
U2VsZWN0aW9uLmNwcAorSlNET01TdHJpbmdMaXN0LmNwcAorSlNET01TdHJpbmdNYXAuY3BwCitK
U0RPTVRva2VuTGlzdC5jcHAKK0pTRE9NVVJMLmNwcAorSlNET01XaW5kb3cuY3BwCitKU0RhdGFD
dWUuY3BwCitKU0RhdGFUcmFuc2Zlci5jcHAKK0pTRGF0YVRyYW5zZmVySXRlbS5jcHAKK0pTRGF0
YVRyYW5zZmVySXRlbUxpc3QuY3BwCitKU0RhdGFiYXNlLmNwcAorSlNEYXRhYmFzZUNhbGxiYWNr
LmNwcAorSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKK0pTRGVsYXlOb2RlLmNwcAor
SlNEZWxheU9wdGlvbnMuY3BwCitKU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuY3BwCitKU0RlcHJl
Y2F0ZWRDU1NPTVByaW1pdGl2ZVZhbHVlLmNwcAorSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5j
cHAKK0pTRGVwcmVjYXRlZENTU09NUmVjdC5jcHAKK0pTRGVwcmVjYXRlZENTU09NVmFsdWUuY3Bw
CitKU0RlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5jcHAKK0pTRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CitKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwCitKU0RldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUuY3BwCitKU0Rpc3RhbmNlTW9kZWxUeXBlLmNwcAorSlNEb2N1bWVu
dC5jcHAKK0pTRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVycy5jcHAKK0pTRG9jdW1lbnRG
cmFnbWVudC5jcHAKK0pTRG9jdW1lbnRPclNoYWRvd1Jvb3QuY3BwCitKU0RvY3VtZW50VGltZWxp
bmUuY3BwCitKU0RvY3VtZW50VGltZWxpbmVPcHRpb25zLmNwcAorSlNEb2N1bWVudFR5cGUuY3Bw
CitKU0RvdWJsZVJhbmdlLmNwcAorSlNEcmFnRXZlbnQuY3BwCitKU0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuY3BwCitKU0R5bmFtaWNzQ29tcHJlc3Nvck9wdGlvbnMuY3BwCitKU0VYVEJsZW5kTWlu
TWF4LmNwcAorSlNFWFRDb2xvckJ1ZmZlckZsb2F0LmNwcAorSlNFWFRDb2xvckJ1ZmZlckhhbGZG
bG9hdC5jcHAKK0pTRVhURmxvYXRCbGVuZC5jcHAKK0pTRVhURnJhZ0RlcHRoLmNwcAorSlNFWFRT
aGFkZXJUZXh0dXJlTE9ELmNwcAorSlNFWFRUZXh0dXJlQ29tcHJlc3Npb25SR1RDLmNwcAorSlNF
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCitKU0VYVHNSR0IuY3BwCitKU0VjS2V5UGFy
YW1zLmNwcAorSlNFY2RoS2V5RGVyaXZlUGFyYW1zLmNwcAorSlNFY2RzYVBhcmFtcy5jcHAKK0pT
RWZmZWN0VGltaW5nLmNwcAorSlNFbGVtZW50LmNwcAorSlNFbGVtZW50Q1NTSW5saW5lU3R5bGUu
Y3BwCitKU0VuZGluZ1R5cGUuY3BwCitKU0VudGVyUGljdHVyZUluUGljdHVyZUV2ZW50LmNwcAor
SlNFcnJvckNhbGxiYWNrLmNwcAorSlNFcnJvckV2ZW50LmNwcAorSlNFdmVudC5jcHAKK0pTRXZl
bnRJbml0LmNwcAorSlNFdmVudE1vZGlmaWVySW5pdC5jcHAKK0pTRXZlbnRTb3VyY2UuY3BwCitK
U0V2ZW50VGFyZ2V0LmNwcAorSlNFeHRlbmRhYmxlRXZlbnQuY3BwCitKU0V4dGVuZGFibGVFdmVu
dEluaXQuY3BwCitKU0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwCitKU0ZldGNoQm9keS5jcHAK
K0pTRmV0Y2hFdmVudC5jcHAKK0pTRmV0Y2hIZWFkZXJzLmNwcAorSlNGZXRjaFJlZmVycmVyUG9s
aWN5LmNwcAorSlNGZXRjaFJlcXVlc3QuY3BwCitKU0ZldGNoUmVxdWVzdENhY2hlLmNwcAorSlNG
ZXRjaFJlcXVlc3RDcmVkZW50aWFscy5jcHAKK0pTRmV0Y2hSZXF1ZXN0SW5pdC5jcHAKK0pTRmV0
Y2hSZXF1ZXN0TW9kZS5jcHAKK0pTRmV0Y2hSZXF1ZXN0UmVkaXJlY3QuY3BwCitKU0ZldGNoUmVz
cG9uc2UuY3BwCitKU0ZpbGUuY3BwCitKU0ZpbGVDYWxsYmFjay5jcHAKK0pTRmlsZUxpc3QuY3Bw
CitKU0ZpbGVSZWFkZXIuY3BwCitKU0ZpbGVSZWFkZXJTeW5jLmNwcAorSlNGaWxlU3lzdGVtRGly
ZWN0b3J5RW50cnkuY3BwCitKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuY3BwCitKU0ZpbGVT
eXN0ZW1FbnRyaWVzQ2FsbGJhY2suY3BwCitKU0ZpbGVTeXN0ZW1FbnRyeS5jcHAKK0pTRmlsZVN5
c3RlbUVudHJ5Q2FsbGJhY2suY3BwCitKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuY3BwCitKU0ZpbGxN
b2RlLmNwcAorSlNGb2N1c0V2ZW50LmNwcAorSlNGb250RmFjZS5jcHAKK0pTRm9udEZhY2VTZXQu
Y3BwCitKU0dQVUJpbmRHcm91cExheW91dEJpbmRpbmcuY3BwCitKU0dQVUJpbmRHcm91cExheW91
dERlc2NyaXB0b3IuY3BwCitKU0dQVUJsZW5kRGVzY3JpcHRvci5jcHAKK0pTR1BVQnVmZmVyRGVz
Y3JpcHRvci5jcHAKK0pTR1BVQnVmZmVyVXNhZ2UuY3BwCitKU0dQVUNhbnZhc0NvbnRleHQuY3Bw
CitKU0dQVUNvbG9yLmNwcAorSlNHUFVDb2xvclN0YXRlRGVzY3JpcHRvci5jcHAKK0pTR1BVQ29s
b3JXcml0ZS5jcHAKK0pTR1BVQ29tcGFyZUZ1bmN0aW9uLmNwcAorSlNHUFVEZXB0aFN0ZW5jaWxT
dGF0ZURlc2NyaXB0b3IuY3BwCitKU0dQVUVycm9yRmlsdGVyLmNwcAorSlNHUFVFeHRlbnQzRC5j
cHAKK0pTR1BVTG9hZE9wLmNwcAorSlNHUFVPcmlnaW4zRC5jcHAKK0pTR1BVT3V0T2ZNZW1vcnlF
cnJvci5jcHAKK0pTR1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25zLmNwcAorSlNHUFVTYW1wbGVyRGVz
Y3JpcHRvci5jcHAKK0pTR1BVU2hhZGVyU3RhZ2UuY3BwCitKU0dQVVN0b3JlT3AuY3BwCitKU0dQ
VVRleHR1cmVEZXNjcmlwdG9yLmNwcAorSlNHUFVUZXh0dXJlRm9ybWF0LmNwcAorSlNHUFVUZXh0
dXJlVXNhZ2UuY3BwCitKU0dQVVVuY2FwdHVyZWRFcnJvckV2ZW50LmNwcAorSlNHUFVWYWxpZGF0
aW9uRXJyb3IuY3BwCitKU0dQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0b3IuY3BwCitKU0dQVVZl
cnRleEJ1ZmZlckRlc2NyaXB0b3IuY3BwCitKU0dQVVZlcnRleElucHV0RGVzY3JpcHRvci5jcHAK
K0pTR2Fpbk5vZGUuY3BwCitKU0dhaW5PcHRpb25zLmNwcAorSlNHYW1lcGFkLmNwcAorSlNHYW1l
cGFkQnV0dG9uLmNwcAorSlNHYW1lcGFkRXZlbnQuY3BwCitKU0dlb2xvY2F0aW9uLmNwcAorSlNH
ZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAorSlNHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorSlNH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuY3BwCitKU0dldEFuaW1hdGlvbnNPcHRpb25zLmNwcAor
SlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAKK0pTSFRNTEFuY2hvckVsZW1lbnQuY3BwCitKU0hUTUxB
cmVhRWxlbWVudC5jcHAKK0pTSFRNTEF0dGFjaG1lbnRFbGVtZW50LmNwcAorSlNIVE1MQXVkaW9F
bGVtZW50LmNwcAorSlNIVE1MQlJFbGVtZW50LmNwcAorSlNIVE1MQmFzZUVsZW1lbnQuY3BwCitK
U0hUTUxCb2R5RWxlbWVudC5jcHAKK0pTSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCitKU0hUTUxDYW52
YXNFbGVtZW50LmNwcAorSlNIVE1MQ29sbGVjdGlvbi5jcHAKK0pTSFRNTERMaXN0RWxlbWVudC5j
cHAKK0pTSFRNTERhdGFFbGVtZW50LmNwcAorSlNIVE1MRGF0YUxpc3RFbGVtZW50LmNwcAorSlNI
VE1MRGV0YWlsc0VsZW1lbnQuY3BwCitKU0hUTUxEaWFsb2dFbGVtZW50LmNwcAorSlNIVE1MRGly
ZWN0b3J5RWxlbWVudC5jcHAKK0pTSFRNTERpdkVsZW1lbnQuY3BwCitKU0hUTUxEb2N1bWVudC5j
cHAKK0pTSFRNTEVsZW1lbnQuY3BwCitKU0hUTUxFbWJlZEVsZW1lbnQuY3BwCitKU0hUTUxGaWVs
ZFNldEVsZW1lbnQuY3BwCitKU0hUTUxGb250RWxlbWVudC5jcHAKK0pTSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24uY3BwCitKU0hUTUxGb3JtRWxlbWVudC5jcHAKK0pTSFRNTEZyYW1lRWxlbWVu
dC5jcHAKK0pTSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKK0pTSFRNTEhSRWxlbWVudC5jcHAKK0pT
SFRNTEhlYWRFbGVtZW50LmNwcAorSlNIVE1MSGVhZGluZ0VsZW1lbnQuY3BwCitKU0hUTUxIdG1s
RWxlbWVudC5jcHAKK0pTSFRNTEh5cGVybGlua0VsZW1lbnRVdGlscy5jcHAKK0pTSFRNTElGcmFt
ZUVsZW1lbnQuY3BwCitKU0hUTUxJbWFnZUVsZW1lbnQuY3BwCitKU0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCitKU0hUTUxLZXlnZW5FbGVtZW50LmNwcAorSlNIVE1MTElFbGVtZW50LmNwcAorSlNIVE1M
TGFiZWxFbGVtZW50LmNwcAorSlNIVE1MTGVnZW5kRWxlbWVudC5jcHAKK0pTSFRNTExpbmtFbGVt
ZW50LmNwcAorSlNIVE1MTWFwRWxlbWVudC5jcHAKK0pTSFRNTE1hcnF1ZWVFbGVtZW50LmNwcAor
SlNIVE1MTWVkaWFFbGVtZW50LmNwcAorSlNIVE1MTWVudUVsZW1lbnQuY3BwCitKU0hUTUxNZW51
SXRlbUVsZW1lbnQuY3BwCitKU0hUTUxNZXRhRWxlbWVudC5jcHAKK0pTSFRNTE1ldGVyRWxlbWVu
dC5jcHAKK0pTSFRNTE1vZEVsZW1lbnQuY3BwCitKU0hUTUxNb2RlbEVsZW1lbnQuY3BwCitKU0hU
TUxPTGlzdEVsZW1lbnQuY3BwCitKU0hUTUxPYmplY3RFbGVtZW50LmNwcAorSlNIVE1MT3B0R3Jv
dXBFbGVtZW50LmNwcAorSlNIVE1MT3B0aW9uRWxlbWVudC5jcHAKK0pTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmNwcAorSlNIVE1MT3JGb3JlaWduRWxlbWVudC5jcHAKK0pTSFRNTE91dHB1dEVsZW1l
bnQuY3BwCitKU0hUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcAorSlNIVE1MUGFyYW1FbGVtZW50LmNw
cAorSlNIVE1MUGljdHVyZUVsZW1lbnQuY3BwCitKU0hUTUxQcmVFbGVtZW50LmNwcAorSlNIVE1M
UHJvZ3Jlc3NFbGVtZW50LmNwcAorSlNIVE1MUXVvdGVFbGVtZW50LmNwcAorSlNIVE1MU2NyaXB0
RWxlbWVudC5jcHAKK0pTSFRNTFNlbGVjdEVsZW1lbnQuY3BwCitKU0hUTUxTbG90RWxlbWVudC5j
cHAKK0pTSFRNTFNvdXJjZUVsZW1lbnQuY3BwCitKU0hUTUxTcGFuRWxlbWVudC5jcHAKK0pTSFRN
TFN0eWxlRWxlbWVudC5jcHAKK0pTSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwCitKU0hUTUxU
YWJsZUNlbGxFbGVtZW50LmNwcAorSlNIVE1MVGFibGVDb2xFbGVtZW50LmNwcAorSlNIVE1MVGFi
bGVFbGVtZW50LmNwcAorSlNIVE1MVGFibGVSb3dFbGVtZW50LmNwcAorSlNIVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAKK0pTSFRNTFRlbXBsYXRlRWxlbWVudC5jcHAKK0pTSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKK0pTSFRNTFRpbWVFbGVtZW50LmNwcAorSlNIVE1MVGl0bGVFbGVtZW50LmNw
cAorSlNIVE1MVHJhY2tFbGVtZW50LmNwcAorSlNIVE1MVUxpc3RFbGVtZW50LmNwcAorSlNIVE1M
VW5rbm93bkVsZW1lbnQuY3BwCitKU0hUTUxWaWRlb0VsZW1lbnQuY3BwCitKU0hhc2hDaGFuZ2VF
dmVudC5jcHAKK0pTSGRyTWV0YWRhdGFUeXBlLmNwcAorSlNIaWdobGlnaHRSZWdpc3Rlci5jcHAK
K0pTSGlnaGxpZ2h0LmNwcAorSlNIaXN0b3J5LmNwcAorSlNIa2RmUGFyYW1zLmNwcAorSlNIbWFj
S2V5UGFyYW1zLmNwcAorSlNJREJDdXJzb3IuY3BwCitKU0lEQkN1cnNvckRpcmVjdGlvbi5jcHAK
K0pTSURCQ3Vyc29yV2l0aFZhbHVlLmNwcAorSlNJREJEYXRhYmFzZS5jcHAKK0pTSURCRmFjdG9y
eS5jcHAKK0pTSURCSW5kZXguY3BwCitKU0lEQktleVJhbmdlLmNwcAorSlNJREJPYmplY3RTdG9y
ZS5jcHAKK0pTSURCT3BlbkRCUmVxdWVzdC5jcHAKK0pTSURCUmVxdWVzdC5jcHAKK0pTSURCVHJh
bnNhY3Rpb24uY3BwCitKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAKK0pTSURCVmVyc2lvbkNoYW5n
ZUV2ZW50LmNwcAorSlNJZGxlRGVhZGxpbmUuY3BwCitKU0lkbGVSZXF1ZXN0Q2FsbGJhY2suY3Bw
CitKU0lkbGVSZXF1ZXN0T3B0aW9ucy5jcHAKK0pTSUlSRmlsdGVyTm9kZS5jcHAKK0pTSUlSRmls
dGVyT3B0aW9ucy5jcHAKK0pTSW1hZ2VCaXRtYXAuY3BwCitKU0ltYWdlQml0bWFwT3B0aW9ucy5j
cHAKK0pTSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAorSlNJbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHRTZXR0aW5ncy5jcHAKK0pTSW1hZ2VEYXRhLmNwcAorSlNJbWFnZVNtb290aGlu
Z1F1YWxpdHkuY3BwCitKU0lucHV0RXZlbnQuY3BwCitKU0luc3BlY3RvckF1ZGl0QWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKK0pTSW5zcGVjdG9yQXVkaXRET01PYmplY3QuY3BwCitKU0luc3BlY3Rv
ckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcAorSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCitK
U0ludGVyc2VjdGlvbk9ic2VydmVyLmNwcAorSlNJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNr
LmNwcAorSlNJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LmNwcAorSlNJdGVyYXRpb25Db21wb3Np
dGVPcGVyYXRpb24uY3BwCitKU0pzb25XZWJLZXkuY3BwCitKU0tleWJvYXJkRXZlbnQuY3BwCitK
U0tleWZyYW1lQW5pbWF0aW9uT3B0aW9ucy5jcHAKK0pTS2V5ZnJhbWVFZmZlY3QuY3BwCitKU0tl
eWZyYW1lRWZmZWN0T3B0aW9ucy5jcHAKK0pTTG9jYXRpb24uY3BwCitKU0xvbmdSYW5nZS5jcHAK
K0pTTWF0aE1MRWxlbWVudC5jcHAKK0pTTWF0aE1MTWF0aEVsZW1lbnQuY3BwCitKU01lZGlhQ2Fw
YWJpbGl0aWVzLmNwcAorSlNNZWRpYUNhcGFiaWxpdGllc0RlY29kaW5nSW5mby5jcHAKK0pTTWVk
aWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uY3BwCitKU01lZGlhQ2FwYWJpbGl0aWVzSW5mby5j
cHAKK0pTTWVkaWFDb250cm9sbGVyLmNwcAorSlNNZWRpYUNvbnRyb2xzSG9zdC5jcHAKK0pTTWVk
aWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24uY3BwCitKU01lZGlhRGVjb2RpbmdUeXBlLmNwcAorSlNN
ZWRpYURldmljZUluZm8uY3BwCitKU01lZGlhRGV2aWNlcy5jcHAKK0pTTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlLmNwcAorSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU9wdGlvbnMuY3BwCitK
U01lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uLmNwcAorSlNNZWRpYUVuY29kaW5nVHlwZS5jcHAK
K0pTTWVkaWFFbmNyeXB0ZWRFdmVudC5jcHAKK0pTTWVkaWFFcnJvci5jcHAKK0pTTWVkaWFJbWFn
ZS5jcHAKK0pTTWVkaWFLZXlFbmNyeXB0aW9uU2NoZW1lLmNwcAorSlNNZWRpYUtleU1lc3NhZ2VF
dmVudC5jcHAKK0pTTWVkaWFLZXlTZXNzaW9uLmNwcAorSlNNZWRpYUtleVNlc3Npb25UeXBlLmNw
cAorSlNNZWRpYUtleVN0YXR1c01hcC5jcHAKK0pTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCitK
U01lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5jcHAKK0pTTWVkaWFLZXlTeXN0ZW1NZWRpYUNh
cGFiaWxpdHkuY3BwCitKU01lZGlhS2V5cy5jcHAKK0pTTWVkaWFLZXlzUmVxdWlyZW1lbnQuY3Bw
CitKU01lZGlhTGlzdC5jcHAKK0pTTWVkaWFNZXRhZGF0YS5jcHAKK0pTTWVkaWFNZXRhZGF0YUlu
aXQuY3BwCitKU01lZGlhUG9zaXRpb25TdGF0ZS5jcHAKK0pTTWVkaWFRdWVyeUxpc3QuY3BwCitK
U01lZGlhUXVlcnlMaXN0RXZlbnQuY3BwCitKU01lZGlhUmVjb3JkZXIuY3BwCitKU01lZGlhUmVj
b3JkZXJFcnJvckV2ZW50LmNwcAorSlNNZWRpYVNlc3Npb25BY3Rpb25EZXRhaWxzLmNwcAorSlNN
ZWRpYVNlc3Npb25BY3Rpb25IYW5kbGVyLmNwcAorSlNNZWRpYVNlc3Npb25BY3Rpb24uY3BwCitK
U01lZGlhU2Vzc2lvblBsYXliYWNrU3RhdGUuY3BwCitKU01lZGlhU2Vzc2lvbi5jcHAKK0pTTWVk
aWFTb3VyY2UuY3BwCitKU01lZGlhU3RyZWFtLmNwcAorSlNNZWRpYVN0cmVhbUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcAorSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKK0pTTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU9wdGlvbnMuY3BwCitKU01lZGlhU3RyZWFtVHJhY2suY3BwCitKU01l
ZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAKK0pTTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcAorSlNN
ZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCitKU01lcmNoYW50VmFsaWRhdGlvbkV2
ZW50LmNwcAorSlNNZXNzYWdlQ2hhbm5lbC5jcHAKK0pTTWVzc2FnZUV2ZW50LmNwcAorSlNNZXNz
YWdlUG9ydC5jcHAKK0pTTW91c2VFdmVudC5jcHAKK0pTTW91c2VFdmVudEluaXQuY3BwCitKU011
dGF0aW9uQ2FsbGJhY2suY3BwCitKU011dGF0aW9uRXZlbnQuY3BwCitKU011dGF0aW9uT2JzZXJ2
ZXIuY3BwCitKU011dGF0aW9uUmVjb3JkLmNwcAorSlNOYW1lZE5vZGVNYXAuY3BwCitKU05hdmln
YXRvci5jcHAKK0pTTm9kZS5jcHAKK0pTTm9kZUZpbHRlci5jcHAKK0pTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcAorSlNOb2RlSXRlcmF0b3IuY3BwCitKU05vZGVMaXN0LmNwcAorSlNOb25Eb2N1
bWVudFR5cGVDaGlsZE5vZGUuY3BwCitKU05vbkVsZW1lbnRQYXJlbnROb2RlLmNwcAorSlNOb3Rp
ZmljYXRpb24uY3BwCitKU05vdGlmaWNhdGlvblBlcm1pc3Npb24uY3BwCitKU05vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjay5jcHAKK0pTT0VTRWxlbWVudEluZGV4VWludC5jcHAKK0pTT0VT
RkJPUmVuZGVyTWlwbWFwLmNwcAorSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAorSlNPRVNU
ZXh0dXJlRmxvYXQuY3BwCitKU09FU1RleHR1cmVGbG9hdExpbmVhci5jcHAKK0pTT0VTVGV4dHVy
ZUhhbGZGbG9hdC5jcHAKK0pTT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKK0pTT0VTVmVy
dGV4QXJyYXlPYmplY3QuY3BwCitKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAKK0pT
T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50SW5pdC5jcHAKK0pTT2ZmbGluZUF1ZGlvQ29udGV4
dC5jcHAKK0pTT2ZmbGluZUF1ZGlvQ29udGV4dE9wdGlvbnMuY3BwCitKU09mZnNjcmVlbkNhbnZh
cy5jcHAKK0pTT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorSlNPcHRpb25h
bEVmZmVjdFRpbWluZy5jcHAKK0pTT3NjaWxsYXRvck5vZGUuY3BwCitKU09zY2lsbGF0b3JPcHRp
b25zLmNwcAorSlNPc2NpbGxhdG9yVHlwZS5jcHAKK0pTT3ZlclNhbXBsZVR5cGUuY3BwCitKU092
ZXJjb25zdHJhaW5lZEVycm9yLmNwcAorSlNPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcAor
SlNPdmVyZmxvd0V2ZW50LmNwcAorSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcAorSlNQYWludFJl
bmRlcmluZ0NvbnRleHQyRC5jcHAKK0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCitKU1Bh
bm5lck5vZGUuY3BwCitKU1Bhbm5lck9wdGlvbnMuY3BwCitKU1Bhbm5pbmdNb2RlbFR5cGUuY3Bw
CitKU1BhcmVudE5vZGUuY3BwCitKU1BhdGgyRC5jcHAKK0pTUGF5ZXJFcnJvckZpZWxkcy5jcHAK
K0pTUGF5bWVudEFkZHJlc3MuY3BwCitKU1BheW1lbnRDb21wbGV0ZS5jcHAKK0pTUGF5bWVudEN1
cnJlbmN5QW1vdW50LmNwcAorSlNQYXltZW50RGV0YWlsc0Jhc2UuY3BwCitKU1BheW1lbnREZXRh
aWxzSW5pdC5jcHAKK0pTUGF5bWVudERldGFpbHNNb2RpZmllci5jcHAKK0pTUGF5bWVudERldGFp
bHNVcGRhdGUuY3BwCitKU1BheW1lbnRJdGVtLmNwcAorSlNQYXltZW50TWV0aG9kQ2hhbmdlRXZl
bnQuY3BwCitKU1BheW1lbnRNZXRob2REYXRhLmNwcAorSlNQYXltZW50T3B0aW9ucy5jcHAKK0pT
UGF5bWVudFJlcXVlc3QuY3BwCitKU1BheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQuY3BwCitKU1Bh
eW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnRJbml0LmNwcAorSlNQYXltZW50UmVzcG9uc2UuY3BwCitK
U1BheW1lbnRTaGlwcGluZ09wdGlvbi5jcHAKK0pTUGF5bWVudFNoaXBwaW5nVHlwZS5jcHAKK0pT
UGF5bWVudFZhbGlkYXRpb25FcnJvcnMuY3BwCitKU1Bia2RmMlBhcmFtcy5jcHAKK0pTUGVyZm9y
bWFuY2UuY3BwCitKU1BlcmZvcm1hbmNlRW50cnkuY3BwCitKU1BlcmZvcm1hbmNlTWFyay5jcHAK
K0pTUGVyZm9ybWFuY2VNYXJrT3B0aW9ucy5jcHAKK0pTUGVyZm9ybWFuY2VNZWFzdXJlLmNwcAor
SlNQZXJmb3JtYW5jZU1lYXN1cmVPcHRpb25zLmNwcAorSlNQZXJmb3JtYW5jZU5hdmlnYXRpb24u
Y3BwCitKU1BlcmZvcm1hbmNlT2JzZXJ2ZXIuY3BwCitKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDYWxs
YmFjay5jcHAKK0pTUGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdC5jcHAKK0pTUGVyZm9ybWFu
Y2VQYWludFRpbWluZy5jcHAKK0pTUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKK0pTUGVy
Zm9ybWFuY2VTZXJ2ZXJUaW1pbmcuY3BwCitKU1BlcmZvcm1hbmNlVGltaW5nLmNwcAorSlNQZXJp
b2RpY1dhdmUuY3BwCitKU1BlcmlvZGljV2F2ZUNvbnN0cmFpbnRzLmNwcAorSlNQZXJpb2RpY1dh
dmVPcHRpb25zLmNwcAorSlNQaWN0dXJlSW5QaWN0dXJlV2luZG93LmNwcAorSlNQbGF5YmFja0Rp
cmVjdGlvbi5jcHAKK0pTUG9pbnRlckV2ZW50LmNwcAorSlNQb3BTdGF0ZUV2ZW50LmNwcAorSlNQ
b3NpdGlvbkNhbGxiYWNrLmNwcAorSlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suY3BwCitKU1Bvc2l0
aW9uT3B0aW9ucy5jcHAKK0pTUG9zdE1lc3NhZ2VPcHRpb25zLmNwcAorSlNQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwCitKU1Byb2dyZXNzRXZlbnQuY3BwCitKU1Byb21pc2VSZWplY3Rpb25FdmVu
dC5jcHAKK0pTUHVibGljS2V5Q3JlZGVudGlhbC5jcHAKK0pTUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5jcHAKK0pTUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuY3BwCitK
U1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKK0pTUHVibGljS2V5Q3JlZGVu
dGlhbFR5cGUuY3BwCitKU1JUQ0Fuc3dlck9wdGlvbnMuY3BwCitKU1JUQ0NlcnRpZmljYXRlLmNw
cAorSlNSVENDb25maWd1cmF0aW9uLmNwcAorSlNSVENEVE1GU2VuZGVyLmNwcAorSlNSVENEVE1G
VG9uZUNoYW5nZUV2ZW50LmNwcAorSlNSVENEYXRhQ2hhbm5lbC5jcHAKK0pTUlRDRGF0YUNoYW5u
ZWxFdmVudC5jcHAKK0pTUlRDRGVncmFkYXRpb25QcmVmZXJlbmNlLmNwcAorSlNSVENEdHhTdGF0
dXMuY3BwCitKU1JUQ0ljZUNhbmRpZGF0ZS5jcHAKK0pTUlRDSWNlQ2FuZGlkYXRlSW5pdC5jcHAK
K0pTUlRDSWNlQ2FuZGlkYXRlVHlwZS5jcHAKK0pTUlRDSWNlQ29tcG9uZW50LmNwcAorSlNSVENJ
Y2VDb25uZWN0aW9uU3RhdGUuY3BwCitKU1JUQ0ljZUdhdGhlcmluZ1N0YXRlLmNwcAorSlNSVENJ
Y2VQcm90b2NvbC5jcHAKK0pTUlRDSWNlU2VydmVyLmNwcAorSlNSVENJY2VUY3BDYW5kaWRhdGVU
eXBlLmNwcAorSlNSVENJY2VUcmFuc3BvcnQuY3BwCitKU1JUQ0ljZVRyYW5zcG9ydFN0YXRlLmNw
cAorSlNSVENPZmZlckFuc3dlck9wdGlvbnMuY3BwCitKU1JUQ09mZmVyT3B0aW9ucy5jcHAKK0pT
UlRDUGVlckNvbm5lY3Rpb24uY3BwCitKU1JUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQuY3BwCitK
U1JUQ1BlZXJDb25uZWN0aW9uU3RhdGUuY3BwCitKU1JUQ1ByaW9yaXR5VHlwZS5jcHAKK0pTUlRD
UnRwQ2FwYWJpbGl0aWVzLmNwcAorSlNSVENSdHBDb2RlY0NhcGFiaWxpdHkuY3BwCitKU1JUQ1J0
cENvZGVjUGFyYW1ldGVycy5jcHAKK0pTUlRDUnRwQ29udHJpYnV0aW5nU291cmNlLmNwcAorSlNS
VENSdHBFbmNvZGluZ1BhcmFtZXRlcnMuY3BwCitKU1JUQ1J0cEZlY1BhcmFtZXRlcnMuY3BwCitK
U1JUQ1J0cEhlYWRlckV4dGVuc2lvblBhcmFtZXRlcnMuY3BwCitKU1JUQ1J0cFBhcmFtZXRlcnMu
Y3BwCitKU1JUQ1J0cFJlY2VpdmVyLmNwcAorSlNSVENSdHBSdHhQYXJhbWV0ZXJzLmNwcAorSlNS
VENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCitKU1JUQ1J0cFNlbmRQYXJhbWV0ZXJzLmNwcAorSlNS
VENSdHBTZW5kZXIuY3BwCitKU1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS5jcHAKK0pTUlRD
UnRwVHJhbnNjZWl2ZXIuY3BwCitKU1JUQ1J0cFRyYW5zY2VpdmVyRGlyZWN0aW9uLmNwcAorSlNS
VENSdHBUcmFuc2Zvcm0uY3BwCitKU1JUQ1NkcFR5cGUuY3BwCitKU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbi5jcHAKK0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdC5jcHAKK0pTUlRDU2lnbmFsaW5n
U3RhdGUuY3BwCitKU1JUQ1N0YXRzUmVwb3J0LmNwcAorSlNSVENUcmFja0V2ZW50LmNwcAorSlNS
YWRpb05vZGVMaXN0LmNwcAorSlNSYW5nZS5jcHAKK0pTUmVhZGFibGVCeXRlU3RyZWFtQ29udHJv
bGxlci5jcHAKK0pTUmVhZGFibGVTdHJlYW0uY3BwCitKU1JlYWRhYmxlU3RyZWFtQllPQlJlYWRl
ci5jcHAKK0pTUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5jcHAKK0pTUmVhZGFibGVTdHJlYW1E
ZWZhdWx0Q29udHJvbGxlci5jcHAKK0pTUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyLmNwcAor
SlNSZWFkYWJsZVN0cmVhbVNpbmsuY3BwCitKU1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcAorSlNS
ZW1vdGVET01XaW5kb3cuY3BwCitKU1JlbW90ZVBsYXliYWNrLmNwcAorSlNSZW1vdGVQbGF5YmFj
a0F2YWlsYWJpbGl0eUNhbGxiYWNrLmNwcAorSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ay5jcHAKK0pTUmVzaXplT2JzZXJ2ZXIuY3BwCitKU1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2suY3Bw
CitKU1Jlc2l6ZU9ic2VydmVyRW50cnkuY3BwCitKU1JzYUhhc2hlZEltcG9ydFBhcmFtcy5jcHAK
K0pTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmNwcAorSlNSc2FLZXlHZW5QYXJhbXMuY3BwCitKU1Jz
YU9hZXBQYXJhbXMuY3BwCitKU1JzYU90aGVyUHJpbWVzSW5mby5jcHAKK0pTUnNhUHNzUGFyYW1z
LmNwcAorSlNTUUxFcnJvci5jcHAKK0pTU1FMUmVzdWx0U2V0LmNwcAorSlNTUUxSZXN1bHRTZXRS
b3dMaXN0LmNwcAorSlNTUUxTdGF0ZW1lbnRDYWxsYmFjay5jcHAKK0pTU1FMU3RhdGVtZW50RXJy
b3JDYWxsYmFjay5jcHAKK0pTU1FMVHJhbnNhY3Rpb24uY3BwCitKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suY3BwCitKU1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAKK0pTU1ZHQUVsZW1l
bnQuY3BwCitKU1NWR0FsdEdseXBoRGVmRWxlbWVudC5jcHAKK0pTU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcAorSlNTVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmNwcAorSlNTVkdBbmdsZS5jcHAKK0pTU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAKK0pTU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCitKU1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcAorSlNTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAK
K0pTU1ZHQW5pbWF0ZWRBbmdsZS5jcHAKK0pTU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcAorSlNTVkdB
bmltYXRlZEVudW1lcmF0aW9uLmNwcAorSlNTVkdBbmltYXRlZEludGVnZXIuY3BwCitKU1NWR0Fu
aW1hdGVkTGVuZ3RoLmNwcAorSlNTVkdBbmltYXRlZExlbmd0aExpc3QuY3BwCitKU1NWR0FuaW1h
dGVkTnVtYmVyLmNwcAorSlNTVkdBbmltYXRlZE51bWJlckxpc3QuY3BwCitKU1NWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5jcHAKK0pTU1ZHQW5pbWF0ZWRSZWN0LmNwcAorSlNTVkdBbmlt
YXRlZFN0cmluZy5jcHAKK0pTU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcAorSlNTVkdBbmlt
YXRpb25FbGVtZW50LmNwcAorSlNTVkdDaXJjbGVFbGVtZW50LmNwcAorSlNTVkdDbGlwUGF0aEVs
ZW1lbnQuY3BwCitKU1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAorSlNT
VkdDdXJzb3JFbGVtZW50LmNwcAorSlNTVkdEZWZzRWxlbWVudC5jcHAKK0pTU1ZHRGVzY0VsZW1l
bnQuY3BwCitKU1NWR0VsZW1lbnQuY3BwCitKU1NWR0VsbGlwc2VFbGVtZW50LmNwcAorSlNTVkdG
RUJsZW5kRWxlbWVudC5jcHAKK0pTU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCitKU1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAorSlNTVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3Bw
CitKU1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorSlNTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuY3BwCitKU1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKK0pTU1ZHRkVE
aXN0YW50TGlnaHRFbGVtZW50LmNwcAorSlNTVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAorSlNT
VkdGRUZsb29kRWxlbWVudC5jcHAKK0pTU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCitKU1NWR0ZFRnVu
Y0JFbGVtZW50LmNwcAorSlNTVkdGRUZ1bmNHRWxlbWVudC5jcHAKK0pTU1ZHRkVGdW5jUkVsZW1l
bnQuY3BwCitKU1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKK0pTU1ZHRkVJbWFnZUVsZW1l
bnQuY3BwCitKU1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAorSlNTVkdGRU1lcmdlTm9kZUVsZW1lbnQu
Y3BwCitKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCitKU1NWR0ZFT2Zmc2V0RWxlbWVudC5j
cHAKK0pTU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAKK0pTU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5jcHAKK0pTU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcAorSlNTVkdGRVRpbGVFbGVt
ZW50LmNwcAorSlNTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAorSlNTVkdGaWx0ZXJFbGVtZW50
LmNwcAorSlNTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCitKU1NWR0Zp
dFRvVmlld0JveC5jcHAKK0pTU1ZHRm9udEVsZW1lbnQuY3BwCitKU1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKK0pTU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcAorSlNTVkdGb250RmFjZU5hbWVF
bGVtZW50LmNwcAorSlNTVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwCitKU1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5jcHAKK0pTU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCitKU1NWR0dFbGVtZW50
LmNwcAorSlNTVkdHZW9tZXRyeUVsZW1lbnQuY3BwCitKU1NWR0dseXBoRWxlbWVudC5jcHAKK0pT
U1ZHR2x5cGhSZWZFbGVtZW50LmNwcAorSlNTVkdHcmFkaWVudEVsZW1lbnQuY3BwCitKU1NWR0dy
YXBoaWNzRWxlbWVudC5jcHAKK0pTU1ZHSEtlcm5FbGVtZW50LmNwcAorSlNTVkdJbWFnZUVsZW1l
bnQuY3BwCitKU1NWR0xlbmd0aC5jcHAKK0pTU1ZHTGVuZ3RoTGlzdC5jcHAKK0pTU1ZHTGluZUVs
ZW1lbnQuY3BwCitKU1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKK0pTU1ZHTVBhdGhFbGVt
ZW50LmNwcAorSlNTVkdNYXJrZXJFbGVtZW50LmNwcAorSlNTVkdNYXNrRWxlbWVudC5jcHAKK0pT
U1ZHTWF0cml4LmNwcAorSlNTVkdNZXRhZGF0YUVsZW1lbnQuY3BwCitKU1NWR01pc3NpbmdHbHlw
aEVsZW1lbnQuY3BwCitKU1NWR051bWJlci5jcHAKK0pTU1ZHTnVtYmVyTGlzdC5jcHAKK0pTU1ZH
UGF0aEVsZW1lbnQuY3BwCitKU1NWR1BhdGhTZWcuY3BwCitKU1NWR1BhdGhTZWdBcmNBYnMuY3Bw
CitKU1NWR1BhdGhTZWdBcmNSZWwuY3BwCitKU1NWR1BhdGhTZWdDbG9zZVBhdGguY3BwCitKU1NW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuY3BwCitKU1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwu
Y3BwCitKU1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwCitKU1NWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuY3BwCitKU1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJz
LmNwcAorSlNTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5jcHAKK0pTU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwCitKU1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoUmVsLmNwcAorSlNTVkdQYXRoU2VnTGluZXRvQWJzLmNwcAorSlNTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbEFicy5jcHAKK0pTU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3Bw
CitKU1NWR1BhdGhTZWdMaW5ldG9SZWwuY3BwCitKU1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFi
cy5jcHAKK0pTU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNwcAorSlNTVkdQYXRoU2VnTGlz
dC5jcHAKK0pTU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAKK0pTU1ZHUGF0aFNlZ01vdmV0b1JlbC5j
cHAKK0pTU1ZHUGF0dGVybkVsZW1lbnQuY3BwCitKU1NWR1BvaW50LmNwcAorSlNTVkdQb2ludExp
c3QuY3BwCitKU1NWR1BvbHlnb25FbGVtZW50LmNwcAorSlNTVkdQb2x5bGluZUVsZW1lbnQuY3Bw
CitKU1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uY3BwCitKU1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5jcHAKK0pTU1ZHUmVjdC5jcHAKK0pTU1ZHUmVjdEVsZW1lbnQuY3BwCitKU1NWR1JlbmRlcmlu
Z0ludGVudC5jcHAKK0pTU1ZHU1ZHRWxlbWVudC5jcHAKK0pTU1ZHU2NyaXB0RWxlbWVudC5jcHAK
K0pTU1ZHU2V0RWxlbWVudC5jcHAKK0pTU1ZHU3RvcEVsZW1lbnQuY3BwCitKU1NWR1N0cmluZ0xp
c3QuY3BwCitKU1NWR1N0eWxlRWxlbWVudC5jcHAKK0pTU1ZHU3dpdGNoRWxlbWVudC5jcHAKK0pT
U1ZHU3ltYm9sRWxlbWVudC5jcHAKK0pTU1ZHVFJlZkVsZW1lbnQuY3BwCitKU1NWR1RTcGFuRWxl
bWVudC5jcHAKK0pTU1ZHVGVzdHMuY3BwCitKU1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKK0pT
U1ZHVGV4dEVsZW1lbnQuY3BwCitKU1NWR1RleHRQYXRoRWxlbWVudC5jcHAKK0pTU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5jcHAKK0pTU1ZHVGl0bGVFbGVtZW50LmNwcAorSlNTVkdUcmFuc2Zv
cm0uY3BwCitKU1NWR1RyYW5zZm9ybUxpc3QuY3BwCitKU1NWR1VSSVJlZmVyZW5jZS5jcHAKK0pT
U1ZHVW5pdFR5cGVzLmNwcAorSlNTVkdVc2VFbGVtZW50LmNwcAorSlNTVkdWS2VybkVsZW1lbnQu
Y3BwCitKU1NWR1ZpZXdFbGVtZW50LmNwcAorSlNTVkdWaWV3U3BlYy5jcHAKK0pTU1ZHWm9vbUFu
ZFBhbi5jcHAKK0pTU1ZHWm9vbUV2ZW50LmNwcAorSlNTY3JlZW4uY3BwCitKU1NjcmlwdFByb2Nl
c3Nvck5vZGUuY3BwCitKU1Njcm9sbEJlaGF2aW9yLmNwcAorSlNTY3JvbGxJbnRvVmlld09wdGlv
bnMuY3BwCitKU1Njcm9sbExvZ2ljYWxQb3NpdGlvbi5jcHAKK0pTU2Nyb2xsT3B0aW9ucy5jcHAK
K0pTU2Nyb2xsVG9PcHRpb25zLmNwcAorSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNw
cAorSlNTZXJ2aWNlV29ya2VyLmNwcAorSlNTZXJ2aWNlV29ya2VyQ2xpZW50LmNwcAorSlNTZXJ2
aWNlV29ya2VyQ2xpZW50VHlwZS5jcHAKK0pTU2VydmljZVdvcmtlckNsaWVudHMuY3BwCitKU1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCitKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAK
K0pTU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKK0pTU2VydmljZVdvcmtlclVwZGF0ZVZp
YUNhY2hlLmNwcAorSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorSlNTaGFkb3dSb290
LmNwcAorSlNTaGFkb3dSb290TW9kZS5jcHAKK0pTU2hhcmVEYXRhLmNwcAorSlNTbG90YWJsZS5j
cHAKK0pTU291cmNlQnVmZmVyLmNwcAorSlNTb3VyY2VCdWZmZXJMaXN0LmNwcAorSlNTcGVlY2hS
ZWNvZ25pdGlvbi5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5jcHAKK0pTU3Bl
ZWNoUmVjb2duaXRpb25FcnJvckNvZGUuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uRXJyb3JFdmVu
dC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25FdmVudC5jcHAKK0pTU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHQuY3BwCitKU1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKK0pTU3BlZWNoU3lu
dGhlc2lzLmNwcAorSlNTcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKK0pTU3BlZWNoU3ludGhlc2lz
VXR0ZXJhbmNlLmNwcAorSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAKK0pTU3RlcmVvUGFubmVy
Tm9kZS5jcHAKK0pTU3RlcmVvUGFubmVyT3B0aW9ucy5jcHAKK0pTU3RhdGljUmFuZ2UuY3BwCitK
U1N0b3JhZ2UuY3BwCitKU1N0b3JhZ2VFcnJvckNhbGxiYWNrLmNwcAorSlNTdG9yYWdlRXZlbnQu
Y3BwCitKU1N0b3JhZ2VJbmZvLmNwcAorSlNTdG9yYWdlUXVvdGEuY3BwCitKU1N0b3JhZ2VRdW90
YUNhbGxiYWNrLmNwcAorSlNTdG9yYWdlVXNhZ2VDYWxsYmFjay5jcHAKK0pTU3RyaW5nQ2FsbGJh
Y2suY3BwCitKU1N0eWxlTWVkaWEuY3BwCitKU1N0eWxlUHJvcGVydHlNYXAuY3BwCitKU1N0eWxl
UHJvcGVydHlNYXBSZWFkT25seS5jcHAKK0pTU3R5bGVTaGVldC5jcHAKK0pTU3R5bGVTaGVldExp
c3QuY3BwCitKU1N1YnRsZUNyeXB0by5jcHAKK0pTVGV4dC5jcHAKK0pTVGV4dERlY29kZXIuY3Bw
CitKU1RleHREZWNvZGVyU3RyZWFtLmNwcAorSlNUZXh0RGVjb2RlclN0cmVhbURlY29kZXIuY3Bw
CitKU1RleHRFbmNvZGVyLmNwcAorSlNUZXh0RW5jb2RlclN0cmVhbS5jcHAKK0pTVGV4dEVuY29k
ZXJTdHJlYW1FbmNvZGVyLmNwcAorSlNUZXh0RXZlbnQuY3BwCitKU1RleHRNZXRyaWNzLmNwcAor
SlNUZXh0VHJhY2suY3BwCitKU1RleHRUcmFja0N1ZS5jcHAKK0pTVGV4dFRyYWNrQ3VlR2VuZXJp
Yy5jcHAKK0pTVGV4dFRyYWNrQ3VlTGlzdC5jcHAKK0pTVGV4dFRyYWNrTGlzdC5jcHAKK0pTVGlt
ZVJhbmdlcy5jcHAKK0pTVHJhY2tFdmVudC5jcHAKK0pTVHJhbnNmZXJGdW5jdGlvbi5jcHAKK0pT
VHJhbnNmb3JtU3RyZWFtLmNwcAorSlNUcmFuc2Zvcm1TdHJlYW1EZWZhdWx0Q29udHJvbGxlci5j
cHAKK0pTVHJhbnNpdGlvbkV2ZW50LmNwcAorSlNUcmVlV2Fsa2VyLmNwcAorSlNUeXBlZE9NQ1NT
SW1hZ2VWYWx1ZS5jcHAKK0pTVHlwZWRPTUNTU051bWVyaWNWYWx1ZS5jcHAKK0pTVHlwZWRPTUNT
U1N0eWxlVmFsdWUuY3BwCitKU1R5cGVkT01DU1NVbml0VmFsdWUuY3BwCitKU1R5cGVkT01DU1NV
bnBhcnNlZFZhbHVlLmNwcAorSlNVSUV2ZW50LmNwcAorSlNVSUV2ZW50SW5pdC5jcHAKK0pTVVJM
U2VhcmNoUGFyYW1zLmNwcAorSlNVbmRvSXRlbS5jcHAKK0pTVW5kb01hbmFnZXIuY3BwCitKU1Vz
ZXJNZXNzYWdlSGFuZGxlci5jcHAKK0pTVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5jcHAK
K0pTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmNwcAorSlNWVFRDdWUuY3BwCitKU1ZUVFJl
Z2lvbi5jcHAKK0pTVlRUUmVnaW9uTGlzdC5jcHAKK0pTVmFsaWRpdHlTdGF0ZS5jcHAKK0pTVmlk
ZW9Db25maWd1cmF0aW9uLmNwcAorSlNWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAKK0pTVmlkZW9U
cmFjay5jcHAKK0pTVmlkZW9UcmFja0xpc3QuY3BwCitKU1Zpc2liaWxpdHlTdGF0ZS5jcHAKK0pT
VmlzdWFsVmlld3BvcnQuY3BwCitKU1ZvaWRDYWxsYmFjay5jcHAKK0pTV2F2ZVNoYXBlck5vZGUu
Y3BwCitKU1dhdmVTaGFwZXJPcHRpb25zLmNwcAorSlNXZWJBbmltYXRpb24uY3BwCitKU1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuY3BwCitKU1dlYkdMQWN0aXZlSW5mby5jcHAKK0pTV2ViR0xCdWZm
ZXIuY3BwCitKU1dlYkdMQ29sb3JCdWZmZXJGbG9hdC5jcHAKK0pTV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFTVEMuY3BwCitKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCitKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVFVEMuY3BwCitKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVFVEMxLmNwcAor
SlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwCitKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmNwcAorSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ3NSR0IuY3BwCitKU1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwCitKU1dlYkdMQ29udGV4dEV2ZW50LmNwcAorSlNXZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmNwcAorSlNXZWJHTERlYnVnU2hhZGVycy5jcHAKK0pTV2ViR0xEZXB0
aFRleHR1cmUuY3BwCitKU1dlYkdMRHJhd0J1ZmZlcnMuY3BwCitKU1dlYkdMRnJhbWVidWZmZXIu
Y3BwCitKU1dlYkdMTG9zZUNvbnRleHQuY3BwCitKU1dlYkdMUHJvZ3JhbS5jcHAKK0pTV2ViR0xR
dWVyeS5jcHAKK0pTV2ViR0xSZW5kZXJidWZmZXIuY3BwCitKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5jcHAKK0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKK0pTV2ViR0xTYW1wbGVyLmNw
cAorSlNXZWJHTFNoYWRlci5jcHAKK0pTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwCitK
U1dlYkdMU3luYy5jcHAKK0pTV2ViR0xUZXh0dXJlLmNwcAorSlNXZWJHTFRyYW5zZm9ybUZlZWRi
YWNrLmNwcAorSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAKK0pTV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdC5jcHAKK0pTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKK0pTV2ViR1BVLmNwcAor
SlNXZWJHUFVBZGFwdGVyLmNwcAorSlNXZWJHUFVCaW5kR3JvdXAuY3BwCitKU1dlYkdQVUJpbmRH
cm91cEJpbmRpbmcuY3BwCitKU1dlYkdQVUJpbmRHcm91cERlc2NyaXB0b3IuY3BwCitKU1dlYkdQ
VUJpbmRHcm91cExheW91dC5jcHAKK0pTV2ViR1BVQnVmZmVyLmNwcAorSlNXZWJHUFVCdWZmZXJC
aW5kaW5nLmNwcAorSlNXZWJHUFVDb21tYW5kQnVmZmVyLmNwcAorSlNXZWJHUFVDb21tYW5kRW5j
b2Rlci5jcHAKK0pTV2ViR1BVQ29tcHV0ZVBhc3NFbmNvZGVyLmNwcAorSlNXZWJHUFVDb21wdXRl
UGlwZWxpbmUuY3BwCitKU1dlYkdQVUNvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IuY3BwCitKU1dl
YkdQVURldmljZS5jcHAKK0pTV2ViR1BVRGV2aWNlRXJyb3JTY29wZXMuY3BwCitKU1dlYkdQVURl
dmljZUV2ZW50SGFuZGxlci5jcHAKK0pTV2ViR1BVUGlwZWxpbmVEZXNjcmlwdG9yQmFzZS5jcHAK
K0pTV2ViR1BVUGlwZWxpbmVMYXlvdXQuY3BwCitKU1dlYkdQVVBpcGVsaW5lTGF5b3V0RGVzY3Jp
cHRvci5jcHAKK0pTV2ViR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXIuY3BwCitKU1dlYkdQVVBy
b2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvci5jcHAKK0pTV2ViR1BVUXVldWUuY3BwCitKU1dlYkdQ
VVJlbmRlclBhc3NEZXNjcmlwdG9yLmNwcAorSlNXZWJHUFVSZW5kZXJQYXNzRW5jb2Rlci5jcHAK
K0pTV2ViR1BVUmVuZGVyUGlwZWxpbmUuY3BwCitKU1dlYkdQVVJlbmRlclBpcGVsaW5lRGVzY3Jp
cHRvci5jcHAKK0pTV2ViR1BVU2FtcGxlci5jcHAKK0pTV2ViR1BVU2hhZGVyTW9kdWxlLmNwcAor
SlNXZWJHUFVTaGFkZXJNb2R1bGVEZXNjcmlwdG9yLmNwcAorSlNXZWJHUFVTd2FwQ2hhaW4uY3Bw
CitKU1dlYkdQVVRleHR1cmUuY3BwCitKU1dlYkdQVVRleHR1cmVWaWV3LmNwcAorSlNXZWJLaXRB
bmltYXRpb25FdmVudC5jcHAKK0pTV2ViS2l0QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorSlNX
ZWJLaXRBdWRpb0NvbnRleHQuY3BwCitKU1dlYktpdEF1ZGlvTGlzdGVuZXIuY3BwCitKU1dlYktp
dEF1ZGlvUGFubmVyTm9kZS5jcHAKK0pTV2ViS2l0RHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAK
K0pTV2ViS2l0TWVkaWFLZXlFcnJvci5jcHAKK0pTV2ViS2l0TWVkaWFLZXlNZXNzYWdlRXZlbnQu
Y3BwCitKU1dlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwCitKU1dlYktpdE1lZGlhS2V5U2Vz
c2lvbi5jcHAKK0pTV2ViS2l0TWVkaWFLZXlzLmNwcAorSlNXZWJLaXROYW1lc3BhY2UuY3BwCitK
U1dlYktpdE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwCitKU1dlYktpdE9zY2lsbGF0b3JOb2RlLmNw
cAorSlNXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmNwcAorSlNXZWJLaXRQ
b2ludC5jcHAKK0pTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcAorSlNXZWJTb2NrZXQuY3BwCitK
U1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorSlNXZWJYUkZyYW1lLmNwcAorSlNXZWJY
UklucHV0U291cmNlLmNwcAorSlNXZWJYUklucHV0U291cmNlQXJyYXkuY3BwCitKU1dlYlhSTGF5
ZXIuY3BwCitKU1dlYlhSUG9zZS5jcHAKK0pTV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAKK0pTV2Vi
WFJSZW5kZXJTdGF0ZS5jcHAKK0pTV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAKK0pTV2ViWFJTZXNz
aW9uLmNwcAorSlNXZWJYUlNwYWNlLmNwcAorSlNXZWJYUlN5c3RlbS5jcHAKK0pTV2ViWFJWaWV3
LmNwcAorSlNXZWJYUlZpZXdlclBvc2UuY3BwCitKU1dlYlhSVmlld3BvcnQuY3BwCitKU1dlYlhS
V2ViR0xMYXllci5jcHAKK0pTV2hlZWxFdmVudC5jcHAKK0pTV2luZG93RXZlbnRIYW5kbGVycy5j
cHAKK0pTV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZS5jcHAKK0pTV29ya2VyLmNwcAorSlNXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKK0pTV29ya2VyTG9jYXRpb24uY3BwCitKU1dvcmtlck5hdmlnYXRv
ci5jcHAKK0pTV29ya2VyVHlwZS5jcHAKK0pTV29ya2xldC5jcHAKK0pTV29ya2xldEdsb2JhbFNj
b3BlLmNwcAorSlNXb3JrbGV0T3B0aW9ucy5jcHAKK0pTV3JpdGFibGVTdHJlYW0uY3BwCitKU1dy
aXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuY3BwCitKU1dyaXRhYmxlU3RyZWFtRGVmYXVs
dFdyaXRlci5jcHAKK0pTWE1MRG9jdW1lbnQuY3BwCitKU1hNTEh0dHBSZXF1ZXN0LmNwcAorSlNY
TUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmNwcAorSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuY3BwCitKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcAorSlNYTUxTZXJpYWxpemVyLmNwcAor
SlNYUGF0aEV2YWx1YXRvci5jcHAKK0pTWFBhdGhFeHByZXNzaW9uLmNwcAorSlNYUGF0aE5TUmVz
b2x2ZXIuY3BwCitKU1hQYXRoUmVzdWx0LmNwcAorSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNw
cAorSlNYUkV5ZS5jcHAKK0pTWFJGcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKK0pTWFJIYW5kZWRu
ZXNzLmNwcAorSlNYUklucHV0U291cmNlRXZlbnQuY3BwCitKU1hSSW5wdXRTb3VyY2VzQ2hhbmdl
RXZlbnQuY3BwCitKU1hSSW50ZXJhY3Rpb25Nb2RlLmNwcAorSlNYUlJlZmVyZW5jZVNwYWNlRXZl
bnQuY3BwCitKU1hSUmVmZXJlbmNlU3BhY2VUeXBlLmNwcAorSlNYUlJlbmRlclN0YXRlSW5pdC5j
cHAKK0pTWFJTZXNzaW9uRXZlbnQuY3BwCitKU1hSU2Vzc2lvbkluaXQuY3BwCitKU1hSU2Vzc2lv
bk1vZGUuY3BwCitKU1hSVGFyZ2V0UmF5TW9kZS5jcHAKK0pTWFJWaXNpYmlsaXR5U3RhdGUuY3Bw
CitKU1hSV2ViR0xMYXllckluaXQuY3BwCitKU1hTTFRQcm9jZXNzb3IuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4YmEzY2IyYTQ0OTMxNTQ2YjU5YTYw
Li4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4NjA2MTExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0Zm9ybS9jb2NvYS9GaWxlTW9uaXRv
ckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCiBwbGF0Zm9ybS9jb2Nv
YS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL01JTUVUeXBlUmVnaXN0
cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9j
b2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2EvUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRD
b2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc1YTUyMmMyYWJlYjBkMTZkNWM2ODg2YzcxNzA2NTcyNDkyMGM5NGUuLmU3
ZTViOTI4NDFjOTM5YTU3NjBmNGFiMzQ3NGU3MzExNDQwMzcxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMCw4ICsxMjAs
OCBAQAogCQkwNzM3OTRGRTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RjgxOUY1
ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLzsgfTsKIAkJMDczOEU1RUMyNDk5
ODM5MDAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM4RTVF
QTI0OTk2OEFEMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBp
Y2tlci5tbSAqLzsgfTsKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEwOEYyIC8qIFJlbW90ZVZpZGVv
U2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwNzNCODc2NzFFNDM4NUFD
MDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVk
aW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IH07Ci0JCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAv
KiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURh
dGFTb3VyY2UuaCAqLzsgfTsKKwkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3M0I4
NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcx
QzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzRFODJCQjE4QTY5RjBFMDA3RUY1NEMgLyogUGxh
dGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1MDMz
QTgyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1MDMzQTYyNTJCRDM2
ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3
ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJh
Y2suaCAqLzsgfTsKQEAgLTI3ODcsNiArMjc4Nyw4IEBACiAJCTkzOTNFNjAwMTUxQTk5RjIwMDA2
NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQg
LyogRXZlbnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFRDBFQTJE
QkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9OworCQk5MzlDMEQyNzI1NjRFNDdG
MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUMwRDI5MjU2NEU3RjIw
MEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODI4MjU0OTU1MDYwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Q
cm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyQTI1
NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxRjI1NDk1NEU2MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4NDgsNiArMjg1MCw5IEBACiAJCTkzRjFENUJC
MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyog
V2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyog
SlNXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0
LmggKi87IH07CiAJCTkzRjJDQzkzMjQyN0ZCOUMwMDU4NTFEOCAvKiBDaGFyYWN0ZXJSYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMkNDOTEy
NDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MUYyNTY3QTA4QzAwQTA4NDg4IC8q
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MjEyNTY3QTBEODAwQTA4NDg4IC8q
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4
OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MjIyNTY3QTY1
NjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MUIyNTY3OUY2RjAwQTA4
NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjZGMUVFMTI3RjcwQjEwMDU1Q0Iw
NiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGNkYxRUIxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmggKi87IH07CiAJCTkzRjkyNTQzMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRpb0J1dHRvbkdy
b3Vwcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNG
OTI1NDEwRjdFRjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGOUI2RTEwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oICovOyB9
OwpAQCAtMTE0MjksNiArMTE0MzQsMTAgQEAKIAkJOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRo
SXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lkdGhJ
dGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUIwMkVEMEVBMkRC
QzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVXRpbGl0aWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlh
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVXRpbGl0
aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFCMjU0OTU0RTQwMDBB
QzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTUxNSw2ICsxMTUyNCwxMSBA
QAogCQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xMb3NlQ29udGV4dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjFENUJGMTJENTMzNTYwMDgzMkJF
QyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJHTExvc2VDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
RjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJSYW5nZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDaGFyYWN0ZXJSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZC
ODFEMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
M0Y2QjgxRTI1Njc5RjcxMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZC
ODIwMjU2N0EwQ0MwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNGNkYxRUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUIxMjdGNzBCMTAwNTVDQjA2IC8q
IFdlYkdMQ29udGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkdMQ29udGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjZGMUVD
MTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjM1NzIsNiArMjM1ODYsMTMgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2Nv
YSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkpOworCQkJ
cGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTQ2RDM3
MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0yNDQwOSw2ICsyNDQzMCw4IEBACiAJCQkJQTVDOTc0RDAxMTQ4
NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVF
OTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTFBNDgz
MkIyMUE5NTNCQTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gKi8sCisJCQkJ
OTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmNwcCAqLywKKwkJCQk5
MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLywKIAkJCQlDNTNE
MzkzMzFDOTc4OTJEMDA3RjNBRTkgLyogTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tICovLAogCQkJ
CUExOUQ5MzQ5MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
ci5oICovLAogCQkJCUExOUQ5MzQ4MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5tbSAqLywKQEAgLTI1NjAxLDYgKzI1NjI0LDcgQEAKIAkJQUEyQTVBQjcx
NkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAog
CQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lz
LmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2lu
ZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCkBAIC0yNTYxMCw2ICsyNTYzNCwxMSBAQAogCQkJCTkz
NDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNw
cCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0Y2QjgxRTI1Njc5RjcxMDBBMDg0
ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLywKKwkJCQk5M0Y2Qjgx
QjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8s
CisJCQkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Y2QjgxRDI1Njc5RjcwMDBBMDg0ODggLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8sCisJCQkJOTNGNkI4MUMy
NTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAq
LywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi8sCkBA
IC0yNTYzNCw2ICsyNTY2Myw4IEBACiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJOTNENkI3NkUyNTRCOEUxQjAw
NThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKIAkJCQk5M0Q2Qjc2RDI1
NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywKKwkJCQk5MzlD
MEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8sCisJCQkJOTM5
QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLywKIAkJCQlBQTJB
NUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJB
NUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVB
QkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zMzUxOSw2
ICszMzU1MCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tD
b25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2
IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAw
NDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTcxMzkwODFCRjY0
REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDEwLDYg
KzM0NDQyLDkgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmln
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODIxMjU2N0EwRDgwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5M0Y2QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNB
MDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMzQ0MjQsNiArMzQ0NTksNyBAQAogCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2
MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8q
IFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEw
MDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3
MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRp
YVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ4YjRmNTYzMzJkMDU5ZDlmYjE3NzU1NDMwYTFm
OGUwNTYyY2NjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRl
ICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0
LmgiCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW5jbHVkZSA8cGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNl
IFBBTDsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24p
Cit7CisgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRl
c2NyaXB0aW9uKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7
CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCAwLCBudWxscHRyLCBu
dWxscHRyLCAmZm9ybWF0KTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJj
cmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsK
K30KKworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZl
cihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7Cisg
ICAgLy8gRklYTUU6IGNoZWNrIGlmIHdlIGNhbiByZXVzZSB0aGUgZm9ybWF0IGZvciBtdWx0aXBs
ZSBzYW1wbGUgYnVmZmVycy4KKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVz
Y3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7
CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVz
Y3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBu
dWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxl
QnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJv
cik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBhdXRvIGJ1ZmZlciA9IGFk
b3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRh
QnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1
bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4o
ZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVh
dGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwg
ZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZl
cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2N2M2Njc4NWQ0N2QyNzAy
YjVjNjQ5ZWYyODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNVGltZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01G
b3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKK3R5cGVkZWYgc3RydWN0
IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1B
dWRpb0RhdGE7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRp
b0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKK1JldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxh
dGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01UaW1lLCBz
aXplX3Qgc2FtcGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggYWNi
NDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRkNzBmZDljYWFlMmRlY2Nj
YjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVP
cHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRl
ICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPEFWRm91bmRh
dGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBAIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBz
YW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVy
V2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01G
b3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIGJhc2ljRGVz
Y3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihk
ZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwotICAgIENNRm9y
bWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01B
dWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVz
Y3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQpOwotICAgIGlmIChlcnJv
cikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVy
biBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGlt
ZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBmb3JtYXQgPSBjcmVhdGVB
dWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBpZiAoIWZvcm1hdCkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRl
V2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwg
TlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgTlVMTCwgJnNhbXBs
ZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3JlYXRlQXVkaW9TYW1wbGVC
dWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNh
bXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZy
b21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxp
c3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlh
U3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRh
QnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZmZXI7Ci19Ci0KIHZvaWQg
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7
CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0
YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
Y3BwCmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRmOTczZjk5MTYuLmQ2OTA3
M2Y4NTkwN2JiYmMzNzJlZmZmNjUwODM4ZmRiMWQwNzcyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTQ2LDEyICs0
NiwxMSBAQCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIo
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMs
IGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRp
Zmllcik7Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVu
dGlmaWVyKSk7Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJ
ZGVudGlmaWVyKSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKTsKICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUobGFuZyksIGNvbnRpbnVv
dXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1vdmUob3JpZ2luKSB9Owot
ICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGNsaWVudElk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihX
VEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvJiBuZXdSZXF1
ZXN0ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0
b3ItPnZhbHVlOwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpwZW5kaW5nUmVx
dWVzdCk7CisgICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpuZXdSZXF1ZXN0KTsKIH0K
IAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTY0LDY2
ICs2Myw3MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lv
bkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVy
KCk7Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZShp
ZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShp
ZGVudGlmaWVyKTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFs
bG93ZWQsICJQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAgICAgICAgICAgc2VuZFVw
ZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBt
X29uZ29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0YWtlblJlcXVlc3QpKTsK
LSAgICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGlkZW50aWZpZXIp
KTsKKyAgICAgICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7
CisgICAgaWYgKCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyID0gbWFrZVVu
aXF1ZTxTcGVlY2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlz
KV0oYXV0byYgdXBkYXRlKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gdXBk
YXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGlmICghbV9yZXF1ZXN0cy5jb250
YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7CisgICAgICAgICAgICBpZiAodHlwZSA9
PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIHx8IHR5cGUgPT0gU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVu
dGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50
aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAo
bV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNl
bmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJy
ZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9y
ZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQo
bV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIHN0b3BS
ZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xpZW50SWRlbnRpZmllcikpOworICAgIGlm
IChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0
ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmICht
X3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgc2Vu
ZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1cnJl
bnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBtX3Jl
Y29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1f
b25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBhdXRvIHJl
cXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGFi
b3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVu
dGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpCisg
ICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElk
ZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRha2UoY2xp
ZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3QpCi0gICAgICAgIGFib3J0UmVxdWVzdCgq
cmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8v
IFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24uCi19Ci0KLXZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBh
dWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJlY29nbml6aW5nIGNhcHR1cmVkIGF1ZGlv
LgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydFJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0
b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlvbiBpbW1lZGlhdGVseSB3aXRob3V0IGdl
bmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRp
ZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1cnJl
bnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgICAgIG1f
cmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9y
PiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4+IHJlc3VsdCkKQEAgLTEzMyw3ICsxMzYsMTIgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGkKICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsICplcnJvcik7CiAgICAgaWYgKHR5cGUgPT0gV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQpCiAgICAgICAgIHVwZGF0
ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoY2xpZW50
SWRlbnRpZmllciwgKnJlc3VsdCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7
CisgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzZW5kVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1
cGRhdGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSkpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24qIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApp
bmRleCAzNjNjYTIwZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi5hN2Y3NmQzOGVl
NTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
emVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTU4LDEwICs1OSw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAg
ICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7
Ci0gICAgdm9pZCBzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qm
KTsKLSAgICB2b2lkIGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QmKTsKKyAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVXBkYXRlKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25FcnJvcj4gPSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBzZW5k
VXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CiAKICAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtNzIsOSArNzIsOSBAQCBw
cml2YXRlOgogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFzaE1h
cDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5k
aW5nUmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAg
ICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2du
aXplcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRmYjQ4ZTE1ZjU3NDU1
NTliYTZjMWFiZmNkMjM2NjE0NDAzNGZlZjQuLjk3NzUwN2Q5NWU0YWRiNjU2OTEzMjA5M2MzOGQ3
MjdlZjVkMDMyYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMS0yMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVy
ZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQt
cmVjb2duaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMS0xOSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCB3ZWItcGxhdGZvcm0tdGVz
dHMvdWlldmVudHMgdGVzdHMgZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDVj
ZjVhMDBjMDkyMTk5ZGNhNTMzOGRlODJjYjk5MThmYmJhMmVmMS4uYjQzMGEyYTJkZDZiMzRhNjk1
OGQ1MjRlZjFkZTNkMDg2YzJhYjQ4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzksNiArMTc5
LDggQEAgc3RvcmFnZS9pbmRleGVkZGIvSURCT2JqZWN0LWxlYWsuaHRtbCBbIFNraXAgXQogZmFz
dC9mb3Jtcy9jYWxsLXRleHQtZGlkLWNoYW5nZS1pbi10ZXh0LWZpZWxkLXdoZW4tdHlwaW5nLmh0
bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS8gWyBTa2lwIF0K
IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci5odG1sIFsgU2tpcCBdCitm
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sIFsg
U2tpcCBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5o
dG1sIFsgU2tpcCBdCiAKICMgT25seSBwYXJ0aWFsIHN1cHBvcnQgb24gQ29jb2EgcGxhdGZvcm1z
LgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpLyBbIFNraXAgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNv
Z25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAyYTc0NjFkYzdjYzAxNGRiNjJkNjVjNmIyMGI2YjBkYTI1NmVhNDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29n
bml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVmVyaWZ5IHRo
YXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3aGVuIHN0YXJ0IGFuZCBzdG9wIHJlY29n
bml0aW9uIG5vcm1hbGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBy
ZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1JlY2VpdmVkIHN0YXJ0IGV2ZW50CitSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50CitQQVNTIHJl
Y29nbml0aW9uLnN0b3AoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1JlY2VpdmVkIGF1ZGlv
ZW5kIGV2ZW50CitSZWNlaXZlZCBlbmQgZXZlbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3Au
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZDVkMmIwNzhjNmUyMTk0YzU5ZTc4OWQzNWE0Njc4YjE0ZGZjZWNm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9z
dGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBl
dmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3AgcmVjb2duaXRp
b24gbm9ybWFsbHkuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3Bl
ZWNoUmVjb2duaXRpb24oKTsiKTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZlbnQpID0+IHsK
KyAgICBkZWJ1ZygiUmVjZWl2ZWQgc3RhcnQgZXZlbnQiKTsKK30KKworcmVjb2duaXRpb24ub25h
dWRpb3N0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlvc3RhcnQg
ZXZlbnQiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdG9wKCkiKTsKK30K
KworcmVjb2duaXRpb24ub25hdWRpb2VuZCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNl
aXZlZCBhdWRpb2VuZCBldmVudCIpOworfQorCityZWNvZ25pdGlvbi5vbmVuZCA9IChldmVudCkg
PT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBlbmQgZXZlbnQiKTsKKworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1y
ZWNvZ25pdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIx
MGM5NGEyNGNjOTg1ZjBmNjI2MDUzZGQxMjQ0MzFiMzVjM2Q3ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBzdGFydGluZyBh
IHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9u
KCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbiA9IG5ldyBTcGVl
Y2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc2Vjb25kUmVj
b2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjZWl2ZWRT
dGFydCBpcyB0cnVlCitQQVNTIGV2ZW50LmVycm9yIGlzICJhYm9ydGVkIgorUEFTUyBldmVudC5t
ZXNzYWdlIGlzICJBbm90aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xMWU3NDNmZjNmNjA5MTBhMWQxNDQwZjE0NGQ2YmQ5NWExZmM3
MzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBz
dGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUuIik7CisKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworfQorCitz
aG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsK
K3JlY2VpdmVkU3RhcnQgPSBmYWxzZTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZlbnQpID0+
IHsKKyAgICByZWNlaXZlZFN0YXJ0ID0gdHJ1ZTsKK30KKworcmVjb2duaXRpb24ub25lcnJvciA9
IChldmVudCkgPT4geworICAgIHNob3VsZEJlVHJ1ZSgicmVjZWl2ZWRTdGFydCIpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuZXJyb3IiLCAiYWJvcnRlZCIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZXZlbnQubWVzc2FnZSIsICJBbm90aGVyIHJlcXVlc3QgaXMgc3Rh
cnRlZCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNv
Z25pdGlvbi5zdGFydCgpIik7CitzaG91bGROb3RUaHJvdygic2Vjb25kUmVjb2duaXRpb24gPSBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3Nob3VsZE5vdFRocm93KCJzZWNvbmRSZWNvZ25p
dGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggN2Q1MzRhMDZhMjJhM2IyOTdiNzU0M2Q0MWI4NjlmNTRlZjBiY2MyYi4uODEzMTIw
NjQwYjJhMDUyMmI4ZmQ2NjE2OTI4OTE1ZmFmM2Y2MTdlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgwNCw0ICs4MDQsNiBAQCBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC1wb3J0LWRlbGF5Lmh0bWwgWyBQYXNzIF0KICMgV2Vi
S2l0MiBvbmx5LgoganMvdGhyb3ctbGFyZ2Utc3RyaW5nLW9vbS5odG1sIFsgUGFzcyBdCiBmYXN0
L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRtbCBbIFBhc3MgXQorZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBbIFBhc3Mg
XQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBb
IFBhc3MgXQogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbnRlci13aGlsZS1leGl0aW5nLmh0bWwg
WyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414722</attachid>
            <date>2020-11-20 14:09:26 -0800</date>
            <delta_ts>2020-11-20 14:29:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120140925.patch</filename>
            <type>text/plain</type>
            <size>71106</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uYjAyY2Y3ZGRjZWI5MDhlMjAzMDlkMmM1ODk1NjEz
OWYzNGNjNTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOiBBZGRlZC4gSWYgY2FwdHVyZSBkZXZpY2Ug
aXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBwaWNrIAorICAgICAgICB0aGUgZGVmYXVsdCBvciBm
aXJzdCBlbmFibGVkIGlucHV0IGRldmljZSBmb3IgY2FwdHVyZS4KKyAgICAgICAgKFdlYkNvcmU6
Om5leHRMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxMb2dnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwgcHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpz
ZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6flNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKTogUHVzaCBkYXRhIHRvIGJ1ZmZlciwgc2lnbmFsIG1haW4gdGhyZWFkIHRvCisg
ICAgICAgIHB1bGwgZnJvbSBidWZmZXIgYW5kIGludm9rZSBkYXRhIGNhbGxiYWNrIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6c291cmNlU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjppbnZv
a2VTdGFydE9yRXJyb3JDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OnJlc2V0KTogQWJvcnQgb25nb2luZyByZXF1ZXN0IGlmIGFueSBhbmQg
c2VuZCBlcnJvciBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0
YXJ0KTogU3RhcnQgaGFuZGxpbmcgYSBuZXcgcmVxdWVzdCBhbmQgc2VuZCBzdGFydCBldmVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBDcmVh
dGUgYSBuZXcgc291cmNlIGFuZCBzZXQgY2FsbGJhY2tzIG9mIHRoZSBzb3VyY2UuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wKTogU3RvcCBvbmdvaW5nIHJlcXVlc3Qu
IFRoaXMgc2VuZHMgZW5kIGV2ZW50IHN5bmNocm9ub3VzbHkgbm93IGFzIHdlIGNhbiBzdG9wCisg
ICAgICAgIGNhcHR1cmluZyBhdWRpbyBpbW1lZGlhdGVseS4gQWZ0ZXIgd2UgaW1wbGVtZW50IHNw
ZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kLCB0aGlzIGNvdWxkIGJlIGFzeW5jaHJvbm91cy4gCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0
aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogTW92ZSBjb2RlIGZvciBjcmVhdGluZyBD
TVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBzbyBpdCBj
YW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYSwgYXMgU3Bl
ZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgCisgICAgICAgIHdpbGwgdGFrZSBDTVNhbXBsZUJ1ZmZl
clJlZiBhcyBpbnB1dC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZm
ZXIpOiBEZWxldGVkLgorCiAyMDIwLTExLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUoKSBzaG91bGQgcmVqZWN0IHByb21pc2Ug
d2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdvcmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJiNzc3N2M5YjMyLi44MTkyOGM0MmZkYjI3
NjdlNWFlYzE5ODgyMjQwZTU4OGNiNzZlNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDIwLTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlz
c2lvbkZvclJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFi
b3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oOgorCiAyMDIwLTExLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3VlIHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdl
YiBJbnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMDIzZTE1M2RhM2M2N2Rl
MTdhMjUyYmVmMWNhYjI2ODdkNDM5MzA2ZC4uN2Y1NjllNmJlNjY0MmZlMmFjMmZmZDUwNjRjMGFm
MjBjMmZlOGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTYsNiArMTE2LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVn
aW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
cmNlLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaAog
ICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oCiAg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllci5oCkBAIC0xMjQsNiArMTI1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8u
aAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCiAgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorICAgIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaAogCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3Ry
ZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ5N2JjYjA4NTRiYmNmMDk4
MDY0MTJkZGE0NzQwYTM3MGE2ZjJjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZShEYXRhQ2FsbGJhY2smJiBkYXRhQ2FsbGJhY2ssIFN0YXJ0T3JFcnJvckNhbGxiYWNr
JiYgc3RhcnRPckVycm9yQ2FsbGJhY2spCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+
KFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGFydE9yRXJyb3JDYWxsYmFjaykpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YUNhbGxiYWNrKTsKKyAgICBVTlVTRURfUEFSQU0o
dXBkYXRlQ2FsbGJhY2spOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk0YTMxNDkzODZiZWE1MWRmMzEx
ZDkxN2QzNjY0ZTg5MGFjMDY2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEs
NTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRp
YVRpbWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDsKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFz
cyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgflNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlv
bjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgU3RhcnRP
ckVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZSwgY29uc3QgU3RyaW5nJik+OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShE
YXRhQ2FsbGJhY2smJiwgU3RhcnRPckVycm9yQ2FsbGJhY2smJik7CisKK3ByaXZhdGU6CisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbD4gbV9pbXBsOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2E2OGFlYzdhM2I2ZjY2OGFjOTBlMmQ4YTY4ZjdmZjczMjljZDIwYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYyMjNkYjNlNTkz
YWY4ZjI3NWRiN2M4ZjA5NzQ4ODVhMTY0NTYxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwu
Y3BwCkBAIC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgor
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQ0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0Lmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECitzdGF0aWMgY29uc3Qgdm9pZCogbmV4dExvZ0lkZW50aWZpZXIoKQoreworICAgIHN0YXRp
YyB1aW50NjRfdCBsb2dJZGVudGlmaWVyID0gY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIo
KTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4oKytsb2dJZGVudGlm
aWVyKTsKK30KKworc3RhdGljIFJlZlB0cjxMb2dnZXI+JiBudWxsTG9nZ2VyKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPExvZ2dlcj4+IGxvZ2dlcjsKKyAgICByZXR1cm4g
bG9nZ2VyOworfQorI2VuZGlmCisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6
OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoRGF0YUNhbGxiYWNrJiYgZGF0YUNh
bGxiYWNrLCBTdGFydE9yRXJyb3JDYWxsYmFjayYmIHN0YXJ0T3JFcnJvckNhbGxiYWNrKQorICAg
IDogbV9pZGVudGlmaWVyKFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCkpCisgICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykp
CisgICAgLCBtX3N0YXJ0T3JFcnJvckNhbGxiYWNrKFdURk1vdmUoc3RhcnRPckVycm9yQ2FsbGJh
Y2spKQoreworICAgIE9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNl
cykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAKKyAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlKQorICAgICAgICAgICAgY2FwdHVy
ZURldmljZSA9IGRldmljZTsKKworICAgICAgICBpZiAoZGV2aWNlLmlzRGVmYXVsdCgpKSB7Cisg
ICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0gZGV2aWNlOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAg
ICAgICBpbnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVycm9yLCAiTm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc2V0U291cmNlKCpjYXB0dXJlRGV2aWNlKTsKKyAgICBh
dXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c2V0U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGNh
cHR1cmVEZXZpY2UpCit7CisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJl
U291cmNlKGNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAg
ICAgICBpbnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVycm9yLCByZXN1bHQuZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fc291cmNlID0gcmVzdWx0LnNvdXJjZSgpOworICAgIG1fc291cmNlLT5hZGRBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OworICAgIG1fc291cmNlLT5zdGFydCgpOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgaWYgKCFudWxsTG9nZ2VyKCkuZ2V0KCkpIHsKKyAgICAgICAgbnVsbExvZ2dlcigpID0gTG9n
Z2VyOjpjcmVhdGUodGhpcyk7CisgICAgICAgIG51bGxMb2dnZXIoKS0+c2V0RW5hYmxlZCh0aGlz
LCBmYWxzZSk7CisgICAgfQorCisgICAgbV9zb3VyY2UtPnNldExvZ2dlcigqbnVsbExvZ2dlcigp
LCBuZXh0TG9nSWRlbnRpZmllcigpKTsKKyNlbmRpZgorfQorCitTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpCit7
CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlLT5yZW1vdmVBdWRpb1NhbXBs
ZU9ic2VydmVyKCp0aGlzKTsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlz
KTsKKyAgICAgICAgbV9zb3VyY2UtPnN0b3AoKTsKKyAgICB9Cit9CisKK3ZvaWQgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7Cisg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBB
U1NFUlQoZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1E
ZXNjcmlwdGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7CisKKyAgICBhdXRvIGF1ZGlvRGVz
Y3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAg
aWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8
ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikgeworICAg
ICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNj
cmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCAqbV9zb3VyY2UpOworICAgICAgICBpZiAoZGF0YVNv
dXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGlu
dm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRp
b0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgaW52b2tlU3RhcnRPckVycm9yQ2FsbGJhY2so
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgIlVuYWJsZSB0byBzZXQgb3V0cHV0
IGZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KG1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygpKQorICAgICAgICAgICAgbV9kYXRhU291cmNlID0g
V1RGTW92ZShkYXRhU291cmNlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fZGF0YVNvdXJjZS0+cHVzaFNhbXBsZXModGltZSwgZGF0YSwgc2FtcGxl
Q291bnQpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIHRpbWUsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50XSB7CisgICAgICAg
IGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBkYXRh
ID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwgc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KHNhbXBsZUNvdW50KSB9OworICAgICAgICAKKyAgICAgICAgbV9kYXRhU291cmNlTG9j
ay5sb2NrKCk7CisgICAgICAgIG1fZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlzdCgp
LCBzYW1wbGVDb3VudCwgdGltZS50aW1lVmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291cmNl
OjpDb3B5KTsKKyAgICAgICAgbV9kYXRhU291cmNlTG9jay51bmxvY2soKTsKKworICAgICAgICBt
X2RhdGFDYWxsYmFjayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7
CisgICAgfSk7CisjZWxzZQorICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGRlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudCk7CisjZW5kaWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBpbnZva2VTdGFydE9yRXJy
b3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQo
KQoreworICAgIEFTU0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7CisgICAgaW52b2tl
U3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwg
IlNvdXJjZSBpcyBzdG9wcGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKK3sKKyAgICBpbnZva2VTdGFydE9yRXJy
b3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCAiU291cmNlIGlz
IG11dGVkIik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
aW52b2tlU3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgZXJyb3IpCit7CisgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7Cisg
ICAgICAgIG1fc3RhcnRPckVycm9yQ2FsbGJhY2sodHlwZSwgZXJyb3IpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgdHlwZSwgZXJyb3IgPSBlcnJvci5pc29sYXRlZENvcHkoKV0geworICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fc3Rh
cnRPckVycm9yQ2FsbGJhY2sodHlwZSwgZXJyb3IpOworICAgIH0pOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE3NGJjNDQyYzY0NDFhZTYyYWFjMzE4YzdlMmM1NDExN2IxMjk3NzMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJZGVudGlmaWVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJBdWRp
b1NhbXBsZURhdGFTb3VyY2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1l
ZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK2VudW0gY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsCisgICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAg
ICAsIHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEYXRhQ2FsbGJh
Y2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCk+OworICAgIHVzaW5n
IFN0YXJ0T3JFcnJvckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGUsIGNvbnN0IFN0cmluZyYpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsKERhdGFDYWxsYmFjayYmLCBTdGFydE9yRXJyb3JDYWxsYmFjayYmKTsKKyAgICB+
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCgpOworCitwcml2YXRlOgorICAgIHZv
aWQgc2V0U291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmKTsKKyAgICB2b2lkIGludm9rZVN0YXJ0
T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwgY29uc3QgU3RyaW5n
JiA9IG51bGxTdHJpbmcoKSk7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1Nh
bXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFU
aW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2Vy
dmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VTdG9w
cGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKKworICAg
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwor
ICAgIERhdGFDYWxsYmFjayBtX2RhdGFDYWxsYmFjazsKKyAgICBTdGFydE9yRXJyb3JDYWxsYmFj
ayBtX3N0YXJ0T3JFcnJvckNhbGxiYWNrOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBtX3NvdXJjZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJlZlB0cjxBdWRpb1NhbXBs
ZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBMb2NrIG1fZGF0YVNvdXJjZUxvY2s7Cisj
ZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzMxZWVlZGExMWNjNzk1OGY3YmYwNTY0NTI3YzdmYjIyNTg0MWFjYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
Y3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJNZWRpYVV0aWxp
dGllcy5oIgorI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFUaW1lQVZGb3VuZGF0aW9u
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pemVyOjpT
cGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKKyAgICA6IG1fZGVs
ZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpyZXNldCgpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRy
OworCisgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIiB9
OworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgcmVzZXQoKTsKKworICAgIG1fY2xpZW50SWRlbnRpZmllciA9
IGlkZW50aWZpZXI7CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpTdGFydCkpOworCisgICAgc3RhcnRJbnRlcm5hbChpZGVudGlmaWVyKTsKK30KKwordm9p
ZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydEludGVybmFsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGRhdGFDYWxsYmFj
ayA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBXVEY6Ok1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpIHsKKyAgICAgICAgaWYg
KCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgICAgICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2Ny
aXB0aW9uLCBQQUw6OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgICAgIFVOVVNF
RF9QQVJBTShidWZmZXIpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAg
ICAgICBVTlVTRURfUEFSQU0oZGF0YSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlv
bik7CisgICAgICAgIFVOVVNFRF9QQVJBTShzYW1wbGVDb3VudCk7CisjZW5kaWYKKyAgICB9Owor
CisgICAgYXV0byB1cGRhdGVTdGF0ZUNhbGxiYWNrID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIodGhpcyksIGlkZW50aWZpZXJdKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZpZXIg
JiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gaWRlbnRpZmllcik7CisgICAgICAgIGlm
ICh0eXBlICE9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpIHsKKyAgICAgICAg
ICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGlk
ZW50aWZpZXIsIHR5cGUpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgZXJyb3JNZXNzYWdlIH07CisgICAgICAgIG1fZGVs
ZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoaWRlbnRp
ZmllciwgZXJyb3IpKTsKKyAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOworICAgIH07CisKKyAg
ICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPihX
VEZNb3ZlKGRhdGFDYWxsYmFjayksIFdURk1vdmUodXBkYXRlU3RhdGVDYWxsYmFjaykpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBz
aG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQoreworICAgIGlmICghbV9jbGllbnRJZGVudGlmaWVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBzdG9wSW50ZXJuYWwoKTsKKworICAgIGlmIChzaG91
bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcykg
eworICAgICAgICAvLyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVjaCByZWNv
Z25pdGlvbiBiYWNrZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0b3I8U3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50SWRlbnRp
ZmllciwgcmVzdWx0RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdU
Rjo6bnVsbG9wdDsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwoKQor
eworICAgIGlmIChtX3NvdXJjZSkgeworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAg
ICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCpt
X2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9FbmQp
KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTE1NjNi
MThjNzE2MjcyOWM5NmYxY2Q0ZmI1ZmYxNjQxNzE4NGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAgV0VCQ09SRV9FWFBP
UlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBkZWZhdWx0OworCisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyKTsKKyAgICBlbnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywg
WWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxS
ZXN1bHQgPSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAgT3B0aW9uYWw8
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVu
dElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKworcHJp
dmF0ZToKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCBzdGFydEludGVybmFsKFNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOworICAgIHZvaWQgc3RvcEludGVy
bmFsKCk7CisKKyAgICBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyPiBtX2NsaWVudElkZW50aWZpZXI7CisgICAgRGVsZWdhdGVDYWxsYmFjayBtX2Rl
bGVnYXRlQ2FsbGJhY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZT4gbV9zb3VyY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDI1OTQ1ODFiNzIwOTEyYzBiOTU1M2JiNDEwZDUxZDg4ZDBhODE1NmMuLjhh
YTNhYzRmNjkwMmQ2MjIwNGI1YzdiMjY0OGYyYjBmNDU0NTBhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0xOTksNiArMTk5LDkgQEAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZS5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuY3BwCitNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcAog
TW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoU3ludGhlc2lzLmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzRXZl
bnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYjMzYzRiY2U3NGRkZWFkODE4YmEz
Y2IyYTQ0OTMxNTQ2YjU5YTYwLi4xOTlkODlkNjE5OTAzZmIyNWYxMjYwMjVkMzJmMTBkNzc4NjA2
MTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzOCw2ICsyMzgsNyBAQCBwbGF0Zm9y
bS9jb2NvYS9GaWxlTW9uaXRvckNvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29h
Lm1tCiBwbGF0Zm9ybS9jb2NvYS9Mb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0KIHBsYXRmb3JtL2Nv
Y29hL01JTUVUeXBlUmVnaXN0cnlDb2NvYS5tbQorcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRp
ZXMuY3BwCiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQog
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3Jt
L2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc1YTUyMmMyYWJlYjBkMTZkNWM2ODg2Yzcx
NzA2NTcyNDkyMGM5NGUuLmU3ZTViOTI4NDFjOTM5YTU3NjBmNGFiMzQ3NGU3MzExNDQwMzcxMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyMCw4ICsxMjAsOCBAQAogCQkwNzM3OTRGRTE5RjU4NjRFMDBFNUEwNDUgLyogUlRD
Tm90aWZpZXJzTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczNzk0RjgxOUY1ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCAqLzsg
fTsKIAkJMDczOEU1RUMyNDk5ODM5MDAwREExMDFDIC8qIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXJUYXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzM4RTVFQTI0OTk2OEFEMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSAqLzsgfTsKIAkJMDczQTE1NTQyMTc3QTQyNjAwRUEw
OEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyogUmVtb3RlVmlkZW9T
YW1wbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4
NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IH07Ci0JCTA3M0I4NzY5
MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBF
QyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLzsgfTsKKwkJMDczQjg3NjcxRTQzODVBQzAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTA3M0I4NzY5MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzRFODJCQjE4QTY5
RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzRFODJCOTE4QTY5RjBFMDA3RUY1NEMgLyogUGxh
dGZvcm1UaW1lUmFuZ2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDc1MDMzQTgyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFs
aXR5TWV0cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc1MDMzQTYyNTJCRDM2ODAwRjcwQ0UzIC8qIFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmlj
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3
NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1
MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKQEAgLTI3ODcsNiArMjc4Nyw4IEBACiAJCTkz
OTNFNjAwMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkzRTVGRTE1MUE5OUYyMDAwNjZG
MDYgLyogQ1NTSW1hZ2VTZXRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVD
MjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBX
aWR0aEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovOyB9Owor
CQk5MzlDMEQyNzI1NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjEyNTY0OEMzOTAw
QjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFV
dGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODI4MjU0OTU1MDYw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgyNjI1NDk1NTAwMDAwQUM0NjIgLyog
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzQTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0EwNDgyQTI1NDk1NTE0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Ew
NDgxRjI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4NDgsNiArMjg1
MCw5IEBACiAJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEy
RDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YxRDVDMTEy
RDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyog
SlNXZWJHTExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjJDQzkzMjQyN0ZCOUMwMDU4NTFEOCAv
KiBDaGFyYWN0ZXJSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MUYy
NTY3QTA4QzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZCODFDMjU2
NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTNGNkI4MjEy
NTY3QTBEODAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZC
ODIwMjU2N0EwQ0MwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVu
dGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJOTNGNkI4MjIyNTY3QTY1NjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNG
NkI4MUIyNTY3OUY2RjAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjZG
MUVFMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkYxRUIxMjdGNzBCMTAwNTVDQjA2
IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggKi87IH07CiAJCTkzRjkyNTQzMEY3RUY1QjgwMDdFMzdD
OSAvKiBSYWRpb0J1dHRvbkdyb3Vwcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGOTI1NDEwRjdFRjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3Jv
dXBzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNGOUI2RTEwQkEwRkI3MjAwODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGOUI2REYwQkEwRkI3MjAwODU0MDY0IC8q
IEpTQ29tbWVudC5oICovOyB9OwpAQCAtMTE0MjksNiArMTE0MzQsMTAgQEAKIAkJOTM5ODg1QzIw
OEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnROYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5QjAyRUMwRUEyREJD
NDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2lkdGhJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXpl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRp
bGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjkyNTY0RTdG
MjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QTA0ODFCMjU0OTU0RTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTA0ODFGMjU0OTU0RTYw
MDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MTUxNSw2ICsxMTUyNCwxMSBAQAogCQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJH
TExvc2VDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViR0xMb3NlQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjFE
NUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTExvc2VDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBDaGFyYWN0ZXJSYW5n
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGFyYWN0ZXJSYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRjZCODFEMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5M0Y2QjgxRTI1Njc5RjcxMDBBMDg0ODggLyogU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRjZCODIwMjU2N0EwQ0MwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29u
dGV4dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdM
Q29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUIx
MjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjZGMUVDMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM1NzIsNiArMjM1ODYsMTMgQEAKIAkJCXBhdGggPSBj
b2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzRjZCODBFMjU2NkVE
RTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNDQwOSw2ICsyNDQzMCw4IEBA
CiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJ
CQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4
dC5oICovLAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJpbmdz
Q29jb2EubW0gKi8sCisJCQkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0
aWVzLmNwcCAqLywKKwkJCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRp
ZXMuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNBRTkgLyogTUlNRVR5cGVSZWdpc3Ry
eUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5MzQ4MUFBMTFCMUUwMEI0NkMyNCAv
KiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAqLywKQEAgLTI1NjAxLDYgKzI1NjI0
LDcgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4
NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5k
b3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUg
LyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1
MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCkBAIC0yNTYxMCw2ICsy
NTYzNCwxMSBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25p
dGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0Y2
QjgxRTI1Njc5RjcxMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNw
cCAqLywKKwkJCQk5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmggKi8sCisJCQkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQk5M0Y2QjgxRDI1
Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAg
Ki8sCisJCQkJOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuaCAqLywKIAkJCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJCTkzQTA0
ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyLmggKi8sCkBAIC0yNTYzNCw2ICsyNTY2Myw4IEBACiAJCQkJOTM0OTUwQzUyNTM5
NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJ
OTNENkI3NkUyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAq
LywKIAkJCQk5M0Q2Qjc2RDI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUuaCAqLywKKwkJCQk5MzlDMEQyMzI1NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXpl
ci5jcHAgKi8sCisJCQkJOTM5QzBEMjEyNTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6
ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lz
LmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5p
ZGwgKi8sCkBAIC0zMzUxOSw2ICszMzU1MCw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMw
RjlGIC8qIE1lZGlhVHJhY2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMw
RTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJ
bmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVk
aWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgx
RiAvKiBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQxIC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4gSGVhZGVy
cyAqLywKQEAgLTM0NDEwLDYgKzM0NDQyLDkgQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVB
NjggLyogU3BhdGlhbE5hdmlnYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUz
OTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODIxMjU2
N0EwRDgwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4
MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkQyNTQ5NTUx
QjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMzQ0MjQsNiArMzQ0NTksNyBAQAogCQkJCTkzQTA0ODI5MjU0
OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJl
c3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAv
KiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMjcy
NTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVl
Y2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ4YjRmNTYzMzJk
MDU5ZDlmYjE3NzU1NDMwYTFmOGUwNTYyY2NjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDczIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0
aWVzLmgiCisKKyNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAi
V2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW5j
bHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25S
ZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpn
ZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZv
cm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
IGZvcm1hdCA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxs
cHRyLCAwLCBudWxscHRyLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJu
IGFkb3B0Q0YoZm9ybWF0KTsKK30KKworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVh
dGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qg
c2FtcGxlQ291bnQpCit7CisgICAgLy8gRklYTUU6IGNoZWNrIGlmIHdlIGNhbiByZXVzZSB0aGUg
Zm9ybWF0IGZvciBtdWx0aXBsZSBzYW1wbGUgYnVmZmVycy4KKyAgICBhdXRvIGZvcm1hdCA9IGNy
ZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJD
cmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIs
IGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1l
LCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMg
ZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01T
YW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCks
IGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdl
YkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAg
ICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBs
aXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmI2N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYyODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAs
MCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1l
ZGlhL0NNVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25z
dCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZjsKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJl
ZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
OworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0
aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mKTsKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1w
bGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Q29jb2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4u
YmRkNzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVk
aWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgog
I2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2
IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVm
ZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRT
YW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlu
bGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsK
LSAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3Jp
cHRpb24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAg
ICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3Jt
YXQpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0
byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAg
ICBpZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlv
U2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwg
dGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIg
Y3JlYXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBi
dWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVm
ZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1
ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01T
YW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAl
ZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBi
dWZmZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlv
U2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0
cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXpl
X3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVk
aW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGlt
ZSwgc2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuY3BwCmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3
NzRmOTczZjk5MTYuLmQ2OTA3M2Y4NTkwN2JiYmMzNzJlZmZmNjUwODM4ZmRiMWQwNzcyYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHAKQEAgLTQ2LDEyICs0NiwxMSBAQCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5n
LCBib29sIGNvbnRpbnVvdXMsIGJvb2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVy
bmF0aXZlcywgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0Vf
Q0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5j
b250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0
cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNv
bnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1v
dmUobGFuZyksIGNvbnRpbnVvdXMsIGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdU
Rk1vdmUob3JpZ2luKSB9OwotICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVx
dWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsK
KyAgICBhdXRvJiBuZXdSZXF1ZXN0ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwg
bWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVx
dWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JS
ZXF1ZXN0KCpwZW5kaW5nUmVxdWVzdCk7CisgICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0
KCpuZXdSZXF1ZXN0KTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVz
dFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYg
cmVxdWVzdCkKQEAgLTY0LDY2ICs2Myw3MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0
LT5jbGllbnRJZGVudGlmaWVyKCk7Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5k
aW5nUmVxdWVzdHMudGFrZShpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBt
X3JlcXVlc3RzLnJlbW92ZShpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9Owog
ICAgICAgICAgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yLCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBtX29uZ29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92
ZSh0YWtlblJlcXVlc3QpKTsKLSAgICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVz
dHMuZ2V0KGlkZW50aWZpZXIpKTsKKyAgICAgICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsK
ICAgICB9KTsKIH0KIAordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVz
dChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIpCit7CisgICAgaWYgKCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9y
ZWNvZ25pemVyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cih0aGlzKV0oYXV0byYgdXBkYXRlKSB7CisgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGll
bnRJZGVudGlmaWVyID0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGlm
ICghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7CisgICAg
ICAgICAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIHx8
IHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAgICAgICAg
ICAgbV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAgICAgIHNl
bmRVcGRhdGUodXBkYXRlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNvZ25pemVy
LT5zdGFydChjbGllbnRJZGVudGlmaWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVu
dGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZp
ZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYg
bV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZp
ZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpOwotICAgIHN0b3BSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xpZW50SWRl
bnRpZmllcikpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkK
KyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OmFib3J0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50
aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBt
X3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmll
cikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXpl
cjo6U2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZp
ZXIpKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElk
ZW50aWZpZXIpOwotICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1cGRhdGUg
PSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZp
ZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRh
dGUodXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xp
ZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNT
QUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2lu
Z1JlcXVlc3RzLnRha2UoY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3QpCi0gICAg
ICAgIGFib3J0UmVxdWVzdCgqcmVxdWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiBy
ZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2du
aXRpb24uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RP
OiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJlY29nbml6
aW5nIGNhcHR1cmVkIGF1ZGlvLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIC8vIFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlvbiBpbW1l
ZGlhdGVseSB3aXRob3V0IGdlbmVyYXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1ZXN0cy5y
ZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXplciAmJiBt
X3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmll
cikKKyAgICAgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAogdm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yPiBlcnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YT4+IHJlc3VsdCkKQEAgLTEzMyw3ICsxMzYsMTIgQEAgdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGkKICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsICplcnJvcik7CiAg
ICAgaWYgKHR5cGUgPT0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1
bHQpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVSZXN1bHQoY2xpZW50SWRlbnRpZmllciwgKnJlc3VsdCk7Ci0gICAgc2VuZChNZXNzYWdl
czo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0
ZSksIG1faWRlbnRpZmllcik7CisgICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworfQorCit2b2lkIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlJiB1cGRhdGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSkpOwogfQogCiBJ
UEM6OkNvbm5lY3Rpb24qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXIuaAppbmRleCAzNjNjYTIwZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFk
MThhMjRkLi5hN2Y3NmQzOGVlNTAxZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3Iu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVlY2hSZWNvZ25pemVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTU4LDEwICs1OSw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKKyAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBz
ZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gPSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZl
Y3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9w
dCk7CisgICAgdm9pZCBzZW5kVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlJik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpA
QCAtNzIsOSArNzIsOSBAQCBwcml2YXRlOgogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOwogICAgIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50
aWZpZXI7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25SZXF1ZXN0Pj4gbV9wZW5kaW5nUmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVu
dGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Pj4gbV9yZXF1ZXN0czsKICAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1f
cGVybWlzc2lvbkNoZWNrZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml6ZXI+IG1fcmVjb2duaXplcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDRmYjQ4ZTE1ZjU3NDU1NTliYTZjMWFiZmNkMjM2NjE0NDAzNGZlZjQuLjk3NzUwN2Q5NWU0
YWRiNjU2OTEzMjA5M2MzOGQ3MjdlZjVkMDMyYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3Qv
c3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10aGVuLXN0b3AuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25p
dGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAy
MC0xMS0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9y
dCB3ZWItcGxhdGZvcm0tdGVzdHMvdWlldmVudHMgdGVzdHMgZnJvbSB1cHN0cmVhbQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMDVjZjVhMDBjMDkyMTk5ZGNhNTMzOGRlODJjYjk5MThmYmJhMmVmMS4u
YjQzMGEyYTJkZDZiMzRhNjk1OGQ1MjRlZjFkZTNkMDg2YzJhYjQ4MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xNzksNiArMTc5LDggQEAgc3RvcmFnZS9pbmRleGVkZGIvSURCT2JqZWN0LWxlYWsu
aHRtbCBbIFNraXAgXQogZmFzdC9mb3Jtcy9jYWxsLXRleHQtZGlkLWNoYW5nZS1pbi10ZXh0LWZp
ZWxkLXdoZW4tdHlwaW5nLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXIt
cHJpdmFjeS8gWyBTa2lwIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJv
ci5odG1sIFsgU2tpcCBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9u
LXRoZW4tc3RvcC5odG1sIFsgU2tpcCBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNl
Y29uZC1yZWNvZ25pdGlvbi5odG1sIFsgU2tpcCBdCiAKICMgT25seSBwYXJ0aWFsIHN1cHBvcnQg
b24gQ29jb2EgcGxhdGZvcm1zLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVl
Y2gtYXBpLyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3At
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYTc0NjFkYzdjYzAxNGRiNjJkNjVjNmIyMGI2YjBk
YTI1NmVhNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNiBAQAorVmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3aGVuIHN0
YXJ0IGFuZCBzdG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KK1JlY2VpdmVkIHN0YXJ0IGV2ZW50CitSZWNlaXZlZCBhdWRpb3N0
YXJ0IGV2ZW50CitQQVNTIHJlY29nbml0aW9uLnN0b3AoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1JlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50CitSZWNlaXZlZCBlbmQgZXZlbnQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNv
Z25pdGlvbi10aGVuLXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDVkMmIwNzhjNmUyMTk0YzU5ZTc4
OWQzNWE0Njc4YjE0ZGZjZWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbApAQCAtMCww
ICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJWZXJpZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdoZW4gc3RhcnQg
YW5kIHN0b3AgcmVjb2duaXRpb24gbm9ybWFsbHkuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygicmVj
b2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3JlY29nbml0aW9uLm9uc3Rh
cnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgc3RhcnQgZXZlbnQiKTsKK30K
KworcmVjb2duaXRpb24ub25hdWRpb3N0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJl
Y2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJyZWNvZ25p
dGlvbi5zdG9wKCkiKTsKK30KKworcmVjb2duaXRpb24ub25hdWRpb2VuZCA9IChldmVudCkgPT4g
eworICAgIGRlYnVnKCJSZWNlaXZlZCBhdWRpb2VuZCBldmVudCIpOworfQorCityZWNvZ25pdGlv
bi5vbmVuZCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBlbmQgZXZlbnQiKTsK
KworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24u
c3RhcnQoKSIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjIxMGM5NGEyNGNjOTg1ZjBmNjI2MDUzZGQxMjQ0MzFiMzVjM2Q3ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJp
ZnkgdGhhdCBzdGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3
IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNv
Z25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNv
Z25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1Mgc2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1MgcmVjZWl2ZWRTdGFydCBpcyB0cnVlCitQQVNTIGV2ZW50LmVycm9yIGlzICJhYm9y
dGVkIgorUEFTUyBldmVudC5tZXNzYWdlIGlzICJBbm90aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1y
ZWNvZ25pdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWU3NDNmZjNmNjA5MTBhMWQx
NDQwZjE0NGQ2YmQ5NWExZmM3MzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJWZXJpZnkgdGhhdCBzdGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25n
b2luZyBvbmUuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNo
UmVjb2duaXRpb24oKTsiKTsKK3JlY2VpdmVkU3RhcnQgPSBmYWxzZTsKK3JlY29nbml0aW9uLm9u
c3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICByZWNlaXZlZFN0YXJ0ID0gdHJ1ZTsKK30KKworcmVj
b2duaXRpb24ub25lcnJvciA9IChldmVudCkgPT4geworICAgIHNob3VsZEJlVHJ1ZSgicmVjZWl2
ZWRTdGFydCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuZXJyb3IiLCAiYWJv
cnRlZCIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQubWVzc2FnZSIsICJBbm90
aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3No
b3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CitzaG91bGROb3RUaHJvdygic2Vj
b25kUmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3Nob3VsZE5vdFRo
cm93KCJzZWNvbmRSZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2Q1MzRhMDZhMjJhM2IyOTdiNzU0M2Q0MWI4Njlm
NTRlZjBiY2MyYi4uODEzMTIwNjQwYjJhMDUyMmI4ZmQ2NjE2OTI4OTE1ZmFmM2Y2MTdlNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgwNCw0ICs4MDQs
NiBAQCBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC1wb3J0LWRlbGF5Lmh0
bWwgWyBQYXNzIF0KICMgV2ViS2l0MiBvbmx5LgoganMvdGhyb3ctbGFyZ2Utc3RyaW5nLW9vbS5o
dG1sIFsgUGFzcyBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRt
bCBbIFBhc3MgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVu
LXN0b3AuaHRtbCBbIFBhc3MgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQt
cmVjb2duaXRpb24uaHRtbCBbIFBhc3MgXQogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbnRlci13
aGlsZS1leGl0aW5nLmh0bWwgWyBQYXNzIF0K
</data>
<flag name="commit-queue"
          id="431691"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414724</attachid>
            <date>2020-11-20 14:17:53 -0800</date>
            <delta_ts>2020-11-20 14:52:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120141752.patch</filename>
            <type>text/plain</type>
            <size>71105</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uYjAyY2Y3ZGRjZWI5MDhlMjAzMDlkMmM1ODk1NjEz
OWYzNGNjNTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOiBBZGRlZC4gSWYgY2FwdHVyZSBkZXZpY2Ug
aXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBwaWNrIAorICAgICAgICB0aGUgZGVmYXVsdCBvciBm
aXJzdCBlbmFibGVkIGlucHV0IGRldmljZSBmb3IgY2FwdHVyZS4KKyAgICAgICAgKFdlYkNvcmU6
Om5leHRMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxMb2dnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwgcHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpz
ZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6flNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKTogUHVzaCBkYXRhIHRvIGJ1ZmZlciwgc2lnbmFsIG1haW4gdGhyZWFkIHRvCisg
ICAgICAgIHB1bGwgZnJvbSBidWZmZXIgYW5kIGludm9rZSBkYXRhIGNhbGxiYWNrIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6c291cmNlU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjppbnZv
a2VTdGFydE9yRXJyb3JDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OnJlc2V0KTogQWJvcnQgb25nb2luZyByZXF1ZXN0IGlmIGFueSBhbmQg
c2VuZCBlcnJvciBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0
YXJ0KTogU3RhcnQgaGFuZGxpbmcgYSBuZXcgcmVxdWVzdCBhbmQgc2VuZCBzdGFydCBldmVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBDcmVh
dGUgYSBuZXcgc291cmNlIGFuZCBzZXQgY2FsbGJhY2tzIG9mIHRoZSBzb3VyY2UuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wKTogU3RvcCBvbmdvaW5nIHJlcXVlc3Qu
IFRoaXMgc2VuZHMgZW5kIGV2ZW50IHN5bmNocm9ub3VzbHkgbm93IGFzIHdlIGNhbiBzdG9wCisg
ICAgICAgIGNhcHR1cmluZyBhdWRpbyBpbW1lZGlhdGVseS4gQWZ0ZXIgd2UgaW1wbGVtZW50IHNw
ZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kLCB0aGlzIGNvdWxkIGJlIGFzeW5jaHJvbm91cy4gCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0
aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogTW92ZSBjb2RlIGZvciBjcmVhdGluZyBD
TVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBzbyBpdCBj
YW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYSwgYXMgU3Bl
ZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgCisgICAgICAgIHdpbGwgdGFrZSBDTVNhbXBsZUJ1ZmZl
clJlZiBhcyBpbnB1dC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZm
ZXIpOiBEZWxldGVkLgorCiAyMDIwLTExLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUoKSBzaG91bGQgcmVqZWN0IHByb21pc2Ug
d2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdvcmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJiNzc3N2M5YjMyLi44MTkyOGM0MmZkYjI3
NjdlNWFlYzE5ODgyMjQwZTU4OGNiNzZlNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDIwLTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlz
c2lvbkZvclJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFi
b3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oOgorCiAyMDIwLTExLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3VlIHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdl
YiBJbnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMDIzZTE1M2RhM2M2N2Rl
MTdhMjUyYmVmMWNhYjI2ODdkNDM5MzA2ZC4uNDU0YzNiNzdlNGIwM2FkMjcyMmY0ZTdmYmUyZjFi
Y2NjODcwYTMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTYsNiArMTE2LDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVn
aW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuaAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCiAg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKICAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyLmgKQEAgLTEyNCw2ICsxMjUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
CiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXplci5oCiAKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDk3YmNiMDg1NGJiY2YwOTgw
NjQxMmRkYTQ3NDBhMzcwYTZmMmMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCww
ICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlKERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhcnRPckVycm9yQ2FsbGJhY2sm
JiBzdGFydE9yRXJyb3JDYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4o
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXJ0T3JFcnJvckNhbGxiYWNrKSk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTSh1
cGRhdGVDYWxsYmFjayk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTRhMzE0OTM4NmJlYTUxZGYzMTFk
OTE3ZDM2NjRlODkwYWMwNjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlh
VGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsKK2NsYXNz
IFBsYXRmb3JtQXVkaW9EYXRhOworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9u
PHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICB1c2luZyBTdGFydE9y
RXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
LCBjb25zdCBTdHJpbmcmKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKERh
dGFDYWxsYmFjayYmLCBTdGFydE9yRXJyb3JDYWxsYmFjayYmKTsKKworcHJpdmF0ZToKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsPiBtX2ltcGw7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YTY4YWVjN2EzYjZmNjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjIyM2RiM2U1OTNh
ZjhmMjc1ZGI3YzhmMDk3NDg4NWExNjQ1NjFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5j
cHAKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisj
aW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKK3N0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGlj
IHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigp
OworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZp
ZXIpOworfQorCitzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBs
b2dnZXI7Cit9CisjZW5kaWYKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChEYXRhQ2FsbGJhY2smJiBkYXRhQ2Fs
bGJhY2ssIFN0YXJ0T3JFcnJvckNhbGxiYWNrJiYgc3RhcnRPckVycm9yQ2FsbGJhY2spCisgICAg
OiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSkKKyAgICAsIG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0YUNhbGxiYWNrKSkK
KyAgICAsIG1fc3RhcnRPckVycm9yQ2FsbGJhY2soV1RGTW92ZShzdGFydE9yRXJyb3JDYWxsYmFj
aykpCit7CisgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOworICAgIGZvciAoYXV0byBkZXZpY2UgOiBkZXZpY2Vz
KSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgIAorICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAgICBjYXB0dXJl
RGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0KCkpIHsKKyAg
ICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7CisgICAg
ICAgIGludm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RXJyb3IsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzZXRTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOworICAgIGF1
dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgY2Fw
dHVyZURldmljZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgIGludm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6RXJyb3IsIHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAg
ICBpZiAoIW51bGxMb2dnZXIoKS5nZXQoKSkgeworICAgICAgICBudWxsTG9nZ2VyKCkgPSBMb2dn
ZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbnVsbExvZ2dlcigpLT5zZXRFbmFibGVkKHRoaXMs
IGZhbHNlKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c2V0TG9nZ2VyKCpudWxsTG9nZ2VyKCks
IG5leHRMb2dJZGVudGlmaWVyKCkpOworI2VuZGlmCit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCkKK3sK
KyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlvU2FtcGxl
T2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMp
OworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KK30KKwordm9pZCBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVk
aWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEFT
U0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURl
c2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKworICAgIGF1dG8gYXVkaW9EZXNj
cmlwdGlvbiA9IHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICBp
ZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9uKCkgfHwg
Km1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7CisgICAg
ICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRlKGRlc2Ny
aXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsICptX3NvdXJjZSk7CisgICAgICAgIGlmIChkYXRhU291
cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgaW52
b2tlU3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJv
ciwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0Iik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9ybWF0KGF1ZGlv
RGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpbnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQg
Zm9ybWF0Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAo
bV9kYXRhU291cmNlTG9jay50cnlMb2NrKCkpCisgICAgICAgICAgICBtX2RhdGFTb3VyY2UgPSBX
VEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyh0aW1lLCBkYXRhLCBzYW1wbGVD
b3VudCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsKKyAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGRhdGEg
PSBXZWJBdWRpb0J1ZmZlckxpc3QgeyBhdWRpb0Rlc2NyaXB0aW9uLCBzdGF0aWNfY2FzdDx1aW50
MzJfdD4oc2FtcGxlQ291bnQpIH07CisgICAgICAgIAorICAgICAgICBtX2RhdGFTb3VyY2VMb2Nr
LmxvY2soKTsKKyAgICAgICAgbV9kYXRhU291cmNlLT5wdWxsU2FtcGxlcygqZGF0YS5saXN0KCks
IHNhbXBsZUNvdW50LCB0aW1lLnRpbWVWYWx1ZSgpLCAwLCBBdWRpb1NhbXBsZURhdGFTb3VyY2U6
OkNvcHkpOworICAgICAgICBtX2RhdGFTb3VyY2VMb2NrLnVubG9jaygpOworCisgICAgICAgIG1f
ZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsK
KyAgICB9KTsKKyNlbHNlCisgICAgbV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRp
b24sIHNhbXBsZUNvdW50KTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0YXJ0ZWQoKQoreworICAgIGludm9rZVN0YXJ0T3JFcnJv
ckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCgp
Cit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKTsKKyAgICBpbnZva2VT
dGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCAi
U291cmNlIGlzIHN0b3BwZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIGludm9rZVN0YXJ0T3JFcnJv
ckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsICJTb3VyY2UgaXMg
bXV0ZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpp
bnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBlcnJvcikKK3sKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAg
ICAgICAgbV9zdGFydE9yRXJyb3JDYWxsYmFjayh0eXBlLCBlcnJvcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCB0eXBlLCBlcnJvciA9IGVycm9yLmlzb2xhdGVkQ29weSgpXSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9zdGFy
dE9yRXJyb3JDYWxsYmFjayh0eXBlLCBlcnJvcik7CisgICAgfSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTc0YmM0NDJjNjQ0MWFlNjJhYWMzMThjN2UyYzU0MTE3YjEyOTc3MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUlkZW50aWZpZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkF1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVk
aWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworZW51bSBjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZVR5cGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwKKyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAg
ICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIERhdGFDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcg
U3RhcnRPckVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSwgY29uc3QgU3RyaW5nJik+OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwoRGF0YUNhbGxiYWNrJiYsIFN0YXJ0T3JFcnJvckNhbGxiYWNrJiYpOworICAgIH5T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBzZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIHZvaWQgaW52b2tlU3RhcnRP
ckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBjb25zdCBTdHJpbmcm
ID0gbnVsbFN0cmluZygpKTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2Ft
cGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRp
bWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2
ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZVN0b3Bw
ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOworCisgICAg
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cisg
ICAgRGF0YUNhbGxiYWNrIG1fZGF0YUNhbGxiYWNrOworICAgIFN0YXJ0T3JFcnJvckNhbGxiYWNr
IG1fc3RhcnRPckVycm9yQ2FsbGJhY2s7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+
IG1fc291cmNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPEF1ZGlvU2FtcGxl
RGF0YVNvdXJjZT4gbV9kYXRhU291cmNlOworICAgIExvY2sgbV9kYXRhU291cmNlTG9jazsKKyNl
bmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMzFlZWVkYTExY2M3OTU4ZjdiZjA1NjQ1MjdjN2ZiMjI1ODQxYWNiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5j
cHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhVXRpbGl0
aWVzLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24u
aD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6OlNw
ZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9kZWxl
Z2F0ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCit2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnJlc2V0KCkKK3sKKyAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7
CisKKyAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiIH07
CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVF
cnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworfQorCit2b2lkIFNwZWVjaFJlY29n
bml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0g
aWRlbnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKGlkZW50aWZpZXIpOworfQorCit2b2lk
IFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gZGF0YUNhbGxiYWNr
ID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGNvbnN0IFdURjo6TWVkaWFUaW1lJiB0
aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgICAgIGF1dG8gYnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3Jp
cHRpb24sIFBBTDo6dG9DTVRpbWUodGltZSksIHNhbXBsZUNvdW50KTsKKyAgICAgICAgVU5VU0VE
X1BBUkFNKGJ1ZmZlcik7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0odGltZSk7CisgICAg
ICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9u
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKHNhbXBsZUNvdW50KTsKKyNlbmRpZgorICAgIH07CisK
KyAgICBhdXRvIHVwZGF0ZVN0YXRlQ2FsbGJhY2sgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cih0aGlzKSwgaWRlbnRpZmllcl0oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQVNTRVJUKG1fY2xpZW50SWRlbnRpZmllciAm
JiBtX2NsaWVudElkZW50aWZpZXIudmFsdWUoKSA9PSBpZGVudGlmaWVyKTsKKyAgICAgICAgaWYg
KHR5cGUgIT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvcikgeworICAgICAgICAg
ICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoaWRl
bnRpZmllciwgdHlwZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBlcnJvck1lc3NhZ2UgfTsKKyAgICAgICAgbV9kZWxl
Z2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihpZGVudGlm
aWVyLCBlcnJvcikpOworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfTsKKworICAg
IG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KFdU
Rk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZSh1cGRhdGVTdGF0ZUNhbGxiYWNrKSk7Cit9CisK
K3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0IHNo
b3VsZEdlbmVyYXRlRmluYWxSZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZpZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIHN0b3BJbnRlcm5hbCgpOworCisgICAgaWYgKHNob3Vs
ZEdlbmVyYXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVzKSB7
CisgICAgICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3BlZWNoIHJlY29n
bml0aW9uIGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJh
Y2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGllbnRJZGVudGlm
aWVyLCByZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gV1RG
OjpudWxsb3B0OworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCgpCit7
CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICAg
ICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1f
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRpb0VuZCkp
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MTU2M2Ix
OGM3MTYyNzI5Yzk2ZjFjZDRmYjVmZjE2NDE3MTg0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0
aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVuY3Rpb248
dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JFX0VYUE9S
VCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIpOworICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7IE5vLCBZ
ZXMgfTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50Q2xpZW50
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQorCitwcml2
YXRlOgorICAgIHZvaWQgcmVzZXQoKTsKKyAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9wSW50ZXJu
YWwoKTsKKworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVs
ZWdhdGVDYWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlPiBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKaW5kZXggMjU5NDU4MWI3MjA5MTJjMGI5NTUzYmI0MTBkNTFkODhkMGE4MTU2Yy4uOGFh
M2FjNGY2OTAyZDYyMjA0YjVjN2IyNjQ4ZjJiMGY0NTQ1MGE3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAg
LTE5OSw2ICsxOTksOSBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCiBN
b2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVu
dC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRlYWQ4MThiYTNj
YjJhNDQ5MzE1NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNmYjI1ZjEyNjAyNWQzMmYxMGQ3Nzg2MDYx
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3IEBAIHBsYXRmb3Jt
L2NvY29hL0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2Eu
bW0KIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQogcGxhdGZvcm0vY29j
b2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5jcHAKIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCiBw
bGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0v
Y29jb2EvUGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3
MDY1NzI0OTIwYzk0ZS4uZTdlNWI5Mjg0MWM5MzlhNTc2MGY0YWIzNDc0ZTczMTE0NDAzNzExNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTIwLDggKzEyMCw4IEBACiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENO
b3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9
OwogCQkwNzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJv
bGxlclRhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVD
b250cm9sbGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4
RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1Nh
bXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKLQkJMDczQjg3Njkx
RTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVD
IC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OworCQkwNzNCODc2NzFFNDM4NUFDMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9T
YW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
Qjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NEU4MkJCMThBNjlG
MEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0
Zm9ybVRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxp
dHlNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1
Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUy
IC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtMjc4Nyw2ICsyNzg3LDggQEAKIAkJOTM5
M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYw
NiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMy
MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdp
ZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJ
CTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBC
MzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
UmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg0OCw2ICsyODUw
LDkgQEAKIAkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUI4MTJE
NTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjFENUMxMTJE
NTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBK
U1dlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMkNDOTMyNDI3RkI5QzAwNTg1MUQ4IC8q
IENoYXJhY3RlclJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgxRjI1
NjdBMDhDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MUMyNTY3
OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgyMTI1
NjdBMEQ4MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4
MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2
QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNkYx
RUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1NUNCMDYg
LyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAwN0UzN0M5
IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91
cHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
M0Y5QjZFMTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmggKi87IH07CkBAIC0xMTQyOSw2ICsxMTQzNCwxMCBAQAogCQk5Mzk4ODVDMjA4
QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0
MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXpl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGls
aXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFVdGls
aXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyOTI1NjRFN0Yy
MDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNB
MDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUYyNTQ5NTRFNjAw
MEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NTE1LDYgKzExNTI0LDExIEBACiAJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdM
TG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNX
ZWJHTExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1
QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3RlclJhbmdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzRjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250
ZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xD
b250ZXh0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQjEy
N0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGNkYxRUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzU3Miw2ICsyMzU4NiwxMyBAQAogCQkJcGF0aCA9IGNv
Y29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTNGNkI4MEUyNTY2RURF
MTAwQTA4NDg4IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NDA5LDYgKzI0NDMwLDggQEAK
IAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJ
CQkwNkU4MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JBNjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3ND
b2NvYS5tbSAqLywKKwkJCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRp
ZXMuY3BwICovLAorCQkJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5
Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJCQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8q
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tICovLApAQCAtMjU2MDEsNiArMjU2MjQs
NyBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0
ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRv
dytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAv
KiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUw
MDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKQEAgLTI1NjEwLDYgKzI1
NjM0LDExIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRjZC
ODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
ICovLAorCQkJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaCAqLywKKwkJCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovLAorCQkJCTkzRjZCODFEMjU2
NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCAq
LywKKwkJCQk5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5oICovLAogCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAvKiBTcGVl
Y2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0EwNDgyNDI1NDk1NEU5MDAwQUM0
NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8sCiAJCQkJOTNBMDQ4
MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIuaCAqLywKQEAgLTI1NjM0LDYgKzI1NjYzLDggQEAKIAkJCQk5MzQ5NTBDNTI1Mzk0
MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywKIAkJCQk5
M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwICov
LAogCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5oICovLAorCQkJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVy
LmNwcCAqLywKKwkJCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXpl
ci5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMu
Y3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMu
aCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmlk
bCAqLywKQEAgLTMzNTE5LDYgKzMzNTUwLDcgQEAKIAkJCQk5MzJDQzBCNzFERkZEMTU4MDA0QzBG
OUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0MxQzBF
MjFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyogTWVkaWFVc2FnZUlu
Zm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRp
YVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMxQkQ4MDY0RTAwNTVEODFG
IC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0IxNkMxODA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxNzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJzb3IuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzQ0MTAsNiArMzQ0NDIsOSBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2
OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0QyNTM5
NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MjIyNTY3QTY1NjAwQTA4NDg4IC8qIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MjEyNTY3
QTBEODAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgy
QzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRDI1NDk1NTFC
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDQyNCw2ICszNDQ1OSw3IEBACiAJCQkJOTNBMDQ4MjkyNTQ5
NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNzI1
NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDhiNGY1NjMzMmQw
NTlkOWZiMTc3NTU0MzBhMWY4ZTA1NjJjY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRp
ZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJX
ZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbmNs
dWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJl
Zj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6Omdl
dDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9y
bURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxw
dHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAgIGlmIChlcnJvcikgeworICAg
ICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4g
YWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBz
YW1wbGVDb3VudCkKK3sKKyAgICAvLyBGSVhNRTogY2hlY2sgaWYgd2UgY2FuIHJldXNlIHRoZSBm
b3JtYXQgZm9yIG11bHRpcGxlIHNhbXBsZSBidWZmZXJzLgorICAgIGF1dG8gZm9ybWF0ID0gY3Jl
YXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFmb3JtYXQp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
ZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUs
IG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0df
RVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBm
YWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAg
IGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3IgPSBDTVNh
bXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwg
a0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2Vi
QXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgeworICAgICAg
ICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxp
c3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICByZXR1cm4gYnVmZmVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YjY3YzY2Nzg1ZDQ3ZDI3MDJiNWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMCww
ICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlTWVk
aWEvQ01UaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
OwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVm
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247
CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRp
b25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYpOworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBs
ZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBDTVRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5tbQppbmRleCBhY2I0OTQ0MzA4ZDFjYTQzZjlmNjk5YzUxMDQ2MDA4ZjNkNzM1NTA3Li5i
ZGQ3MGZkOWNhYWUyZGVjY2NiMjQwYmMyMWIyNWE0MmZjNjM3NjVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCiAj
aW5jbHVkZSA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXIuaD4KQEAgLTQ0Myw0MCArNDQ0LDYg
QEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZm
ZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNh
bXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQogCi1zdGF0aWMgaW5s
aW5lIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQotewot
ICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlw
dGlvbik7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAg
IGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1h
dCk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKLX0KLQotc3RhdGljIGlubGluZSBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKLXsKLSAgICBhdXRv
IGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwotICAg
IGlmICghZm9ybWF0KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9T
YW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1
bHQsIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxMLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0
aW1lLCBOVUxMLCAmc2FtcGxlQnVmZmVyKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKLQotICAgIGVycm9yID0gQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNh
bXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1
ZmZlcjsKLX0KLQogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9T
YW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVf
dCBzYW1wbGVDb3VudCkKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
LCBzYW1wbGVDb3VudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXggODU2NTE5ZmI2ODcxM2VkZDlhY2NmMmVlMWMyNDc3
NGY5NzNmOTkxNi4uZDY5MDczZjg1OTA3YmJiYzM3MmVmZmY2NTA4MzhmZGIxZDA3NzJjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmNwcApAQCAtNDYsMTIgKzQ2LDExIEBAIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3RpCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYmIGxhbmcs
IGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4QWx0ZXJu
YXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CiAgICAgTUVTU0FHRV9D
SEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1JlcXVlc3RzLmNv
bnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBBU1NFUlQoIW1fb25nb2luZ1JlcXVlc3Rz
LmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBBU1NFUlQoIW1fcmVxdWVzdHMuY29u
dGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwogICAgIGF1dG8gcmVxdWVzdEluZm8gPSBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsgY2xpZW50SWRlbnRpZmllciwgV1RGTW92
ZShsYW5nKSwgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZlcywgV1RG
TW92ZShvcmlnaW4pIH07Ci0gICAgYXV0byYgcGVuZGluZ1JlcXVlc3QgPSBtX3BlbmRpbmdSZXF1
ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZhbHVlOwor
ICAgIGF1dG8mIG5ld1JlcXVlc3QgPSBtX3JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBt
YWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1
ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJl
cXVlc3QoKnBlbmRpbmdSZXF1ZXN0KTsKKyAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3Qo
Km5ld1JlcXVlc3QpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0
UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiBy
ZXF1ZXN0KQpAQCAtNjQsNjYgKzYzLDcwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6
OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pCiAgICAg
ICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1JlcXVlc3Qt
PmNsaWVudElkZW50aWZpZXIoKTsKLSAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBtX3BlbmRp
bmdSZXF1ZXN0cy50YWtlKGlkZW50aWZpZXIpOwogICAgICAgICBpZiAoZGVjaXNpb24gPT0gU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpIHsKKyAgICAgICAgICAgIG1f
cmVxdWVzdHMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgICAgICAgICAgYXV0byBlcnJvciA9IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIl9zIH07CiAg
ICAgICAgICAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCi0gICAgICAgIG1fb25nb2luZ1JlcXVlc3RzLmFkZChpZGVudGlmaWVyLCBXVEZNb3Zl
KHRha2VuUmVxdWVzdCkpOwotICAgICAgICBoYW5kbGVSZXF1ZXN0KCptX29uZ29pbmdSZXF1ZXN0
cy5nZXQoaWRlbnRpZmllcikpOworICAgICAgICBoYW5kbGVSZXF1ZXN0KGlkZW50aWZpZXIpOwog
ICAgIH0pOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xp
ZW50SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fcmVjb2duaXplcikgeworICAgICAgICBtX3Jl
Y29nbml6ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml6ZXI+KFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiB1cGRhdGUpIHsKKyAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIGNsaWVu
dElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAgICAgICAgICAgaWYg
KCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgYXV0byB0eXBlID0gdXBkYXRlLnR5cGUoKTsKKyAgICAg
ICAgICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IgfHwg
dHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkKKyAgICAgICAgICAgICAg
ICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKworICAgICAgICAgICAgc2Vu
ZFVwZGF0ZSh1cGRhdGUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBtX3JlY29nbml6ZXIt
PnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOworfQorCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50
aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBt
X3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmll
cikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlm
aWVyKSk7Ci0gICAgc3RvcFJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChjbGllbnRJZGVu
dGlmaWVyKSk7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRp
Zmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVy
KSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVyICYmIG1f
cmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVy
KSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVy
OjpTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpObyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmll
cikpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRha2UoY2xpZW50SWRl
bnRpZmllcik7Ci0gICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBhdXRvIHVwZGF0ZSA9
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwotICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0
ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NB
R0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
UmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAocmVxdWVzdCkKLSAgICAg
ICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJl
cXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RhcnQgY2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25p
dGlvbi4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86
IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCBmaW5hbGl6aW5nIHJlc3VsdHMgYnkgcmVjb2duaXpp
bmcgY2FwdHVyZWQgYXVkaW8uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFi
b3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17
Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uIGltbWVk
aWF0ZWx5IHdpdGhvdXQgZ2VuZXJhdGluZyByZXN1bHRzLgorICAgIGlmIChtX3JlcXVlc3RzLnJl
bW92ZShjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBpZiAobV9yZWNvZ25pemVyICYmIG1f
cmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVy
KQorICAgICAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CisgICAgfQogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3I+IGVycm9yLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25SZXN1bHREYXRhPj4gcmVzdWx0KQpAQCAtMTMzLDcgKzEzNiwxMiBAQCB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgKmVycm9yKTsKICAg
ICBpZiAodHlwZSA9PSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlJlc3Vs
dCkKICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdChjbGllbnRJZGVudGlmaWVyLCAqcmVzdWx0KTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRl
KSwgbV9pZGVudGlmaWVyKTsKKyAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSk7CiB9CiAKIElQ
Qzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVj
aFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThmZWUzNGZiYzJlMWQx
OGEyNGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25FcnJvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNl
bmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBPcHRpb25hbDxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwgT3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0gV1RGOjpudWxsb3B0
KTsKKyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25V
cGRhdGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CkBA
IC03Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdSZXF1ZXN0czsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+
PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgbV9w
ZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNGZiNDhlMTVmNTc0NTU1OWJhNmMxYWJmY2QyMzY2MTQ0MDM0ZmVmNC4uOTc3NTA3ZDk1ZTRh
ZGI2NTY5MTMyMDkzYzM4ZDcyN2VmNWQwMzJjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIw
LTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0
aW9uLXRoZW4tc3RvcC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIw
LTExLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wb3J0
IHdlYi1wbGF0Zm9ybS10ZXN0cy91aWV2ZW50cyB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAwNWNmNWEwMGMwOTIxOTlkY2E1MzM4ZGU4MmNiOTkxOGZiYmEyZWYxLi5i
NDMwYTJhMmRkNmIzNGE2OTU4ZDUyNGVmMWRlM2QwODZjMmFiNDgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE3OSw2ICsxNzksOCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9JREJPYmplY3QtbGVhay5o
dG1sIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2NhbGwtdGV4dC1kaWQtY2hhbmdlLWluLXRleHQtZmll
bGQtd2hlbi10eXBpbmcuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1w
cml2YWN5LyBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9y
Lmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vj
b25kLXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KIAogIyBPbmx5IHBhcnRpYWwgc3VwcG9ydCBv
biBDb2NvYSBwbGF0Zm9ybXMuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NwZWVj
aC1hcGkvIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJhNzQ2MWRjN2NjMDE0ZGI2MmQ2NWM2YjIwYjZiMGRh
MjU2ZWE0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2du
aXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACitWZXJpZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdoZW4gc3Rh
cnQgYW5kIHN0b3AgcmVjb2duaXRpb24gbm9ybWFsbHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQKK1JlY2VpdmVkIGF1ZGlvc3Rh
cnQgZXZlbnQKK1BBU1MgcmVjb2duaXRpb24uc3RvcCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQKK1JlY2VpdmVkIGVuZCBldmVudAorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1z
dG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29n
bml0aW9uLXRoZW4tc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNWQyYjA3OGM2ZTIxOTRjNTllNzg5
ZDM1YTQ2NzhiMTRkZmNlY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCkBAIC0wLDAg
KzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0bHkgd2hlbiBzdGFydCBh
bmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNv
Z25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjb2duaXRpb24ub25zdGFy
dCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIpOworfQor
CityZWNvZ25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVj
ZWl2ZWQgYXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxkTm90VGhyb3coInJlY29nbml0
aW9uLnN0b3AoKSIpOworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvZW5kID0gKGV2ZW50KSA9PiB7
CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50Iik7Cit9CisKK3JlY29nbml0aW9u
Lm9uZW5kID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGVuZCBldmVudCIpOwor
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5z
dGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRp
b24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMjEwYzk0YTI0Y2M5ODVmMGY2MjYwNTNkZDEyNDQzMWIzNWMzZDdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Zlcmlm
eSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0cyBvbmdvaW5nIG9uZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcg
U3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29n
bml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNlY29uZFJlY29n
bml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyByZWNlaXZlZFN0YXJ0IGlzIHRydWUKK1BBU1MgZXZlbnQuZXJyb3IgaXMgImFib3J0
ZWQiCitQQVNTIGV2ZW50Lm1lc3NhZ2UgaXMgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJl
Y29nbml0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZTc0M2ZmM2Y2MDkxMGExZDE0
NDBmMTQ0ZDZiZDk1YTFmYzczNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCkBAIC0wLDAg
KzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0cyBvbmdv
aW5nIG9uZS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hS
ZWNvZ25pdGlvbigpOyIpOworcmVjZWl2ZWRTdGFydCA9IGZhbHNlOworcmVjb2duaXRpb24ub25z
dGFydCA9IChldmVudCkgPT4geworICAgIHJlY2VpdmVkU3RhcnQgPSB0cnVlOworfQorCityZWNv
Z25pdGlvbi5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgc2hvdWxkQmVUcnVlKCJyZWNlaXZl
ZFN0YXJ0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5lcnJvciIsICJhYm9y
dGVkIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5tZXNzYWdlIiwgIkFub3Ro
ZXIgcmVxdWVzdCBpcyBzdGFydGVkIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hv
dWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3Nob3VsZE5vdFRocm93KCJzZWNv
bmRSZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworc2hvdWxkTm90VGhy
b3coInNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZDUzNGEwNmEyMmEzYjI5N2I3NTQzZDQxYjg2OWY1
NGVmMGJjYzJiLi44MTMxMjA2NDBiMmEwNTIyYjhmZDY2MTY5Mjg5MTVmYWYzZjYxN2U0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODA0LDQgKzgwNCw2
IEBAIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXBvcnQtZGVsYXkuaHRt
bCBbIFBhc3MgXQogIyBXZWJLaXQyIG9ubHkuCiBqcy90aHJvdy1sYXJnZS1zdHJpbmctb29tLmh0
bWwgWyBQYXNzIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci5odG1s
IFsgUGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC5odG1sIFsgUGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1y
ZWNvZ25pdGlvbi5odG1sIFsgUGFzcyBdCiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVudGVyLXdo
aWxlLWV4aXRpbmcuaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414733</attachid>
            <date>2020-11-20 14:52:16 -0800</date>
            <delta_ts>2020-11-20 22:26:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120145215.patch</filename>
            <type>text/plain</type>
            <size>71168</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uYjAyY2Y3ZGRjZWI5MDhlMjAzMDlkMmM1ODk1NjEz
OWYzNGNjNTMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgdGFzayBhdCBhIHRpbWUsIHNvIGNhbGxp
bmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIgd291
bGQgY2F1c2Ugb25nb2luZyB0YXNrIChjb3JyZXNwb25kaW5nIHRvIG9uZSByZXF1ZXN0KSB0byBi
ZSBhYm9ydGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOiBBZGRlZC4gSWYgY2FwdHVyZSBkZXZpY2Ug
aXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBwaWNrIAorICAgICAgICB0aGUgZGVmYXVsdCBvciBm
aXJzdCBlbmFibGVkIGlucHV0IGRldmljZSBmb3IgY2FwdHVyZS4KKyAgICAgICAgKFdlYkNvcmU6
Om5leHRMb2dJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxMb2dnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwgcHJvdmlkZXMgCisgICAgICAgIEltcGxlbWVudGF0aW9uIG9mIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZSBvbiB3aGVuIEVOQUJMRShNRURJQV9TVFJFQU0pIGlzIHRydWUu
CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpz
ZXRTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbDo6flNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVz
QXZhaWxhYmxlKTogUHVzaCBkYXRhIHRvIGJ1ZmZlciwgc2lnbmFsIG1haW4gdGhyZWFkIHRvCisg
ICAgICAgIHB1bGwgZnJvbSBidWZmZXIgYW5kIGludm9rZSBkYXRhIGNhbGxiYWNrIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6c291cmNlU3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjppbnZv
a2VTdGFydE9yRXJyb3JDYWxsYmFjayk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml6ZXI6OnJlc2V0KTogQWJvcnQgb25nb2luZyByZXF1ZXN0IGlmIGFueSBhbmQg
c2VuZCBlcnJvciBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0
YXJ0KTogU3RhcnQgaGFuZGxpbmcgYSBuZXcgcmVxdWVzdCBhbmQgc2VuZCBzdGFydCBldmVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwpOiBDcmVh
dGUgYSBuZXcgc291cmNlIGFuZCBzZXQgY2FsbGJhY2tzIG9mIHRoZSBzb3VyY2UuCisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wKTogU3RvcCBvbmdvaW5nIHJlcXVlc3Qu
IFRoaXMgc2VuZHMgZW5kIGV2ZW50IHN5bmNocm9ub3VzbHkgbm93IGFzIHdlIGNhbiBzdG9wCisg
ICAgICAgIGNhcHR1cmluZyBhdWRpbyBpbW1lZGlhdGVseS4gQWZ0ZXIgd2UgaW1wbGVtZW50IHNw
ZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kLCB0aGlzIGNvdWxkIGJlIGFzeW5jaHJvbm91cy4gCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpjdXJyZW50Q2xpZW50SWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0
aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbTogTW92ZSBjb2RlIGZvciBjcmVhdGluZyBD
TVNhbXBsZUJ1ZmZlclJlZiB0bworICAgICAgICBNZWRpYVV0aWxpdGllcy5oL2NwcCBzbyBpdCBj
YW4gc2hhcmVkIGJldHdlZW4gU3BlZWNoUmVjb2duaXRpb24gYW5kIFVzZXJNZWRpYSwgYXMgU3Bl
ZWNoIHJlY29nbml0aW9uIGJhY2tlbmQgCisgICAgICAgIHdpbGwgdGFrZSBDTVNhbXBsZUJ1ZmZl
clJlZiBhcyBpbnB1dC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9TYW1wbGVCdWZm
ZXIpOiBEZWxldGVkLgorCiAyMDIwLTExLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgV29ya2xldC5hZGRNb2R1bGUoKSBzaG91bGQgcmVqZWN0IHByb21pc2Ug
d2l0aCBhbiBBYm9ydEVycm9yIHdoZW4gdGhlIG5ldHdvcmsgbG9hZCBmYWlscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBjNGI0NzFhNGViODIwZjUyMjc2MmIyYTE4M2YzZGJiNzc3N2M5YjMyLi44MTkyOGM0MmZkYjI3
NjdlNWFlYzE5ODgyMjQwZTU4OGNiNzZlNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDIwLTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydCk6
CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlz
c2lvbkZvclJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFi
b3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVz
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjph
Ym9ydFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oOgorCiAyMDIwLTExLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3VlIHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdl
YiBJbnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMDIzZTE1M2RhM2M2N2Rl
MTdhMjUyYmVmMWNhYjI2ODdkNDM5MzA2ZC4uMzc4OWFhMzgzOTQwZDI1NzQxMjRiYzJmZjQzZTdl
ZWM0YWU5NTBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTYsNiArMTE2LDggQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVn
aW5SZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuaAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuaAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCiAg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKICAg
ICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyLmgKQEAgLTEyNCw2ICsxMjYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5o
CiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXplci5oCiAKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJl
YW1DaHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDYwNWM1ZDAwMzg5YWMxNGU2
YjI3ZjMzYWI1Mjg0YzllMDg3MGEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCww
ICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlKERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhcnRPckVycm9yQ2FsbGJhY2sm
JiBzdGFydE9yRXJyb3JDYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
IG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4o
V1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHN0YXJ0T3JFcnJvckNhbGxiYWNrKSk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShz
dGFydE9yRXJyb3JDYWxsYmFjayk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTRhMzE0OTM4NmJlYTUx
ZGYzMTFkOTE3ZDM2NjRlODkwYWMwNjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNz
IE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjsK
K2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOworCitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlVHlwZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICB1c2luZyBT
dGFydE9yRXJyb3JDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlLCBjb25zdCBTdHJpbmcmKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlKERhdGFDYWxsYmFjayYmLCBTdGFydE9yRXJyb3JDYWxsYmFjayYmKTsKKworcHJpdmF0ZToK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsPiBtX2ltcGw7CisjZW5kaWYKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZp
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YTY4YWVjN2EzYjZmNjY4YWM5MGUyZDhhNjhmN2ZmNzMyOWNkMjBi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjIyM2Ri
M2U1OTNhZjhmMjc1ZGI3YzhmMDk3NDg4NWExNjQ1NjFjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmgiCisjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIgorI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
ICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxp
c3QuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKK3N0YXRpYyBjb25zdCB2b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAg
c3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51
bWJlcigpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lk
ZW50aWZpZXIpOworfQorCitzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJl
dHVybiBsb2dnZXI7Cit9CisjZW5kaWYKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChEYXRhQ2FsbGJhY2smJiBk
YXRhQ2FsbGJhY2ssIFN0YXJ0T3JFcnJvckNhbGxiYWNrJiYgc3RhcnRPckVycm9yQ2FsbGJhY2sp
CisgICAgOiBtX2lkZW50aWZpZXIoU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKSkKKyAgICAsIG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0YUNhbGxi
YWNrKSkKKyAgICAsIG1fc3RhcnRPckVycm9yQ2FsbGJhY2soV1RGTW92ZShzdGFydE9yRXJyb3JD
YWxsYmFjaykpCit7CisgICAgT3B0aW9uYWw8Q2FwdHVyZURldmljZT4gY2FwdHVyZURldmljZTsK
KyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBkZXZpY2VzID0gUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1ZGlvQ2FwdHVyZURl
dmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOworICAgIGZvciAoYXV0byBkZXZpY2UgOiBk
ZXZpY2VzKSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgIAorICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAgICBj
YXB0dXJlRGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0KCkp
IHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7
CisgICAgICAgIGludm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RXJyb3IsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRTb3VyY2UoKmNhcHR1cmVEZXZpY2UpOwor
ICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKTsKK30KKwordm9pZCBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmlj
ZSYgY2FwdHVyZURldmljZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY2FwdHVyZURldmljZSwgeyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7
CisgICAgICAgIGludm9rZVN0YXJ0T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RXJyb3IsIHJlc3VsdC5lcnJvck1lc3NhZ2UpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9zb3VyY2UgPSByZXN1bHQuc291cmNlKCk7CisgICAgbV9zb3VyY2UtPmFk
ZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigq
dGhpcyk7CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKKyAgICBpZiAoIW51bGxMb2dnZXIoKS5nZXQoKSkgeworICAgICAgICBudWxsTG9nZ2VyKCkg
PSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbnVsbExvZ2dlcigpLT5zZXRFbmFibGVk
KHRoaXMsIGZhbHNlKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c2V0TG9nZ2VyKCpudWxsTG9n
Z2VyKCksIG5leHRMb2dJZGVudGlmaWVyKCkpOworI2VuZGlmCit9CisKK1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
KCkKK3sKKyAgICBpZiAobV9zb3VyY2UpIHsKKyAgICAgICAgbV9zb3VyY2UtPnJlbW92ZUF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworICAgICAgICBtX3NvdXJjZS0+c3RvcCgpOworICAgIH0KK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29u
c3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3Qg
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkK
K3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0
Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKworICAgIGF1dG8gYXVk
aW9EZXNjcmlwdGlvbiA9IHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsK
KyAgICBpZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERlc2NyaXB0aW9u
KCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2NyaXB0aW9uKSB7
CisgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Y3JlYXRl
KGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsICptX3NvdXJjZSk7CisgICAgICAgIGlmIChk
YXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAgICAgICAg
ICAgaW52b2tlU3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFcnJvciwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0Iik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9ybWF0
KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpbnZva2VTdGFydE9yRXJyb3JDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCAiVW5hYmxlIHRvIHNldCBv
dXRwdXQgZm9ybWF0Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpZiAobV9kYXRhU291cmNlTG9jay50cnlMb2NrKCkpCisgICAgICAgICAgICBtX2RhdGFTb3Vy
Y2UgPSBXVEZNb3ZlKGRhdGFTb3VyY2UpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9kYXRhU291cmNlLT5wdXNoU2FtcGxlcyh0aW1lLCBkYXRhLCBz
YW1wbGVDb3VudCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgdGltZSwgYXVkaW9EZXNjcmlwdGlvbiwgc2FtcGxlQ291bnRdIHsKKyAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRv
IGRhdGEgPSBXZWJBdWRpb0J1ZmZlckxpc3QgeyBhdWRpb0Rlc2NyaXB0aW9uLCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oc2FtcGxlQ291bnQpIH07CisgICAgICAgIAorICAgICAgICBtX2RhdGFTb3Vy
Y2VMb2NrLmxvY2soKTsKKyAgICAgICAgbV9kYXRhU291cmNlLT5wdWxsU2FtcGxlcygqZGF0YS5s
aXN0KCksIHNhbXBsZUNvdW50LCB0aW1lLnRpbWVWYWx1ZSgpLCAwLCBBdWRpb1NhbXBsZURhdGFT
b3VyY2U6OkNvcHkpOworICAgICAgICBtX2RhdGFTb3VyY2VMb2NrLnVubG9jaygpOworCisgICAg
ICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNv
dW50KTsKKyAgICB9KTsKKyNlbHNlCisgICAgbV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVz
Y3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0YXJ0ZWQoKQoreworICAgIGludm9rZVN0YXJ0
T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6QXVkaW9TdGFydCk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3Rv
cHBlZCgpCit7CisgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKTsKKyAgICBp
bnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVy
cm9yLCAiU291cmNlIGlzIHN0b3BwZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQoreworICAgIGludm9rZVN0YXJ0
T3JFcnJvckNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsICJTb3Vy
Y2UgaXMgbXV0ZWQiKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsOjppbnZva2VTdGFydE9yRXJyb3JDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBlcnJvcikKK3sKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkp
IHsKKyAgICAgICAgbV9zdGFydE9yRXJyb3JDYWxsYmFjayh0eXBlLCBlcnJvcik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCB0eXBlLCBlcnJvciA9IGVycm9yLmlzb2xhdGVkQ29weSgpXSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
bV9zdGFydE9yRXJyb3JDYWxsYmFjayh0eXBlLCBlcnJvcik7CisgICAgfSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTc0YmM0NDJjNjQ0MWFlNjJhYWMzMThjN2UyYzU0MTE3YjEyOTc3
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApAQCAtMCwwICsxLDg0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVk
ZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUlkZW50aWZpZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUg
IkF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworY2xh
c3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworZW51bSBjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwKKyAgICA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZl
cgorICAgICwgcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHVzaW5nIERhdGFD
YWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1B
dWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAg
dXNpbmcgU3RhcnRPckVycm9yQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSwgY29uc3QgU3RyaW5nJik+OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwoRGF0YUNhbGxiYWNrJiYsIFN0YXJ0T3JFcnJvckNhbGxiYWNrJiYpOwor
ICAgIH5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCk7CisKK3ByaXZhdGU6Cisg
ICAgdm9pZCBzZXRTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYpOworICAgIHZvaWQgaW52b2tl
U3RhcnRPckVycm9yQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBjb25zdCBT
dHJpbmcmID0gbnVsbFN0cmluZygpKTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJj
ZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwor
CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CisgICAgRGF0YUNhbGxiYWNrIG1fZGF0YUNhbGxiYWNrOworICAgIFN0YXJ0T3JFcnJvckNh
bGxiYWNrIG1fc3RhcnRPckVycm9yQ2FsbGJhY2s7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IG1fc291cmNlOworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPEF1ZGlv
U2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291cmNlOworICAgIExvY2sgbV9kYXRhU291cmNlTG9j
azsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zMzFlZWVkYTExY2M3OTU4ZjdiZjA1NjQ1MjdjN2ZiMjI1ODQxYWNiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXplci5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlh
VXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5k
YXRpb24uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6
ZXI6OlNwZWVjaFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDog
bV9kZWxlZ2F0ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnJlc2V0KCkKK3sKKyAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZSA9IG51
bGxwdHI7CisKKyAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0
ZWQiIH07CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVFcnJvcigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml6ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlm
aWVyID0gaWRlbnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZVR5cGU6OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKGlkZW50aWZpZXIpOworfQor
Cit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1dG8gZGF0YUNh
bGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGNvbnN0IFdURjo6TWVkaWFU
aW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkgeworICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgICAgIGF1dG8gYnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwg
ZGVzY3JpcHRpb24sIFBBTDo6dG9DTVRpbWUodGltZSksIHNhbXBsZUNvdW50KTsKKyAgICAgICAg
VU5VU0VEX1BBUkFNKGJ1ZmZlcik7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0odGltZSk7
CisgICAgICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRlc2Ny
aXB0aW9uKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKHNhbXBsZUNvdW50KTsKKyNlbmRpZgorICAg
IH07CisKKyAgICBhdXRvIHVwZGF0ZVN0YXRlQ2FsbGJhY2sgPSBbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllcl0oU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgQVNTRVJUKG1fY2xpZW50SWRlbnRp
ZmllciAmJiBtX2NsaWVudElkZW50aWZpZXIudmFsdWUoKSA9PSBpZGVudGlmaWVyKTsKKyAgICAg
ICAgaWYgKHR5cGUgIT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvcikgeworICAg
ICAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoaWRlbnRpZmllciwgdHlwZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBlcnJvck1lc3NhZ2UgfTsKKyAgICAgICAg
bV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihp
ZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfTsK
KworICAgIG1fc291cmNlID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2U+KFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZSh1cGRhdGVTdGF0ZUNhbGxiYWNrKSk7
Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVz
dWx0IHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50
aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHN0b3BJbnRlcm5hbCgpOworCisgICAgaWYg
KHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6
WWVzKSB7CisgICAgICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3BlZWNo
IHJlY29nbml0aW9uIGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVnYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGllbnRJ
ZGVudGlmaWVyLCByZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlmaWVy
ID0gV1RGOjpudWxsb3B0OworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5h
bCgpCit7CisgICAgaWYgKG1fc291cmNlKSB7CisgICAgICAgIG1fc291cmNlID0gbnVsbHB0cjsK
KyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpBdWRp
b0VuZCkpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1
MTU2M2IxOGM3MTYyNzI5Yzk2ZjFjZDRmYjVmZjE2NDE3MTg0ZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIpOworICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7
IE5vLCBZZXMgfTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50
Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQor
Citwcml2YXRlOgorICAgIHZvaWQgcmVzZXQoKTsKKyAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBzdG9w
SW50ZXJuYWwoKTsKKworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNr
IG1fZGVsZWdhdGVDYWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggMjU5NDU4MWI3MjA5MTJjMGI5NTUzYmI0MTBkNTFkODhkMGE4MTU2
Yy4uOGFhM2FjNGY2OTAyZDYyMjA0YjVjN2IyNjQ4ZjJiMGY0NTQ1MGE3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTE5OSw2ICsxOTksOSBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIu
Y3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVz
aXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJiMzNjNGJjZTc0ZGRlYWQ4
MThiYTNjYjJhNDQ5MzE1NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNmYjI1ZjEyNjAyNWQzMmYxMGQ3
Nzg2MDYxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3IEBAIHBs
YXRmb3JtL2NvY29hL0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tleUV2ZW50
Q29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQogcGxhdGZv
cm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0
aWxpdGllcy5jcHAKIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQogcGxh
dGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVhNTIyYzJhYmViMGQxNmQ1YzY4
ODZjNzE3MDY1NzI0OTIwYzk0ZS4uZTdlNWI5Mjg0MWM5MzlhNTc2MGY0YWIzNDc0ZTczMTE0NDAz
NzExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTIwLDggKzEyMCw4IEBACiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAv
KiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5o
ICovOyB9OwogCQkwNzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51
Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2
MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVW
aWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYz
MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKLQkJMDcz
Qjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OworCQkwNzNCODc2NzFFNDM4
NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyog
QXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxl
RGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NEU4MkJC
MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAv
KiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFj
a1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlN
ZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAw
Qjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtMjc4Nyw2ICsyNzg3LDggQEAK
IAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIw
MDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50
TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
OTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcw
IC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87
IH07CisJCTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4
QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBN
ZWRpYVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5
NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2
MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg0OCw2
ICsyODUwLDkgQEAKIAkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFE
NUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjFE
NUMxMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUJGMTJENTMzNTYwMDgzMkJF
QyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMkNDOTMyNDI3RkI5QzAwNTg1
MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2
QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4
MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2
QjgyMTI1NjdBMEQ4MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1
NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAw
N0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0
b25Hcm91cHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0Y5QjZFMTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQw
NjQgLyogSlNDb21tZW50LmggKi87IH07CkBAIC0xMTQyOSw2ICsxMTQzNCwxMCBAQAogCQk5Mzk4
ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVk
aWFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyOTI1
NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUYyNTQ5
NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTExNTE1LDYgKzExNTI0LDExIEBACiAJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAvKiBK
U1dlYkdMTG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJHTExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3Rl
clJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3RlclJhbmdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4
OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MjAyNTY3QTBDQzAwQTA4NDg4IC8qIFNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2Vi
R0xDb250ZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViR0xDb250ZXh0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2
RjFFQjEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzU3Miw2ICsyMzU4NiwxMyBAQAogCQkJcGF0
aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTNGNkI4MEUy
NTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NDA5LDYgKzI0NDMw
LDggQEAKIAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5tbSAq
LywKIAkJCQkwNkU4MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JBNjAwOEI0REZFIC8qIExvY2FsaXplZFN0
cmluZ3NDb2NvYS5tbSAqLywKKwkJCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFV
dGlsaXRpZXMuY3BwICovLAorCQkJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0
aWxpdGllcy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJl
Z2lzdHJ5Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJCQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2
QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tICovLApAQCAtMjU2MDEsNiAr
MjU2MjQsNyBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0Y2QjgwRTI1NjZFREUx
MDBBMDg0ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERP
TVdpbmRvdytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3
NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZB
NDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKQEAgLTI1NjEw
LDYgKzI1NjM0LDExIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3
MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJ
CTkzRjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UuY3BwICovLAorCQkJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2UuaCAqLywKKwkJCQk5M0Y2QjgyMDI1NjdBMENDMDBBMDg0ODggLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSWRlbnRpZmllci5oICovLAorCQkJCTkzRjZC
ODFEMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
LmNwcCAqLywKKwkJCQk5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oICovLAogCQkJCTkzQTA0ODFEMjU0OTU0RTUwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0EwNDgyNDI1NDk1NEU5
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggKi8sCiAJCQkJ
OTNBMDQ4MjAyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIuaCAqLywKQEAgLTI1NjM0LDYgKzI1NjYzLDggQEAKIAkJCQk5MzQ5NTBD
NTI1Mzk0MzUzMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbCAqLywK
IAkJCQk5M0Q2Qjc2RTI1NEI4RTFCMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUu
Y3BwICovLAogCQkJCTkzRDZCNzZEMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZS5oICovLAorCQkJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNv
Z25pemVyLmNwcCAqLywKKwkJCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVj
b2duaXplci5oICovLAogCQkJCUFBMkE1QUJEMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50
aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUJFMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50
aGVzaXMuaCAqLywKIAkJCQlBQTJBNUFCRjE2QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhl
c2lzLmlkbCAqLywKQEAgLTMzNTE5LDYgKzMzNTUwLDcgQEAKIAkJCQk5MzJDQzBCNzFERkZEMTU4
MDA0QzBGOUYgLyogTWVkaWFUcmFja0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0MxQzBFMjFCRkI2MDAxMDBCRDIyNTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyogTWVkaWFV
c2FnZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAv
KiBNZWRpYVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMxQkQ4MDY0RTAw
NTVEODFGIC8qIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0IxNkMxODA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxNzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJzb3IuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzQ0MTAsNiArMzQ0NDIsOSBAQAogCQkJCTYyNkNERTBGMTE0MDQyNEMw
MDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUw
Q0QyNTM5NDM2MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4MjIyNTY3QTY1NjAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGNkI4
MjEyNTY3QTBEODAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0EwNDgyQzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRDI1
NDk1NTFCMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQyNCw2ICszNDQ1OSw3IEBACiAJCQkJOTNBMDQ4
MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThE
RDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlD
MEQyNzI1NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNp
c0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8q
IFNwZWVjaFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDhiNGY1
NjMzMmQwNTlkOWZiMTc3NTU0MzBhMWY4ZTA1NjJjY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEs
NzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFV
dGlsaXRpZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNs
dWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4K
KyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlw
dGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBX
VEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5w
bGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9ybWF0RGVzY3JpcHRp
b25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAs
IG51bGxwdHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAgIGlmIChlcnJvcikg
eworICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBy
ZXR1cm4gYWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNp
emVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICAvLyBGSVhNRTogY2hlY2sgaWYgd2UgY2FuIHJldXNl
IHRoZSBmb3JtYXQgZm9yIG11bHRpcGxlIHNhbXBsZSBidWZmZXJzLgorICAgIGF1dG8gZm9ybWF0
ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFm
b3JtYXQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVs
bHB0ciwgZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQs
IHRpbWUsIG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAg
ICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0
aW9ucyBmYWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3Ig
PSBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5n
ZXQoKSwga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNh
c3Q8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgewor
ICAgICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVm
ZmVyIGxpc3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gYnVmZmVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YjY3YzY2Nzg1ZDQ3ZDI3MDJiNWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApA
QCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxD
b3JlTWVkaWEvQ01UaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVm
IGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVm
ZmVyUmVmOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVz
Y3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYpOworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCBDTVRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5tbQppbmRleCBhY2I0OTQ0MzA4ZDFjYTQzZjlmNjk5YzUxMDQ2MDA4ZjNkNzM1
NTA3Li5iZGQ3MGZkOWNhYWUyZGVjY2NiMjQwYmMyMWIyNWE0MmZjNjM3NjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRl
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0
LmgiCiAjaW5jbHVkZSA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXIuaD4KQEAgLTQ0Myw0MCAr
NDQ0LDYgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1w
bGVCdWZmZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3It
PmFkZFNhbXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQogCi1zdGF0
aWMgaW5saW5lIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zv
cm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
KQotewotICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5k
ZXNjcmlwdGlvbik7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRy
OwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwg
JmZvcm1hdCk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1l
ZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKLX0KLQotc3RhdGljIGlu
bGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVy
KGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKLXsKLSAg
ICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24p
OwotICAgIGlmICghZm9ybWF0KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENN
QXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxMLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNv
dW50LCB0aW1lLCBOVUxMLCAmc2FtcGxlQnVmZmVyKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlciBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVk
IHdpdGggJWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBh
dXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKLQotICAgIGVycm9yID0gQ01TYW1w
bGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1
ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciBDTVNhbXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0
dXJuIGJ1ZmZlcjsKLX0KLQogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5k
QXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYs
IHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVh
dGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1w
bGVUaW1lLCBzYW1wbGVDb3VudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXggODU2NTE5ZmI2ODcxM2VkZDlhY2NmMmVl
MWMyNDc3NGY5NzNmOTkxNi4uZDY5MDczZjg1OTA3YmJiYzM3MmVmZmY2NTA4MzhmZGIxZDA3NzJj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
U2VydmVyLmNwcApAQCAtNDYsMTIgKzQ2LDExIEBAIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3RpCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFN0cmluZyYm
IGxhbmcsIGJvb2wgY29udGludW91cywgYm9vbCBpbnRlcmltUmVzdWx0cywgdWludDY0X3QgbWF4
QWx0ZXJuYXRpdmVzLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4pCiB7CiAgICAgTUVT
U0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBBU1NFUlQoIW1fcGVuZGluZ1JlcXVl
c3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBBU1NFUlQoIW1fb25nb2luZ1Jl
cXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBBU1NFUlQoIW1fcmVxdWVz
dHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwogICAgIGF1dG8gcmVxdWVzdEluZm8gPSBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZvIHsgY2xpZW50SWRlbnRpZmllciwg
V1RGTW92ZShsYW5nKSwgY29udGludW91cywgaW50ZXJpbVJlc3VsdHMsIG1heEFsdGVybmF0aXZl
cywgV1RGTW92ZShvcmlnaW4pIH07Ci0gICAgYXV0byYgcGVuZGluZ1JlcXVlc3QgPSBtX3BlbmRp
bmdSZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3ItPnZh
bHVlOworICAgIGF1dG8mIG5ld1JlcXVlc3QgPSBtX3JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlm
aWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92
ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICByZXF1ZXN0UGVybWlzc2lv
bkZvclJlcXVlc3QoKnBlbmRpbmdSZXF1ZXN0KTsKKyAgICByZXF1ZXN0UGVybWlzc2lvbkZvclJl
cXVlc3QoKm5ld1JlcXVlc3QpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpy
ZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0JiByZXF1ZXN0KQpAQCAtNjQsNjYgKzYzLDcwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1Jl
cXVlc3QtPmNsaWVudElkZW50aWZpZXIoKTsKLSAgICAgICAgYXV0byB0YWtlblJlcXVlc3QgPSBt
X3BlbmRpbmdSZXF1ZXN0cy50YWtlKGlkZW50aWZpZXIpOwogICAgICAgICBpZiAoZGVjaXNpb24g
PT0gU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpIHsKKyAgICAgICAg
ICAgIG1fcmVxdWVzdHMucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgICAgICAgICAgYXV0byBlcnJv
ciA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIl9z
IH07CiAgICAgICAgICAgICBzZW5kVXBkYXRlKGlkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IsIGVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIG1fb25nb2luZ1JlcXVlc3RzLmFkZChpZGVudGlmaWVyLCBX
VEZNb3ZlKHRha2VuUmVxdWVzdCkpOwotICAgICAgICBoYW5kbGVSZXF1ZXN0KCptX29uZ29pbmdS
ZXF1ZXN0cy5nZXQoaWRlbnRpZmllcikpOworICAgICAgICBoYW5kbGVSZXF1ZXN0KGlkZW50aWZp
ZXIpOwogICAgIH0pOwogfQogCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVS
ZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllcikKK3sKKyAgICBpZiAoIW1fcmVjb2duaXplcikgeworICAgICAg
ICBtX3JlY29nbml6ZXIgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml6ZXI+KFt0aGlzLCB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShhdXRvJiB1cGRhdGUpIHsKKyAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRv
IGNsaWVudElkZW50aWZpZXIgPSB1cGRhdGUuY2xpZW50SWRlbnRpZmllcigpOworICAgICAgICAg
ICAgaWYgKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byB0eXBlID0gdXBkYXRlLnR5cGUoKTsK
KyAgICAgICAgICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJy
b3IgfHwgdHlwZSA9PSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkKKyAgICAgICAg
ICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKworICAgICAgICAg
ICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBtX3JlY29n
bml6ZXItPnN0YXJ0KGNsaWVudElkZW50aWZpZXIpOworfQorCiB2b2lkIFNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpzdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElkZW50aWZpZXIpOwotICAgIGlmIChtX3BlbmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXpl
ciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRDbGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRl
bnRpZmllcikgeworICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJ
ZGVudGlmaWVyKSk7Ci0gICAgc3RvcFJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChjbGll
bnRJZGVudGlmaWVyKSk7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZp
ZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50
SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVu
dGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVy
ICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVu
dGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyOjpTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpObyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBBU1NFUlQobV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRl
bnRpZmllcikpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRha2UoY2xp
ZW50SWRlbnRpZmllcik7Ci0gICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLSAgICBhdXRvIHVw
ZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoY2xpZW50SWRl
bnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2
ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIGlmIChtX3JlcXVlc3RzLnJlbW92
ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7CiB9CiAKIHZvaWQg
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmludmFsaWRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAg
IE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9v
bmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAocmVxdWVzdCkK
LSAgICAgICAgYWJvcnRSZXF1ZXN0KCpyZXF1ZXN0KTsKLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RhcnQgY2FwdHVyaW5nIGF1ZGlvIGFuZCBy
ZWNvZ25pdGlvbi4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVl
c3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8v
IFRPRE86IHN0b3AgY2FwdHVyaW5nIGF1ZGlvIGFuZCBmaW5hbGl6aW5nIHJlc3VsdHMgYnkgcmVj
b2duaXppbmcgY2FwdHVyZWQgYXVkaW8uCi19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OmFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9u
IGltbWVkaWF0ZWx5IHdpdGhvdXQgZ2VuZXJhdGluZyByZXN1bHRzLgorICAgIGlmIChtX3JlcXVl
c3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgeworICAgICAgICBpZiAobV9yZWNvZ25pemVy
ICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVu
dGlmaWVyKQorICAgICAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKCk7CisgICAgfQogfQogCiB2
b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gcmVzdWx0KQpAQCAtMTMzLDcgKzEzNiwxMiBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgKmVycm9y
KTsKICAgICBpZiAodHlwZSA9PSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlJlc3VsdCkKICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGU6OmNyZWF0ZVJlc3VsdChjbGllbnRJZGVudGlmaWVyLCAqcmVzdWx0KTsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUo
dXBkYXRlKSwgbV9pZGVudGlmaWVyKTsKKyAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7Cit9CisKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSk7CiB9
CiAKIElQQzo6Q29ubmVjdGlvbiogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Om1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5oCmluZGV4IDM2M2NhMjBlYmJlM2NmY2VlZGFmNThmZWUzNGZi
YzJlMWQxOGEyNGQuLmE3Zjc2ZDM4ZWU1MDFlNTgyZjc5YTU0NGZhMDI3Y2IwYjMyMjhmZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NwZWVjaFJlY29nbml6ZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTgsMTAgKzU5LDkgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2b2lkIHN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgYWJvcnRSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOworICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKICAgICB2
b2lkIHNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBPcHRpb25h
bDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCwgT3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YT4+ID0gV1RGOjpu
dWxsb3B0KTsKKyAgICB2b2lkIHNlbmRVcGRhdGUoY29uc3QgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25VcGRhdGUmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CkBAIC03Miw5ICs3Miw5IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CiAgICAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXJJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3Q+PiBtX3BlbmRpbmdSZXF1ZXN0czsKLSAgICBIYXNoTWFwPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+PiBtX29uZ29pbmdSZXF1ZXN0
czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJl
cXVlc3Q+PiBtX3JlcXVlc3RzOwogICAgIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNr
ZXIgbV9wZXJtaXNzaW9uQ2hlY2tlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXplcj4gbV9yZWNvZ25pemVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNGZiNDhlMTVmNTc0NTU1OWJhNmMxYWJmY2QyMzY2MTQ0MDM0ZmVmNC4uOTc3NTA3
ZDk1ZTRhZGI2NTY5MTMyMDkzYzM4ZDcyN2VmNWQwMzJjNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDIwLTExLTIwICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBhdWRpbyBjYXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
ZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJl
Y29nbml0aW9uLXRoZW4tc3RvcC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDIwLTExLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
SW1wb3J0IHdlYi1wbGF0Zm9ybS10ZXN0cy91aWV2ZW50cyB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAwNWNmNWEwMGMwOTIxOTlkY2E1MzM4ZGU4MmNiOTkxOGZiYmEy
ZWYxLi5iNDMwYTJhMmRkNmIzNGE2OTU4ZDUyNGVmMWRlM2QwODZjMmFiNDgzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE3OSw2ICsxNzksOCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9JREJPYmplY3Qt
bGVhay5odG1sIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2NhbGwtdGV4dC1kaWQtY2hhbmdlLWluLXRl
eHQtZmllbGQtd2hlbi10eXBpbmcuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9pbi1hcHAtYnJv
d3Nlci1wcml2YWN5LyBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9u
LWVycm9yLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdGhlbi1zdG9wLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KIAogIyBPbmx5IHBhcnRpYWwgc3Vw
cG9ydCBvbiBDb2NvYSBwbGF0Zm9ybXMuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NwZWVjaC1hcGkvIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJhNzQ2MWRjN2NjMDE0ZGI2MmQ2NWM2YjIw
YjZiMGRhMjU2ZWE0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNo
cmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdo
ZW4gc3RhcnQgYW5kIHN0b3AgcmVjb2duaXRpb24gbm9ybWFsbHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9u
KCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQKK1JlY2VpdmVkIGF1
ZGlvc3RhcnQgZXZlbnQKK1BBU1MgcmVjb2duaXRpb24uc3RvcCgpIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUmVjZWl2ZWQgYXVkaW9lbmQgZXZlbnQKK1JlY2VpdmVkIGVuZCBldmVudAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24t
dGhlbi1zdG9wLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNWQyYjA3OGM2ZTIxOTRj
NTllNzg5ZDM1YTQ2NzhiMTRkZmNlY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCkBA
IC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlZlcmlmeSB0aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0bHkgd2hlbiBz
dGFydCBhbmQgc3RvcCByZWNvZ25pdGlvbiBub3JtYWxseS4iKTsKKworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93
KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjb2duaXRpb24u
b25zdGFydCA9IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIp
OworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1
ZygiUmVjZWl2ZWQgYXVkaW9zdGFydCBldmVudCIpOworCisgICAgc2hvdWxkTm90VGhyb3coInJl
Y29nbml0aW9uLnN0b3AoKSIpOworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvZW5kID0gKGV2ZW50
KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50Iik7Cit9CisKK3JlY29n
bml0aW9uLm9uZW5kID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGVuZCBldmVu
dCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25p
dGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVj
b2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMjEwYzk0YTI0Y2M5ODVmMGY2MjYwNTNkZDEyNDQzMWIzNWMz
ZDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlv
bi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAK
K1ZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0cyBvbmdvaW5n
IG9uZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24g
PSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IHJlY29nbml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNlY29u
ZFJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyByZWNlaXZlZFN0YXJ0IGlzIHRydWUKK1BBU1MgZXZlbnQuZXJyb3IgaXMg
ImFib3J0ZWQiCitQQVNTIGV2ZW50Lm1lc3NhZ2UgaXMgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFy
dGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vj
b25kLXJlY29nbml0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZTc0M2ZmM2Y2MDkx
MGExZDE0NDBmMTQ0ZDZiZDk1YTFmYzczNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCkBA
IC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlZlcmlmeSB0aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0
cyBvbmdvaW5nIG9uZS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBT
cGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjZWl2ZWRTdGFydCA9IGZhbHNlOworcmVjb2duaXRp
b24ub25zdGFydCA9IChldmVudCkgPT4geworICAgIHJlY2VpdmVkU3RhcnQgPSB0cnVlOworfQor
CityZWNvZ25pdGlvbi5vbmVycm9yID0gKGV2ZW50KSA9PiB7CisgICAgc2hvdWxkQmVUcnVlKCJy
ZWNlaXZlZFN0YXJ0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5lcnJvciIs
ICJhYm9ydGVkIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5tZXNzYWdlIiwg
IkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
Kworc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3Nob3VsZE5vdFRocm93
KCJzZWNvbmRSZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworc2hvdWxk
Tm90VGhyb3coInNlY29uZFJlY29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZDUzNGEwNmEyMmEzYjI5N2I3NTQzZDQx
Yjg2OWY1NGVmMGJjYzJiLi44MTMxMjA2NDBiMmEwNTIyYjhmZDY2MTY5Mjg5MTVmYWYzZjYxN2U0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODA0LDQg
KzgwNCw2IEBAIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXBvcnQtZGVs
YXkuaHRtbCBbIFBhc3MgXQogIyBXZWJLaXQyIG9ubHkuCiBqcy90aHJvdy1sYXJnZS1zdHJpbmct
b29tLmh0bWwgWyBQYXNzIF0KIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJv
ci5odG1sIFsgUGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9u
LXRoZW4tc3RvcC5odG1sIFsgUGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNl
Y29uZC1yZWNvZ25pdGlvbi5odG1sIFsgUGFzcyBdCiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVu
dGVyLXdoaWxlLWV4aXRpbmcuaHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414754</attachid>
            <date>2020-11-20 22:26:19 -0800</date>
            <delta_ts>2020-11-20 22:56:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120222618.patch</filename>
            <type>text/plain</type>
            <size>75600</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uMzA5MDc0MDQyOTJhMzQ3MGMwMmEwNDlhNDEzNDNl
NmRiOWNiM2E3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUsIHNvIGNh
bGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIg
d291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAgICAgVGVz
dHM6IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJl
Y29nbml0aW9uLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOiBBZGRlZC4gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCBwcm92aWRlcyAKKyAgICAgICAgaW1wbGVtZW50
YXRpb24gb2YgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIG9uIHdoZW4gRU5BQkxFKE1F
RElBX1NUUkVBTSkgaXMgdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6Om5leHRMb2dJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxMb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUpOiBQdXNoIGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8K
KyAgICAgICAgcHVsbCBmcm9tIGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VT
dGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Omludm9rZVVwZGF0ZUNhbGxi
YWNrKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I6
Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlRGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXplcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXplcjo6c3RhcnRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVy
OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5h
bCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OmN1cnJlbnRDbGllbnRJZGVudGlm
aWVyIGNvbnN0KToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29j
b2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
TWVkaWFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRl
ci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tOiBNb3ZlIGNvZGUgZm9y
IGNyZWF0aW5nIENNU2FtcGxlQnVmZmVyUmVmIHRvCisgICAgICAgIE1lZGlhVXRpbGl0aWVzLmgv
Y3BwIHNvIGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBTcGVlY2hSZWNvZ25pdGlvbiBhbmQgVXNlck1l
ZGlhLCBhcyBTcGVlY2ggcmVjb2duaXRpb24gYmFja2VuZCAKKyAgICAgICAgd2lsbCB0YWtlIENN
U2FtcGxlQnVmZmVyUmVmIGFzIGlucHV0LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9G
b3JtYXREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisKIDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrbGV0LmFkZE1vZHVsZSgpIHNob3VsZCByZWpl
Y3QgcHJvbWlzZSB3aXRoIGFuIEFib3J0RXJyb3Igd2hlbiB0aGUgbmV0d29yayBsb2FkIGZhaWxz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGM0YjQ3MWE0ZWI4MjBmNTIyNzYyYjJhMTgzZjNkYmI3Nzc3YzliMzIuLjNl
NjVjNmI3YzBhYjA1ODViYzI0NjBlNTI3OWQyMzAyYjI4ZWJiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9u
IG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpzdGFydFByb2Nlc3NpbmdSZXF1ZXN0KTogQ2hlY2sg
YW5kIGVuYWJsZSBtb2NrIGRldmljZXMgYmFzZWQgb24gCisgICAgICAgIHByZWZlcmVuY2UgYXMg
U3BlZWNoUmVjb2duaXRpb24gbmVlZHMgaXQgZm9yIHRlc3RpbmcuCisgICAgICAgICogVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpzZW5kVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0UmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3lu
Y0lmTW9ja0RldmljZXNFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorCiAyMDIwLTExLTE5ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjT1NdIElzc3VlIHNhbmRib3ggZXh0ZW5zaW9uIHRvIFdlYiBJ
bnNwZWN0b3Igc2VydmljZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMDIzZTE1M2RhM2M2N2RlMTdh
MjUyYmVmMWNhYjI2ODdkNDM5MzA2ZC4uMzc4OWFhMzgzOTQwZDI1NzQxMjRiYzJmZjQzZTdlZWM0
YWU5NTBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTYsNiArMTE2LDggQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvcGx1Z2lucy9QbHVnaW5S
ZXBsYWNlbWVudC5oCiAgICAgTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVu
dC5oCiAKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
aAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwu
aAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oCiAgICAg
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50LmgKICAgICBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
LmgKQEAgLTEyNCw2ICsxMjYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0SW5mby5oCiAg
ICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmgKICAgICBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oCisgICAgTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXplci5oCiAKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1D
aHVuay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDg5Mjg4ODA4MTJlYmYyNTBhMmFk
MDI0OGE5ZGMwMTQzNGQyZGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcApAQCAtMCwwICsx
LDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIgor
I2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UoU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2sm
JiBkYXRhQ2FsbGJhY2ssIFVwZGF0ZUNhbGxiYWNrJiYgdXBkYXRlQ2FsbGJhY2spCit7CisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBPcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJl
RGV2aWNlOworICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDogZGV2aWNlcykgewor
ICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlID0g
ZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAg
IGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAgICAgICBhdXRvIGVycm9yID0g
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRp
b0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0dXJlIiB9OworICAgICAg
ICB1cGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xp
ZW50SWRlbnRpZmllciwgZXJyb3IpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1
dG8gcmVzdWx0ID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSgqY2FwdHVyZURldmljZSwg
eyB9LCB7IH0pOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgcmVzdWx0LmVycm9yTWVzc2FnZSB9OworICAgICAgICB1cGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3Ip
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92
ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3ZlKHVwZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFjayk7CisgICAgVU5VU0VEX1BB
UkFNKHN0YXJ0T3JFcnJvckNhbGxiYWNrKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1ODZmZjg1NzNh
MWVhOTJlMDYxMmM4OTU2OWZjMTY0MzFjNmQzN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV1RGIHsK
K2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgflNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlv
bjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgVXBkYXRl
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik+
OworICAgIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25pdGlvbkNv
bm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgVXBkYXRlQ2FsbGJhY2sm
Jik7CisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbD4gbV9pbXBsOworI2VuZGlm
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2YTU3N2M3YzExMjRjM2YzNDA3ZTgwN2M3YThlYmRk
YzQ4ODMwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtMCwwICsxLDE2MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIldl
YkF1ZGlvQnVmZmVyTGlzdC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAorc3RhdGljIGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlm
aWVyKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgbG9nSWRlbnRpZmllciA9IGNyeXB0b2dyYXBo
aWNhbGx5UmFuZG9tTnVtYmVyKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dm9pZCo+KCsrbG9nSWRlbnRpZmllcik7Cit9CisKK3N0YXRpYyBSZWZQdHI8TG9nZ2VyPiYgbnVs
bExvZ2dlcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxMb2dnZXI+PiBs
b2dnZXI7CisgICAgcmV0dXJuIGxvZ2dlcjsKK30KKyNlbmRpZgorCitTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKFNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgRGF0
YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBVcGRhdGVDYWxsYmFjayYmIHVwZGF0ZUNhbGxiYWNr
LCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisgICAgOiBtX2NsaWVudElkZW50
aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fZGF0YUNhbGxiYWNrKFdURk1vdmUoZGF0YUNhbGxi
YWNrKSkKKyAgICAsIG1fdXBkYXRlQ2FsbGJhY2soV1RGTW92ZSh1cGRhdGVDYWxsYmFjaykpCisg
ICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCit7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlv
U2FtcGxlT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CisgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAg
ICBpZiAoIW51bGxMb2dnZXIoKS5nZXQoKSkgeworICAgICAgICBudWxsTG9nZ2VyKCkgPSBMb2dn
ZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgbnVsbExvZ2dlcigpLT5zZXRFbmFibGVkKHRoaXMs
IGZhbHNlKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZS0+c2V0TG9nZ2VyKCpudWxsTG9nZ2VyKCks
IG5leHRMb2dJZGVudGlmaWVyKCkpOworI2VuZGlmCisKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyk7Cit9CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6
On5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKCkKK3sKKyAgICBtX3NvdXJjZS0+
cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBN
ZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQorewor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNU
eXBlKTsKKyAgICBhdXRvIGF1ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJj
ZS0+aW5wdXREZXNjcmlwdGlvbigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24o
KSAhPSBkZXNjcmlwdGlvbikgeworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBs
ZURhdGFTb3VyY2U6OmNyZWF0ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJj
ZS5nZXQoKSk7CisgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rl
c2NyaXB0aW9uKSkgeworICAgICAgICAgICAgaW52b2tlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0Iik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJj
ZS0+c2V0T3V0cHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBpbnZv
a2VVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCAiVW5h
YmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBpZiAobV9kYXRhU291cmNlTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAg
ICAgIG1fZGF0YVNvdXJjZSA9IFdURk1vdmUoZGF0YVNvdXJjZSk7CisgICAgICAgICAgICBtX2Rh
dGFTb3VyY2VMb2NrLnVubG9jaygpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRhdGEsIHNh
bXBsZUNvdW50KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudF0geworICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8g
ZGF0YSA9IFdlYkF1ZGlvQnVmZmVyTGlzdCB7IGF1ZGlvRGVzY3JpcHRpb24sIHN0YXRpY19jYXN0
PHVpbnQzMl90PihzYW1wbGVDb3VudCkgfTsKKyAgICAgICAgbV9kYXRhU291cmNlTG9jay5sb2Nr
KCk7CisgICAgICAgIG1fZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlzdCgpLCBzYW1w
bGVDb3VudCwgdGltZS50aW1lVmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpDb3B5
KTsKKyAgICAgICAgbV9kYXRhU291cmNlTG9jay51bmxvY2soKTsKKworICAgICAgICBtX2RhdGFD
YWxsYmFjayh0aW1lLCBkYXRhLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudCk7CisgICAg
fSk7CisjZWxzZQorICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBz
YW1wbGVDb3VudCk7CisjZW5kaWYKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjpzb3VyY2VTdGFydGVkKCkKK3sKKyAgICBpbnZva2VVcGRhdGVDYWxsYmFjayhT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpOworfQorCit2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQoKQoreworICAgIEFT
U0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7CisgICAgaW52b2tlVXBkYXRlQ2FsbGJh
Y2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgIlNvdXJjZSBpcyBzdG9wcGVk
Iik7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNl
TXV0ZWRDaGFuZ2VkKCkKK3sKKyAgICBpbnZva2VVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yLCAiU291cmNlIGlzIG11dGVkIik7Cit9CisKK3ZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6aW52b2tlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KQoreworICAgIGF1dG8gdXBkYXRlID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSht
X2NsaWVudElkZW50aWZpZXIsIHR5cGUpOworICAgIGlmICh0eXBlID09IFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3IpIHsKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25FcnJvciBl
cnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIGVycm9yTWVz
c2FnZSB9OworICAgICAgICB1cGRhdGUgPSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcik7CisgICAgfQorCisgICAgaWYgKGlzTWFp
blRocmVhZCgpKSB7CisgICAgICAgIG1fdXBkYXRlQ2FsbGJhY2sodXBkYXRlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0g
bWFrZVdlYWtQdHIodGhpcyksIHVwZGF0ZSA9IHVwZGF0ZS5pc29sYXRlZENvcHkoKV0geworICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fdXBk
YXRlQ2FsbGJhY2sodXBkYXRlKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNzk5YWQ1ZDJlZTVhMjVmNWI5M2EzMDU2MWQ0YzBjODU2Y2Y5MTQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllci5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiQXVkaW9TYW1wbGVE
YXRhU291cmNlLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBNZWRpYVRpbWU7
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bjsKK2NsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGU7CitlbnVtIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTsKKworY2xhc3MgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbAorICAgIDogcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6Ok9ic2VydmVyCisgICAgLCBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9TYW1wbGVPYnNlcnZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgdXNpbmcgRGF0YUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXVEY6Ok1lZGlh
VGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYsIHNpemVfdCk+OworICAgIHVzaW5nIFVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9p
ZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIsIERhdGFDYWxsYmFjayYmLCBVcGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJik7CisgICAgflNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoKTsK
KworcHJpdmF0ZToKKyAgICB2b2lkIGludm9rZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZSwgY29uc3QgU3RyaW5nJiA9IG51bGxTdHJpbmcoKSk7CisKKyAgICAvLyBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyCisgICAgdm9pZCBhdWRpb1Nh
bXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEm
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KSBmaW5hbDsKKworICAgIC8v
IFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyCisgICAgdm9pZCBzb3VyY2VTdGFydGVkKCkg
ZmluYWw7CisgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWw7CisgICAgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoKSBmaW5hbDsKKworICAgIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudElkZW50aWZpZXIgbV9jbGllbnRJZGVudGlmaWVyOworICAgIERhdGFDYWxsYmFjayBtX2Rh
dGFDYWxsYmFjazsKKyAgICBVcGRhdGVDYWxsYmFjayBtX3VwZGF0ZUNhbGxiYWNrOworICAgIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBMb2Nr
IG1fZGF0YVNvdXJjZUxvY2s7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uRXJyb3IuaAppbmRleCBkZjJkMzJmOGM2NGM5ZTRkYjBiMzBlZDMwNzRi
MGJmZGVkODdiM2MyLi40MTllOTg2MGE4YWM4YTg3Mzc3OWMyNTkwYTYyY2Q4YzBhNmY5MzcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FcnJvci5oCkBAIC00Niw2ICs0Niw4IEBAIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIHsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3Bl
ZWNoUmVjb2duaXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKKworICAgIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyB0eXBlLCBtZXNzYWdl
Lmlzb2xhdGVkQ29weSgpIH07IH0KIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJl
c3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oCmluZGV4IDYxNDRkMWZmMDcwNjg5Y2FiYmI4MTZjNGZiYTI5NzIzYWE0
M2YxYjIuLmE5YjA3ZTE5MmJkNzg1NDFkMDU5NTlhOGZmYWU3NTY3N2Y0OWFlOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oCkBAIC0zMyw2ICszMyw4IEBAIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlRGF0YSB7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2Rl
ciYpOworCisgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgaXNvbGF0ZWRDb3B5
KCkgY29uc3QgeyByZXR1cm4geyB0cmFuc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCBjb25maWRlbmNl
IH07IH0KIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CkBAIC02MCw2ICs2Miw4IEBAIHN0
cnVjdCBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgewogCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRl
Y29kZShEZWNvZGVyJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgaXNvbGF0
ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBhbHRlcm5hdGl2ZXMuaXNvbGF0ZWRDb3B5KCksIGlz
RmluYWwgfTsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNw
cAppbmRleCA5YTlhN2Q5MjA2OTY1NWM0NTcxNjA3ZGRhMThjNGU2YjMzMGY3MmQ1Li5hZWViODIx
Mzc0ZDcxNTlhOGNjYTNlMzg2NGI2OTBmMzAwYzI4ZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCkBA
IC05Niw0ICs5NiwxMyBAQCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6cmVzdWx0KCkgY29uc3QKICAgICApOwogfQogCitTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFsm
XSAoY29uc3QgU3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlIHsgbV9jbGllbnRJZGVudGlmaWVyLCBtX3R5cGUsIGVycm9yLmlzb2xh
dGVkQ29weSgpIH07IH0sCisgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YT4mIGRhdGEpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsg
bV9jbGllbnRJZGVudGlmaWVyLCBtX3R5cGUsIGRhdGEuaXNvbGF0ZWRDb3B5KCkgfTsgfSwKKyAg
ICAgICAgWyZdIChjb25zdCBhdXRvJikgeyByZXR1cm4gKnRoaXM7IH0KKyAgICApOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAppbmRleCA4OTE0OTE3OTNmNGUwMWVj
MmZmNjAxMDdjYjQ4NWY0ODhmYTQzZTg0Li4wNjk1NDE2MTk0YWI4MDBlZGUwMTRmOTk1MjUyMThj
OWJlYzA2MGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgZXJyb3IoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1
bHQoKSBjb25zdDsKIAorICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGlzb2xhdGVkQ29weSgp
IGNvbnN0OworCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hOGY1ZmU5NzgwOWFmNWIyMGJlY2U5ODQ3MzZjY2VhOTA5NDliYjQ3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAK
QEAgLTAsMCArMSwxMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3BlZWNoUmVjb2duaXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4K
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6OlNwZWVj
aFJlY29nbml6ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9kZWxlZ2F0
ZUNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnJlc2V0KCkKK3sKKyAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisK
KyAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiIH07Cisg
ICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cigqbV9jbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6
ZXI6OnN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRl
bnRpZmllcjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6
OlN0YXJ0KSk7CisKKyAgICBzdGFydEludGVybmFsKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2du
aXplcjo6c3RhcnRJbnRlcm5hbCgpCit7CisgICAgYXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgYXV0
byBidWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgUEFM
Ojp0b0NNVGltZSh0aW1lKSwgc2FtcGxlQ291bnQpOworICAgICAgICBVTlVTRURfUEFSQU0oYnVm
ZmVyKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VE
X1BBUkFNKGRhdGEpOworICAgICAgICBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOworICAgICAg
ICBVTlVTRURfUEFSQU0oc2FtcGxlQ291bnQpOworI2VuZGlmCisgICAgfTsKKworICAgIGF1dG8g
dXBkYXRlQ2FsbGJhY2sgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0oY29u
c3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmIHVwZGF0ZSkgeworICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50
aWZpZXIgJiYgbV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gdXBkYXRlLmNsaWVudElkZW50
aWZpZXIoKSk7CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayh1cGRhdGUpOworCisgICAgICAg
IGlmICh1cGRhdGUudHlwZSgpID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3Ip
CisgICAgICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfTsKKworICAgIG1fc291cmNl
ID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElk
ZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZSh1cGRhdGVDYWxsYmFjaykp
OworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJl
c3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0KQoreworICAgIGlmICghbV9jbGllbnRJZGVu
dGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBzdG9wSW50ZXJuYWwoKTsKKworICAgIGlm
IChzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID09IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6
OlllcykgeworICAgICAgICAvLyBUT0RPOiBnZW5lcmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVj
aCByZWNvZ25pdGlvbiBiYWNrZW5kIGlzIGltcGxlbWVudGVkLgorICAgICAgICBWZWN0b3I8U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0
ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50
SWRlbnRpZmllciwgcmVzdWx0RGF0YXMpKTsKKyAgICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJh
Y2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmll
ciA9IFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJu
YWwoKQoreworICAgIGlmICghbV9zb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc291
cmNlID0gbnVsbHB0cjsKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25V
cGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkF1ZGlvRW5kKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFhZTA5NWJlNWJmZjNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXpl
ciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVlY2hSZWNvZ25pemVyPiB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFjayA9
IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRhdGUmKT47CisgICAgV0VC
Q09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVjb2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hSZWNvZ25pemVyKCkgPSBkZWZhdWx0OworCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNsYXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1
bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVy
YXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAg
T3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3Vy
cmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7
IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCBzdGFydEludGVybmFs
KCk7CisgICAgdm9pZCBzdG9wSW50ZXJuYWwoKTsKKworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKKyAg
ICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVDYWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlPiBtX3NvdXJjZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjU5NDU4MWI3MjA5MTJjMGI5NTUz
YmI0MTBkNTFkODhkMGE4MTU2Yy4uOGFhM2FjNGY2OTAyZDYyMjA0YjVjN2IyNjQ4ZjJiMGY0NTQ1
MGE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE5OSw2ICsxOTksOSBAQCBNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlz
dC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcAorTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKK01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwCiBNb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50
aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IDJiMzNjNGJjZTc0ZGRlYWQ4MThiYTNjYjJhNDQ5MzE1NDZiNTlhNjAuLjE5OWQ4OWQ2MTk5MDNm
YjI1ZjEyNjAyNWQzMmYxMGQ3Nzg2MDYxMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAt
MjM4LDYgKzIzOCw3IEBAIHBsYXRmb3JtL2NvY29hL0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRm
b3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmlu
Z3NDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0
Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzVh
NTIyYzJhYmViMGQxNmQ1YzY4ODZjNzE3MDY1NzI0OTIwYzk0ZS4uMWJiNTI4NDM2ODkyNmUwMGY3
NDUzYjYxN2MyMzY0YjMzNDhlOTViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIwLDggKzEyMCw4IEBACiAJCTA3Mzc5NEZF
MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyog
UlRDTm90aWZpZXJzTW9jay5oICovOyB9OwogCQkwNzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyog
QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRhcmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAx
QyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tICovOyB9Owog
CQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEw
MEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRp
b1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxp
c3QuaCAqLzsgfTsKLQkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9
OworCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFF
NDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDczQjg3NjkxRTQzODVBQzAwNzFD
MEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5
MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBD
RTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUwMzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlk
ZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRl
eHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAt
Mjc4Nyw2ICsyNzg3LDggQEAKIAkJOTM5M0U2MDAxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdl
U2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBDU1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNE
MTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAy
RUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBX
aWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzOUMwRDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzOUMwRDJCMjU2
NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBEMjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlh
VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0
ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjkyNTQ5
NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAv
KiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMjg0OCw2ICsyODUwLDggQEAKIAkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVD
IC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0
LmggKi87IH07CiAJCTkzRjFENUMxMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFE
NUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNG
MkNDOTMyNDI3RkI5QzAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDgg
LyogQ2hhcmFjdGVyUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0Y2QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3
MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdF
RjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFk
aW9CdXR0b25Hcm91cHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0Y5QjZFMTBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcy
MDA4NTQwNjQgLyogSlNDb21tZW50LmggKi87IH07CkBAIC0xMTQyOSw2ICsxMTQzMywxMCBAQAog
CQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlC
MDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3Bl
ZWNoUmVjb2duaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVl
Y2hSZWNvZ25pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIg
LyogTWVkaWFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8q
IFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4
MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTExNTE1LDYgKzExNTIzLDEwIEBACiAJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJF
QyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNXZWJHTExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENo
YXJhY3RlclJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3Rl
clJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFCMjU2NzlGNkYw
MEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdM
Q29udGV4dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYx
RUIxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRjZGMUVDMTI3RjcwQjEwMDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM1NzIsNiArMjM1ODQsMTMgQEAKIAkJCXBhdGgg
PSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTkzRjZCODBFMjU2
NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIyNTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNDQwOSw2ICsyNDQyOCw4
IEBACiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8s
CiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dC5oICovLAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJp
bmdzQ29jb2EubW0gKi8sCisJCQkJOTM5QzBEMjgyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRp
bGl0aWVzLmNwcCAqLywKKwkJCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGls
aXRpZXMuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNBRTkgLyogTUlNRVR5cGVSZWdp
c3RyeUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5MzQ4MUFBMTFCMUUwMEI0NkMy
NCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAqLywKQEAgLTI1NjAxLDYgKzI1
NjIyLDcgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAwOTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNGNkI4MEUyNTY2RURFMTAw
QTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01X
aW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywKIAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVB
MjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4
NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lzLmggKi8sCkBAIC0yNTYxMCw2
ICsyNTYzMiwxMCBAQAogCQkJCTkzNDk1MEI3MjUzOTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJCQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEg
LyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQz
NEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5
M0Y2QjgxRTI1Njc5RjcxMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
LmNwcCAqLywKKwkJCQk5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmggKi8sCisJCQkJOTNGNkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwICovLAorCQkJCTkzRjZCODFDMjU2
NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8s
CiAJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbi5oICovLAogCQkJCTkzQTA0ODI0MjU0OTU0RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywKIAkJCQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oICovLApAQCAt
MjU2MzQsNiArMjU2NjAsOCBAQAogCQkJCTkzNDk1MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICovLAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4
REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRC
OEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBE
MjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMw
RDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVB
QkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVB
QkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJG
MTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaWRsICovLApAQCAtMzM1MTksNiAr
MzM1NDcsNyBAQAogCQkJCTkzMkNDMEI3MURGRkQxNTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29u
c3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAv
KiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2
Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERF
RjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQxMCw2ICsz
NDQzOSw4IEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3Bl
ZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5
RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNB
MDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkUyNTQ5NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkQyNTQ5
NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ0MjQsNiArMzQ0NTUsNyBAQAogCQkJCTkzQTA0ODI5
MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
blJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQz
QSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBE
MjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEwMDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXND
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBT
cGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ4YjRmNTYz
MzJkMDU5ZDlmYjE3NzU1NDMwYTFmOGUwNTYyY2NjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDcz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhVXRp
bGl0aWVzLmgiCisKKyNpbmNsdWRlICJBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVk
ZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+Cisj
aW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRp
b25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RG
OjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdCA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNj
cmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBu
dWxscHRyLCAwLCBudWxscHRyLCBudWxscHRyLCAmZm9ybWF0KTsKKyAgICBpZiAoZXJyb3IpIHsK
KyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0
dXJuIGFkb3B0Q0YoZm9ybWF0KTsKK30KKworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXpl
X3Qgc2FtcGxlQ291bnQpCit7CisgICAgLy8gRklYTUU6IGNoZWNrIGlmIHdlIGNhbiByZXVzZSB0
aGUgZm9ybWF0IGZvciBtdWx0aXBsZSBzYW1wbGUgYnVmZmVycy4KKyAgICBhdXRvIGZvcm1hdCA9
IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgIGlmICghZm9y
bWF0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZm
ZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxw
dHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0
aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlv
bnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKKworICAgIGVycm9yID0g
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0
KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZl
ciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmI2N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYyODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29y
ZU1lZGlhL0NNVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBj
b25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlv
blJlZjsKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZl
clJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mKTsKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9T
YW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyQ29jb2EubW0KaW5kZXggYWNiNDk0NDMwOGQxY2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUw
Ny4uYmRkNzBmZDljYWFlMmRlY2NjYjI0MGJjMjFiMjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAi
TWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5o
IgogI2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0
NCw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxl
QnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5h
ZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGlj
IGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3Jt
YXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikK
LXsKLSAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVz
Y3JpcHRpb24pOwotICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsK
LSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZm
b3JtYXQpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlw
dGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENGKGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxp
bmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAg
YXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsK
LSAgICBpZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1
ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3Vu
dCwgdGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXIgY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRoUGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0
byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZlcik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxl
QnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRp
b0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIg
Q01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVy
biBidWZmZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1
ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRp
b1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBz
aXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgaWYgKGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRl
QXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxl
VGltZSwgc2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcAppbmRleCA3NWM5
NTBmOTA1NDBhODk3ZWIwYWQ2ZGE3OWMxMTQ3ZmE3YzUxMjNlLi42NDE1NDdiNGQwZjRmYmE1MmFj
ZThlZjdiNjU0ODc3NjVkZDQ5NjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcApAQCAt
MTA0LDYgKzEwNCw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6
c3RhcnRQcm9jZXNzaW5nUmVxdWVzdCgpCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VD
aGVjayA9IGNvbXB1dGVTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VBY2Nlc3MoKTsKIAogICAgIGlm
IChtX3BhZ2UucHJlZmVyZW5jZXMoKS5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCkpIHsKKyAg
ICAgICAgbV9wYWdlLnN5bmNJZk1vY2tEZXZpY2VzRW5hYmxlZENoYW5nZWQoKTsKICAgICAgICAg
bV9taWNyb3Bob25lQ2hlY2sgPSBDaGVja1Jlc3VsdDo6R3JhbnRlZDsKICAgICAgICAgbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZpY2VDaGVjayA9IENoZWNrUmVzdWx0OjpHcmFudGVkOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFjY2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5kNjkw
NzNmODU5MDdiYmJjMzcyZWZmZjY1MDgzOGZkYjFkMDc3MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCkBAIC00NiwxMiAr
NDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGkKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3RyaW5nJiYgbGFuZywgYm9vbCBjb250aW51b3Vz
LCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRfdCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50
aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRl
bnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50
SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9yZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVu
dGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5mbyA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250aW51
b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJuYXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikgfTsK
LSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLmFkZChjbGllbnRJ
ZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4o
V1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgYXV0byYgbmV3UmVx
dWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElkZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJh
dG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1Jl
cXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2
NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Np
b25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbmkKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRpZmll
cigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVzdCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2Uo
aWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNpc2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUo
aWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRvIGVycm9yID0gV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RB
bGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3MgfTsKICAgICAgICAgICAgIHNlbmRV
cGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpF
cnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
bV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7
Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25nb2luZ1JlcXVlc3RzLmdldChpZGVudGlmaWVy
KSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3Zv
aWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQor
eworICAgIGlmICghbV9yZWNvZ25pemVyKSB7CisgICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VV
bmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhp
cyldKGF1dG8mIHVwZGF0ZSkgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVw
ZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29u
dGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlwZSgpOworICAgICAgICAgICAgaWYgKHR5cGUg
PT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAgICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVt
b3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAgICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1fcmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRl
bnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVu
dGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYg
KG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkgewotICAgICAgICBz
ZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNvZ25pemVyICYmIG1fcmVjb2duaXplci0+Y3Vy
cmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGllbnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1f
cmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJU
KG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9w
UmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBp
ZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpCisgICAgICAgIHNlbmRVcGRh
dGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50
aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAo
bV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNl
bmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRh
dGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJy
ZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9y
ZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRl
RmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVCht
X29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byBy
ZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFrZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBh
Ym9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRl
bnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQor
ICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJ
ZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNs
aWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3Qo
KnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1
ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAv
LyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8gYW5kIHJlY29nbml0aW9uLgotfQotCi12b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcg
YXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBieSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRp
by4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBz
dG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBn
ZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50
aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJy
ZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpCisgICAgICAgICAgICBt
X3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
cj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2LDEyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAqZXJyb3IpOwogICAgIGlmICh0eXBlID09IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6UmVzdWx0KQogICAgICAgICB1cGRh
dGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KGNsaWVu
dElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29n
bml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIp
OworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYg
dXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUpKTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgK
aW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZlZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhl
ZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVj
aFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2du
aXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVy
bWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0g
ICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYp
OwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1
ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBXVEY6Om51bGxvcHQpOworICAgIHZvaWQgc2Vu
ZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAg
cHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hN
YXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVu
ZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1JlcXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAg
ICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2Vy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29n
bml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBmODc0Mjg5OTBkZTAwMTM0MzY3MmUyNDk0ODk1YWQx
M2Q0MzMwMjguLjdkZjAxZDQ0ZDFjYzhlNzc3YzJhOGY3YjM5MzQyNGU4NTFhYjIyMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODE3NCw2ICs4MTc0LDEz
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6c3luY0lmTW9ja0RldmljZXNFbmFibGVkQ2hhbmdlZCgpCit7CisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zeW5jV2l0
aFdlYkNvcmVQcmVmcygpOworI2VuZGlmCit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpbk1v
bml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggODc5ZjczMmIxMWNiMTIzOTcz
ODY1OGU4ZTU4ZmI4N2M1MDM0ZjJiOC4uMThmNWFjNmNlNmIyNjUxMGUyMmVkOTY2Yzg0ZGU4NTE3
NDBlNmFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4MjMs
NiArMTgyMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb24oY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYpOwogICAgIHZvaWQg
cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogCisgICAgdm9pZCBzeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKCk7CisKIHByaXZh
dGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8
QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA0ZmI0OGUxNWY1NzQ1NTU5YmE2YzFhYmZjZDIzNjYxNDQwMzRmZWY0Li5kYzRj
NzRmMjdjOGMxYTZjNjUyMmQzYzVhYWY5ZTRkMjE5MzBmMGRjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMjAtMTEtMjAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9yIFNwZWVjaFJlY29nbml0aW9uIG9uIG1hY09T
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMxMDAxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWluLXJlbW92ZWQtaWZy
YW1lLmh0bWw6IG1hcmsgdGVzdCBhcyBhc3luYyB0byBhdm9pZCBmbGFraW5lc3MuCisgICAgICAg
ICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIwLTExLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgSW1wb3J0IHdlYi1wbGF0Zm9ybS10ZXN0cy91aWV2ZW50cyB0ZXN0cyBmcm9tIHVwc3RyZWFt
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAwNWNmNWEwMGMwOTIxOTlkY2E1MzM4ZGU4MmNiOTkxOGZi
YmEyZWYxLi5iNDMwYTJhMmRkNmIzNGE2OTU4ZDUyNGVmMWRlM2QwODZjMmFiNDgzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE3OSw2ICsxNzksOCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9JREJPYmpl
Y3QtbGVhay5odG1sIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2NhbGwtdGV4dC1kaWQtY2hhbmdlLWlu
LXRleHQtZmllbGQtd2hlbi10eXBpbmcuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9pbi1hcHAt
YnJvd3Nlci1wcml2YWN5LyBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNz
aW9uLWVycm9yLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVj
b2duaXRpb24tdGhlbi1zdG9wLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24v
c3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KIAogIyBPbmx5IHBhcnRpYWwg
c3VwcG9ydCBvbiBDb2NvYSBwbGF0Zm9ybXMuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NwZWVjaC1hcGkvIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWluLXJlbW92ZWQtaWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWlu
LXJlbW92ZWQtaWZyYW1lLmh0bWwKaW5kZXggMWM3NmU1MzI3NWQwZTAzMDI5NWY1ZDA0MjRiYTZk
ZGQ2OWMxYmMzNC4uYTkwNTExZWNjY2MzZWFiZGFhZmY4MjQ4YzY5MWM1ZmY1NTdmODMxZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi1pbi1yZW1vdmVkLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNo
cmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24taW4tcmVtb3ZlZC1pZnJhbWUuaHRtbApAQCAt
NSwxNSArNSwyMCBAQAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBwcm9jZXNz
IGRvZXMgbm90IGNyYXNoIHdoZW4gc3RhcnRpbmcgcmVjb2duaXRpb24gaW4gYSByZW1vdmVkIGlm
cmFtZS4iKTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGlmcmFtZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKLSAgICBzaG91bGROb3RUaHJvdygiaWZy
YW1lLmNvbnRlbnRXaW5kb3cuc3RhcnRSZWNvZ25pdGlvbigpIik7IAorICAgIHNob3VsZE5vdFRo
cm93KCJpZnJhbWUuY29udGVudFdpbmRvdy5zdGFydFJlY29nbml0aW9uKCkiKTsKIH0KIAogZnVu
Y3Rpb24gcmVtb3ZlRnJhbWUoKQogewogICAgIHNob3VsZE5vdFRocm93KCJpZnJhbWUucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChpZnJhbWUpIik7CisgICAgc2V0VGltZW91dCgoKSA9PiBmaW5pc2hK
U1Rlc3QoKSwgMCk7CiB9CiAKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGVzdCwg
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9z
dGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAyYTc0NjFkYzdjYzAxNGRiNjJkNjVjNmIyMGI2YjBkYTI1NmVhNDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0
YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAor
VmVyaWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3aGVuIHN0YXJ0IGFuZCBz
dG9wIHJlY29nbml0aW9uIG5vcm1hbGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1JlY2VpdmVkIHN0YXJ0IGV2ZW50CitSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50
CitQQVNTIHJlY29nbml0aW9uLnN0b3AoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1JlY2Vp
dmVkIGF1ZGlvZW5kIGV2ZW50CitSZWNlaXZlZCBlbmQgZXZlbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10
aGVuLXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDVkMmIwNzhjNmUyMTk0YzU5ZTc4OWQzNWE0Njc4
YjE0ZGZjZWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbApAQCAtMCwwICsxLDM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJp
ZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3Ag
cmVjb2duaXRpb24gbm9ybWFsbHkuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24g
PSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZl
bnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgc3RhcnQgZXZlbnQiKTsKK30KKworcmVjb2du
aXRpb24ub25hdWRpb3N0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1
ZGlvc3RhcnQgZXZlbnQiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdG9w
KCkiKTsKK30KKworcmVjb2duaXRpb24ub25hdWRpb2VuZCA9IChldmVudCkgPT4geworICAgIGRl
YnVnKCJSZWNlaXZlZCBhdWRpb2VuZCBldmVudCIpOworfQorCityZWNvZ25pdGlvbi5vbmVuZCA9
IChldmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBlbmQgZXZlbnQiKTsKKworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjIxMGM5NGEyNGNjOTg1ZjBmNjI2MDUzZGQxMjQ0MzFiMzVjM2Q3ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25k
LXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBz
dGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJl
Y29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5z
dGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbiA9
IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
c2Vjb25kUmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
cmVjZWl2ZWRTdGFydCBpcyB0cnVlCitQQVNTIGV2ZW50LmVycm9yIGlzICJhYm9ydGVkIgorUEFT
UyBldmVudC5tZXNzYWdlIGlzICJBbm90aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQt
cmVjb2duaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWU3NDNmZjNmNjA5MTBhMWQxNDQwZjE0NGQ2
YmQ5NWExZmM3MzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hy
ZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbApAQCAtMCwwICsxLDMyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJp
ZnkgdGhhdCBzdGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUu
Iik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRp
b24oKTsiKTsKK3JlY2VpdmVkU3RhcnQgPSBmYWxzZTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAo
ZXZlbnQpID0+IHsKKyAgICByZWNlaXZlZFN0YXJ0ID0gdHJ1ZTsKK30KKworcmVjb2duaXRpb24u
b25lcnJvciA9IChldmVudCkgPT4geworICAgIHNob3VsZEJlVHJ1ZSgicmVjZWl2ZWRTdGFydCIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuZXJyb3IiLCAiYWJvcnRlZCIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQubWVzc2FnZSIsICJBbm90aGVyIHJlcXVl
c3QgaXMgc3RhcnRlZCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRo
cm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CitzaG91bGROb3RUaHJvdygic2Vjb25kUmVjb2du
aXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3Nob3VsZE5vdFRocm93KCJzZWNv
bmRSZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggN2Q1MzRhMDZhMjJhM2IyOTdiNzU0M2Q0MWI4NjlmNTRlZjBiY2My
Yi4uODEzMTIwNjQwYjJhMDUyMmI4ZmQ2NjE2OTI4OTE1ZmFmM2Y2MTdlNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgwNCw0ICs4MDQsNiBAQCBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC1wb3J0LWRlbGF5Lmh0bWwgWyBQYXNz
IF0KICMgV2ViS2l0MiBvbmx5LgoganMvdGhyb3ctbGFyZ2Utc3RyaW5nLW9vbS5odG1sIFsgUGFz
cyBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRtbCBbIFBhc3Mg
XQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRt
bCBbIFBhc3MgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRp
b24uaHRtbCBbIFBhc3MgXQogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbnRlci13aGlsZS1leGl0
aW5nLmh0bWwgWyBQYXNzIF0K
</data>
<flag name="commit-queue"
          id="431729"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414756</attachid>
            <date>2020-11-20 22:54:38 -0800</date>
            <delta_ts>2020-11-21 18:44:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201120225437.patch</filename>
            <type>text/plain</type>
            <size>75710</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QzYzFmNDI4NGY0ZmI3
ODRjOTEyZTIxNjUwMzA2NGNiNGZkYTExMy4uOGI1NmI5Y2I1MTRmZjU3ZjQyZjZmODE4OGZkZmM2
NDRhNzkzNDBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTExLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgU3BlZWNoUmVjb2duaXplciwgd2hpY2ggcGVyZm9ybXMgYXVkaW8g
Y2FwdHVyZSBhbmQgc3BlZWNoIHJlY29nbnRpb24gb3BlcmF0aW9ucy4gT24gc3RhcnQsCisgICAg
ICAgIFNwZWVjaFJlY29nbml6ZXIgY3JlYXRlcyBhIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZSBhbmQgc3RhcnRzIGF1ZGlvIGNhcHR1cmluZy4gT24gc3RvcCwgU3BlZWNoUmVjb2duaXpl
ciAKKyAgICAgICAgY2xlYXJzIHRoZSBzb3VyY2UgYW5kIHN0b3BzIHJlY29nbml6aW5nLiBTcGVl
Y2hSZWNvZ25pemVyIGNhbiBvbmx5IGhhbmRsZSBvbmUgcmVxdWVzdCBhdCBhIHRpbWUsIHNvIGNh
bGxpbmcKKyAgICAgICAgc3RhcnQgb24gYWxyZWFkeSBzdGFydGVkIFNwZWVjaFJlY29nbml6ZXIg
d291bGQgY2F1c2Ugb25nb2luZyByZXF1ZXN0IHRvIGJlIGFib3J0ZWQuCisKKyAgICAgICAgVGVz
dHM6IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJl
Y29nbml0aW9uLmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U6OlNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOiBBZGRlZC4gU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCBwcm92aWRlcyAKKyAgICAgICAgaW1wbGVtZW50
YXRpb24gb2YgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlIG9uIHdoZW4gRU5BQkxFKE1F
RElBX1NUUkVBTSkgaXMgdHJ1ZS4KKyAgICAgICAgKFdlYkNvcmU6Om5leHRMb2dJZGVudGlmaWVy
KToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxMb2dnZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjp+U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUpOiBQdXNoIGRhdGEgdG8gYnVmZmVyLCBzaWduYWwgbWFpbiB0aHJlYWQgdG8K
KyAgICAgICAgcHVsbCBmcm9tIGJ1ZmZlciBhbmQgaW52b2tlIGRhdGEgY2FsbGJhY2suCisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VT
dGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Omludm9rZVN0YXRlVXBkYXRl
Q2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGwuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25F
cnJvcjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uQWx0ZXJuYXRpdmVEYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjppc29sYXRlZENvcHkgY29u
c3QpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmg6
CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pemVyOjpzdGFydEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29n
bml6ZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcElu
dGVybmFsKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6Y3VycmVudENsaWVudElk
ZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
b2NvYS9NZWRpYVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06IE1vdmUgY29k
ZSBmb3IgY3JlYXRpbmcgQ01TYW1wbGVCdWZmZXJSZWYgdG8KKyAgICAgICAgTWVkaWFVdGlsaXRp
ZXMuaC9jcHAgc28gaXQgY2FuIHNoYXJlZCBiZXR3ZWVuIFNwZWVjaFJlY29nbml0aW9uIGFuZCBV
c2VyTWVkaWEsIGFzIFNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIAorICAgICAgICB3aWxsIHRh
a2UgQ01TYW1wbGVCdWZmZXJSZWYgYXMgaW5wdXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVB
dWRpb0Zvcm1hdERlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKTogRGVsZXRlZC4KKwogMjAyMC0xMS0xOSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtsZXQuYWRkTW9kdWxlKCkgc2hvdWxk
IHJlamVjdCBwcm9taXNlIHdpdGggYW4gQWJvcnRFcnJvciB3aGVuIHRoZSBuZXR3b3JrIGxvYWQg
ZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggYzRiNDcxYTRlYjgyMGY1MjI3NjJiMmExODNmM2RiYjc3NzdjOWIz
Mi4uM2U2NWM2YjdjMGFiMDU4NWJjMjQ2MGU1Mjc5ZDIzMDJiMjhlYmI1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOSBAQAorMjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRp
b24gb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODg1NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnN0YXJ0UHJvY2Vzc2luZ1JlcXVlc3QpOiBD
aGVjayBhbmQgZW5hYmxlIG1vY2sgZGV2aWNlcyBiYXNlZCBvbiAKKyAgICAgICAgcHJlZmVyZW5j
ZSBhcyBTcGVlY2hSZWNvZ25pdGlvbiBuZWVkcyBpdCBmb3IgdGVzdGluZy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcCk6CisgICAgICAgIChXZWJL
aXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6YWJvcnRSZXF1ZXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisKIDIwMjAtMTEtMTkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gSXNzdWUgc2FuZGJveCBleHRlbnNpb24gdG8g
V2ViIEluc3BlY3RvciBzZXJ2aWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAwMjNlMTUzZGEzYzY3
ZGUxN2EyNTJiZWYxY2FiMjY4N2Q0MzkzMDZkLi4zNzg5YWEzODM5NDBkMjU3NDEyNGJjMmZmNDNl
N2VlYzRhZTk1MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNiw2ICsxMTYsOCBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9wbHVnaW5zL1Bs
dWdpblJlcGxhY2VtZW50LmgKICAgICBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmgKIAorICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZS5oCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmgK
ICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaAog
ICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIuaApAQCAtMTI0LDYgKzEyNiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3RJbmZv
LmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaAogICAg
IE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgKKyAgICBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKIAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0
cmVhbUNodW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5M2I2ZjM4YmM2MjM4ZGEx
ZGJhODY4ZTI5ZTFlNWIxZTZmNjZiNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZShTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIERhdGFDYWxs
YmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVDYWxsYmFjayYmIHN0YXRlVXBkYXRlQ2Fs
bGJhY2spCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBPcHRpb25hbDxDYXB0dXJl
RGV2aWNlPiBjYXB0dXJlRGV2aWNlOworICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hdWRpb0NhcHR1
cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMoKTsKKyAgICBmb3IgKGF1dG8gZGV2aWNl
IDogZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UpCisgICAgICAgICAgICBj
YXB0dXJlRGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIGlmIChkZXZpY2UuaXNEZWZhdWx0KCkp
IHsKKyAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghY2FwdHVyZURldmljZSkgeworICAgICAg
ICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9u
RXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJObyBkZXZpY2UgaXMgYXZhaWxhYmxlIGZvciBjYXB0
dXJlIiB9OworICAgICAgICBzdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCBlcnJvcikpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byByZXN1bHQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5hdWRpb0NhcHR1cmVGYWN0b3J5KCkuY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKCpjYXB0dXJlRGV2aWNlLCB7IH0sIHsgfSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAg
ICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCByZXN1bHQuZXJyb3JNZXNzYWdlIH07CisgICAgICAg
IHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9y
KGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2ltcGwgPSBtYWtlVW5pcXVlPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw+
KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVw
ZGF0ZUNhbGxiYWNrKSwgcmVzdWx0LnNvdXJjZSgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGNsaWVudElkZW50aWZpZXIpOworICAgIFVOVVNFRF9QQVJBTShkYXRhQ2FsbGJhY2spOworICAg
IFVOVVNFRF9QQVJBTShzdGF0ZVVwZGF0ZUNhbGxiYWNrKTsKKyNlbmRpZgorfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcz
ODZjZWVlMjc0MDdjYzYxMDRlMjllZDczZGU3ZGEwYTQ5ZjRlMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgiCisjaW5jbHVkZSAi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3Bh
Y2UgV1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7Citj
bGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOworY2xhc3MgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU7CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZSB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgflNwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZSgpID0gZGVmYXVsdDsKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNp
bmcgU3RhdGVVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2du
aXRpb25VcGRhdGUmKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBT
dGF0ZVVwZGF0ZUNhbGxiYWNrJiYpOworCitwcml2YXRlOgorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw+IG1faW1wbDsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWIzZGRlOGNlOTAz
ZmQ0MzI0MzdkNmMxNWM4MmE5MGVmM2NiMzRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5j
cHAKQEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIgorCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgi
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24uaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNlbmRpZgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK3N0YXRpYyBjb25zdCB2
b2lkKiBuZXh0TG9nSWRlbnRpZmllcigpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IGxvZ0lkZW50
aWZpZXIgPSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpOworICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPigrK2xvZ0lkZW50aWZpZXIpOworfQorCitzdGF0aWMg
UmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZWZQdHI8TG9nZ2VyPj4gbG9nZ2VyOworICAgIHJldHVybiBsb2dnZXI7Cit9CisjZW5kaWYK
KworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6U3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmIGRhdGFDYWxsYmFjaywgU3RhdGVVcGRhdGVD
YWxsYmFjayYmIHN0YXRlVXBkYXRlQ2FsbGJhY2ssIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSkKKyAgICA6IG1fY2xpZW50SWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9k
YXRhQ2FsbGJhY2soV1RGTW92ZShkYXRhQ2FsbGJhY2spKQorICAgICwgbV9zdGF0ZVVwZGF0ZUNh
bGxiYWNrKFdURk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpCisgICAgLCBtX3NvdXJjZShXVEZN
b3ZlKHNvdXJjZSkpCit7CisgICAgbV9zb3VyY2UtPmFkZEF1ZGlvU2FtcGxlT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnN0
YXJ0KCk7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBpZiAoIW51bGxMb2dnZXIo
KS5nZXQoKSkgeworICAgICAgICBudWxsTG9nZ2VyKCkgPSBMb2dnZXI6OmNyZWF0ZSh0aGlzKTsK
KyAgICAgICAgbnVsbExvZ2dlcigpLT5zZXRFbmFibGVkKHRoaXMsIGZhbHNlKTsKKyAgICB9CisK
KyAgICBtX3NvdXJjZS0+c2V0TG9nZ2VyKCpudWxsTG9nZ2VyKCksIG5leHRMb2dJZGVudGlmaWVy
KCkpOworI2VuZGlmCisKKyAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyk7Cit9
CisKK1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsKCkKK3sKKyAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVP
YnNlcnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAg
ICBtX3NvdXJjZS0+c3RvcCgpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9u
JiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQoreworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQ
bGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKKyAgICBhdXRvIGF1
ZGlvRGVzY3JpcHRpb24gPSB0b0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7
CisgICAgaWYgKCFtX2RhdGFTb3VyY2UgfHwgIW1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlv
bigpIHx8ICptX2RhdGFTb3VyY2UtPmlucHV0RGVzY3JpcHRpb24oKSAhPSBkZXNjcmlwdGlvbikg
eworICAgICAgICBhdXRvIGRhdGFTb3VyY2UgPSBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0
ZShkZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7CisgICAgICAg
IGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgeworICAg
ICAgICAgICAgaW52b2tlU3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZVR5cGU6OkVycm9yLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRG
b3JtYXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKKyAgICAgICAgICAgIGludm9rZVN0YXRlVXBkYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgIlVuYWJsZSB0byBz
ZXQgb3V0cHV0IGZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBpZiAoYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2RhdGFTb3VyY2VM
b2NrKSkKKyAgICAgICAgICAgIG1fZGF0YVNvdXJjZSA9IFdURk1vdmUoZGF0YVNvdXJjZSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2RhdGFTb3Vy
Y2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRhdGEsIHNhbXBsZUNvdW50KTsKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rl
c2NyaXB0aW9uLCBzYW1wbGVDb3VudF0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8gZGF0YSA9IFdlYkF1ZGlvQnVmZmVyTGlzdCB7
IGF1ZGlvRGVzY3JpcHRpb24sIHN0YXRpY19jYXN0PHVpbnQzMl90PihzYW1wbGVDb3VudCkgfTsK
KyAgICAgICAgeworICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2RhdGFTb3Vy
Y2VMb2NrKTsKKyAgICAgICAgICAgIG1fZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlz
dCgpLCBzYW1wbGVDb3VudCwgdGltZS50aW1lVmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291
cmNlOjpDb3B5KTsKKyAgICAgICAgfQorCisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRh
dGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyAgICB9KTsKKyNlbHNlCisgICAg
bV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyNl
bmRpZgorfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJj
ZVN0YXJ0ZWQoKQoreworICAgIGludm9rZVN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpBdWRpb1N0YXJ0KTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBBU1NFUlQobV9zb3Vy
Y2UtPmNhcHR1cmVEaWRGYWlsKCkpOworICAgIGludm9rZVN0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgIlNvdXJjZSBpcyBzdG9wcGVkIik7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRD
aGFuZ2VkKCkKK3sKKyAgICBpbnZva2VTdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlVHlwZTo6RXJyb3IsICJTb3VyY2UgaXMgbXV0ZWQiKTsKK30KKwordm9pZCBTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjppbnZva2VTdGF0ZVVwZGF0ZUNhbGxiYWNr
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGVycm9yTWVz
c2FnZSkKK3sKKyAgICBhdXRvIHVwZGF0ZSA9IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGUobV9jbGllbnRJZGVudGlmaWVyLCB0eXBlKTsKKyAgICBpZiAodHlwZSA9PSBTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZVR5cGU6OkVycm9yKSB7CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgZXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCBlcnJv
ck1lc3NhZ2UgfTsKKyAgICAgICAgdXBkYXRlID0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpOworICAgIH0KKworICAgIGlmIChp
c01haW5UaHJlYWQoKSkgeworICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2sodXBkYXRlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHVwZGF0ZSA9IFdURk1vdmUodXBkYXRlKS5pc29s
YXRlZENvcHkoKV0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayh1cGRhdGUpOworICAgIH0pOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkYTA3OWIzODYyODA2MWMxMzk4NzYzN2Y1YjM1MGE4
YjQ2ZDc2NDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlICJBdWRpb1NhbXBsZURhdGFTb3VyY2UuaCIKKyNlbmRpZgorCituYW1lc3BhY2Ug
V1RGIHsKK2NsYXNzIE1lZGlhVGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CitjbGFz
cyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKK2VudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25V
cGRhdGVUeXBlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsCisg
ICAgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICAsIHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb1NhbXBsZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEYXRhQ2FsbGJhY2sgPSBGdW5jdGlv
bjx2b2lkKGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KT47CisgICAgdXNpbmcgU3RhdGVV
cGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVjb2duaXRpb25VcGRh
dGUmKT47CisgICAgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbChTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBEYXRhQ2FsbGJhY2smJiwgU3RhdGVV
cGRhdGVDYWxsYmFjayYmLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CisgICAgflNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGlu
dm9rZVN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlLCBjb25z
dCBTdHJpbmcmID0gbnVsbFN0cmluZygpKTsKKworICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25z
dCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNv
dXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFs
OworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBtX2Ns
aWVudElkZW50aWZpZXI7CisgICAgRGF0YUNhbGxiYWNrIG1fZGF0YUNhbGxiYWNrOworICAgIFN0
YXRlVXBkYXRlQ2FsbGJhY2sgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrOworICAgIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFJlZlB0
cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBMb2NrIG1fZGF0YVNv
dXJjZUxvY2s7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXJyb3IuaAppbmRleCBkZjJkMzJmOGM2NGM5ZTRkYjBiMzBlZDMwNzRiMGJmZGVkODdi
M2MyLi40MTllOTg2MGE4YWM4YTg3Mzc3OWMyNTkwYTYyY2Q4YzBhNmY5MzcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJv
ci5oCkBAIC00Niw2ICs0Niw4IEBAIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsKIAog
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U3BlZWNoUmVjb2du
aXRpb25FcnJvcj4gZGVjb2RlKERlY29kZXImKTsKKworICAgIFNwZWVjaFJlY29nbml0aW9uRXJy
b3IgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyB0eXBlLCBtZXNzYWdlLmlzb2xhdGVk
Q29weSgpIH07IH0KIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCmluZGV4IDYxNDRkMWZmMDcwNjg5Y2FiYmI4MTZjNGZiYTI5NzIzYWE0M2YxYjIuLmE5
YjA3ZTE5MmJkNzg1NDFkMDU5NTlhOGZmYWU3NTY3N2Y0OWFlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oCkBAIC0zMyw2ICszMyw4IEBAIHN0cnVjdCBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YSB7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworCisg
ICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3Qg
eyByZXR1cm4geyB0cmFuc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCBjb25maWRlbmNlIH07IH0KIH07
CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CkBAIC02MCw2ICs2Miw4IEBAIHN0cnVjdCBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEgewogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+IGRlY29kZShEZWNv
ZGVyJik7CisKKyAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgaXNvbGF0ZWRDb3B5KCkg
Y29uc3QgeyByZXR1cm4geyBhbHRlcm5hdGl2ZXMuaXNvbGF0ZWRDb3B5KCksIGlzRmluYWwgfTsg
fQogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcAppbmRleCA5
YTlhN2Q5MjA2OTY1NWM0NTcxNjA3ZGRhMThjNGU2YjMzMGY3MmQ1Li5hZWViODIxMzc0ZDcxNTlh
OGNjYTNlMzg2NGI2OTBmMzAwYzI4ZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCkBAIC05Niw0ICs5
NiwxMyBAQCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6cmVzdWx0KCkgY29uc3QKICAgICApOwogfQogCitTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZSBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX2NvbnRlbnQsCisgICAgICAgIFsmXSAoY29uc3Qg
U3BlZWNoUmVjb2duaXRpb25FcnJvciYgZXJyb3IpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9u
VXBkYXRlIHsgbV9jbGllbnRJZGVudGlmaWVyLCBtX3R5cGUsIGVycm9yLmlzb2xhdGVkQ29weSgp
IH07IH0sCisgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YT4mIGRhdGEpIHsgcmV0dXJuIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIHsgbV9jbGllbnRJ
ZGVudGlmaWVyLCBtX3R5cGUsIGRhdGEuaXNvbGF0ZWRDb3B5KCkgfTsgfSwKKyAgICAgICAgWyZd
IChjb25zdCBhdXRvJikgeyByZXR1cm4gKnRoaXM7IH0KKyAgICApOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAppbmRleCA4OTE0OTE3OTNmNGUwMWVjMmZmNjAxMDdj
YjQ4NWY0ODhmYTQzZTg0Li4wNjk1NDE2MTk0YWI4MDBlZGUwMTRmOTk1MjUyMThjOWJlYzA2MGU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgZXJyb3IoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1bHQoKSBjb25z
dDsKIAorICAgIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlIGlzb2xhdGVkQ29weSgpIGNvbnN0Owor
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmViNjA1
NjQ3YjMyOWUyNjRmODNjMjQ5ZjU3YzJhMjA4MWMyZmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHAKQEAgLTAsMCAr
MSwxMjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3Bl
ZWNoUmVjb2duaXplci5oIgorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCIK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCisjaW5j
bHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29nbml6ZXI6OlNwZWVjaFJlY29nbml6
ZXIoRGVsZWdhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9kZWxlZ2F0ZUNhbGxiYWNr
KFdURk1vdmUoY2FsbGJhY2spKQoreworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnJlc2V0
KCkKK3sKKyAgICBpZiAoIW1fY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG1fc291cmNlKQorICAgICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisKKyAgICBhdXRv
IGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBYm9ydGVkLCAiQW5vdGhlciByZXF1ZXN0IGlzIHN0YXJ0ZWQiIH07CisgICAgbV9kZWxl
Z2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcigqbV9jbGll
bnRJZGVudGlmaWVyLCBlcnJvcikpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0
KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICByZXNldCgpOworCisgICAgbV9jbGllbnRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsK
KyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgq
bV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OlN0YXJ0KSk7
CisKKyAgICBzdGFydEludGVybmFsKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3Rh
cnRJbnRlcm5hbCgpCit7CisgICAgYXV0byBkYXRhQ2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKV0oY29uc3QgYXV0byYgdGltZSwgY29uc3QgYXV0byYgZGF0YSwgY29uc3Qg
YXV0byYgZGVzY3JpcHRpb24sIGF1dG8gc2FtcGxlQ291bnQpIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAg
ICBhdXRvIGJ1ZmZlciA9IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGRhdGEsIGRlc2NyaXB0aW9u
LCBQQUw6OnRvQ01UaW1lKHRpbWUpLCBzYW1wbGVDb3VudCk7CisgICAgICAgIFVOVVNFRF9QQVJB
TShidWZmZXIpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworICAgICAgICBV
TlVTRURfUEFSQU0oZGF0YSk7CisgICAgICAgIFVOVVNFRF9QQVJBTShkZXNjcmlwdGlvbik7Cisg
ICAgICAgIFVOVVNFRF9QQVJBTShzYW1wbGVDb3VudCk7CisjZW5kaWYKKyAgICB9OworCisgICAg
YXV0byBzdGF0ZVVwZGF0ZUNhbGxiYWNrID0gW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldKGNvbnN0IGF1dG8mIHVwZGF0ZSkgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVChtX2NsaWVudElkZW50aWZpZXIgJiYg
bV9jbGllbnRJZGVudGlmaWVyLnZhbHVlKCkgPT0gdXBkYXRlLmNsaWVudElkZW50aWZpZXIoKSk7
CisgICAgICAgIG1fZGVsZWdhdGVDYWxsYmFjayh1cGRhdGUpOworCisgICAgICAgIGlmICh1cGRh
dGUudHlwZSgpID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RXJyb3IpCisgICAgICAg
ICAgICBtX3NvdXJjZSA9IG51bGxwdHI7CisgICAgfTsKKworICAgIG1fc291cmNlID0gbWFrZVVu
aXF1ZTxTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+KCptX2NsaWVudElkZW50aWZpZXIs
IFdURk1vdmUoZGF0YUNhbGxiYWNrKSwgV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSk7Cit9
CisKK3ZvaWQgU3BlZWNoUmVjb2duaXplcjo6c3RvcChTaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
IHNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQpCit7CisgICAgaWYgKCFtX2NsaWVudElkZW50aWZp
ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHN0b3BJbnRlcm5hbCgpOworCisgICAgaWYgKHNo
b3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPT0gU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdDo6WWVz
KSB7CisgICAgICAgIC8vIFRPRE86IGdlbmVyYXRlIHJlYWwgcmVzdWx0IHdoZW4gc3BlZWNoIHJl
Y29nbml0aW9uIGJhY2tlbmQgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgIFZlY3RvcjxTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+IHJlc3VsdERhdGFzOworICAgICAgICBtX2RlbGVnYXRlQ2Fs
bGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdCgqbV9jbGllbnRJZGVu
dGlmaWVyLCByZXN1bHREYXRhcykpOworICAgIH0KKworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKSk7CisgICAgbV9jbGllbnRJZGVudGlmaWVyID0g
V1RGOjpudWxsb3B0OworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0b3BJbnRlcm5hbCgp
Cit7CisgICAgaWYgKCFtX3NvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zb3VyY2Ug
PSBudWxscHRyOworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlKCptX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlw
ZTo6QXVkaW9FbmQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2
ZjEzZmVlODRhNTMzYWYwZjA0ZTA3NjljMWFlMDk1YmU1YmZmM2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOworCitjbGFzcyBTcGVlY2hSZWNvZ25pemVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFNwZWVjaFJlY29nbml6ZXI+IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBEZWxlZ2F0ZUNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflNwZWVjaFJlY29nbml6ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIpOworICAgIGVudW0gY2xhc3MgU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCB7
IE5vLCBZZXMgfTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3AoU2hvdWxkR2VuZXJhdGVG
aW5hbFJlc3VsdCA9IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Olllcyk7CisKKyAgICBPcHRp
b25hbDxTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyPiBjdXJyZW50
Q2xpZW50SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50SWRlbnRpZmllcjsgfQor
Citwcml2YXRlOgorICAgIHZvaWQgcmVzZXQoKTsKKyAgICB2b2lkIHN0YXJ0SW50ZXJuYWwoKTsK
KyAgICB2b2lkIHN0b3BJbnRlcm5hbCgpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gbV9jbGllbnRJZGVudGlmaWVyOworICAgIERl
bGVnYXRlQ2FsbGJhY2sgbV9kZWxlZ2F0ZUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2U+IG1fc291cmNlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAyNTk0NTgxYjcyMDkxMmMwYjk1NTNiYjQx
MGQ1MWQ4OGQwYTgxNTZjLi44YWEzYWM0ZjY5MDJkNjIyMDRiNWM3YjI2NDhmMmIwZjQ1NDUwYTc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTk5LDYgKzE5OSw5IEBAIE1vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml0aW9uUmVxdWVzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
UmVzdWx0LmNwcAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmNw
cAogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuY3BwCitNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwCitNb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXplci5jcHAKIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaFN5bnRoZXNp
cy5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpc0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmIz
M2M0YmNlNzRkZGVhZDgxOGJhM2NiMmE0NDkzMTU0NmI1OWE2MC4uMTk5ZDg5ZDYxOTkwM2ZiMjVm
MTI2MDI1ZDMyZjEwZDc3ODYwNjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMzgs
NiArMjM4LDcgQEAgcGxhdGZvcm0vY29jb2EvRmlsZU1vbml0b3JDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvS2V5RXZlbnRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTG9jYWxpemVkU3RyaW5nc0Nv
Y29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9NSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0KK3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW0KIHBsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NWE1MjJj
MmFiZWIwZDE2ZDVjNjg4NmM3MTcwNjU3MjQ5MjBjOTRlLi4xYmI1Mjg0MzY4OTI2ZTAwZjc0NTNi
NjE3YzIzNjRiMzM0OGU5NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjAsOCArMTIwLDggQEAKIAkJMDczNzk0RkUxOUY1
ODY0RTAwRTVBMDQ1IC8qIFJUQ05vdGlmaWVyc01vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mzc5NEY4MTlGNTg2NEUwMEU1QTA0NSAvKiBSVENO
b3RpZmllcnNNb2NrLmggKi87IH07CiAJCTA3MzhFNUVDMjQ5OTgzOTAwMERBMTAxQyAvKiBBVk91
dHB1dERldmljZU1lbnVDb250cm9sbGVyVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczOEU1RUEyNDk5NjhBRDAwREExMDFDIC8q
IEFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJUYXJnZXRQaWNrZXIubW0gKi87IH07CiAJCTA3
M0ExNTU0MjE3N0E0MjYwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQTE1NTMyMTc3QTM5QTAwRUEw
OEYyIC8qIFJlbW90ZVZpZGVvU2FtcGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDczQjg3NjcxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2Ft
cGxlQnVmZmVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5o
ICovOyB9OwotCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzNC
ODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi87IH07CisJ
CTA3M0I4NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1
OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzNCODc2OTFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVE
YXRhU291cmNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc0RTgyQkIxOEE2OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTgyQjkxOEE2
OUYwRTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTAzM0E4MjUyQkQzNjgwMEY3MENFMyAv
KiBWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTAzM0E2MjUyQkQzNjgwMEY3MENFMyAvKiBWaWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRy
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUz
ODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CkBAIC0yNzg3
LDYgKzI3ODcsOCBAQAogCQk5MzkzRTYwMDE1MUE5OUYyMDAwNjZGMDYgLyogQ1NTSW1hZ2VTZXRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
M0U1RkUxNTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5Mzk4ODVDNDA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJFRjBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRo
SXRlcmF0b3IuaCAqLzsgfTsKKwkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5QzBEMkIyNTY0RTdG
MzAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGls
aXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0EwNDgyODI1NDk1NTA2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBMDQ4MjYy
NTQ5NTUwMDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0EwNDgyOTI1NDk1NTEx
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIg
LyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MkEyNTQ5NTUxNDAwMEFDNDYyIC8qIFNw
ZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0yODQ4LDYgKzI4NTAsOCBAQAogCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyog
V2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCAq
LzsgfTsKIAkJOTNGMUQ1QzExMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYx
MkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0YyQ0M5
MzI0MjdGQjlDMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjJDQzkxMjQyN0ZCOUEwMDU4NTFEOCAvKiBD
aGFyYWN0ZXJSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Y2QjgxQzI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTkzRjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0Y2RjFFRTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVCMTI3RjcwQjEw
MDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5oICovOyB9OwogCQk5M0Y5MjU0MzBGN0VGNUI4
MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRpb0J1
dHRvbkdyb3Vwcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzRjlCNkUxMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjlCNkRGMEJBMEZCNzIwMDg1
NDA2NCAvKiBKU0NvbW1lbnQuaCAqLzsgfTsKQEAgLTExNDI5LDYgKzExNDMzLDEwIEBACiAJCTkz
OTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50TmFtZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOUIwMkVD
MEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdpZHRoSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MzlCMDJFRDBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaWR0aEl0ZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hS
ZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXplci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI4MjU2NEU3RjIwMEIzMjExQiAvKiBN
ZWRpYVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZWRpYVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMwRDI5
MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5M0EwNDgxQjI1NDk1NEU0MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXN1bHRE
YXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0EwNDgxRjI1
NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTE1MTUsNiArMTE1MjMsMTAgQEAKIAkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8q
IEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1dlYkdMTG9zZUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xMb3NlQ29udGV4dC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFj
dGVyUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhcmFjdGVyUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUIyNTY3OUY2RjAwQTA4
NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUMyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0Y2QjgxRDI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4MUUyNTY3OUY3MTAwQTA4NDg4IC8qIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250
ZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViR0xD
b250ZXh0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQjEy
N0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGNkYxRUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzU3Miw2ICsyMzU4NCwxMyBAQAogCQkJcGF0aCA9IGNv
Y29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOTNGNkI4MEUyNTY2RURF
MTAwQTA4NDg4IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQk5NDZEMzcyNzFENkNCMjI1MDA3NzA4NEYgLyogcGFyc2VyICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI0NDA5LDYgKzI0NDI4LDggQEAK
IAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5tbSAqLywKIAkJ
CQkwNkU4MUVENjBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
LmggKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JBNjAwOEI0REZFIC8qIExvY2FsaXplZFN0cmluZ3ND
b2NvYS5tbSAqLywKKwkJCQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRp
ZXMuY3BwICovLAorCQkJCTkzOUMwRDI5MjU2NEU3RjIwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5oICovLAogCQkJCUM1M0QzOTMzMUM5Nzg5MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5
Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkzNDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmggKi8sCiAJCQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8q
IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tICovLApAQCAtMjU2MDEsNiArMjU2MjIs
NyBAQAogCQlBQTJBNUFCNzE2QTQ4NUE0MDA5NzVBMjUgLyogc3BlZWNoICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5M0Y2QjgwRTI1NjZFREUxMDBBMDg0
ODggLyogY29jb2EgKi8sCiAJCQkJQUEyQTVBQkExNkE0ODVENTAwOTc1QTI1IC8qIERPTVdpbmRv
dytTcGVlY2hTeW50aGVzaXMuaWRsICovLAogCQkJCUFBMkE1QUI4MTZBNDg1RDUwMDk3NUEyNSAv
KiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwICovLAogCQkJCUFBMkE1QUI5MTZBNDg1RDUw
MDk3NUEyNSAvKiBET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuaCAqLywKQEAgLTI1NjEwLDYgKzI1
NjMyLDEwIEBACiAJCQkJOTM0OTUwQjcyNTM5NDM0QjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0
aW9uQWx0ZXJuYXRpdmUuY3BwICovLAogCQkJCTkzNDk1MEJDMjUzOTQzNEUwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggKi8sCiAJCQkJOTM0OTUwQkIyNTM5NDM0RTAw
OTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsICovLAorCQkJCTkzRjZC
ODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3Bw
ICovLAorCQkJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaCAqLywKKwkJCQk5M0Y2QjgxRDI1Njc5RjcwMDBBMDg0ODggLyogU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgKi8sCisJCQkJOTNGNkI4MUMyNTY3OUY3
MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLywKIAkJ
CQk5M0EwNDgxRDI1NDk1NEU1MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
LmggKi8sCiAJCQkJOTNBMDQ4MjQyNTQ5NTRFOTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJCTkzQTA0ODIwMjU0OTU0RTYwMDBBQzQ2MiAvKiBT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmggKi8sCkBAIC0yNTYz
NCw2ICsyNTY2MCw4IEBACiAJCQkJOTM0OTUwQzUyNTM5NDM1MzAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJOTNENkI3NkUyNTRCOEUxQjAwNThERDNB
IC8qIFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmNwcCAqLywKIAkJCQk5M0Q2Qjc2RDI1NEI4RTFC
MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaCAqLywKKwkJCQk5MzlDMEQyMzI1
NjQ4QzRFMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5jcHAgKi8sCisJCQkJOTM5QzBEMjEy
NTY0OEMzOTAwQjMyMTFCIC8qIFNwZWVjaFJlY29nbml6ZXIuaCAqLywKIAkJCQlBQTJBNUFCRDE2
QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmNwcCAqLywKIAkJCQlBQTJBNUFCRTE2
QTQ4NUQ1MDA5NzVBMjUgLyogU3BlZWNoU3ludGhlc2lzLmggKi8sCiAJCQkJQUEyQTVBQkYxNkE0
ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5pZGwgKi8sCkBAIC0zMzUxOSw2ICszMzU0
Nyw3IEBACiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJh
aW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2MTFE
QzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5MzlDMEQyQjI1NjRFN0YzMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQx
IC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAw
RDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4gSGVhZGVycyAqLywKQEAgLTM0NDEwLDYgKzM0NDM5
LDggQEAKIAkJCQk2MjZDREUwRjExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hS
ZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0OTUwQ0UyNTM5NDM2NTAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkz
RjZCODIyMjU2N0E2NTYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzRjZCODFGMjU2N0EwOEMwMEEwODQ4OCAvKiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgy
QzI1NDk1NTE5MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0EwNDgyRTI1NDk1NTFFMDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0EwNDgyRDI1NDk1NTFC
MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNDQyNCw2ICszNDQ1NSw3IEBACiAJCQkJOTNBMDQ4MjkyNTQ5
NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0OTUwRDYyNTM5NDM4MTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uUmVz
dWx0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3NzEyNTRCQUI0NTAwNThERDNBIC8q
IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzlDMEQyNzI1
NjRFNDdGMDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QUEyQTVBRDQxNkE0ODYxMTAwOTc1QTI1IC8qIFNwZWVjaFN5bnRoZXNpcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzE0OTM4MDcyMjM0NTUxQTAwMENENzA3IC8qIFNwZWVjaFN5bnRoZXNpc0NsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUEyQTVBRDIxNkE0ODYwQTAwOTc1QTI1IC8qIFNwZWVj
aFN5bnRoZXNpc0V2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDhiNGY1NjMzMmQw
NTlkOWZiMTc3NTU0MzBhMWY4ZTA1NjJjY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFVdGlsaXRp
ZXMuaCIKKworI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJX
ZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KKyNpbmNs
dWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJl
Zj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbikKK3sKKyAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24gPSBXVEY6Omdl
dDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9y
bURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOworICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYg
Zm9ybWF0ID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0
aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24sIDAsIG51bGxw
dHIsIDAsIG51bGxwdHIsIG51bGxwdHIsICZmb3JtYXQpOworICAgIGlmIChlcnJvcikgeworICAg
ICAgICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24gZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4g
YWRvcHRDRihmb3JtYXQpOworfQorCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0
ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBB
dWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBz
YW1wbGVDb3VudCkKK3sKKyAgICAvLyBGSVhNRTogY2hlY2sgaWYgd2UgY2FuIHJldXNlIHRoZSBm
b3JtYXQgZm9yIG11bHRpcGxlIHNhbXBsZSBidWZmZXJzLgorICAgIGF1dG8gZm9ybWF0ID0gY3Jl
YXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgaWYgKCFmb3JtYXQp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
QnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNy
ZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwg
ZmFsc2UsIG51bGxwdHIsIG51bGxwdHIsIGZvcm1hdC5nZXQoKSwgc2FtcGxlQ291bnQsIHRpbWUs
IG51bGxwdHIsICZzYW1wbGVCdWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBMT0df
RVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIHdpdGggcGFja2V0IGRlc2NyaXB0aW9ucyBm
YWlsZWQgLSAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAg
IGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOworCisgICAgZXJyb3IgPSBDTVNh
bXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0KGJ1ZmZlci5nZXQoKSwg
a0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgZG93bmNhc3Q8V2Vi
QXVkaW9CdWZmZXJMaXN0PihkYXRhKS5saXN0KCkpOworICAgIGlmIChlcnJvcikgeworICAgICAg
ICBMT0dfRVJST1IoImNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyIGZyb20gYXVkaW8gYnVmZmVyIGxp
c3QgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICByZXR1cm4gYnVmZmVyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YjY3YzY2Nzg1ZDQ3ZDI3MDJiNWM2NDllZjI4NWU0YjBhNWUxMjY2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMCww
ICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlTWVk
aWEvQ01UaW1lLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVm
OwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIqIENNU2FtcGxlQnVmZmVyUmVm
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247
CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKKworUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRp
b25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNj
cmlwdGlvbiYpOworUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBs
ZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBDTVRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIv
Y29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5tbQppbmRleCBhY2I0OTQ0MzA4ZDFjYTQzZjlmNjk5YzUxMDQ2MDA4ZjNkNzM1NTA3Li5i
ZGQ3MGZkOWNhYWUyZGVjY2NiMjQwYmMyMWIyNWE0MmZjNjM3NjVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGUuaCIKICNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCiAj
aW5jbHVkZSA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXIuaD4KQEAgLTQ0Myw0MCArNDQ0LDYg
QEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZm
ZXIoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmFkZFNh
bXBsZUJ1ZmZlcihidWZmZXJXaXRoQ3VycmVudFRpbWUuZ2V0KCkpOwogfQogCi1zdGF0aWMgaW5s
aW5lIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQotewot
ICAgIGF1dG8gYmFzaWNEZXNjcmlwdGlvbiA9IFdURjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlw
dGlvbik7Ci0gICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXQgPSBudWxscHRyOwotICAg
IGF1dG8gZXJyb3IgPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgYmFzaWNEZXNjcmlwdGlvbiwgMCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmZvcm1h
dCk7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3Ry
ZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKLX0KLQotc3RhdGljIGlubGluZSBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0
IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbiwgQ01UaW1lIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKLXsKLSAgICBhdXRv
IGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOwotICAg
IGlmICghZm9ybWF0KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBlcnJvciA9IENNQXVkaW9T
YW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25zKGtDRkFsbG9jYXRvckRlZmF1
bHQsIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxMLCBmb3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0
aW1lLCBOVUxMLCAmc2FtcGxlQnVmZmVyKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBj
cmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBhdXRvIGJ1
ZmZlciA9IGFkb3B0Q0Yoc2FtcGxlQnVmZmVyKTsKLQotICAgIGVycm9yID0gQ01TYW1wbGVCdWZm
ZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVm
ZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKLSAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNh
bXBsZUJ1ZmZlclNldERhdGFCdWZmZXJGcm9tQXVkaW9CdWZmZXJMaXN0IGZhaWxlZCB3aXRoICVk
IiwgZXJyb3IpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1
ZmZlcjsKLX0KLQogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9T
YW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVf
dCBzYW1wbGVDb3VudCkKIHsKICAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbV9jdXJyZW50QXVkaW9TYW1wbGVUaW1l
LCBzYW1wbGVDb3VudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCmluZGV4IDc1Yzk1MGY5
MDU0MGE4OTdlYjBhZDZkYTc5YzExNDdmYTdjNTEyM2UuLjY0MTU0N2I0ZDBmNGZiYTUyYWNlOGVm
N2I2NTQ4Nzc2NWRkNDk2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIuY3BwCkBAIC0xMDQs
NiArMTA0LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpzdGFy
dFByb2Nlc3NpbmdSZXF1ZXN0KCkKICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmljZUNoZWNr
ID0gY29tcHV0ZVNwZWVjaFJlY29nbml0aW9uU2VydmljZUFjY2VzcygpOwogCiAgICAgaWYgKG1f
cGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKSkgeworICAgICAg
ICBtX3BhZ2Uuc3luY0lmTW9ja0RldmljZXNFbmFibGVkQ2hhbmdlZCgpOwogICAgICAgICBtX21p
Y3JvcGhvbmVDaGVjayA9IENoZWNrUmVzdWx0OjpHcmFudGVkOwogICAgICAgICBtX3NwZWVjaFJl
Y29nbml0aW9uU2VydmljZUNoZWNrID0gQ2hlY2tSZXN1bHQ6OkdyYW50ZWQ7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3Bw
CmluZGV4IDg1NjUxOWZiNjg3MTNlZGQ5YWNjZjJlZTFjMjQ3NzRmOTczZjk5MTYuLmQ2OTA3M2Y4
NTkwN2JiYmMzNzJlZmZmNjUwODM4ZmRiMWQwNzcyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTQ2LDEyICs0Niwx
MSBAQCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aQogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c3RhcnQoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyLCBTdHJpbmcmJiBsYW5nLCBib29sIGNvbnRpbnVvdXMsIGJv
b2wgaW50ZXJpbVJlc3VsdHMsIHVpbnQ2NF90IG1heEFsdGVybmF0aXZlcywgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiYgb3JpZ2luKQogewogICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SWRlbnRpZmll
cik7Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlm
aWVyKSk7Ci0gICAgQVNTRVJUKCFtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVu
dGlmaWVyKSk7CisgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZp
ZXIpKTsKICAgICBhdXRvIHJlcXVlc3RJbmZvID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25S
ZXF1ZXN0SW5mbyB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUobGFuZyksIGNvbnRpbnVvdXMs
IGludGVyaW1SZXN1bHRzLCBtYXhBbHRlcm5hdGl2ZXMsIFdURk1vdmUob3JpZ2luKSB9OwotICAg
IGF1dG8mIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGNsaWVudElkZW50
aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihXVEZN
b3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBhdXRvJiBuZXdSZXF1ZXN0
ID0gbV9yZXF1ZXN0cy5hZGQoY2xpZW50SWRlbnRpZmllciwgbWFrZVVuaXF1ZTxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblJlcXVlc3Q+KFdURk1vdmUocmVxdWVzdEluZm8pKSkuaXRlcmF0b3It
PnZhbHVlOwogCi0gICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpwZW5kaW5nUmVxdWVz
dCk7CisgICAgcmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KCpuZXdSZXF1ZXN0KTsKIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTY0LDY2ICs2
Myw3MCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZv
clJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHdlYWtSZXF1ZXN0LT5jbGllbnRJZGVudGlmaWVyKCk7
Ci0gICAgICAgIGF1dG8gdGFrZW5SZXF1ZXN0ID0gbV9wZW5kaW5nUmVxdWVzdHMudGFrZShpZGVu
dGlmaWVyKTsKICAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgICAgICBtX3JlcXVlc3RzLnJlbW92ZShpZGVu
dGlmaWVyKTsKICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93
ZWQsICJQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCJfcyB9OwogICAgICAgICAgICAgc2VuZFVwZGF0
ZShpZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9y
LCBlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBtX29u
Z29pbmdSZXF1ZXN0cy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZSh0YWtlblJlcXVlc3QpKTsKLSAg
ICAgICAgaGFuZGxlUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0KGlkZW50aWZpZXIpKTsK
KyAgICAgICAgaGFuZGxlUmVxdWVzdChpZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit7Cisg
ICAgaWYgKCFtX3JlY29nbml6ZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyID0gbWFrZVVuaXF1
ZTxTcGVlY2hSZWNvZ25pemVyPihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0o
YXV0byYgdXBkYXRlKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gdXBkYXRl
LmNsaWVudElkZW50aWZpZXIoKTsKKyAgICAgICAgICAgIGlmICghbV9yZXF1ZXN0cy5jb250YWlu
cyhjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIGF1dG8gdHlwZSA9IHVwZGF0ZS50eXBlKCk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yIHx8IHR5cGUgPT0gU3BlZWNoUmVjb2du
aXRpb25VcGRhdGVUeXBlOjpFbmQpCisgICAgICAgICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUo
Y2xpZW50SWRlbnRpZmllcik7CisKKyAgICAgICAgICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgbV9yZWNvZ25pemVyLT5zdGFydChjbGllbnRJZGVudGlm
aWVyKTsKK30KKwogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RvcChXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9w
ZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRV
cGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFbmQpOworICAgIGlmIChtX3JlY29nbml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50
Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVudElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNv
Z25pemVyLT5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQobV9v
bmdvaW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIHN0b3BSZXF1
ZXN0KCptX29uZ29pbmdSZXF1ZXN0cy5nZXQoY2xpZW50SWRlbnRpZmllcikpOworICAgIGlmICht
X3JlcXVlc3RzLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKSkKKyAgICAgICAgc2VuZFVwZGF0ZShj
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmFib3J0KFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
cikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChtX3Bl
bmRpbmdSZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpIHsKLSAgICAgICAgc2VuZFVw
ZGF0ZShjbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5
cGU6OkVuZCk7CisgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRD
bGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikgeworICAgICAgICBtX3JlY29n
bml6ZXItPnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U2hvdWxkR2VuZXJhdGVGaW5h
bFJlc3VsdDo6Tm8pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25n
b2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNsaWVudElkZW50aWZpZXIpKTsKLSAgICBhdXRvIHJlcXVl
c3QgPSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGFib3J0
UmVxdWVzdCgqcmVxdWVzdCk7Ci0gICAgYXV0byB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlKGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb246OkRpZFJlY2VpdmVVcGRhdGUodXBkYXRlKSwgbV9pZGVudGlm
aWVyKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpp
bnZhbGlkYXRlKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50
aWZpZXIpOwotICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ1JlcXVlc3RzLnRha2UoY2xpZW50
SWRlbnRpZmllcik7Ci0gICAgaWYgKHJlcXVlc3QpCi0gICAgICAgIGFib3J0UmVxdWVzdCgqcmVx
dWVzdCk7Ci19Ci0KLXZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OmhhbmRsZVJlcXVlc3Qo
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRP
RE86IHN0YXJ0IGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2duaXRpb24uCi19Ci0KLXZvaWQgU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0b3BSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRp
byBhbmQgZmluYWxpemluZyByZXN1bHRzIGJ5IHJlY29nbml6aW5nIGNhcHR1cmVkIGF1ZGlvLgot
fQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjphYm9ydFJlcXVlc3QoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIC8vIFRPRE86IHN0b3Ag
Y2FwdHVyaW5nIGF1ZGlvIGFuZCByZWNvZ25pdGlvbiBpbW1lZGlhdGVseSB3aXRob3V0IGdlbmVy
YXRpbmcgcmVzdWx0cy4KKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cikpIHsKKyAgICAgICAgaWYgKG1fcmVjb2duaXplciAmJiBtX3JlY29nbml6ZXItPmN1cnJlbnRD
bGllbnRJZGVudGlmaWVyKCkgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgICAgIG1fcmVj
b2duaXplci0+c3RvcCgpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZl
cjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBk
YXRlVHlwZSB0eXBlLCBPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiBl
cnJvciwgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YT4+IHJlc3VsdCkKQEAgLTEzMyw3ICsxMzYsMTIgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6c2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGkK
ICAgICAgICAgdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0
ZUVycm9yKGNsaWVudElkZW50aWZpZXIsICplcnJvcik7CiAgICAgaWYgKHR5cGUgPT0gV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpSZXN1bHQpCiAgICAgICAgIHVwZGF0ZSA9
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoY2xpZW50SWRl
bnRpZmllciwgKnJlc3VsdCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uOjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7Cisg
ICAgc2VuZFVwZGF0ZSh1cGRhdGUpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVy
OjpzZW5kVXBkYXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJiB1cGRh
dGUpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
OjpEaWRSZWNlaXZlVXBkYXRlKHVwZGF0ZSkpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24qIFNwZWVj
aFJlY29nbml0aW9uU2VydmVyOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaAppbmRl
eCAzNjNjYTIwZWJiZTNjZmNlZWRhZjU4ZmVlMzRmYmMyZTFkMThhMjRkLi5hN2Y3NmQzOGVlNTAx
ZTU4MmY3OWE1NDRmYTAyN2NiMGIzMjI4ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NwZWVjaFJlY29nbml0aW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pemVy
Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU4
LDEwICs1OSw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsKLSAgICB2
b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0g
ICAgdm9pZCBzdG9wUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmKTsK
LSAgICB2b2lkIGFib3J0UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qm
KTsKKyAgICB2b2lkIGhhbmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBzZW5kVXBkYXRlKFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uVXBkYXRlVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25FcnJvcj4gPSBXVEY6Om51bGxvcHQsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdERhdGE+PiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBzZW5kVXBk
YXRlKGNvbnN0IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlJik7CiAKICAgICAvLyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlci4KICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtNzIsOSArNzIsOSBAQCBwcml2
YXRlOgogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFNwZWVj
aFJlY29nbml0aW9uU2VydmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci0gICAgSGFzaE1hcDxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9wZW5kaW5n
UmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXF1ZXN0Pj4gbV9vbmdvaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Pj4gbV9yZXF1ZXN0czsKICAgICBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyIG1fcGVybWlzc2lvbkNoZWNrZXI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml6ZXI+IG1fcmVjb2duaXpl
cjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggMGY4NzQyODk5MGRlMDAxMzQzNjcyZTI0OTQ4OTVhZDEzZDQz
MzAyOC4uN2RmMDFkNDRkMWNjOGU3NzdjMmE4ZjdiMzkzNDI0ZTg1MWFiMjIxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MTc0LDYgKzgxNzQsMTMgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdAogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
eW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKCkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorICAgIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLnN5bmNXaXRoV2Vi
Q29yZVByZWZzKCk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luTW9uaXRv
cmluZ0NhcHR1cmVEZXZpY2VzKCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4NzlmNzMyYjExY2IxMjM5NzM4NjU4
ZThlNThmYjg3YzUwMzRmMmI4Li4xOGY1YWM2Y2U2YjI2NTEwZTIyZWQ5NjZjODRkZTg1MTc0MGU2
YWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTgyMyw2ICsx
ODIzLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CiAgICAgdm9pZCByZXF1
ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAK
KyAgICB2b2lkIHN5bmNJZk1vY2tEZXZpY2VzRW5hYmxlZENoYW5nZWQoKTsKKwogcHJpdmF0ZToK
ICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6
OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDRmYjQ4ZTE1ZjU3NDU1NTliYTZjMWFiZmNkMjM2NjE0NDAzNGZlZjQuLmRjNGM3NGYy
N2M4YzFhNmM2NTIyZDNjNWFhZjllNGQyMTkzMGYwZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAyMC0xMS0yMCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gbWFjT1MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24taW4tcmVtb3ZlZC1pZnJhbWUu
aHRtbDogbWFyayB0ZXN0IGFzIGFzeW5jIHRvIGF2b2lkIGZsYWtpbmVzcy4KKyAgICAgICAgKiBm
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVj
b2duaXRpb24tdGhlbi1zdG9wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVj
b2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMjAtMTEtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bXBvcnQgd2ViLXBsYXRmb3JtLXRlc3RzL3VpZXZlbnRzIHRlc3RzIGZyb20gdXBzdHJlYW0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDA1Y2Y1YTAwYzA5MjE5OWRjYTUzMzhkZTgyY2I5OTE4ZmJiYTJl
ZjEuLmI0MzBhMmEyZGQ2YjM0YTY5NThkNTI0ZWYxZGUzZDA4NmMyYWI0ODMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTc5LDYgKzE3OSw4IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQk9iamVjdC1s
ZWFrLmh0bWwgWyBTa2lwIF0KIGZhc3QvZm9ybXMvY2FsbC10ZXh0LWRpZC1jaGFuZ2UtaW4tdGV4
dC1maWVsZC13aGVuLXR5cGluZy5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2luLWFwcC1icm93
c2VyLXByaXZhY3kvIFsgU2tpcCBdCiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24t
ZXJyb3IuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25p
dGlvbi10aGVuLXN0b3AuaHRtbCBbIFNraXAgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIE9ubHkgcGFydGlhbCBzdXBw
b3J0IG9uIENvY29hIHBsYXRmb3Jtcy4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c3BlZWNoLWFwaS8gWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNo
cmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24taW4tcmVtb3ZlZC1pZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24taW4tcmVt
b3ZlZC1pZnJhbWUuaHRtbAppbmRleCAxYzc2ZTUzMjc1ZDBlMDMwMjk1ZjVkMDQyNGJhNmRkZDY5
YzFiYzM0Li5hOTA1MTFlY2NjYzNlYWJkYWFmZjgyNDhjNjkxYzVmZjU1N2Y4MzFlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9u
LWluLXJlbW92ZWQtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi1pbi1yZW1vdmVkLWlmcmFtZS5odG1sCkBAIC01LDE1
ICs1LDIwIEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHByb2Nlc3MgZG9l
cyBub3QgY3Jhc2ggd2hlbiBzdGFydGluZyByZWNvZ25pdGlvbiBpbiBhIHJlbW92ZWQgaWZyYW1l
LiIpOwogCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK30KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBdOwotICAgIHNob3VsZE5vdFRocm93KCJpZnJhbWUu
Y29udGVudFdpbmRvdy5zdGFydFJlY29nbml0aW9uKCkiKTsgCisgICAgc2hvdWxkTm90VGhyb3co
ImlmcmFtZS5jb250ZW50V2luZG93LnN0YXJ0UmVjb2duaXRpb24oKSIpOwogfQogCiBmdW5jdGlv
biByZW1vdmVGcmFtZSgpCiB7CiAgICAgc2hvdWxkTm90VGhyb3coImlmcmFtZS5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKGlmcmFtZSkiKTsKKyAgICBzZXRUaW1lb3V0KCgpID0+IGZpbmlzaEpTVGVz
dCgpLCAwKTsKIH0KIAogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0ZXN0LCBmYWxz
ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDJhNzQ2MWRjN2NjMDE0ZGI2MmQ2NWM2YjIwYjZiMGRhMjU2ZWE0MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
cmVjb2duaXRpb24tdGhlbi1zdG9wLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJp
ZnkgdGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3Ag
cmVjb2duaXRpb24gbm9ybWFsbHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUmVjZWl2ZWQgc3RhcnQgZXZlbnQKK1JlY2VpdmVkIGF1ZGlvc3RhcnQgZXZlbnQKK1BB
U1MgcmVjb2duaXRpb24uc3RvcCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUmVjZWl2ZWQg
YXVkaW9lbmQgZXZlbnQKK1JlY2VpdmVkIGVuZCBldmVudAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4t
c3RvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNWQyYjA3OGM2ZTIxOTRjNTllNzg5ZDM1YTQ2NzhiMTRk
ZmNlY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0
aGF0IGV2ZW50cyBhcmUgcmVjZWl2ZWQgY29ycmV0bHkgd2hlbiBzdGFydCBhbmQgc3RvcCByZWNv
Z25pdGlvbiBub3JtYWxseS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNU
ZXN0SXNBc3luYyA9IHRydWU7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5l
dyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworcmVjb2duaXRpb24ub25zdGFydCA9IChldmVudCkg
PT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBzdGFydCBldmVudCIpOworfQorCityZWNvZ25pdGlv
bi5vbmF1ZGlvc3RhcnQgPSAoZXZlbnQpID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgYXVkaW9z
dGFydCBldmVudCIpOworCisgICAgc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0b3AoKSIp
OworfQorCityZWNvZ25pdGlvbi5vbmF1ZGlvZW5kID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWco
IlJlY2VpdmVkIGF1ZGlvZW5kIGV2ZW50Iik7Cit9CisKK3JlY29nbml0aW9uLm9uZW5kID0gKGV2
ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGVuZCBldmVudCIpOworCisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vj
b25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVj
b2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMjEwYzk0YTI0Y2M5ODVmMGY2MjYwNTNkZDEyNDQzMWIzNWMzZDdlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVj
b2duaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1ZlcmlmeSB0aGF0IHN0YXJ0
aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0cyBvbmdvaW5nIG9uZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2du
aXRpb24oKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHJlY29nbml0aW9uLnN0YXJ0
KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNlY29uZFJlY29nbml0aW9uID0gbmV3
IFNwZWVjaFJlY29nbml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNv
bmRSZWNvZ25pdGlvbi5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNl
aXZlZFN0YXJ0IGlzIHRydWUKK1BBU1MgZXZlbnQuZXJyb3IgaXMgImFib3J0ZWQiCitQQVNTIGV2
ZW50Lm1lc3NhZ2UgaXMgIkFub3RoZXIgcmVxdWVzdCBpcyBzdGFydGVkIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29nbml0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNv
Z25pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExZTc0M2ZmM2Y2MDkxMGExZDE0NDBmMTQ0ZDZiZDk1
YTFmYzczNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29n
bml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmeSB0
aGF0IHN0YXJ0aW5nIGEgc2Vjb25kIHJlY29nbml0aW9uIGFib3J0cyBvbmdvaW5nIG9uZS4iKTsK
KworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cit9
CisKK3Nob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigp
OyIpOworcmVjZWl2ZWRTdGFydCA9IGZhbHNlOworcmVjb2duaXRpb24ub25zdGFydCA9IChldmVu
dCkgPT4geworICAgIHJlY2VpdmVkU3RhcnQgPSB0cnVlOworfQorCityZWNvZ25pdGlvbi5vbmVy
cm9yID0gKGV2ZW50KSA9PiB7CisgICAgc2hvdWxkQmVUcnVlKCJyZWNlaXZlZFN0YXJ0Iik7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5lcnJvciIsICJhYm9ydGVkIik7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5tZXNzYWdlIiwgIkFub3RoZXIgcmVxdWVzdCBp
cyBzdGFydGVkIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworc2hvdWxkTm90VGhyb3co
InJlY29nbml0aW9uLnN0YXJ0KCkiKTsKK3Nob3VsZE5vdFRocm93KCJzZWNvbmRSZWNvZ25pdGlv
biA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyIpOworc2hvdWxkTm90VGhyb3coInNlY29uZFJl
Y29nbml0aW9uLnN0YXJ0KCkiKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA3ZDUzNGEwNmEyMmEzYjI5N2I3NTQzZDQxYjg2OWY1NGVmMGJjYzJiLi44
MTMxMjA2NDBiMmEwNTIyYjhmZDY2MTY5Mjg5MTVmYWYzZjYxN2U0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODA0LDQgKzgwNCw2IEBAIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXBvcnQtZGVsYXkuaHRtbCBbIFBhc3MgXQog
IyBXZWJLaXQyIG9ubHkuCiBqcy90aHJvdy1sYXJnZS1zdHJpbmctb29tLmh0bWwgWyBQYXNzIF0K
IGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci5odG1sIFsgUGFzcyBdCitm
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sIFsg
UGFzcyBdCitmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5o
dG1sIFsgUGFzcyBdCiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVudGVyLXdoaWxlLWV4aXRpbmcu
aHRtbCBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414779</attachid>
            <date>2020-11-21 18:44:48 -0800</date>
            <delta_ts>2020-11-21 21:51:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218855-20201121184447.patch</filename>
            <type>text/plain</type>
            <size>71721</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjljMjRlNDZjYzRhZjQz
MjQ3ZTViMGFhNTU0Yzc1ZjAxZThkMGU2OC4uOTEyZjQ2ZjYyNjY4MjQyMTZmZDE1NGZjMjhjNWFj
NjViZDFlNjMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIwLTExLTIxICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhdWRpbyBj
YXB0dXJlIGZvciBTcGVlY2hSZWNvZ25pdGlvbiBvbiBtYWNPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MTMzMTAwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisg
ICAgICAgIEludHJvZHVjZSBTcGVlY2hSZWNvZ25pemVyLCB3aGljaCBwZXJmb3JtcyBhdWRpbyBj
YXB0dXJlIGFuZCBzcGVlY2ggcmVjb2dudGlvbiBvcGVyYXRpb25zLiBPbiBzdGFydCwKKyAgICAg
ICAgU3BlZWNoUmVjb2duaXplciBjcmVhdGVzIGEgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlIGFuZCBzdGFydHMgYXVkaW8gY2FwdHVyaW5nLiBPbiBzdG9wLCBTcGVlY2hSZWNvZ25pemVy
IAorICAgICAgICBjbGVhcnMgdGhlIHNvdXJjZSBhbmQgc3RvcHMgcmVjb2duaXppbmcuIFNwZWVj
aFJlY29nbml6ZXIgY2FuIG9ubHkgaGFuZGxlIG9uZSByZXF1ZXN0IGF0IGEgdGltZSwgc28gY2Fs
bGluZworICAgICAgICBzdGFydCBvbiBhbHJlYWR5IHN0YXJ0ZWQgU3BlZWNoUmVjb2duaXplciB3
b3VsZCBjYXVzZSBvbmdvaW5nIHJlcXVlc3QgdG8gYmUgYWJvcnRlZC4KKworICAgICAgICBUZXN0
czogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVj
b2duaXRpb24uaHRtbAorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6IEFkZGVkLiBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsIHByb3ZpZGVzIAorICAgICAgICBpbXBsZW1lbnRh
dGlvbiBvZiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Ugb24gd2hlbiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSBpcyB0cnVlLgorICAgICAgICAoV2ViQ29yZTo6bmV4dExvZ0lkZW50aWZpZXIp
OgorICAgICAgICAoV2ViQ29yZTo6bnVsbExvZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw6On5TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxl
c0F2YWlsYWJsZSk6IFB1c2ggZGF0YSB0byBidWZmZXIsIHNpZ25hbCBtYWluIHRocmVhZCB0bwor
ICAgICAgICBwdWxsIGZyb20gYnVmZmVyIGFuZCBpbnZva2UgZGF0YSBjYWxsYmFjay4KKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0
YXJ0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbDo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXplci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6U3BlZWNoUmVjb2duaXplcik6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pemVyOjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pemVyOjpzdGFydEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml6
ZXI6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6c3RvcEludGVy
bmFsKToKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pemVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXplcjo6Y3VycmVudENsaWVudElkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBsYXRmb3JtL2NvY29hL01lZGlhVXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVBdWRpb0Zvcm1hdERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2Nv
YS9NZWRpYVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW06IE1vdmUgY29kZSBm
b3IgY3JlYXRpbmcgQ01TYW1wbGVCdWZmZXJSZWYgdG8KKyAgICAgICAgTWVkaWFVdGlsaXRpZXMu
aC9jcHAgc28gaXQgY2FuIHNoYXJlZCBiZXR3ZWVuIFNwZWVjaFJlY29nbml0aW9uIGFuZCBVc2Vy
TWVkaWEsIGFzIFNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIAorICAgICAgICB3aWxsIHRha2Ug
Q01TYW1wbGVCdWZmZXJSZWYgYXMgaW5wdXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBdWRp
b0Zvcm1hdERlc2NyaXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUF1
ZGlvU2FtcGxlQnVmZmVyKTogRGVsZXRlZC4KKwogMjAyMC0xMS0yMSAgQW5kcmVzIEdvbnphbGV6
ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6
Rm9jdXNlZFVJRWxlbWVudCBzaG91bGQgbm90IGNhbGwgQVhPYmplY3RDYWNoZTo6Zm9jdXNlZFVJ
RWxlbWVudEZvclBhZ2UgdGhhdCBjYW4gcmV0dXJuIGFuIGlzb2xhdGVkIG9iamVjdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggOTQ2YWUwYjEyMjc1M2U5ZjU0YTVhNDdhNDMxOTE4MWFkMzMyZGFiNS4uNTc1ZGE0Yjg1
NjNjNGVkMTY4OTY3MjAyZTFjOTZlMWE5NjVhODQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBA
QAorMjAyMC0xMS0yMSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgYXVkaW8gY2FwdHVyZSBmb3IgU3BlZWNoUmVjb2duaXRpb24gb24gbWFjT1MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMzEwMDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uTWFuYWdlcjo6c3RhcnRQcm9jZXNzaW5nUmVxdWVzdCk6IENoZWNrIGFuZCBlbmFi
bGUgbW9jayBkZXZpY2VzIGJhc2VkIG9uIAorICAgICAgICBwcmVmZXJlbmNlIGFzIFNwZWVjaFJl
Y29nbml0aW9uIG5lZWRzIGl0IGZvciB0ZXN0aW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2Vy
dmVyOjpyZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVl
Y2hSZWNvZ25pdGlvblNlcnZlcjo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXI6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6c2VuZFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
U2VydmVyOjpzdG9wUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjphYm9ydFJlcXVlc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN5bmNJZk1vY2tE
ZXZpY2VzRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKwogMjAyMC0xMS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYW4gRXhwZXJpbWVudGFsIEZlYXR1cmVzIGZvciB3aGVlbCBldmVudCBn
ZXN0dXJlcyBiZWNvbWluZyBub24tYmxvY2tpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDAyM2Ux
NTNkYTNjNjdkZTE3YTI1MmJlZjFjYWIyNjg3ZDQzOTMwNmQuLjM3ODlhYTM4Mzk0MGQyNTc0MTI0
YmMyZmY0M2U3ZWVjNGFlOTUwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE2LDYgKzExNiw4
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3Bs
dWdpbnMvUGx1Z2luUmVwbGFjZW1lbnQuaAogICAgIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQuaAogCisgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlLmgKKyAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsLmgKICAgICBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24uaAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNs
aWVudC5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xp
ZW50SWRlbnRpZmllci5oCkBAIC0xMjQsNiArMTI2LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVx
dWVzdEluZm8uaAogICAgIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0
YS5oCiAgICAgTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25VcGRhdGUuaAorICAgIE1v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuaAogCiAgICAgTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtQ2h1bmsuaAogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNp
bmsuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkzYjZmMzhi
YzYyMzhkYTFkYmE4NjhlMjllMWU1YjFlNmY2NmI2YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5j
cHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2UuaCIKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisjaW5jbHVkZSAiQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRp
b25VcGRhdGUuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwg
RGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVV
cGRhdGVDYWxsYmFjaykKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIE9wdGlvbmFs
PENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2U7CisgICAgYXV0byBkZXZpY2VzID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9DYXB0dXJlRmFjdG9yeSgpLmF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIoKS5jYXB0dXJlRGV2aWNlcygpOworICAgIGZvciAoYXV0
byBkZXZpY2UgOiBkZXZpY2VzKSB7CisgICAgICAgIGlmICghZGV2aWNlLmVuYWJsZWQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICghY2FwdHVyZURldmljZSkKKyAgICAg
ICAgICAgIGNhcHR1cmVEZXZpY2UgPSBkZXZpY2U7CisKKyAgICAgICAgaWYgKGRldmljZS5pc0Rl
ZmF1bHQoKSkgeworICAgICAgICAgICAgY2FwdHVyZURldmljZSA9IGRldmljZTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFjYXB0dXJlRGV2aWNlKSB7
CisgICAgICAgIGF1dG8gZXJyb3IgPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVj
b2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIk5vIGRldmljZSBpcyBhdmFpbGFibGUg
Zm9yIGNhcHR1cmUiIH07CisgICAgICAgIHN0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKGNsaWVudElkZW50aWZpZXIsIGVycm9yKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlc3VsdCA9IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvQ2FwdHVyZUZhY3RvcnkoKS5jcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoKmNhcHR1cmVEZXZpY2UsIHsgfSwgeyB9KTsKKyAgICBpZiAoIXJlc3VsdCkg
eworICAgICAgICBhdXRvIGVycm9yID0gU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJl
Y29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsIHJlc3VsdC5lcnJvck1lc3NhZ2UgfTsK
KyAgICAgICAgc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IoY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1faW1wbCA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbD4oY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhQ2FsbGJhY2spLCBXVEZNb3Zl
KHN0YXRlVXBkYXRlQ2FsbGJhY2spLCByZXN1bHQuc291cmNlKCkpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oY2xpZW50SWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGRhdGFDYWxsYmFj
ayk7CisgICAgVU5VU0VEX1BBUkFNKHN0YXRlVXBkYXRlQ2FsbGJhY2spOworI2VuZGlmCit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzM4NmNlZWUyNzQwN2NjNjEwNGUyOWVkNzNkZTdkYTBhNDlmNGUwYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCIKKyNp
bmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisK
K25hbWVzcGFjZSBXVEYgeworY2xhc3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlv
RGF0YTsKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw7CitjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+U3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlKCkgPSBkZWZhdWx0OworICAgIHVzaW5nIERhdGFD
YWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0
Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsK
KyAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAgICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2UoU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgRGF0YUNhbGxi
YWNrJiYsIFN0YXRlVXBkYXRlQ2FsbGJhY2smJik7CisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbD4gbV9pbXBsOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmYzVi
ZTEwMzRiZTNjMTJkMmNhZGVjM2UxMjE5NDNlYWI4OTkzMjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmNwcApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgiCisK
KyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25V
cGRhdGUuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorc3RhdGlj
IGNvbnN0IHZvaWQqIG5leHRMb2dJZGVudGlmaWVyKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3Qg
bG9nSWRlbnRpZmllciA9IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyKCk7CisgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KCsrbG9nSWRlbnRpZmllcik7Cit9CisK
K3N0YXRpYyBSZWZQdHI8TG9nZ2VyPiYgbnVsbExvZ2dlcigpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJlZlB0cjxMb2dnZXI+PiBsb2dnZXI7CisgICAgcmV0dXJuIGxvZ2dlcjsKK30K
KyNlbmRpZgorCitTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXIgaWRlbnRpZmllciwgRGF0YUNhbGxiYWNrJiYgZGF0YUNhbGxiYWNrLCBTdGF0
ZVVwZGF0ZUNhbGxiYWNrJiYgc3RhdGVVcGRhdGVDYWxsYmFjaywgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+JiYgc291cmNlKQorICAgIDogbV9jbGllbnRJZGVudGlmaWVyKGlkZW50aWZpZXIpCisg
ICAgLCBtX2RhdGFDYWxsYmFjayhXVEZNb3ZlKGRhdGFDYWxsYmFjaykpCisgICAgLCBtX3N0YXRl
VXBkYXRlQ2FsbGJhY2soV1RGTW92ZShzdGF0ZVVwZGF0ZUNhbGxiYWNrKSkKKyAgICAsIG1fc291
cmNlKFdURk1vdmUoc291cmNlKSkKK3sKKyAgICBtX3NvdXJjZS0+YWRkQXVkaW9TYW1wbGVPYnNl
cnZlcigqdGhpcyk7CisgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3Nv
dXJjZS0+c3RhcnQoKTsKKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGlmICghbnVs
bExvZ2dlcigpLmdldCgpKSB7CisgICAgICAgIG51bGxMb2dnZXIoKSA9IExvZ2dlcjo6Y3JlYXRl
KHRoaXMpOworICAgICAgICBudWxsTG9nZ2VyKCktPnNldEVuYWJsZWQodGhpcywgZmFsc2UpOwor
ICAgIH0KKworICAgIG1fc291cmNlLT5zZXRMb2dnZXIoKm51bGxMb2dnZXIoKSwgbmV4dExvZ0lk
ZW50aWZpZXIoKSk7CisjZW5kaWYKKworICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0
aGlzKTsKK30KKworU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6flNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwoKQoreworICAgIG1fc291cmNlLT5yZW1vdmVBdWRp
b1NhbXBsZU9ic2VydmVyKCp0aGlzKTsKKyAgICBtX3NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fc291cmNlLT5zdG9wKCk7Cit9CisKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYg
dGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50
eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOworICAg
IGF1dG8gYXVkaW9EZXNjcmlwdGlvbiA9IHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2Ny
aXB0aW9uKTsKKyAgICBpZiAoIW1fZGF0YVNvdXJjZSB8fCAhbV9kYXRhU291cmNlLT5pbnB1dERl
c2NyaXB0aW9uKCkgfHwgKm1fZGF0YVNvdXJjZS0+aW5wdXREZXNjcmlwdGlvbigpICE9IGRlc2Ny
aXB0aW9uKSB7CisgICAgICAgIGF1dG8gZGF0YVNvdXJjZSA9IEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZTo6Y3JlYXRlKGRlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAqIDEsIG1fc291cmNlLmdldCgpKTsK
KyAgICAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24p
KSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpXSB7CisgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAg
ICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0
IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9ybWF0KGF1
ZGlvRGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAgICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQorICAgICAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUs
ICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoYXV0byBs
b2NrZXIgPSB0cnlIb2xkTG9jayhtX2RhdGFTb3VyY2VMb2NrKSkKKyAgICAgICAgICAgIG1fZGF0
YVNvdXJjZSA9IFdURk1vdmUoZGF0YVNvdXJjZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBtX2RhdGFTb3VyY2UtPnB1c2hTYW1wbGVzKHRpbWUsIGRh
dGEsIHNhbXBsZUNvdW50KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpLCB0aW1lLCBhdWRpb0Rlc2NyaXB0aW9uLCBzYW1wbGVDb3VudF0g
eworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGF1dG8gZGF0YSA9IFdlYkF1ZGlvQnVmZmVyTGlzdCB7IGF1ZGlvRGVzY3JpcHRpb24sIHN0YXRp
Y19jYXN0PHVpbnQzMl90PihzYW1wbGVDb3VudCkgfTsKKyAgICAgICAgeworICAgICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2RhdGFTb3VyY2VMb2NrKTsKKyAgICAgICAgICAgIG1f
ZGF0YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlzdCgpLCBzYW1wbGVDb3VudCwgdGltZS50
aW1lVmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpDb3B5KTsKKyAgICAgICAgfQor
CisgICAgICAgIG1fZGF0YUNhbGxiYWNrKHRpbWUsIGRhdGEsIGF1ZGlvRGVzY3JpcHRpb24sIHNh
bXBsZUNvdW50KTsKKyAgICB9KTsKKyNlbHNlCisgICAgbV9kYXRhQ2FsbGJhY2sodGltZSwgZGF0
YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyNlbmRpZgorfQorCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0YXJ0ZWQoKQoreworICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGUobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZVR5cGU6OkF1ZGlvU3RhcnQpKTsKK30KKwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChtX3NvdXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7CisgICAgbV9z
dGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvciht
X2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIHN0b3BwZWQiIH0pKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENo
YW5nZWQoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9zdGF0ZVVwZGF0
ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11dGVkIiB9KSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2NhNmU5NDkwNWI1ZGJiNDNhZTI1ZmRiYmJlNDA0NGFlZDlmZTNmZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAi
UmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbkNsaWVudElkZW50aWZpZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUg
IkF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworY2xh
c3MgTWVkaWFUaW1lOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb247CitjbGFzcyBQbGF0Zm9ybUF1ZGlvRGF0YTsKK2NsYXNzIFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOworZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU7
CisKK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwKKyAgICA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgorICAgICwgcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHVzaW5nIERhdGFDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29u
c3QgV1RGOjpNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpPjsKKyAgICB1c2luZyBTdGF0ZVVwZGF0ZUNhbGxi
YWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYpPjsKKyAg
ICBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsKFNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbkNsaWVudElkZW50aWZpZXIsIERhdGFDYWxsYmFjayYmLCBTdGF0ZVVwZGF0ZUNhbGxi
YWNrJiYsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKKyAgICB+U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbCgpOworCitwcml2YXRlOgorICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvU2FtcGxlT2JzZXJ2ZXIKKyAgICB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIGZpbmFsOworCisgICAgLy8gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIHNvdXJjZVN0YXJ0ZWQoKSBmaW5hbDsKKyAgICB2
b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgp
IGZpbmFsOworCisgICAgU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmll
ciBtX2NsaWVudElkZW50aWZpZXI7CisgICAgRGF0YUNhbGxiYWNrIG1fZGF0YUNhbGxiYWNrOwor
ICAgIFN0YXRlVXBkYXRlQ2FsbGJhY2sgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrOworICAgIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsKKyAgICBMb2NrIG1f
ZGF0YVNvdXJjZUxvY2s7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aFJlY29nbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXplci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJlYjYwNTY0N2IzMjllMjY0ZjgzYzI0OWY1N2MyYTIw
ODFjMmZkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml6ZXIuY3BwCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml6ZXIuaCIKKworI2luY2x1
ZGUgIlNwZWVjaFJlY29nbml0aW9uVXBkYXRlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNp
bmNsdWRlICJNZWRpYVV0aWxpdGllcy5oIgorI2luY2x1ZGUgPHBhbC9hdmZvdW5kYXRpb24vTWVk
aWFUaW1lQVZGb3VuZGF0aW9uLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVlY2hSZWNvZ25pemVyOjpTcGVlY2hSZWNvZ25pemVyKERlbGVnYXRlQ2FsbGJhY2smJiBjYWxs
YmFjaykKKyAgICA6IG1fZGVsZWdhdGVDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpyZXNldCgpCit7CisgICAgaWYgKCFtX2NsaWVudElk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3NvdXJjZSkKKyAgICAgICAg
bV9zb3VyY2UgPSBudWxscHRyOworCisgICAgYXV0byBlcnJvciA9IFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QWJvcnRlZCwgIkFub3RoZXIgcmVx
dWVzdCBpcyBzdGFydGVkIiB9OworICAgIG1fZGVsZWdhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IoKm1fY2xpZW50SWRlbnRpZmllciwgZXJyb3IpKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pemVyOjpzdGFydChTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b25DbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgcmVzZXQoKTsKKworICAgIG1f
Y2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGUoKm1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25VcGRhdGVUeXBlOjpTdGFydCkpOworCisgICAgc3RhcnRJbnRlcm5hbCgpOwor
fQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6OnN0YXJ0SW50ZXJuYWwoKQoreworICAgIGF1dG8g
ZGF0YUNhbGxiYWNrID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGNvbnN0IGF1dG8m
IHRpbWUsIGNvbnN0IGF1dG8mIGRhdGEsIGNvbnN0IGF1dG8mIGRlc2NyaXB0aW9uLCBhdXRvIHNh
bXBsZUNvdW50KSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgYXV0byBidWZmZXIgPSBjcmVhdGVBdWRp
b1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgUEFMOjp0b0NNVGltZSh0aW1lKSwgc2Ft
cGxlQ291bnQpOworICAgICAgICBVTlVTRURfUEFSQU0oYnVmZmVyKTsKKyNlbHNlCisgICAgICAg
IFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGRhdGEpOworICAgICAg
ICBVTlVTRURfUEFSQU0oZGVzY3JpcHRpb24pOworICAgICAgICBVTlVTRURfUEFSQU0oc2FtcGxl
Q291bnQpOworI2VuZGlmCisgICAgfTsKKworICAgIGF1dG8gc3RhdGVVcGRhdGVDYWxsYmFjayA9
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShjb25zdCBhdXRvJiB1cGRhdGUp
IHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBBU1NFUlQobV9jbGllbnRJZGVudGlmaWVyICYmIG1fY2xpZW50SWRlbnRpZmllci52YWx1ZSgp
ID09IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCkpOworICAgICAgICBtX2RlbGVnYXRlQ2FsbGJh
Y2sodXBkYXRlKTsKKworICAgICAgICBpZiAodXBkYXRlLnR5cGUoKSA9PSBTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZVR5cGU6OkVycm9yKQorICAgICAgICAgICAgbV9zb3VyY2UgPSBudWxscHRyOwor
ICAgIH07CisKKyAgICBtX3NvdXJjZSA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlPigqbV9jbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGFDYWxsYmFjayksIFdU
Rk1vdmUoc3RhdGVVcGRhdGVDYWxsYmFjaykpOworfQorCit2b2lkIFNwZWVjaFJlY29nbml6ZXI6
OnN0b3AoU2hvdWxkR2VuZXJhdGVGaW5hbFJlc3VsdCBzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0
KQoreworICAgIGlmICghbV9jbGllbnRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzdG9wSW50ZXJuYWwoKTsKKworICAgIGlmIChzaG91bGRHZW5lcmF0ZUZpbmFsUmVzdWx0ID09
IFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6OlllcykgeworICAgICAgICAvLyBUT0RPOiBnZW5l
cmF0ZSByZWFsIHJlc3VsdCB3aGVuIHNwZWVjaCByZWNvZ25pdGlvbiBiYWNrZW5kIGlzIGltcGxl
bWVudGVkLgorICAgICAgICBWZWN0b3I8U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPiByZXN1
bHREYXRhczsKKyAgICAgICAgbV9kZWxlZ2F0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBk
YXRlOjpjcmVhdGVSZXN1bHQoKm1fY2xpZW50SWRlbnRpZmllciwgcmVzdWx0RGF0YXMpKTsKKyAg
ICB9CisKKyAgICBtX2RlbGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZSgqbV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVu
ZCkpOworICAgIG1fY2xpZW50SWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBT
cGVlY2hSZWNvZ25pemVyOjpzdG9wSW50ZXJuYWwoKQoreworICAgIGlmICghbV9zb3VyY2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fc291cmNlID0gbnVsbHB0cjsKKyAgICBtX2RlbGVnYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZSgqbV9jbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkF1ZGlvRW5kKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml6ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmYxM2ZlZTg0YTUzM2FmMGYwNGUwNzY5YzFh
ZTA5NWJlNWJmZjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXplci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZS5o
IgorI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTsKKworY2xhc3MgU3BlZWNoUmVjb2duaXplciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTcGVl
Y2hSZWNvZ25pemVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgdXNpbmcgRGVsZWdhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3BlZWNoUmVj
b2duaXRpb25VcGRhdGUmKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU3BlZWNoUmVj
b2duaXplcihEZWxlZ2F0ZUNhbGxiYWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5TcGVlY2hS
ZWNvZ25pemVyKCkgPSBkZWZhdWx0OworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyKTsKKyAgICBlbnVtIGNs
YXNzIFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdG9wKFNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQgPSBTaG91bGRHZW5lcmF0
ZUZpbmFsUmVzdWx0OjpZZXMpOworCisgICAgT3B0aW9uYWw8U3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uQ2xpZW50SWRlbnRpZmllcj4gY3VycmVudENsaWVudElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2NsaWVudElkZW50aWZpZXI7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0
KCk7CisgICAgdm9pZCBzdGFydEludGVybmFsKCk7CisgICAgdm9pZCBzdG9wSW50ZXJuYWwoKTsK
KworICAgIE9wdGlvbmFsPFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZp
ZXI+IG1fY2xpZW50SWRlbnRpZmllcjsKKyAgICBEZWxlZ2F0ZUNhbGxiYWNrIG1fZGVsZWdhdGVD
YWxsYmFjazsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlPiBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggNGE1MTk5NWU0OWM0ZWI4ZmZhMjA0N2MxYWFmOTNhYTcyYWYwNjJmNS4uNzI2Mjg5MWVj
YzYzMDM0N2RjODk1MGUxMzBiNGRkNWYxZTJjZjU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwNSw2
ICsyMDUsOSBAQCBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuY3BwCiBN
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdC5jcHAKIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uVXBkYXRlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlLmNwcAorTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291
cmNlSW1wbC5jcHAKK01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml6ZXIuY3BwCiBNb2R1bGVz
L3NwZWVjaC9ET01XaW5kb3dTcGVlY2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hTeW50aGVzaXMuY3BwCiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNFdmVudC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGFiNjRjMzM3NjAxMWZlZTM1NGQ4M2JmYjUyYjZh
OWIzMDZjMGFmNTQuLjhiYTkwZTFmMWI3ZGYyNTRmN2IzM2QxYTdmOGUwYWJhMTYyODMwYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjM4LDYgKzIzOCw3IEBAIHBsYXRmb3JtL2NvY29h
L0ZpbGVNb25pdG9yQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KIHBs
YXRmb3JtL2NvY29hL0xvY2FsaXplZFN0cmluZ3NDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvTUlN
RVR5cGVSZWdpc3RyeUNvY29hLm1tCitwbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGllcy5jcHAK
IHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCiBwbGF0Zm9y
bS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQogcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZENvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmNhZmMxMWM3YjA0YWFmNDQxMGRkNmFjMmQ0MTRhOTgy
ZGJlMmIyNi4uNmM5MGE0ZjRjZmMxZTRiYWQwZjk0YjExYzVkNzlkYmYzN2QxZDM4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIwLDggKzEyMCw4IEBACiAJCTA3Mzc5NEZFMTlGNTg2NEUwMEU1QTA0NSAvKiBSVENOb3RpZmll
cnNNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzM3OTRGODE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJzTW9jay5oICovOyB9OwogCQkw
NzM4RTVFQzI0OTk4MzkwMDBEQTEwMUMgLyogQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclRh
cmdldFBpY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MzhFNUVBMjQ5OTY4QUQwMERBMTAxQyAvKiBBVk91dHB1dERldmljZU1lbnVDb250cm9s
bGVyVGFyZ2V0UGlja2VyLm1tICovOyB9OwogCQkwNzNBMTU1NDIxNzdBNDI2MDBFQTA4RjIgLyog
UmVtb3RlVmlkZW9TYW1wbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTA3M0I4
NzY3MUU0Mzg1QUMwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3M0I4NzYzMUU0Mzg1OUQwMDcx
QzBFQyAvKiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLzsgfTsKLQkJMDczQjg3NjkxRTQzODVB
QzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyB9OworCQkwNzNCODc2NzFFNDM4NUFDMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVC
dWZmZXJMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMDczQjg3NjkxRTQzODVBQzAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczQjg3NjUx
RTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NEU4MkJCMThBNjlGMEUwMDdF
RjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU4MkI5MThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRp
bWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzUwMzNBODI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUw
MzNBNjI1MkJEMzY4MDBGNzBDRTMgLyogVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc1Mzg2MDMx
NDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENh
Y2hlZFRleHRUcmFjay5oICovOyB9OwpAQCAtMjc5NSw2ICsyNzk1LDggQEAKIAkJOTM5M0U2MDAx
NTFBOTlGMjAwMDY2RjA2IC8qIENTU0ltYWdlU2V0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTNFNUZFMTUxQTk5RjIwMDA2NkYwNiAvKiBD
U1NJbWFnZVNldFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0Uz
RDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUYwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
OUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi87IH07CisJCTkzOUMw
RDI3MjU2NEU0N0YwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlDMEQyMTI1NjQ4QzM5MDBCMzIxMUIg
LyogU3BlZWNoUmVjb2duaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzOUMwRDJCMjU2NEU3RjMwMEIzMjExQiAvKiBNZWRpYVV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QzBE
MjkyNTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjgyNTQ5NTUwNjAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODI2MjU0OTU1MDAwMDBBQzQ2MiAvKiBTcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTNBMDQ4MjkyNTQ5NTUxMTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uUmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNBMDQ4MUIyNTQ5NTRFNDAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0
RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzQTA0ODJBMjU0OTU1MTQwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTA0ODFGMjU0
OTU0RTYwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg1Niw2ICsyODU4LDggQEAK
IAkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUI4MTJENTMyQzQw
MDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi87IH07CiAJCTkzRjFENUMxMTJENTMzNTYw
MDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdM
TG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMkNDOTMyNDI3RkI5QzAwNTg1MUQ4IC8qIENoYXJh
Y3RlclJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0YyQ0M5MTI0MjdGQjlBMDA1ODUxRDggLyogQ2hhcmFjdGVyUmFuZ2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgxRjI1NjdBMDhD
MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkI4MUMyNTY3OUY3MDAw
QTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5M0Y2QjgyMjI1NjdBNjU2
MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2QjgxQjI1Njc5RjZGMDBBMDg0
ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2
IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZl
bnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3Jv
dXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y5
MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y5QjZFMTBCQTBGQjcyMDA4
NTQwNjQgLyogSlNDb21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyogSlNDb21tZW50LmggKi87IH07
CkBAIC0xMTQ1Myw2ICsxMTQ1NywxMCBAQAogCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyog
RXZlbnROYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFdmVudE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJ
dGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWR0aEl0
ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QjAyRUQwRUEyREJD
NDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2lkdGhJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzlD
MEQyMTI1NjQ4QzM5MDBCMzIxMUIgLyogU3BlZWNoUmVjb2duaXplci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTcGVlY2hSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOUMw
RDIzMjU2NDhDNEUwMEIzMjExQiAvKiBTcGVlY2hSZWNvZ25pemVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwZWVjaFJlY29nbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5MzlDMEQyODI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFVdGlsaXRpZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzlDMEQyOTI1NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFV
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUIyNTQ5NTRFNDAwMEFD
NDYyIC8qIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBMDQ4MUYyNTQ5NTRFNjAwMEFDNDYyIC8qIFNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvblJlcXVl
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTM5LDYgKzExNTQ3LDEwIEBA
CiAJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTExvc2VDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1dlYkdMTG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
MkNDOTEyNDI3RkI5QTAwNTg1MUQ4IC8qIENoYXJhY3RlclJhbmdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENoYXJhY3RlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzRjZCODFCMjU2NzlGNkYwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGNkI4
MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
RjZCODFFMjU2NzlGNzEwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYx
RUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUIxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29u
dGV4dEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29udGV4
dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjZGMUVDMTI3RjcwQjEw
MDU1Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViR0xDb250ZXh0RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM1
ODcsNiArMjM1OTksMTMgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CiAJCX07CisJCTkzRjZCODBFMjU2NkVERTEwMEEwODQ4OCAvKiBjb2NvYSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkpOworCQkJcGF0aCA9IGNv
Y29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTQ2RDM3MjcxRDZDQjIy
NTAwNzcwODRGIC8qIHBhcnNlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCkBAIC0yNDQyMyw2ICsyNDQ0Miw4IEBACiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZG
MkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3
IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTFBNDgzMkIyMUE5NTNC
QTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJpbmdzQ29jb2EubW0gKi8sCisJCQkJOTM5QzBEMjgy
NTY0RTdGMjAwQjMyMTFCIC8qIE1lZGlhVXRpbGl0aWVzLmNwcCAqLywKKwkJCQk5MzlDMEQyOTI1
NjRFN0YyMDBCMzIxMUIgLyogTWVkaWFVdGlsaXRpZXMuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4
OTJEMDA3RjNBRTkgLyogTUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5
MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAog
CQkJCUExOUQ5MzQ4MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlci5tbSAqLywKQEAgLTI1NjE1LDYgKzI1NjM2LDcgQEAKIAkJQUEyQTVBQjcxNkE0ODVBNDAw
OTc1QTI1IC8qIHNwZWVjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJOTNGNkI4MEUyNTY2RURFMTAwQTA4NDg4IC8qIGNvY29hICovLAogCQkJCUFBMkE1
QUJBMTZBNDg1RDUwMDk3NUEyNSAvKiBET01XaW5kb3crU3BlZWNoU3ludGhlc2lzLmlkbCAqLywK
IAkJCQlBQTJBNUFCODE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNoU3ludGhlc2lz
LmNwcCAqLywKIAkJCQlBQTJBNUFCOTE2QTQ4NUQ1MDA5NzVBMjUgLyogRE9NV2luZG93U3BlZWNo
U3ludGhlc2lzLmggKi8sCkBAIC0yNTYyNCw2ICsyNTY0NiwxMCBAQAogCQkJCTkzNDk1MEI3MjUz
OTQzNEIwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmNwcCAqLywKIAkJ
CQk5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2
ZS5oICovLAogCQkJCTkzNDk1MEJCMjUzOTQzNEUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmlkbCAqLywKKwkJCQk5M0Y2QjgxRTI1Njc5RjcxMDBBMDg0ODggLyogU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmNwcCAqLywKKwkJCQk5M0Y2QjgxQjI1Njc5RjZG
MDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggKi8sCisJCQkJOTNG
NkI4MUQyNTY3OUY3MDAwQTA4NDg4IC8qIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwICovLAorCQkJCTkzRjZCODFDMjU2NzlGNzAwMEEwODQ4OCAvKiBTcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmggKi8sCiAJCQkJOTNBMDQ4MUQyNTQ5NTRFNTAwMEFDNDYy
IC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5oICovLAogCQkJCTkzQTA0ODI0MjU0OTU0
RTkwMDBBQzQ2MiAvKiBTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnQuaCAqLywKIAkJ
CQk5M0EwNDgyMDI1NDk1NEU2MDAwQUM0NjIgLyogU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllci5oICovLApAQCAtMjU2NDgsNiArMjU2NzQsOCBAQAogCQkJCTkzNDk1
MEM1MjUzOTQzNTMwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsICov
LAogCQkJCTkzRDZCNzZFMjU0QjhFMUIwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZS5jcHAgKi8sCiAJCQkJOTNENkI3NkQyNTRCOEUxQjAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlLmggKi8sCisJCQkJOTM5QzBEMjMyNTY0OEM0RTAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuY3BwICovLAorCQkJCTkzOUMwRDIxMjU2NDhDMzkwMEIzMjExQiAvKiBTcGVlY2hS
ZWNvZ25pemVyLmggKi8sCiAJCQkJQUEyQTVBQkQxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpcy5jcHAgKi8sCiAJCQkJQUEyQTVBQkUxNkE0ODVENTAwOTc1QTI1IC8qIFNwZWVjaFN5
bnRoZXNpcy5oICovLAogCQkJCUFBMkE1QUJGMTZBNDg1RDUwMDk3NUEyNSAvKiBTcGVlY2hTeW50
aGVzaXMuaWRsICovLApAQCAtMzM1MzQsNiArMzM1NjIsNyBAQAogCQkJCTkzMkNDMEI3MURGRkQx
NTgwMDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWlu
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBNZWRp
YVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMkIyNTY0RTdGMzAwQjMyMTFC
IC8qIE1lZGlhVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUUxQkFDMzFCRDgwNjRF
MDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zNDQyNiw2ICszNDQ1NSw4IEBACiAJCQkJNjI2Q0RFMEYxMTQwNDI0
QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5
NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2QjgyMjI1NjdBNjU2MDBBMDg0ODggLyog
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0Y2
QjgxRjI1NjdBMDhDMDBBMDg0ODggLyogU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkMyNTQ5NTUxOTAwMEFDNDYyIC8qIFNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkUyNTQ5
NTUxRTAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNBMDQ4MkQyNTQ5NTUxQjAwMEFDNDYyIC8qIFNwZWVjaFJlY29nbml0
aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ0NDAs
NiArMzQ0NzEsNyBAQAogCQkJCTkzQTA0ODI5MjU0OTU1MTEwMDBBQzQ2MiAvKiBTcGVlY2hSZWNv
Z25pdGlvblJlc3VsdERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDk1MEQ2MjUzOTQzODEw
MDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRDZCNzcxMjU0QkFCNDUwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTM5QzBEMjcyNTY0RTQ3RjAwQjMyMTFCIC8qIFNwZWVjaFJl
Y29nbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMkE1QUQ0MTZBNDg2MTEwMDk3NUEyNSAv
KiBTcGVlY2hTeW50aGVzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNDkzODA3MjIzNDU1MUEw
MDBDRDcwNyAvKiBTcGVlY2hTeW50aGVzaXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFB
MkE1QUQyMTZBNDg2MEEwMDk3NUEyNSAvKiBTcGVlY2hTeW50aGVzaXNFdmVudC5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0
aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9NZWRpYVV0aWxpdGll
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjQ4YjRmNTYzMzJkMDU5ZDlmYjE3NzU1NDMwYTFmOGUwNTYyY2Nj
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL01lZGlh
VXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlICJBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJMaXN0LmgiCisjaW5j
bHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKwor
UmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAg
YXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9u
KTsKKyAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7CisgICAgYXV0
byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBudWxscHRyLCAwLCBudWxscHRyLCBudWxscHRyLCAm
Zm9ybWF0KTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRp
b0Zvcm1hdERlc2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKK30KKworUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQ
bGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIENNVGltZSB0aW1lLCBzaXplX3Qgc2FtcGxlQ291bnQpCit7CisgICAgLy8gRklY
TUU6IGNoZWNrIGlmIHdlIGNhbiByZXVzZSB0aGUgZm9ybWF0IGZvciBtdWx0aXBsZSBzYW1wbGUg
YnVmZmVycy4KKyAgICBhdXRvIGZvcm1hdCA9IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24o
ZGVzY3JpcHRpb24pOworICAgIGlmICghZm9ybWF0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0
byBlcnJvciA9IENNQXVkaW9TYW1wbGVCdWZmZXJDcmVhdGVXaXRoUGFja2V0RGVzY3JpcHRpb25z
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGZhbHNlLCBudWxscHRyLCBudWxscHRyLCBm
b3JtYXQuZ2V0KCksIHNhbXBsZUNvdW50LCB0aW1lLCBudWxscHRyLCAmc2FtcGxlQnVmZmVyKTsK
KyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1NhbXBsZUJ1
ZmZlciB3aXRoIHBhY2tldCBkZXNjcmlwdGlvbnMgZmFpbGVkIC0gJWQiLCBlcnJvcik7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBhdXRvIGJ1ZmZlciA9IGFkb3B0Q0Yoc2Ft
cGxlQnVmZmVyKTsKKworICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdChidWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJjcmVhdGVBdWRpb1Nh
bXBsZUJ1ZmZlciBmcm9tIGF1ZGlvIGJ1ZmZlciBsaXN0IGZhaWxlZCAtICVkIiwgZXJyb3IpOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L01lZGlhVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI2N2M2Njc4NWQ0N2QyNzAyYjVjNjQ5ZWYy
ODVlNGIwYTVlMTI2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNVGltZS5oPgorI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNj
cmlwdGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNN
U2FtcGxlQnVmZmVyKiBDTVNhbXBsZUJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOworY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7
CisKK1JldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBjcmVhdGVBdWRpb0Zvcm1hdERl
c2NyaXB0aW9uKGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mKTsKK1JldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoY29uc3QgUGxhdGZvcm1BdWRp
b0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgQ01UaW1lLCBzaXplX3Qgc2Ft
cGxlQ291bnQpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggYWNiNDk0NDMwOGQx
Y2E0M2Y5ZjY5OWM1MTA0NjAwOGYzZDczNTUwNy4uYmRkNzBmZDljYWFlMmRlY2NjYjI0MGJjMjFi
MjVhNDJmYzYzNzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFy
ZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmgi
CiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJNZWRpYVV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIgogI2lu
Y2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFz
c2V0V3JpdGVyLmg+CkBAIC00NDMsNDAgKzQ0NCw2IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAg
ICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJl
bnRUaW1lLmdldCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKLXsKLSAgICBhdXRvIGJhc2ljRGVzY3JpcHRpb24g
PSBXVEY6OmdldDxjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlv
bi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwotICAgIENNRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZm9ybWF0ID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGJhc2ljRGVzY3JpcHRpb24s
IDAsIE5VTEwsIDAsIE5VTEwsIE5VTEwsICZmb3JtYXQpOwotICAgIGlmIChlcnJvcikgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENG
KGZvcm1hdCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIENNVGltZSB0aW1lLCBz
aXplX3Qgc2FtcGxlQ291bnQpCi17Ci0gICAgYXV0byBmb3JtYXQgPSBjcmVhdGVBdWRpb0Zvcm1h
dERlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICBpZiAoIWZvcm1hdCkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxs
cHRyOwotICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVM
TCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7
Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXJXaXRo
UGFja2V0RGVzY3JpcHRpb25zIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgYXV0byBidWZmZXIgPSBhZG9wdENGKHNhbXBsZUJ1ZmZl
cik7Ci0KLSAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1
ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7Ci0g
ICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJv
bUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBidWZmZXI7Ci19Ci0KIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlv
biwgY29uc3QgV1RGOjpNZWRpYVRpbWUmLCBzaXplX3Qgc2FtcGxlQ291bnQpCiB7CiAgICAgaWYg
KGF1dG8gc2FtcGxlQnVmZmVyID0gY3JlYXRlQXVkaW9TYW1wbGVCdWZmZXIoZGF0YSwgZGVzY3Jp
cHRpb24sIG1fY3VycmVudEF1ZGlvU2FtcGxlVGltZSwgc2FtcGxlQ291bnQpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyLmNwcAppbmRleCA3NWM5NTBmOTA1NDBhODk3ZWIwYWQ2ZGE3OWMxMTQ3ZmE3
YzUxMjNlLi42NDE1NDdiNGQwZjRmYmE1MmFjZThlZjdiNjU0ODc3NjVkZDQ5NjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25N
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25NYW5hZ2VyLmNwcApAQCAtMTA0LDYgKzEwNCw3IEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6c3RhcnRQcm9jZXNzaW5nUmVxdWVzdCgpCiAgICAg
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VDaGVjayA9IGNvbXB1dGVTcGVlY2hSZWNvZ25pdGlv
blNlcnZpY2VBY2Nlc3MoKTsKIAogICAgIGlmIChtX3BhZ2UucHJlZmVyZW5jZXMoKS5tb2NrQ2Fw
dHVyZURldmljZXNFbmFibGVkKCkpIHsKKyAgICAgICAgbV9wYWdlLnN5bmNJZk1vY2tEZXZpY2Vz
RW5hYmxlZENoYW5nZWQoKTsKICAgICAgICAgbV9taWNyb3Bob25lQ2hlY2sgPSBDaGVja1Jlc3Vs
dDo6R3JhbnRlZDsKICAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VDaGVjayA9IENo
ZWNrUmVzdWx0OjpHcmFudGVkOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAppbmRleCA4NTY1MTlmYjY4NzEzZWRkOWFj
Y2YyZWUxYzI0Nzc0Zjk3M2Y5OTE2Li5kNjkwNzNmODU5MDdiYmJjMzcyZWZmZjY1MDgzOGZkYjFk
MDc3MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25TZXJ2ZXIuY3BwCkBAIC00NiwxMiArNDYsMTEgQEAgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGkKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnN0YXJ0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU3Ry
aW5nJiYgbGFuZywgYm9vbCBjb250aW51b3VzLCBib29sIGludGVyaW1SZXN1bHRzLCB1aW50NjRf
dCBtYXhBbHRlcm5hdGl2ZXMsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbikKIHsKICAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElkZW50aWZpZXIpOwotICAgIEFTU0VSVCghbV9wZW5kaW5n
UmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOwotICAgIEFTU0VSVCghbV9vbmdv
aW5nUmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpOworICAgIEFTU0VSVCghbV9y
ZXF1ZXN0cy5jb250YWlucyhjbGllbnRJZGVudGlmaWVyKSk7CiAgICAgYXV0byByZXF1ZXN0SW5m
byA9IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdEluZm8geyBjbGllbnRJZGVudGlm
aWVyLCBXVEZNb3ZlKGxhbmcpLCBjb250aW51b3VzLCBpbnRlcmltUmVzdWx0cywgbWF4QWx0ZXJu
YXRpdmVzLCBXVEZNb3ZlKG9yaWdpbikgfTsKLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdCA9IG1f
cGVuZGluZ1JlcXVlc3RzLmFkZChjbGllbnRJZGVudGlmaWVyLCBtYWtlVW5pcXVlPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4oV1RGTW92ZShyZXF1ZXN0SW5mbykpKS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgYXV0byYgbmV3UmVxdWVzdCA9IG1fcmVxdWVzdHMuYWRkKGNsaWVudElk
ZW50aWZpZXIsIG1ha2VVbmlxdWU8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0PihX
VEZNb3ZlKHJlcXVlc3RJbmZvKSkpLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIHJlcXVlc3RQZXJt
aXNzaW9uRm9yUmVxdWVzdCgqcGVuZGluZ1JlcXVlc3QpOworICAgIHJlcXVlc3RQZXJtaXNzaW9u
Rm9yUmVxdWVzdCgqbmV3UmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2
ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blJlcXVlc3QmIHJlcXVlc3QpCkBAIC02NCw2NiArNjMsNzAgQEAgdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbmkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSB3
ZWFrUmVxdWVzdC0+Y2xpZW50SWRlbnRpZmllcigpOwotICAgICAgICBhdXRvIHRha2VuUmVxdWVz
dCA9IG1fcGVuZGluZ1JlcXVlc3RzLnRha2UoaWRlbnRpZmllcik7CiAgICAgICAgIGlmIChkZWNp
c2lvbiA9PSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSkgeworICAg
ICAgICAgICAgbV9yZXF1ZXN0cy5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgICAgICAgICBhdXRv
IGVycm9yID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWls
ZWQiX3MgfTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbV9vbmdvaW5nUmVxdWVzdHMuYWRkKGlkZW50aWZp
ZXIsIFdURk1vdmUodGFrZW5SZXF1ZXN0KSk7Ci0gICAgICAgIGhhbmRsZVJlcXVlc3QoKm1fb25n
b2luZ1JlcXVlc3RzLmdldChpZGVudGlmaWVyKSk7CisgICAgICAgIGhhbmRsZVJlcXVlc3QoaWRl
bnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6Omhh
bmRsZVJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKQoreworICAgIGlmICghbV9yZWNvZ25pemVyKSB7Cisg
ICAgICAgIG1fcmVjb2duaXplciA9IG1ha2VVbmlxdWU8U3BlZWNoUmVjb2duaXplcj4oW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldKGF1dG8mIHVwZGF0ZSkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGF1dG8gY2xpZW50SWRlbnRpZmllciA9IHVwZGF0ZS5jbGllbnRJZGVudGlmaWVyKCk7CisgICAg
ICAgICAgICBpZiAoIW1fcmVxdWVzdHMuY29udGFpbnMoY2xpZW50SWRlbnRpZmllcikpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvIHR5cGUgPSB1cGRhdGUudHlw
ZSgpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBl
OjpFcnJvciB8fCB0eXBlID09IFNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKQorICAg
ICAgICAgICAgICAgIG1fcmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpOworCisgICAg
ICAgICAgICBzZW5kVXBkYXRlKHVwZGF0ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIG1f
cmVjb2duaXplci0+c3RhcnQoY2xpZW50SWRlbnRpZmllcik7Cit9CisKIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXI6OnN0b3AoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQogewogICAgIE1FU1NBR0VfQ0hFQ0so
Y2xpZW50SWRlbnRpZmllcik7Ci0gICAgaWYgKG1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShjbGll
bnRJZGVudGlmaWVyKSkgewotICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50aWZpZXIsIFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKKyAgICBpZiAobV9yZWNv
Z25pemVyICYmIG1fcmVjb2duaXplci0+Y3VycmVudENsaWVudElkZW50aWZpZXIoKSA9PSBjbGll
bnRJZGVudGlmaWVyKSB7CisgICAgICAgIG1fcmVjb2duaXplci0+c3RvcCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fb25nb2luZ1JlcXVlc3RzLmNvbnRhaW5zKGNs
aWVudElkZW50aWZpZXIpKTsKLSAgICBzdG9wUmVxdWVzdCgqbV9vbmdvaW5nUmVxdWVzdHMuZ2V0
KGNsaWVudElkZW50aWZpZXIpKTsKKyAgICBpZiAobV9yZXF1ZXN0cy5yZW1vdmUoY2xpZW50SWRl
bnRpZmllcikpCisgICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOwogfQogCiB2b2lkIFNwZWVjaFJlY29n
bml0aW9uU2VydmVyOjphYm9ydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyhj
bGllbnRJZGVudGlmaWVyKTsKLSAgICBpZiAobV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGNsaWVu
dElkZW50aWZpZXIpKSB7Ci0gICAgICAgIHNlbmRVcGRhdGUoY2xpZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVUeXBlOjpFbmQpOworICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpIHsKKyAgICAgICAgbV9yZWNvZ25pemVyLT5zdG9wKFdlYkNvcmU6OlNwZWVj
aFJlY29nbml6ZXI6OlNob3VsZEdlbmVyYXRlRmluYWxSZXN1bHQ6Ok5vKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChtX29uZ29pbmdSZXF1ZXN0cy5jb250YWlucyhjbGll
bnRJZGVudGlmaWVyKSk7Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nUmVxdWVzdHMudGFr
ZShjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotICAgIGF1
dG8gdXBkYXRlID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZShjbGll
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVuZCk7
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uOjpEaWRS
ZWNlaXZlVXBkYXRlKHVwZGF0ZSksIG1faWRlbnRpZmllcik7CisgICAgaWYgKG1fcmVxdWVzdHMu
cmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKQorICAgICAgICBzZW5kVXBkYXRlKGNsaWVudElkZW50
aWZpZXIsIFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlVHlwZTo6RW5kKTsKIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6aW52YWxpZGF0ZShXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7
CiAgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJZGVudGlmaWVyKTsKLSAgICBhdXRvIHJlcXVlc3Qg
PSBtX29uZ29pbmdSZXF1ZXN0cy50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIGlmIChyZXF1
ZXN0KQotICAgICAgICBhYm9ydFJlcXVlc3QoKnJlcXVlc3QpOwotfQotCi12b2lkIFNwZWVjaFJl
Y29nbml0aW9uU2VydmVyOjpoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdGFydCBjYXB0dXJpbmcgYXVkaW8g
YW5kIHJlY29nbml0aW9uLgotfQotCi12b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdG9w
UmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlcXVlc3QmIHJlcXVlc3QpCi17Ci0g
ICAgLy8gVE9ETzogc3RvcCBjYXB0dXJpbmcgYXVkaW8gYW5kIGZpbmFsaXppbmcgcmVzdWx0cyBi
eSByZWNvZ25pemluZyBjYXB0dXJlZCBhdWRpby4KLX0KLQotdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blNlcnZlcjo6YWJvcnRSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICAvLyBUT0RPOiBzdG9wIGNhcHR1cmluZyBhdWRpbyBhbmQgcmVjb2du
aXRpb24gaW1tZWRpYXRlbHkgd2l0aG91dCBnZW5lcmF0aW5nIHJlc3VsdHMuCisgICAgaWYgKG1f
cmVxdWVzdHMucmVtb3ZlKGNsaWVudElkZW50aWZpZXIpKSB7CisgICAgICAgIGlmIChtX3JlY29n
bml6ZXIgJiYgbV9yZWNvZ25pemVyLT5jdXJyZW50Q2xpZW50SWRlbnRpZmllcigpID09IGNsaWVu
dElkZW50aWZpZXIpCisgICAgICAgICAgICBtX3JlY29nbml6ZXItPnN0b3AoKTsKKyAgICB9CiB9
CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUgdHlwZSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4gZXJyb3IsIE9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGE+PiByZXN1bHQpCkBAIC0xMzMsNyArMTM2
LDEyIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnNlbmRVcGRhdGUoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpCiAgICAgICAgIHVwZGF0ZSA9IFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihjbGllbnRJZGVudGlmaWVyLCAq
ZXJyb3IpOwogICAgIGlmICh0eXBlID09IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uVXBkYXRl
VHlwZTo6UmVzdWx0KQogICAgICAgICB1cGRhdGUgPSBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlUmVzdWx0KGNsaWVudElkZW50aWZpZXIsICpyZXN1bHQpOwotICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVw
ZGF0ZSh1cGRhdGUpLCBtX2lkZW50aWZpZXIpOworICAgIHNlbmRVcGRhdGUodXBkYXRlKTsKK30K
Kwordm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c2VuZFVwZGF0ZShjb25zdCBXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZSYgdXBkYXRlKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbjo6RGlkUmVjZWl2ZVVwZGF0ZSh1cGRhdGUp
KTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6bWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggMzYzY2EyMGViYmUzY2ZjZWVkYWY1OGZl
ZTM0ZmJjMmUxZDE4YTI0ZC4uYTdmNzZkMzhlZTUwMWU1ODJmNzlhNTQ0ZmEwMjdjYjBiMzIyOGZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNl
cnZlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25p
dGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TcGVlY2hSZWNvZ25pdGlvblJlcXVlc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXplci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OCwxMCArNTksOSBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBoYW5kbGVSZXF1ZXN0KFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdCYpOwotICAgIHZvaWQgc3RvcFJlcXVlc3QoV2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7Ci0gICAgdm9pZCBhYm9ydFJlcXVlc3QoV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0Jik7CisgICAgdm9pZCBoYW5kbGVSZXF1ZXN0
KFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2VuZFVwZGF0ZShXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGUsIE9w
dGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+ID0gV1RGOjpudWxsb3B0LCBP
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXN1bHREYXRhPj4gPSBX
VEY6Om51bGxvcHQpOworICAgIHZvaWQgc2VuZFVwZGF0ZShjb25zdCBXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZSYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKQEAgLTcyLDkgKzcyLDkgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVj
aFJlY29nbml0aW9uUmVxdWVzdD4+IG1fcGVuZGluZ1JlcXVlc3RzOwotICAgIEhhc2hNYXA8V2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVxdWVzdD4+IG1fb25nb2luZ1Jl
cXVlc3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uUmVxdWVzdD4+IG1fcmVxdWVzdHM7CiAgICAgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
Q2hlY2tlciBtX3Blcm1pc3Npb25DaGVja2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pemVyPiBtX3JlY29nbml6ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGE1OTg4
OWRjMTBmN2FjZjBmZDEyOWEyNDdkMzYxNTg4NmNiYThmYzcuLmE4YmY1YzJjY2Q0NjQwOTNhZWY0
NjNhOWFiZjMyMmFhZjc0MmMxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtODE3NCw2ICs4MTc0LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJh
dGVNZWRpYURldmljZXNGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QKICNl
bmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c3luY0lmTW9ja0RldmljZXNFbmFibGVkQ2hh
bmdlZCgpCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICB1c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoKS5zeW5jV2l0aFdlYkNvcmVQcmVmcygpOworI2VuZGlmCit9CisK
IHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggZjc5MGNjNjEwNzllZWI4NGFjODY5MWY2MTNkMzkwMzM1ZGYxOTE0NC4uNjQyNDQ2
ZjllOWFhNGI1MjExMTQ5MDNiNmYwYjVmNzExZjkxYjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTE4MjUsNiArMTgyNSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24oY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25EZWNpc2lvbik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisgICAgdm9pZCBzeW5jSWZNb2NrRGV2aWNl
c0VuYWJsZWRDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMDMzMGI2MWQ3YjVhMzllM2Fj
NzhmM2JiMjA2MWVhYmVjZDM2NDA2Li5jM2E1YjE2NGNmYjhmOGRkNDA2OWIyNGEwMzZmNzgzMjYy
YzQ2YzJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMTEtMjEgIFNpaHVpIExpdSAgPHNp
aHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGF1ZGlvIGNhcHR1cmUgZm9y
IFNwZWVjaFJlY29nbml0aW9uIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzMx
MDAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQt
cmVjb2duaXRpb24taW4tcmVtb3ZlZC1pZnJhbWUuaHRtbDogbWFyayB0ZXN0IGFzIGFzeW5jIHRv
IGF2b2lkIGZsYWtpbmVzcy4KKyAgICAgICAgKiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24tdGhlbi1zdG9wLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJlY29n
bml0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25p
dGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMTEtMjEgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBSZW1vdmUg
ZW5zdXJlTGluZUJveGVzIGNhbGwgZnJvbSBSZW5kZXJlZFBvc2l0aW9uIGNvbnN0cnVjdG9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBlMDUxZTlhZmFhZDZiZWFkYmFlZDM4YzRjMzM0ZjQ3YmRhZTE3
OTczLi43ZTI3ZDBjYzQzMDc0ZjA4ZTM1NTQwOTkxNTI5M2I1ODQ3NWZmNWU3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE3OSw2ICsxNzksOCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9JREJPYmplY3Qt
bGVhay5odG1sIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL2NhbGwtdGV4dC1kaWQtY2hhbmdlLWluLXRl
eHQtZmllbGQtd2hlbi10eXBpbmcuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9pbi1hcHAtYnJv
d3Nlci1wcml2YWN5LyBbIFNraXAgXQogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9u
LWVycm9yLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtcmVjb2du
aXRpb24tdGhlbi1zdG9wLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3Rh
cnQtc2Vjb25kLXJlY29nbml0aW9uLmh0bWwgWyBTa2lwIF0KIAogIyBPbmx5IHBhcnRpYWwgc3Vw
cG9ydCBvbiBDb2NvYSBwbGF0Zm9ybXMuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NwZWVjaC1hcGkvIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVj
aHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWluLXJlbW92ZWQtaWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLWluLXJl
bW92ZWQtaWZyYW1lLmh0bWwKaW5kZXggMWM3NmU1MzI3NWQwZTAzMDI5NWY1ZDA0MjRiYTZkZGQ2
OWMxYmMzNC4uYTkwNTExZWNjY2MzZWFiZGFhZmY4MjQ4YzY5MWM1ZmY1NTdmODMxZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlv
bi1pbi1yZW1vdmVkLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVj
b2duaXRpb24vc3RhcnQtcmVjb2duaXRpb24taW4tcmVtb3ZlZC1pZnJhbWUuaHRtbApAQCAtNSwx
NSArNSwyMCBAQAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBwcm9jZXNzIGRv
ZXMgbm90IGNyYXNoIHdoZW4gc3RhcnRpbmcgcmVjb2duaXRpb24gaW4gYSByZW1vdmVkIGlmcmFt
ZS4iKTsKIAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7Cit9CisKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGlmcmFtZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKLSAgICBzaG91bGROb3RUaHJvdygiaWZyYW1l
LmNvbnRlbnRXaW5kb3cuc3RhcnRSZWNvZ25pdGlvbigpIik7IAorICAgIHNob3VsZE5vdFRocm93
KCJpZnJhbWUuY29udGVudFdpbmRvdy5zdGFydFJlY29nbml0aW9uKCkiKTsKIH0KIAogZnVuY3Rp
b24gcmVtb3ZlRnJhbWUoKQogewogICAgIHNob3VsZE5vdFRocm93KCJpZnJhbWUucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChpZnJhbWUpIik7CisgICAgc2V0VGltZW91dCgoKSA9PiBmaW5pc2hKU1Rl
c3QoKSwgMCk7CiB9CiAKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGVzdCwgZmFs
c2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFy
dC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAyYTc0NjFkYzdjYzAxNGRiNjJkNjVjNmIyMGI2YjBkYTI1NmVhNDIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0
LXJlY29nbml0aW9uLXRoZW4tc3RvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVmVy
aWZ5IHRoYXQgZXZlbnRzIGFyZSByZWNlaXZlZCBjb3JyZXRseSB3aGVuIHN0YXJ0IGFuZCBzdG9w
IHJlY29nbml0aW9uIG5vcm1hbGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZWNvZ25pdGlvbiA9IG5ldyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KK1BBU1MgcmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1JlY2VpdmVkIHN0YXJ0IGV2ZW50CitSZWNlaXZlZCBhdWRpb3N0YXJ0IGV2ZW50CitQ
QVNTIHJlY29nbml0aW9uLnN0b3AoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1JlY2VpdmVk
IGF1ZGlvZW5kIGV2ZW50CitSZWNlaXZlZCBlbmQgZXZlbnQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXJlY29nbml0aW9uLXRoZW4tc3RvcC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVu
LXN0b3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDVkMmIwNzhjNmUyMTk0YzU5ZTc4OWQzNWE0Njc4YjE0
ZGZjZWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25p
dGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbApAQCAtMCwwICsxLDM3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkg
dGhhdCBldmVudHMgYXJlIHJlY2VpdmVkIGNvcnJldGx5IHdoZW4gc3RhcnQgYW5kIHN0b3AgcmVj
b2duaXRpb24gbm9ybWFsbHkuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBu
ZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZlbnQp
ID0+IHsKKyAgICBkZWJ1ZygiUmVjZWl2ZWQgc3RhcnQgZXZlbnQiKTsKK30KKworcmVjb2duaXRp
b24ub25hdWRpb3N0YXJ0ID0gKGV2ZW50KSA9PiB7CisgICAgZGVidWcoIlJlY2VpdmVkIGF1ZGlv
c3RhcnQgZXZlbnQiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJyZWNvZ25pdGlvbi5zdG9wKCki
KTsKK30KKworcmVjb2duaXRpb24ub25hdWRpb2VuZCA9IChldmVudCkgPT4geworICAgIGRlYnVn
KCJSZWNlaXZlZCBhdWRpb2VuZCBldmVudCIpOworfQorCityZWNvZ25pdGlvbi5vbmVuZCA9IChl
dmVudCkgPT4geworICAgIGRlYnVnKCJSZWNlaXZlZCBlbmQgZXZlbnQiKTsKKworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24uc3RhcnQoKSIpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNl
Y29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJl
Y29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjIxMGM5NGEyNGNjOTg1ZjBmNjI2MDUzZGQxMjQ0MzFiMzVjM2Q3ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vc3RhcnQtc2Vjb25kLXJl
Y29nbml0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitWZXJpZnkgdGhhdCBzdGFy
dGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlY29nbml0aW9uID0gbmV3IFNwZWVjaFJlY29n
bml0aW9uKCk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyByZWNvZ25pdGlvbi5zdGFy
dCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzZWNvbmRSZWNvZ25pdGlvbiA9IG5l
dyBTcGVlY2hSZWNvZ25pdGlvbigpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc2Vj
b25kUmVjb2duaXRpb24uc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgcmVj
ZWl2ZWRTdGFydCBpcyB0cnVlCitQQVNTIGV2ZW50LmVycm9yIGlzICJhYm9ydGVkIgorUEFTUyBl
dmVudC5tZXNzYWdlIGlzICJBbm90aGVyIHJlcXVlc3QgaXMgc3RhcnRlZCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3N0YXJ0LXNlY29uZC1yZWNvZ25pdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVj
b2duaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWU3NDNmZjNmNjA5MTBhMWQxNDQwZjE0NGQ2YmQ5
NWExZmM3MzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNv
Z25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24uaHRtbApAQCAtMCwwICsxLDMyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJWZXJpZnkg
dGhhdCBzdGFydGluZyBhIHNlY29uZCByZWNvZ25pdGlvbiBhYm9ydHMgb25nb2luZyBvbmUuIik7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
fQorCitzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24o
KTsiKTsKK3JlY2VpdmVkU3RhcnQgPSBmYWxzZTsKK3JlY29nbml0aW9uLm9uc3RhcnQgPSAoZXZl
bnQpID0+IHsKKyAgICByZWNlaXZlZFN0YXJ0ID0gdHJ1ZTsKK30KKworcmVjb2duaXRpb24ub25l
cnJvciA9IChldmVudCkgPT4geworICAgIHNob3VsZEJlVHJ1ZSgicmVjZWl2ZWRTdGFydCIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuZXJyb3IiLCAiYWJvcnRlZCIpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQubWVzc2FnZSIsICJBbm90aGVyIHJlcXVlc3Qg
aXMgc3RhcnRlZCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3Nob3VsZE5vdFRocm93
KCJyZWNvZ25pdGlvbi5zdGFydCgpIik7CitzaG91bGROb3RUaHJvdygic2Vjb25kUmVjb2duaXRp
b24gPSBuZXcgU3BlZWNoUmVjb2duaXRpb24oKTsiKTsKK3Nob3VsZE5vdFRocm93KCJzZWNvbmRS
ZWNvZ25pdGlvbi5zdGFydCgpIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggN2Q1MzRhMDZhMjJhM2IyOTdiNzU0M2Q0MWI4NjlmNTRlZjBiY2MyYi4u
ODEzMTIwNjQwYjJhMDUyMmI4ZmQ2NjE2OTI4OTE1ZmFmM2Y2MTdlNCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTgwNCw0ICs4MDQsNiBAQCBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC1wb3J0LWRlbGF5Lmh0bWwgWyBQYXNzIF0K
ICMgV2ViS2l0MiBvbmx5LgoganMvdGhyb3ctbGFyZ2Utc3RyaW5nLW9vbS5odG1sIFsgUGFzcyBd
CiBmYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRtbCBbIFBhc3MgXQor
ZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1yZWNvZ25pdGlvbi10aGVuLXN0b3AuaHRtbCBb
IFBhc3MgXQorZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9zdGFydC1zZWNvbmQtcmVjb2duaXRpb24u
aHRtbCBbIFBhc3MgXQogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbnRlci13aGlsZS1leGl0aW5n
Lmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>