<?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>120883</bug_id>
          
          <creation_ts>2013-09-06 12:44:14 -0700</creation_ts>
          <short_desc>MediaStream API: Changing the device enumeration to be async</short_desc>
          <delta_ts>2013-09-17 13:36:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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>BlinkMergeCandidate</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>121101</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>tommyw</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>925778</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-06 12:44:14 -0700</bug_when>
    <thetext>Consider merging https://chromium.googlesource.com/chromium/blink/+/40a96080a1531e50de4eb84571c7dc9fb321ece5 

When we stared to implement this in chrome we discovered that sometimes
device enumeration could take some time and therefore the API needed
to be adjusted. This has been discussed on the W3C email list without
objections but not yet reached the editors draft.
The old name getSourceInfos got changed to getSources as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928979</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-13 13:24:37 -0700</bug_when>
    <thetext>This will also require a merge of some parts of https://chromium.googlesource.com/chromium/blink/+/ff783a23bb1add588971a8187048a305cf485121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929033</commentid>
    <comment_count>2</comment_count>
      <attachid>211596</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-13 15:12:16 -0700</bug_when>
    <thetext>Created attachment 211596
Patch for the bots to chew on</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929034</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-13 15:14:48 -0700</bug_when>
    <thetext>Attachment 211596 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/mediastream/MediaStreamTrack-getSources-expected.txt&apos;, u&apos;LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/DerivedSources.make&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrack.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrack.idl&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.idl&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h&apos;, u&apos;Source/WebCore/Modules/mediastream/SourceInfo.cpp&apos;, u&apos;Source/WebCore/Modules/mediastream/SourceInfo.h&apos;, u&apos;Source/WebCore/Modules/mediastream/SourceInfo.idl&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/bindings/js/JSDOMBinding.h&apos;, u&apos;Source/WebCore/platform/mediastream/MediaStreamCenter.h&apos;, u&apos;Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h&apos;, u&apos;Source/WebCore/platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp&apos;, u&apos;Source/WebCore/platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h&apos;, u&apos;Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp&apos;, u&apos;Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h&apos;, u&apos;Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp&apos;, u&apos;Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h&apos;]&quot; exit_code: 1
Source/WebCore/bindings/js/JSDOMBinding.h:373:  Extra space before ) in for  [whitespace/parens] [5]
Source/WebCore/bindings/js/JSDOMBinding.h:384:  Extra space before ) in for  [whitespace/parens] [5]
Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:32:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:33:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:34:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:35:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/Modules/mediastream/SourceInfo.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 9 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929037</commentid>
    <comment_count>4</comment_count>
      <attachid>211596</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-13 15:24:04 -0700</bug_when>
    <thetext>Comment on attachment 211596
Patch for the bots to chew on

Attachment 211596 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1801286</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929042</commentid>
    <comment_count>5</comment_count>
      <attachid>211596</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-09-13 15:54:22 -0700</bug_when>
    <thetext>Comment on attachment 211596
Patch for the bots to chew on

Attachment 211596 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1817172</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929051</commentid>
    <comment_count>6</comment_count>
      <attachid>211600</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-13 16:15:04 -0700</bug_when>
    <thetext>Created attachment 211600
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929053</commentid>
    <comment_count>7</comment_count>
      <attachid>211601</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-13 16:24:44 -0700</bug_when>
    <thetext>Created attachment 211601
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929064</commentid>
    <comment_count>8</comment_count>
      <attachid>211604</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-13 16:52:51 -0700</bug_when>
    <thetext>Created attachment 211604
Add blink revisions this is based on to ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929574</commentid>
    <comment_count>9</comment_count>
      <attachid>211604</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-09-16 00:56:17 -0700</bug_when>
    <thetext>Comment on attachment 211604
Add blink revisions this is based on to ChangeLogs

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

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:125
&gt; +    if (!MediaStreamCenter::instance().getMediaStreamTrackSources(request.release()))

Not part of the patch, but is instance() the right name for the singleton? I think we typically use sharedBlah() or even just shared()?

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:42
&gt; +    [CallWith=ScriptExecutionContext, RaisesException] static void getSources(MediaStreamTrackSourcesCallback callback);

Is this right? The more recent specs list a synchronous call called getSourceInfos(). If that&apos;s the case, I don&apos;t think the callback/request classes are necessary.

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:50
&gt; +void MediaStreamTrackSourcesRequest::didCompleteRequest(const TrackSourceInfoVector&amp; requstSourceInfos)

Typo: requestSourceInfos

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:54
&gt; +    String origin() { return m_origin; }

should be const.

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:56
&gt; +    PassRefPtr&lt;ExtraData&gt; extraData() const { return m_extraData; }

This is strange. Shouldn&apos;t it just be ExtraData*?

&gt; Source/WebCore/Modules/mediastream/SourceInfo.cpp:56
&gt; +        return videoKind;

This logic seems completely wrong.

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:380
&gt; +    inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Vector&lt;RefPtr&lt;T&gt; &gt; vector)

Spaces between consecutive &gt;&apos;s is no longer needed, right?

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:61
&gt; +    SourceKind kind() { return m_kind; }

Why not const?

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:62
&gt; +    VideoFacingMode facing() { return m_facing; }

Ditto?

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:79
&gt; +typedef Vector&lt;RefPtr&lt;TrackSourceInfo&gt; &gt; TrackSourceInfoVector;

Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt;

&gt; LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html:5
&gt; +&lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

this is now ../../resources/

&gt; LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html:56
&gt; +

We should add a setTimeout to force the test to complete without waiting for the long test timeout.

&gt; LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html:60
&gt; +&lt;script src=&quot;../js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;

../../resources</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929647</commentid>
    <comment_count>10</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-09-16 05:12:22 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 211604 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=211604&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:42
&gt; &gt; +    [CallWith=ScriptExecutionContext, RaisesException] static void getSources(MediaStreamTrackSourcesCallback callback);
&gt; 
&gt; Is this right? The more recent specs list a synchronous call called getSourceInfos(). If that&apos;s the case, I don&apos;t think the callback/request classes are necessary.
&gt; 

Just FYI that the change from the synchronous getSourceInfos to the async getSources have been informally approved but not yet officially approved by the standardization committee nor pushed out. Chromium decided to jump the gun here because in some cases media device enum isn&apos;t instantaneous; especially when also querying for capabilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929723</commentid>
    <comment_count>11</comment_count>
      <attachid>211790</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-16 08:39:06 -0700</bug_when>
    <thetext>Created attachment 211790
Updated patch

(In reply to comment #9)
&gt; (From update of attachment 211604 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=211604&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:125
&gt; &gt; +    if (!MediaStreamCenter::instance().getMediaStreamTrackSources(request.release()))
&gt; 
&gt; Not part of the patch, but is instance() the right name for the singleton? I think we typically use sharedBlah() or even just shared()?
&gt; 
Sure.

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:42
&gt; &gt; +    [CallWith=ScriptExecutionContext, RaisesException] static void getSources(MediaStreamTrackSourcesCallback callback);
&gt; 
&gt; Is this right? The more recent specs list a synchronous call called getSourceInfos(). If that&apos;s the case, I don&apos;t think the callback/request classes are necessary.
&gt;
As Tommy notes, this change was agreed to informally on the mailing list in June. The spec bug is here: https://www.w3.org/Bugs/Public/show_bug.cgi?id=22269.

 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:50
&gt; &gt; +void MediaStreamTrackSourcesRequest::didCompleteRequest(const TrackSourceInfoVector&amp; requstSourceInfos)
&gt; 
&gt; Typo: requestSourceInfos
&gt; 
Fixed.

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:54
&gt; &gt; +    String origin() { return m_origin; }
&gt; 
&gt; should be const.
&gt; 
Fixed.

&gt; &gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:56
&gt; &gt; +    PassRefPtr&lt;ExtraData&gt; extraData() const { return m_extraData; }
&gt; 
&gt; This is strange. Shouldn&apos;t it just be ExtraData*?
&gt; 
Actually, we don&apos;t need this at all so I removed it. &quot;ExtraData&quot; is a chromium platform pattern we don&apos;t use).

&gt; &gt; Source/WebCore/Modules/mediastream/SourceInfo.cpp:56
&gt; &gt; +        return videoKind;
&gt; 
&gt; This logic seems completely wrong.
&gt; 
Oops, fixed.

&gt; &gt; Source/WebCore/bindings/js/JSDOMBinding.h:380
&gt; &gt; +    inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Vector&lt;RefPtr&lt;T&gt; &gt; vector)
&gt; 
&gt; Spaces between consecutive &gt;&apos;s is no longer needed, right?
&gt; 
Fixed.

&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:61
&gt; &gt; +    SourceKind kind() { return m_kind; }
&gt; 
&gt; Why not const?
&gt; 
Why not!

&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:62
&gt; &gt; +    VideoFacingMode facing() { return m_facing; }
&gt; 
&gt; Ditto?
&gt; 
Ditto!

&gt; &gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:79
&gt; &gt; +typedef Vector&lt;RefPtr&lt;TrackSourceInfo&gt; &gt; TrackSourceInfoVector;
&gt; 
&gt; Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt;
&gt; 
Fixed.

&gt; &gt; LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html:5
&gt; &gt; +&lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; this is now ../../resources/
&gt; 
Fixed, and removed the reference to &quot;../js/resources/js-test-style.css&quot;.

&gt; &gt; LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html:56
&gt; &gt; +
&gt; 
&gt; We should add a setTimeout to force the test to complete without waiting for the long test timeout.
&gt; 
Fixed.

&gt; &gt; LayoutTests/fast/mediastream/MediaStreamTrack-getSources.html:60
&gt; &gt; +&lt;script src=&quot;../js/resources/js-test-post.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; ../../resources
&gt;
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929904</commentid>
    <comment_count>12</comment_count>
      <attachid>211790</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-16 13:43:52 -0700</bug_when>
    <thetext>Comment on attachment 211790
Updated patch

Removing r?, this needs some rework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930197</commentid>
    <comment_count>13</comment_count>
      <attachid>211900</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-17 07:07:34 -0700</bug_when>
    <thetext>Created attachment 211900
YAP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930245</commentid>
    <comment_count>14</comment_count>
      <attachid>211900</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-09-17 08:53:51 -0700</bug_when>
    <thetext>Comment on attachment 211900
YAP

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

OK to land this as is, but there are a lot of minor programming mistakes in this patch that you should fix.

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:109
&gt; +    static NeverDestroyed&lt;AtomicString&gt; ended(&quot;ended&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; live(&quot;live&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; muted(&quot;muted&quot;, AtomicString::ConstructFromLiteral);

I think that having these globals is probably excessive optimization. Is the speed of creating a new atomic string really prohibitive?

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:34
&gt; +#include &lt;wtf/PassRefPtr.h&gt;

Should not need to include this just to use PassRefPtr as an argument or return type. No header at all, or &lt;wtf/Forward.h&gt; should suffice.

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:35
&gt; +#include &lt;wtf/RefCounted.h&gt;

Not sure why you need to include this here. It seems you’d get it indirectly from some header.

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:44
&gt; +class MediaStreamTrackSourcesRequest : public MediaStreamTrackSourcesRequestClient {

Mark this class FINAL?

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:49
&gt; +    String origin() const { return m_origin; }

Might consider const String&amp; for this instead.

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h:52
&gt; +    // MediaStreamTrackSourcesRequestClient
&gt; +    void didCompleteRequest(const TrackSourceInfoVector&amp;) OVERRIDE;

Can this be private instead of public?

&gt; Source/WebCore/Modules/mediastream/SourceInfo.cpp:50
&gt; +    static NeverDestroyed&lt;AtomicString&gt; none(&quot;none&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; audioKind(&quot;audio&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; videoKind(&quot;video&quot;, AtomicString::ConstructFromLiteral);

Is this optimization needed?

&gt; Source/WebCore/Modules/mediastream/SourceInfo.cpp:70
&gt; +    static NeverDestroyed&lt;AtomicString&gt; userFacing(&quot;user&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; environmentFacing(&quot;environment&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; leftFacing(&quot;left&quot;, AtomicString::ConstructFromLiteral);
&gt; +    static NeverDestroyed&lt;AtomicString&gt; rightFacing(&quot;right&quot;, AtomicString::ConstructFromLiteral);

Is this optimization needed?

&gt; Source/WebCore/Modules/mediastream/SourceInfo.h:34
&gt; +#include &lt;wtf/OwnPtr.h&gt;

Should not need to include this.

&gt; Source/WebCore/Modules/mediastream/SourceInfo.h:35
&gt; +#include &lt;wtf/PassRefPtr.h&gt;

Should not need to include this, maybe Forward.h instead.

&gt; Source/WebCore/Modules/mediastream/SourceInfo.h:45
&gt; +    virtual ~SourceInfo() { }

This class isn’t polymorphic at all, so this just makes the code bigger for no reason. I suggest omitting it entirely.

&gt; Source/WebCore/Modules/mediastream/SourceInfo.h:50
&gt; +    AtomicString id() const { return m_trackSourceInfo-&gt;id(); }
&gt; +    AtomicString label() const { return m_trackSourceInfo-&gt;label(); }
&gt; +    AtomicString kind() const;
&gt; +    AtomicString facing() const;

Given the implementations of these, I think we can use const AtomicString&amp; instead, perhaps.

&gt; Source/WebCore/Modules/mediastream/SourceInfo.h:53
&gt; +    SourceInfo(PassRefPtr&lt;TrackSourceInfo&gt;);

Should mark this explicit.

&gt; Source/WebCore/Modules/mediastream/SourceInfo.h:58
&gt; +typedef Vector&lt;RefPtr&lt;SourceInfo&gt; &gt; SourceInfoVector;

Should not leave the space between &quot;&gt; &gt;&quot; -- that’s for older compilers that we no longer support.

Also, I don’t think this typedef is a great idea. Generally Anders has been pointing out that such typedefs hide important details, like whether the elements are RefPtr or not, without making the code significantly more elegant.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:33
&gt; +#include &lt;wtf/text/WTFString.h&gt;

I don’t understand how this file can use AtomicString without including the relevant header.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:43
&gt; +    enum SourceKind {
&gt; +        NoSource,
&gt; +        Audio,
&gt; +        Video
&gt; +    };

I think that simple enums like this read better on a single line rather than splayed out over multiple lines like this.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:51
&gt; +    enum VideoFacingMode {
&gt; +        None,
&gt; +        User,
&gt; +        Environment,
&gt; +        Left,
&gt; +        Right
&gt; +    };

Ditto.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:57
&gt; +    virtual ~TrackSourceInfo() { }

This should be omitted. There is no polymorphic use of this class, and this will just make the code bigger for no reason.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:60
&gt; +    AtomicString id() const { return m_id; }
&gt; +    AtomicString label() const { return m_label; }

Return type should be const AtomicString&amp;.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:79
&gt; +typedef Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; TrackSourceInfoVector;

Same comment as elsewhere about these vector typedefs.

&gt; Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h:85
&gt; +public:
&gt; +
&gt; +    virtual ~MediaStreamTrackSourcesRequestClient() { }

Should remove this blank line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930368</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-09-17 13:35:49 -0700</bug_when>
    <thetext>Committed in r155992: https://trac.webkit.org/r155992</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211596</attachid>
            <date>2013-09-13 15:12:16 -0700</date>
            <delta_ts>2013-09-13 16:15:04 -0700</delta_ts>
            <desc>Patch for the bots to chew on</desc>
            <filename>get_source_infos_4.txt</filename>
            <type>text/plain</type>
            <size>62460</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTA5LTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRTb3VyY2VzKTogTmV3LgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuY3BwOiBBZGRlZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vU291cmNlSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vU291cmNlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Nv
dXJjZUluZm8uaWRsOiBBZGRlZC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oOiBBZGQgdG9KUyB0ZW1wbGF0ZXMgZm9yIFZlY3RvcjxUPiBhbmQgVmVjdG9yPFJl
ZlB0cjxUPiA+LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
ZW50ZXIuaDogQWRkIHByb3RvdHlwZSBmb3IgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3RDbGllbnQuaDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9i
bGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMpOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3Ry
ZWFtQ2VudGVyQmxhY2tCZXJyeS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyk6IEFk
ZGVkCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFt
Q2VudGVyR1N0cmVhbWVyLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1D
ZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKTogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmg6CisKIDIwMTMt
MDktMTMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QXBwbHkgT1ZFUlJJREUgYW5kIEZJTkFMIHRvIEltYWdlIHN1YmNsYXNzZXMgYW5kIGNsZWFuIHRo
ZW0gdXAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw3
IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1FdmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsCisg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlk
bAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsCkBAIC0y
MzIsNiArMjMzLDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlk
bAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwKIAogICAgIE1vZHVsZXMv
bmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwKIApAQCAtODM4
LDYgKzg0MCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2
ZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0u
Y3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5jcHAKQEAgLTg1Miw2ICs4NTUs
NyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcXVlc3RJbXBsLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKyAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKIApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShy
ZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDcgQEAgQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
TmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXApAQCAt
MTM3LDYgKzEzOCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1MTIs
OCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZWRpYVN0cmVhbVRyYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0
cmVhbVRyYWNrRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJl
YW1UcmFja0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRy
YWNrU291cmNlc0NhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U01lZGlhUXVlcnlMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVl
cnlMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcCBcCkBAIC02NjYsNiArNjY4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nv
dXJjZUluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlSW5mby5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXApAQCAtMTI0Miw2ICsxMjQ2LDcgQEAg
ZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2Fs
bGJhY2suaWRsIFwKQEAgLTEyNTksNiArMTI2NCw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAog
CSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbCBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbCBcCiAJJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaWRsIFwKKwkkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwgXAogCSQoV2ViQ29yZSkv
TW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCBc
CiAJJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5p
ZGwgXApAQCAtMTk1NCw2ICsxOTYwLDkgQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja0V2ZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFT
dHJlYW0uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRv
ck1lZGlhU3RyZWFtLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhRXJyb3IuaCBcCkBAIC0xOTg4LDYgKzE5OTcsOCBAQCB3ZWJjb3JlX21v
ZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVm9pZFJlcXVlc3RJbXBsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Tb3VyY2VJbmZvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Tb3VyY2VJbmZvLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhQ29udHJvbGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwIFwKQEAgLTU0NTIsNiArNTQ2Myw3IEBAIHdlYmNv
cmVfcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3RDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29u
ZmlndXJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENE
VE1GU2VuZGVySGFuZGxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENEVE1GU2VuZGVySGFuZGxlckNsaWVudC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAkocmV2
aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsMTIgQEAKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgogI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtQ29tcG9uZW50LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjay5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNiw2ICsxMTksMTMgQEAgU3RyaW5nIE1l
ZGlhU3RyZWFtVHJhY2s6OnJlYWR5U3RhdGUoKSBjbwogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpnZXRTb3VyY2VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4g
Y2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3Q+IHJlcXVlc3QgPSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3Q6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjayk7CisgICAgaWYgKCFNZWRpYVN0cmVhbUNlbnRl
cjo6aW5zdGFuY2UoKS5nZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhyZXF1ZXN0LnJlbGVhc2Uo
KSkpCisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Cit9CisKIGJvb2wgTWVkaWFTdHJl
YW1UcmFjazo6ZW5kZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0b3BwZWQgfHwgKG1fY29t
cG9uZW50LT5zb3VyY2UoKS0+cmVhZHlTdGF0ZSgpID09IE1lZGlhU3RyZWFtU291cmNlOjpSZWFk
eVN0YXRlRW5kZWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1l
ZGlhU3RyZWFtQ29tcG9uZW50OworY2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
azsKIAogY2xhc3MgTWVkaWFTdHJlYW1UcmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3Ry
ZWFtVHJhY2s+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBNZWRpYVN0cmVhbVNvdXJjZTo6T2JzZXJ2ZXIg
ewogcHVibGljOgpAQCAtNTgsNiArNTksOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgU3RyaW5nIHJl
YWR5U3RhdGUoKSBjb25zdDsKIAorICAgIHN0YXRpYyB2b2lkIGdldFNvdXJjZXMoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
az4sIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVO
RVIobXV0ZSk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih1bm11dGUpOwog
ICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZW5kZWQpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaWRsCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw4
IEBACiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb251bm11dGU7CiAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKIAorICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBSYWlzZXNFeGNlcHRpb25dIHN0YXRpYyB2b2lkIGdldFNvdXJjZXMoTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjayBjYWxsYmFjayk7CisKICAgICAvLyBFdmVudFRhcmdldCBp
bnRlcmZhY2UKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoRE9NU3RyaW5nIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxs
YmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2tfaAorI2RlZmluZSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
X2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTb3VyY2VJbmZvLmgi
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jlc3BvbnNlOworCitjbGFzcyBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNDYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQoU291
cmNlSW5mb1ZlY3RvcikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKKworI2VuZGlmIC8vIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tfaApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKK10gY2FsbGJhY2sgaW50
ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2sgeworICAgIGJvb2xlYW4gaGFu
ZGxlRXZlbnQoc2VxdWVuY2U8U291cmNlSW5mbz4gc291cmNlcyk7Cit9OworCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
ay5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTb3Vy
Y2VJbmZvLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiBjYWxs
YmFjaykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdChjb250ZXh0LCBjYWxsYmFjaykpOworfQorCitNZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3Q6Ok1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2s+IGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayhjYWxsYmFjaykKKyAgICAsIG1fc2NoZWR1
bGVkRXZlbnRUaW1lcih0aGlzLCAmTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0OjpzY2hl
ZHVsZWRFdmVudFRpbWVyRmlyZWQpCit7CisgICAgbV9vcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0
eU9yaWdpbigpLT50b1N0cmluZygpOworfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdDo6ZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFRyYWNrU291cmNlSW5mb1ZlY3RvciYg
cmVxdXN0U291cmNlSW5mb3MpCit7CisgICAgQVNTRVJUKG1fY2FsbGJhY2sgJiYgIW1fc2NoZWR1
bGVkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
cmVxdXN0U291cmNlSW5mb3Muc2l6ZSgpOyArK2kpCisgICAgICAgIG1fc291cmNlSW5mb3MuYXBw
ZW5kKFNvdXJjZUluZm86OmNyZWF0ZShyZXF1c3RTb3VyY2VJbmZvc1tpXSkpOworCisgICAgbV9w
cm90ZWN0ID0gdGhpczsKKyAgICBtX3NjaGVkdWxlZEV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDAp
OworfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6c2NoZWR1bGVkRXZl
bnRUaW1lckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4qKQorewor
ICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fc291cmNlSW5mb3MpOworICAgIG1fY2FsbGJh
Y2suY2xlYXIoKTsKKyAgICBtX3Byb3RlY3QgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RfaAorI2RlZmluZSBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RfaAorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAiU291cmNlSW5mby5oIgorI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAid3RmL1Bhc3NSZWZQdHIuaCIKKyNpbmNsdWRlICJ3dGYv
UmVmQ291bnRlZC5oIgorI2luY2x1ZGUgInd0Zi9SZWZQdHIuaCIKKyNpbmNsdWRlICJ3dGYvdGV4
dC9XVEZTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKwor
Y2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0IDogcHVibGljIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCB7CitwdWJsaWM6CisgICAgY2xhc3MgRXh0cmFEYXRh
IDogcHVibGljIFJlZkNvdW50ZWQ8RXh0cmFEYXRhPiB7CisgICAgcHVibGljOgorICAgICAgICB2
aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4pOworICAg
IHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdCgpIHsgfQorCisgICAgU3Ry
aW5nIG9yaWdpbigpIHsgcmV0dXJuIG1fb3JpZ2luOyB9CisKKyAgICBQYXNzUmVmUHRyPEV4dHJh
RGF0YT4gZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURhdGE7IH0KKyAgICB2b2lk
IHNldEV4dHJhRGF0YShQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKSB7IG1fZXh0cmFE
YXRhID0gZXh0cmFEYXRhOyB9CisKKyAgICAvLyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3RDbGllbnQgaW50ZXJmYWNlCisgICAgdm9pZCBkaWRDb21wbGV0ZVJlcXVlc3QoY29uc3QgVHJh
Y2tTb3VyY2VJbmZvVmVjdG9yJik7CisKK3ByaXZhdGU6CisgICAgTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKworICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1l
ckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4qKTsKKworICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIFJl
ZlB0cjxFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworICAgIFN0cmluZyBtX29yaWdpbjsKKyAgICBU
aW1lcjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q+IG1fc2NoZWR1bGVkRXZlbnRUaW1l
cjsKKyAgICBTb3VyY2VJbmZvVmVjdG9yIG1fc291cmNlSW5mb3M7CisgICAgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gbV9wcm90ZWN0OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0X2gK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJ
bmZvLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vU291cmNlSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU291cmNlSW5mby5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VJbmZvPiBj
cmVhdGUoUGFzc1JlZlB0cjxUcmFja1NvdXJjZUluZm8+IHRyYWNrU291cmNlSW5mbykKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNvdXJjZUluZm8odHJhY2tTb3VyY2VJbmZvKSk7Cit9CisK
K1NvdXJjZUluZm8oUGFzc1JlZlB0cjxUcmFja1NvdXJjZUluZm8+IHRyYWNrU291cmNlSW5mbykK
KyAgICA6IG1fdHJhY2tTb3VyY2VJbmZvKHRyYWNrU291cmNlSW5mbykKK3sKK30KKworQXRvbWlj
U3RyaW5nIFNvdXJjZUluZm86OmtpbmQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBub25lLCAoQVNDSUlMaXRlcmFsKCJub25lIikpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgYXVkaW9LaW5kLCAoQVNDSUlMaXRlcmFsKCJhdWRpbyIpKSk7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHZpZGVvS2luZCwgKEFTQ0lJTGl0ZXJhbCgi
dmlkZW8iKSkpOworCisgICAgc3dpdGNoIChtX3RyYWNrU291cmNlSW5mby0+a2luZCgpKSB7Cisg
ICAgY2FzZSBUcmFja1NvdXJjZUluZm86OkF1ZGlvOgorICAgICAgICByZXR1cm4gbm9uZTsKKyAg
ICBjYXNlIFRyYWNrU291cmNlSW5mbzo6VmlkZW86CisgICAgICAgIHJldHVybiBhdWRpb0tpbmQ7
CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86Ok5vbmU6CisgICAgICAgIHJldHVybiB2aWRlb0tp
bmQ7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5
QXRvbTsKK30KKworQXRvbWljU3RyaW5nIFNvdXJjZUluZm86OmZhY2luZygpIGNvbnN0Cit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHVzZXJGYWNpbmcsIChBU0NJSUxpdGVyYWwo
InVzZXIiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBlbnZpcm9ubWVudEZh
Y2luZywgKEFTQ0lJTGl0ZXJhbCgiZW52aXJvbm1lbnQiKSkpOworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBsZWZ0RmFjaW5nLCAoQVNDSUlMaXRlcmFsKCJsZWZ0IikpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgcmlnaHRGYWNpbmcsIChBU0NJSUxpdGVyYWwoInJp
Z2h0IikpKTsKKworICAgIHN3aXRjaCAobV90cmFja1NvdXJjZUluZm8tPmZhY2luZygpKSB7Cisg
ICAgY2FzZSBUcmFja1NvdXJjZUluZm86Ok5vbmU6CisgICAgICAgIHJldHVybiBlbXB0eUF0b207
CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OlVzZXI6CisgICAgICAgIHJldHVybiB1c2VyRmFj
aW5nOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpFbnZpcm9ubWVudDoKKyAgICAgICAgcmV0
dXJuIGVudmlyb25tZW50RmFjaW5nOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpMZWZ0Ogor
ICAgICAgICByZXR1cm4gbGVmdEZhY2luZzsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6Umln
aHQ6CisgICAgICAgIHJldHVybiByaWdodEZhY2luZzsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZW1wdHlBdG9tOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Tb3VyY2VJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Tb3VyY2VJbmZvLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU291cmNlSW5mb19oCisjZGVmaW5lIFNvdXJjZUluZm9faAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVu
dC5oIgorI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNvdXJjZUluZm8gOiBwdWJsaWMg
UmVmQ291bnRlZDxTb3VyY2VJbmZvPiwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U291cmNlSW5mbz4gY3JlYXRlKFBhc3NSZWZQdHI8VHJh
Y2tTb3VyY2VJbmZvPik7CisgICAgdmlydHVhbCB+U291cmNlSW5mbygpIHsgfQorCisgICAgQXRv
bWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV90cmFja1NvdXJjZUluZm8tPmlkKCk7IH0K
KyAgICBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrU291cmNlSW5m
by0+bGFiZWwoKTsgfQorICAgIEF0b21pY1N0cmluZyBraW5kKCkgY29uc3Q7CisgICAgQXRvbWlj
U3RyaW5nIGZhY2luZygpIGNvbnN0OworCitwcml2YXRlOgorICAgIFNvdXJjZUluZm8oUGFzc1Jl
ZlB0cjxUcmFja1NvdXJjZUluZm8+KTsKKworICAgIFJlZlB0cjxUcmFja1NvdXJjZUluZm8+IG1f
dHJhY2tTb3VyY2VJbmZvOworfTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNvdXJjZUluZm8+
ID4gU291cmNlSW5mb1ZlY3RvcjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gU291cmNlSW5mb19oCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIENvbmRpdGlvbmFsPU1F
RElBX1NUUkVBTSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCitdIGludGVyZmFjZSBT
b3VyY2VJbmZvIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2luZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGxhYmVsOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZmFjaW5n
OworfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA1LDE1ICsxMDUs
MTUgQEAKIAkJMDcyNzdFNEExN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFM0UxN0Qw
MThDQzAwMTU1MzREIC8qIEpTTWVkaWFTb3VyY2UuY3BwICovOyB9OwogCQkwNzI3N0U0QjE3RDAx
OENDMDAxNTUzNEQgLyogSlNNZWRpYVNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFM0YxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
b3VyY2UuaCAqLzsgfTsKIAkJMDcyNzdFNEMxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJl
YW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcy
NzdFNDAxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW0uY3BwICovOyB9OwotCQkwNzI3
N0U0RDE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDExN0QwMThDQzAwMTU1MzREIC8q
IEpTTWVkaWFTdHJlYW0uaCAqLzsgfTsKKwkJMDcyNzdFNEQxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3Mjc3RTQxMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNEUxN0QwMThD
QzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0MjE3RDAxOEND
MDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCAqLzsgfTsK
IAkJMDcyNzdFNEYxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyNzdFNDMxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oICovOyB9OwogCQkwNzI3N0U1MDE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVh
bUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3Mjc3RTQ0MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuY3BwICovOyB9
OwotCQkwNzI3N0U1MTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NTE3RDAx
OENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggKi87IH07CisJCTA3Mjc3RTUxMTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ1MTdEMDE4Q0MwMDE1NTM0RCAvKiBK
U01lZGlhU3RyZWFtRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwNzI3N0U1MjE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRy
YWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
Mjc3RTQ2MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2suY3BwICovOyB9Owot
CQkwNzI3N0U1MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NzE3RDAxOEND
MDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi87IH07CisJCTA3Mjc3RTUzMTdEMDE4
Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ3MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01l
ZGlhU3RyZWFtVHJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwNzI3N0U1NDE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNr
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyNzdFNDgxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCAq
LzsgfTsKLQkJMDcyNzdFNTUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3
N0U0OTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLzsgfTsK
KwkJMDcyNzdFNTUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0OTE3
RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzJDOEIxMTEzMUM1MTg2MDBB
NEZDRTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkYwRDA5MTJCODE5MjcwMEMyNkFB
NCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovOyB9OwogCQkwNzJDQTg2
MTE2Q0I0REMzMDA4QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzJDQTg2MDE2Q0I0REMzMDA4
QUUxMzEgLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAgKi87IH07CiAJCTA3MzVFRTZBMEY0
MEM1RTQwMDRBMjYwNCAvKiBNZWRpYVBsYXllclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyogTWVk
aWFQbGF5ZXJQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMzIsNiArMTMyLDE3IEBACiAJCTA3M0JFMzUwMTdEMTgxQTYwMDJCRDQzMSAv
KiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyMjFCQTgxN0NGMEFENDAwODQ4RTUxIC8qIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5jcHAgKi87IH07CiAJCTA3NTM4NjAyMTQ0ODlFOTgwMEI3ODQ1MiAv
KiBDYWNoZWRUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5j
cHAgKi87IH07CiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAx
MTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKKwkJMDc2MzA2RDAx
N0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkNDMTdFMTQ3
OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc2MzA2RDIxN0UxNDc4
RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZDRTE3RTE0NzhEMDA1
QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJMDc2
MzA2RDMxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2Q0Yx
N0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NjMwNkQ3MTdF
MTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkQ0MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJ
bmZvLmNwcCAqLzsgfTsKKwkJMDc2MzA2RDgxN0UxNDlEMDAwNUE3QzRFIC8qIFNvdXJjZUluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkQ1
MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc2MzA2REMxN0UxNUZCMDAwNUE3QzRFIC8qIEpT
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZEQTE3RTE1RkIwMDA1QTdDNEUgLyogSlNN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcCAqLzsgfTsKKwkJMDc2MzA2REQxN0Ux
NUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2REIxN0UxNUZC
MDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NjMwNkUwMTdFMTYw
ODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2REUxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNl
SW5mby5jcHAgKi87IH07CisJCTA3NjMwNkUxMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUlu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMw
NkRGMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZFMzE3RTIyQTQzMDA1QTdDNEUg
LyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZFMjE3RTIyQTQzMDA1QTdDNEUg
LyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggKi87IH07CisJCTA3NjMw
NkU3MTdFMjUxRUMwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tD
dXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NjMwNkU2MTdFMjUxRUMwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2tDdXN0b20uaCAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovOyB9OwogCQkw
NzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCAqLzsgfTsKIAkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8q
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovOyB9OwpAQCAtNjU2MCw2ICs2NTcxLDE5IEBA
CiAJCTA3M0JFMzQ3MTdEMTdFN0EwMDJCRDQzMSAvKiBKU05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nl
c3NDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05hdmlnYXRv
clVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzUzODYwMDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNo
ZWRUZXh0VHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkVGV4
dFRyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkNDMTdFMTQ3OEQw
MDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2Q0QxN0UxNDc4RDAwNUE3QzRFIC8q
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzYzMDZDRTE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3NjMwNkNGMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
NjMwNkQ0MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzYzMDZENTE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3NjMwNkQ2MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTb3VyY2VJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REExN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYzMDZEQjE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzYzMDZERTE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU291cmNlSW5mby5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkRGMTdFMTYwODkwMDVBN0M0RSAvKiBK
U1NvdXJjZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTb3VyY2VJ
bmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkUyMTdFMjJBNDMwMDVB
N0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkU2MTdFMjUxRUMwMDVB
N0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tDdXN0b20uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxi
YWNrQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FE
ODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzY5NzA4NTE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0VHJhY2tMaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzMjQ3LDYgKzEzMjcxLDEwIEBACiAJCQkJMDcyMjFCNTcxN0NFQzMyNzAw
ODQ4RTUxIC8qIE1lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi8sCiAJCQkJMDcyMjFCNTgxN0NF
QzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtVHJhY2tFdmVudC5oICovLAogCQkJCTA3MjIxQjU5
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsICovLAorCQkJCTA3
NjMwNkNDMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmggKi8sCisJCQkJMDc2MzA2Q0QxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2suaWRsICovLAorCQkJCTA3NjMwNkNFMTdFMTQ3OEQwMDVBN0M0RSAvKiBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwICovLAorCQkJCTA3NjMwNkNGMTdFMTQ3
OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCAqLywKIAkJCQkw
NzIyMUI1QTE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3BwICovLAog
CQkJCTA3MjIxQjVCMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JNZWRpYVN0cmVhbS5oICov
LAogCQkJCTA3MjIxQjVDMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JNZWRpYVN0cmVhbS5p
ZGwgKi8sCkBAIC0xMzI5OCw2ICsxMzMyNiw5IEBACiAJCQkJMDcyMjFCOEExN0NFQzMyNzAwODQ4
RTUxIC8qIFJUQ1N0YXRzUmVzcG9uc2UuaWRsICovLAogCQkJCTA3MjIxQjhCMTdDRUMzMjcwMDg0
OEU1MSAvKiBSVENWb2lkUmVxdWVzdEltcGwuY3BwICovLAogCQkJCTA3MjIxQjhDMTdDRUMzMjcw
MDg0OEU1MSAvKiBSVENWb2lkUmVxdWVzdEltcGwuaCAqLywKKwkJCQkwNzYzMDZENDE3RTE0OUNG
MDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAgKi8sCisJCQkJMDc2MzA2RDUxN0UxNDlDRjAwNUE3
QzRFIC8qIFNvdXJjZUluZm8uaCAqLywKKwkJCQkwNzYzMDZENjE3RTE0OUNGMDA1QTdDNEUgLyog
U291cmNlSW5mby5pZGwgKi8sCiAJCQkJMDcyMjFCOEQxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJN
ZWRpYUNsaWVudC5oICovLAogCQkJCTA3MjIxQjhFMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVk
aWFDb250cm9sbGVyLmNwcCAqLywKIAkJCQkwNzIyMUI4RjE3Q0VDMzI3MDA4NDhFNTEgLyogVXNl
ck1lZGlhQ29udHJvbGxlci5oICovLApAQCAtMTMzMjIsNiArMTMzNTMsNyBAQAogCQkJCTA3MjIx
QjlFMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5jcHAgKi8sCiAJCQkJMDcy
MjFCOUYxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmggKi8sCiAJCQkJMDcy
MjFCQTAxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50Lmgg
Ki8sCisJCQkJMDc2MzA2RTIxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdENsaWVudC5oICovLAogCQkJCTA3MjIxQkExMTdDRjBBRDQwMDg0OEU1MSAvKiBS
VENDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMDcyMjFCQTIxN0NGMEFENDAwODQ4RTUxIC8qIFJU
Q0RhdGFDaGFubmVsSGFuZGxlci5oICovLAogCQkJCTA3MjIxQkEzMTdDRjBBRDQwMDg0OEU1MSAv
KiBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQuaCAqLywKQEAgLTEzMzc0LDYgKzEzNDA2LDgg
QEAKIAkJCQkwNzI3N0U0MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggKi8sCiAJCQkJMDcyNzdFNDQxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVk
aWFTdHJlYW1FdmVudC5jcHAgKi8sCiAJCQkJMDcyNzdFNDUxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW1FdmVudC5oICovLAorCQkJCTA3NjMwNkRBMTdFMTVGQjAwMDVBN0M0RSAvKiBK
U01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwICovLAorCQkJCTA3NjMwNkRCMTdF
MTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLywK
IAkJCQkwNzI3N0U0NjE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmNwcCAq
LywKIAkJCQkwNzI3N0U0NzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmgg
Ki8sCiAJCQkJMDcyNzdFNDgxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2
ZW50LmNwcCAqLywKQEAgLTEzNDEyLDYgKzEzNDQ2LDggQEAKIAkJCQkwNzk2OURBODE3RDE0MTUx
MDA3RkY4NDIgLyogSlNSVENTdGF0c1JlcG9ydC5oICovLAogCQkJCTA3OTY5REE5MTdEMTQxNTEw
MDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuY3BwICovLAogCQkJCTA3OTY5REFBMTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVzcG9uc2UuaCAqLywKKwkJCQkwNzYzMDZERTE3RTE2
MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmNwcCAqLywKKwkJCQkwNzYzMDZERjE3RTE2MDg5
MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IE1lZGlhU3Ry
ZWFtOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyMjU1LDYgKzIyMjkxLDcgQEAK
IAkJCQlGRDMxNjA5NTEyQjAyNkY3MDBDMUEzNTkgLyogRkZUQ29udm9sdmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjA5NzEyQjAyNkY3MDBDMUEzNTkgLyogRkZURnJhbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NkQ2QzgxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwNzYzMDZFMzE3RTIyQTQzMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTNDNDdBNzEyMzg5MDhC
MDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjZDNzcyQjBB
QjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4
NTYyMTIyQ0EwNjQwMDNBQUJEQSAvKiBGaWxlRW50cnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjI1
MDgsNiArMjI1NDUsNyBAQAogCQkJCTk3N0UyRENFMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1MU291
cmNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc4QUQ2NzUxNDEzMEE4RDAwQzdDQUUz
IC8qIEhUTUxTcGFuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURDMjMwQTE1MjA1
NzAwQjEyQTY4IC8qIEhUTUxTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMw
NkREMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCUQzRDRFOTczMTMwQzdDRkUwMDdCQTU0MCAvKiBIVE1MU3Vt
bWFyeUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQjJCMEExNTBCRDYwMEIxMkE2
OCAvKiBIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURC
MkEwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTIyODQzLDYgKzIyODgxLDcgQEAKIAkJCQk5MzhFNjY2MjA5RjA5Qjg3MDA4QTQ4RUMg
LyogSlNIVE1MQ2FudmFzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDQkFENDEwQzE4
QzE0MjAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRB
MUU3MTkxMTRFMTAxRTQwMDYyNkY5RCAvKiBKU0hUTUxDb250ZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMDc2MzA2RDAxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QzA0MUU3MEZGQ0E5NkQwMDgz
OUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzNTlE
OEJGMTI5Q0E1NUMwMDA2RTVEMiAvKiBKU0hUTUxEZXRhaWxzRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzY4MDhCNTAxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjMwMzUsMTIgKzIzMDc0LDE0IEBACiAJCQkJQjJGQTNENEQw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkZBM0Q0RjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZFN0cmluZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJGQTNENTEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRU
cmFuc2Zvcm1MaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYzMDZFMTE3RTE2MDg5MDA1QTdD
NEUgLyogSlNTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1MzBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdBbmltYXRlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ5
NkUzOUUxMzk4MTM2QzAwM0VFMzJBIC8qIEpTU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyRkEzRDU1MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1NzBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdBbmltYXRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZB
M0Q1OTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdDaXJjbGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkZBM0Q1QjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdDbGlwUGF0aEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQ4MTdFMTQ5RDAwMDVBN0M0RSAvKiBTb3VyY2VJ
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1RDBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUYwQUI3NUE2RjAwMEU1QUM0IC8q
IEpTU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyRkEzRDYxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0N1cnNvckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjQ0MTksNiArMjQ0NjAsNyBAQAogCQkJCTBGQ0YzMzJGMEYyQjlBMjUw
MDRCNjc5NSAvKiBXZWJMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBMzE2MkQxMzRCQzMy
RDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUNBRjM0ODEwQTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMDc2MzA2RDMxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMUIwRDdFMkI4MjAw
N0MzOTgzIC8qIFdlYlNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNBRjM0ODMw
QTZDNDA1MjAwQUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdFByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3QUFCRDFCMTRGQTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjUyNjAsOCArMjUzMDIsMTAgQEAKIAkJCQk4NjFDMkVBNDEzRkI0RkREMDAwNjJB
QkIgLyogRG9jdW1lbnRMb2FkVGltaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3ODFDNkE3
MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDRTA1N0ZBNTEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMwNkRDMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ5NDdG
RkQxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEMyMjgwRTExRDRBNTk3MDBENUE3RDMgLyogRG9jdW1lbnRQYXJzZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2RDIxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QTRGNDhBOTE2QjBE
RkMwMDBFREJCMjkgLyogRG9jdW1lbnRSdWxlU2V0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
RDZFNzFBQzE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmplY3RQb29sLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTJENDZGMDRFMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI2MTU0LDYgKzI2MTk4LDcgQEAKIAkJCQk3QTBFNzcxRTEw
QzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0E3NEVDQkQxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDNUZBRUQxMERDRkQ5MDEwMEQ1OEY3
OCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2
RTAxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzk2OURCNzE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENJY2VDYW5kaWRhdGVFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQzVGQUVFNzBEQ0ZEQTY4MDBENThGNzggLyogSlNKYXZhU2Ny
aXB0Q2FsbEZyYW1lQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NjYyOUQ0MDlEQTJC
NDgwMDk2MzNBNSAvKiBKU0tleWJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjI1
Nyw2ICsyNjMwMiw3IEBACiAJCQkJNTE0Qzc2MzgwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJh
bnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2OUUxMTkwMkE0MjAwN0U5Njg0
IC8qIEpTU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUQy
MzE2RTBDRDI2OUU3MDBDMUYxOTQgLyogSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwNzYzMDZENzE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCNTlERDZBMjExOTAyQTUyMDA3RTk2ODQgLyogSlNTUUxUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU4Q0VCNkUxMTkx
MzYxQzAwMkE2NzkwIC8qIEpTU1FMVHJhbnNhY3Rpb25TeW5jLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUI1NUQ1QUE1MTE5MTMxRkMwMEJDQzMxNSAvKiBKU1NRTFRyYW5zYWN0aW9uU3luY0NhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNiArMzY1LDI4IEBA
IGNsYXNzIERPTVN0cmluZ0xpc3Q7CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgcHRyLmdldCgpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAg
ICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxUPiB2ZWN0b3IpCisgICAgeworICAgICAg
ICBKU0M6OkpTQXJyYXkqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwLCB2ZWN0
b3Iuc2l6ZSgpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoc2l6ZV90IGkgPTA7IGkgPCB2ZWN0
b3Iuc2l6ZSgpOyArK2kgKQorICAgICAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMs
IGksIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB2ZWN0b3JbaV0pKTsKKyAgICAgICAgCisgICAg
ICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAg
ICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZlY3RvcjxSZWZQdHI8VD4gPiB2ZWN0b3IpCisgICAg
eworICAgICAgICBKU0M6OkpTQXJyYXkqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShleGVj
LCAwLCB2ZWN0b3Iuc2l6ZSgpKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoc2l6ZV90IGkgPTA7
IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kgKQorICAgICAgICAgICAgYXJyYXktPnB1dERpcmVjdElu
ZGV4KGV4ZWMsIGksIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCB2ZWN0b3JbaV0uZ2V0KCkpKTsK
KyAgICAgICAgCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisgICAgCiAgICAgdGVtcGxh
dGUgPGNsYXNzIFQ+CiAgICAgc3RydWN0IEpTVmFsdWVUcmFpdHMgewogICAgICAgICBzdGF0aWMg
aW5saW5lIEpTQzo6SlNWYWx1ZSBhcnJheUpTVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFQmIHZhbHVlKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUNlbnRlci5oCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50Owog
Y2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVl
cnlDbGllbnQ7CitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ7CiAK
IGNsYXNzIE1lZGlhU3RyZWFtQ2VudGVyIHsKIHB1YmxpYzoKQEAgLTUyLDYgKzUzLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50PikgPSAwOwogCiAgICAgLy8gQ2FsbHMgZnJv
bSB0aGUgRE9NIG9iamVjdHMgdG8gbm90aWZ5IHRoZSBwbGF0Zm9ybQorICAgIHZpcnR1YWwgYm9v
bCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudD4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0TWVkaWFT
dHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21w
b25lbnQqKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVk
aWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dENsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudF9oCisjZGVmaW5lIE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFRyYWNrU291cmNlSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPFRyYWNr
U291cmNlSW5mbz4geworcHVibGljOgorICAgIGVudW0gU291cmNlS2luZCB7CisgICAgICAgIE5v
U291cmNlLAorICAgICAgICBBdWRpbywKKyAgICAgICAgVmlkZW8KKyAgICB9OworICAgIAorICAg
IGVudW0gVmlkZW9GYWNpbmdNb2RlIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgVXNlciwKKyAg
ICAgICAgRW52aXJvbm1lbnQsCisgICAgICAgIExlZnQsCisgICAgICAgIFJpZ2h0CisgICAgfTsK
KworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4gY3JlYXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgaWQsIFNvdXJjZUtpbmQga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJl
bCwgVmlkZW9GYWNpbmdNb2RlIGZhY2luZykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVHJhY2tTb3VyY2VJbmZvKGlkLCBraW5kLCBsYWJlbCwgZmFjaW5nKSk7CisgICAgfQor
ICAgIHZpcnR1YWwgflRyYWNrU291cmNlSW5mbygpIHsgfQorCisgICAgQXRvbWljU3RyaW5nIGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICBTb3VyY2VLaW5kIGtpbmQoKSB7IHJldHVybiBtX2tp
bmQ7IH0KKyAgICBWaWRlb0ZhY2luZ01vZGUgZmFjaW5nKCkgeyByZXR1cm4gbV9mYWNpbmc7IH0K
KyAgICAKK3ByaXZhdGU6CisgICAgVHJhY2tTb3VyY2VJbmZvKGNvbnN0IEF0b21pY1N0cmluZyYg
aWQsIFNvdXJjZUtpbmQga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgVmlkZW9GYWNp
bmdNb2RlIGZhY2luZykKKyAgICAgICAgOiBtX2lkKGlkKQorICAgICAgICAsIG1fa2luZChraW5k
KQorICAgICAgICAsIG1fbGFiZWwobGFiZWwpCisgICAgICAgICwgbV9mYWNpbmcoZmFjaW5nKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgQXRvbWljU3RyaW5nIG1faWQ7CisgICAgU291cmNlS2lu
ZCBtX2tpbmQ7CisgICAgQXRvbWljU3RyaW5nIG1fbGFiZWw7CisgICAgVmlkZW9GYWNpbmdNb2Rl
IG1fZmFjaW5nOworfTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPFRyYWNrU291cmNlSW5mbz4g
PiBUcmFja1NvdXJjZUluZm9WZWN0b3I7CisKKworY2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNSZXF1ZXN0Q2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNSZXF1ZXN0Q2xpZW50PiB7CitwdWJsaWM6CisKKyAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3RDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21w
bGV0ZVJlcXVlc3QoY29uc3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJikgPSAwOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2VuZGlmIC8vIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudF9oCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFt
Q2VudGVyQmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuY3Bw
CShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYyLDYgKzYyLDExIEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5Ojpx
dWVyeU0KICAgICBjbGllbnQtPmRpZENvbXBsZXRlUXVlcnkoYXVkaW9Tb3VyY2VzLCB2aWRlb1Nv
dXJjZXMpOwogfQogCitib29sIE1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRy
YWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVu
dD4pCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyQmxh
Y2tCZXJyeTo6ZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlw
dG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVy
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9i
bGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oCShyZXZpc2lvbiAxNTU1NzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlh
U3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIE1lZGlhU3RyZWFtQ2VudGVyCiAgICAgdmlydHVhbCB2b2lkIHF1
ZXJ5TWVkaWFTdHJlYW1Tb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlD
bGllbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQo
TWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgZGlkQWRkTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2Ny
aXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlh
U3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNl
bnRlckdTdHJlYW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDExIEBAIHZvaWQg
TWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OnF1ZXJ5TWUKICAgICBjbGllbnQtPmRpZENvbXBs
ZXRlUXVlcnkoYXVkaW9Tb3VyY2VzLCB2aWRlb1NvdXJjZXMpOwogfQogCitib29sIE1lZGlhU3Ry
ZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjpkaWRTZXRNZWRpYVN0cmVhbVRy
YWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCop
CiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3Ry
ZWFtZXIuaAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogCiAgICAgLy8gTWVkaWFTdHJlYW1DZW50
ZXIKICAgICB2aXJ0dWFsIHZvaWQgcXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRN
ZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVh
bUNvbXBvbmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVh
bVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRl
ck1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAkocmV2aXNpb24gMTU1NTc1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFj
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogCiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW1EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGll
bnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAKQEAgLTYxLDYgKzYyLDEyIEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OnF1ZXJ5TWVk
aWFTdHIKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIE1lZGlhU3RyZWFtQ2VudGVy
TWFjOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzUmVxdWVzdENsaWVudD4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmRpZFNldE1lZGlh
U3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29t
cG9uZW50KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFt
Q2VudGVyTWFjLmgJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5oCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAogICAgIC8vIE1lZGlhU3RyZWFtQ2VudGVyCiAgICAg
dmlydHVhbCB2b2lkIHF1ZXJ5TWVkaWFTdHJlYW1Tb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1Tb3VyY2VzUXVlcnlDbGllbnQ+KSBPVkVSUklERTsKKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wg
Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RDbGllbnQ+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0TWVk
aWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1D
b21wb25lbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGlkQWRkTWVkaWFTdHJlYW1U
cmFjayhNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTU3MjEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wOS0xMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IENoYW5naW5nIHRoZSBk
ZXZpY2UgZW51bWVyYXRpb24gdG8gYmUgYXN5bmMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDg4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LWdldFNvdXJjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy5odG1sOiBBZGRlZC4KKwogMjAxMy0wOS0x
MyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBGbGFreSBU
ZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5pZmVzdC13aXRo
LW5vbi1leGlzdGluZy1maWxlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNl
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U291cmNlcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTWVkaWFTdHJlYW1UcmFjay5n
ZXRTb3VyY2VzKGdvdFNvdXJjZXMxKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIGdv
dFNvdXJjZXMxIHdhcyBjYWxsZWQuCitQQVNTIHNvdXJjZXMubGVuZ3RoID4gMCBpcyB0cnVlCitQ
QVNTIGdvdFN0cmVhbSB3YXMgY2FsbGVkLgorUEFTUyBNZWRpYVN0cmVhbVRyYWNrLmdldFNvdXJj
ZXMoZ290U291cmNlczIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgZ290U291cmNl
czIgd2FzIGNhbGxlZC4KK1BBU1Mgc291cmNlcy5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1Mgc291
cmNlc1swXS5pZCA9PT0gcHJldmlvdXNJZCBpcyB0cnVlCitQQVNTIHNvdXJjZXNbMF0ubGFiZWwu
bGVuZ3RoID4gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNv
dXJjZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIE1lZGlhU3RyZWFtVHJh
Y2s6OmdldFNvdXJjZXMuIik7CisKK3ZhciBzb3VyY2VzID0gbnVsbDsKK3ZhciBwcmV2aW91c0lk
OworCitmdW5jdGlvbiBlcnJvcigpIHsKKyAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGlv
biBmYWlsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGdldFVzZXJN
ZWRpYShjb25zdHJhaW50cywgY2FsbGJhY2spIHsKKyAgICB0cnkgeworICAgICAgICBuYXZpZ2F0
b3Iud2Via2l0R2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzLCBjYWxsYmFjaywgZXJyb3IpOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRo
cmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIGdvdFNvdXJjZXMyKHMpIHsKKyAgICB0ZXN0UGFzc2VkKCdnb3RTb3VyY2Vz
MiB3YXMgY2FsbGVkLicpOworICAgIHNvdXJjZXMgPSBzOworICAgIHNob3VsZEJlVHJ1ZSgnc291
cmNlcy5sZW5ndGggPiAwJyk7CisgICAgc2hvdWxkQmVUcnVlKCdzb3VyY2VzWzBdLmlkID09PSBw
cmV2aW91c0lkJyk7CisgICAgc2hvdWxkQmVUcnVlKCdzb3VyY2VzWzBdLmxhYmVsLmxlbmd0aCA+
IDAnKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW0ocykg
eworICAgIHRlc3RQYXNzZWQoJ2dvdFN0cmVhbSB3YXMgY2FsbGVkLicpOworCisgICAgc2hvdWxk
Tm90VGhyb3coJ01lZGlhU3RyZWFtVHJhY2suZ2V0U291cmNlcyhnb3RTb3VyY2VzMik7Jyk7Cit9
CisKK2Z1bmN0aW9uIGdvdFNvdXJjZXMxKHMpIHsKKyAgICB0ZXN0UGFzc2VkKCdnb3RTb3VyY2Vz
MSB3YXMgY2FsbGVkLicpOworICAgIHNvdXJjZXMgPSBzOworICAgIHNob3VsZEJlVHJ1ZSgnc291
cmNlcy5sZW5ndGggPiAwJyk7CisgICAgcHJldmlvdXNJZCA9IHNvdXJjZXNbMF0uaWQ7CisKKyAg
ICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pOworfQor
CitzaG91bGROb3RUaHJvdygnTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKGdvdFNvdXJjZXMx
KTsnKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="233723"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211600</attachid>
            <date>2013-09-13 16:15:04 -0700</date>
            <delta_ts>2013-09-13 16:24:44 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>get_source_infos_5.txt</filename>
            <type>text/plain</type>
            <size>62641</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEzLTA5LTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRTb3VyY2VzKTogTmV3LgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oOiBBZGRlZC4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsOiBBZGRlZC4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOiBBZGQgdG9KUyB0ZW1wbGF0ZXMgZm9yIFZlY3RvcjxU
PiBhbmQgVmVjdG9yPFJlZlB0cjxUPiA+LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuaDogQWRkIHByb3RvdHlwZSBmb3IgZ2V0TWVkaWFTdHJlYW1U
cmFja1NvdXJjZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50Lmg6IEFkZGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRl
ckJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXJNYWM6
OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaDoKKwor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRl
ckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlck1hYzo6
Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMpOiBBZGRlZAorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRy
YWNrU291cmNlcyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5oOgorCiAyMDEzLTA5LTEzICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGx5IE9WRVJSSURFIGFuZCBGSU5BTCB0
byBJbWFnZSBzdWJjbGFzc2VzIGFuZCBjbGVhbiB0aGVtIHVwCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNSw2ICsyMTUsNyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3IuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbApAQCAtMjMyLDYgKzIzMyw3IEBAIHNldChXZWJDb3Jl
X0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L1NvdXJjZUluZm8uaWRsCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZp
Z2F0b3JDb250ZW50VXRpbHMuaWRsCiAKQEAgLTgzOCw2ICs4NDAsNyBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAKKyAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25l
Q2hhbmdlRXZlbnQuY3BwCkBAIC04NTIsNiArODU1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3Vy
Y2VJbmZvLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5j
cHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTIwLDYgKzEy
MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVy
cm9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsIFwKQEAgLTEzNyw2ICsxMzgsNyBAQCBCSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJh
Y2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZv
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CSh3b3JraW5nIGNvcHkpCkBAIC01MTIsNiArNTEyLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFjay5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXApAQCAtNjY2LDYgKzY2OCw4
IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NvdXJjZUJ1ZmZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVy
TGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VJbmZvLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1NvdXJjZUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NwZWVjaElucHV0RXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
SW5wdXRFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRSZXN1
bHQuY3BwIFwKQEAgLTEyNDIsNiArMTI0Niw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCiAJJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCBcCisJ
JChXZWJDb3JlKS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JNZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9O
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbCBcCkBAIC0xMjU5LDYgKzEy
NjQsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1NvdXJjZUluZm8uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0
aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKQEAgLTE5NTQsNiArMTk2MCw5IEBA
IHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2su
aCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
U291cmNlc1JlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggXApA
QCAtMTk4OCw2ICsxOTk3LDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgg
XAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNw
cCBcCkBAIC01NDUyLDYgKzU0NjMsNyBAQCB3ZWJjb3JlX3BsYXRmb3JtX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3Vy
Y2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1T
b3VyY2VzUXVlcnlDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlckhhbmRsZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlckhhbmRsZXJDbGll
bnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDggKzI5LDExIEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2lu
Y2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtQ2VudGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIKKyNp
bmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMTE2LDYgKzExOSwxMyBAQCBTdHJpbmcgTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgp
IGNvCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6Omdl
dFNvdXJjZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gcmVxdWVzdCA9
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNr
KTsKKyAgICBpZiAoIU1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpLmdldE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzKHJlcXVlc3QucmVsZWFzZSgpKSkKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKK30KKwogYm9vbCBNZWRpYVN0cmVhbVRyYWNrOjplbmRlZCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fc3RvcHBlZCB8fCAobV9jb21wb25lbnQtPnNvdXJjZSgpLT5yZWFkeVN0YXRl
KCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
aAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7CitjbGFzcyBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrOwogCiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNr
IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFjaz4sIHB1YmxpYyBTY3JpcHRXcmFw
cGFibGUsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGlj
IE1lZGlhU3RyZWFtU291cmNlOjpPYnNlcnZlciB7CiBwdWJsaWM6CkBAIC01OCw2ICs1OSw4IEBA
IHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcgcmVhZHlTdGF0ZSgpIGNvbnN0OwogCisgICAgc3Rh
dGljIHZvaWQgZ2V0U291cmNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAg
REVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihtdXRlKTsKICAgICBERUZJTkVfQVRUUklC
VVRFX0VWRU5UX0xJU1RFTkVSKHVubXV0ZSk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihlbmRlZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJKHJldmlzaW9uIDE1NTU3NSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDggQEAKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbnVubXV0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwogCisg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJhaXNlc0V4Y2VwdGlvbl0gc3Rh
dGljIHZvaWQgZ2V0U291cmNlcyhNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrIGNhbGxi
YWNrKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZvaWQgYWRkRXZlbnRM
aXN0ZW5lcihET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRM
aXN0ZW5lciBsaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxs
YmFjay5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja19oCisjZGVmaW5lIE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVzcG9uc2U7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2sgOiBwdWJs
aWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaygpIHsgfQorICAg
IHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTb3VyY2VJbmZvVmVjdG9yKSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNDYWxsYmFja19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIE5vSW50
ZXJmYWNlT2JqZWN0LAorXSBjYWxsYmFjayBpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjayB7CisgICAgYm9vbGVhbiBoYW5kbGVFdmVudChzZXF1ZW5jZTxTb3VyY2VJbmZv
PiBzb3VyY2VzKTsKK307CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09H
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU291
cmNlSW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KGNvbnRleHQsIGNhbGxiYWNrKSk7
Cit9CisKK01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6TWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4gY2FsbGJhY2spCisgICAgOiBtX2NhbGxi
YWNrKGNhbGxiYWNrKQorICAgICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKHRoaXMsICZNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKK3sKKyAg
ICBtX29yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0OjpkaWRDb21wbGV0ZVJlcXVlc3Qo
Y29uc3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJiByZXF1c3RTb3VyY2VJbmZvcykKK3sKKyAgICBB
U1NFUlQobV9jYWxsYmFjayAmJiAhbV9zY2hlZHVsZWRFdmVudFRpbWVyLmlzQWN0aXZlKCkpOwor
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXF1c3RTb3VyY2VJbmZvcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgbV9zb3VyY2VJbmZvcy5hcHBlbmQoU291cmNlSW5mbzo6Y3JlYXRlKHJlcXVz
dFNvdXJjZUluZm9zW2ldKSk7CisKKyAgICBtX3Byb3RlY3QgPSB0aGlzOworICAgIG1fc2NoZWR1
bGVkRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0OjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoVGltZXI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0PiopCit7CisgICAgbV9jYWxsYmFjay0+aGFuZGxlRXZlbnQo
bV9zb3VyY2VJbmZvcyk7CisgICAgbV9jYWxsYmFjay5jbGVhcigpOworICAgIG1fcHJvdGVjdCA9
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdF9oCisjZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdF9o
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAiU291cmNlSW5mby5oIgorI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKwor
Y2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0IDogcHVibGljIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCB7CitwdWJsaWM6CisgICAgY2xhc3MgRXh0cmFEYXRh
IDogcHVibGljIFJlZkNvdW50ZWQ8RXh0cmFEYXRhPiB7CisgICAgcHVibGljOgorICAgICAgICB2
aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4pOworICAg
IHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdCgpIHsgfQorCisgICAgU3Ry
aW5nIG9yaWdpbigpIHsgcmV0dXJuIG1fb3JpZ2luOyB9CisKKyAgICBQYXNzUmVmUHRyPEV4dHJh
RGF0YT4gZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURhdGE7IH0KKyAgICB2b2lk
IHNldEV4dHJhRGF0YShQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKSB7IG1fZXh0cmFE
YXRhID0gZXh0cmFEYXRhOyB9CisKKyAgICAvLyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3RDbGllbnQgaW50ZXJmYWNlCisgICAgdm9pZCBkaWRDb21wbGV0ZVJlcXVlc3QoY29uc3QgVHJh
Y2tTb3VyY2VJbmZvVmVjdG9yJik7CisKK3ByaXZhdGU6CisgICAgTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKworICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1l
ckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4qKTsKKworICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiBtX2NhbGxiYWNrOworICAgIFJl
ZlB0cjxFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworICAgIFN0cmluZyBtX29yaWdpbjsKKyAgICBU
aW1lcjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q+IG1fc2NoZWR1bGVkRXZlbnRUaW1l
cjsKKyAgICBTb3VyY2VJbmZvVmVjdG9yIG1fc291cmNlSW5mb3M7CisgICAgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gbV9wcm90ZWN0OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0X2gK
KworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJj
ZUluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vU291cmNlSW5mby5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFBhc3NSZWZQdHI8U291
cmNlSW5mbz4gY3JlYXRlKFBhc3NSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPiB0cmFja1NvdXJjZUlu
Zm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3VyY2VJbmZvKHRyYWNrU291cmNlSW5m
bykpOworfQorCitTb3VyY2VJbmZvKFBhc3NSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPiB0cmFja1Nv
dXJjZUluZm8pCisgICAgOiBtX3RyYWNrU291cmNlSW5mbyh0cmFja1NvdXJjZUluZm8pCit7Cit9
CisKK0F0b21pY1N0cmluZyBTb3VyY2VJbmZvOjpraW5kKCkgY29uc3QKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgbm9uZSwgKEFTQ0lJTGl0ZXJhbCgibm9uZSIpKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGF1ZGlvS2luZCwgKEFTQ0lJTGl0ZXJhbCgiYXVk
aW8iKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB2aWRlb0tpbmQsIChBU0NJ
SUxpdGVyYWwoInZpZGVvIikpKTsKKworICAgIHN3aXRjaCAobV90cmFja1NvdXJjZUluZm8tPmtp
bmQoKSkgeworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpBdWRpbzoKKyAgICAgICAgcmV0dXJu
IG5vbmU7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OlZpZGVvOgorICAgICAgICByZXR1cm4g
YXVkaW9LaW5kOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpOb25lOgorICAgICAgICByZXR1
cm4gdmlkZW9LaW5kOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBlbXB0eUF0b207Cit9CisKK0F0b21pY1N0cmluZyBTb3VyY2VJbmZvOjpmYWNpbmcoKSBj
b25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB1c2VyRmFjaW5nLCAoQVND
SUlMaXRlcmFsKCJ1c2VyIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZW52
aXJvbm1lbnRGYWNpbmcsIChBU0NJSUxpdGVyYWwoImVudmlyb25tZW50IikpKTsKKyAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbGVmdEZhY2luZywgKEFTQ0lJTGl0ZXJhbCgibGVmdCIp
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHJpZ2h0RmFjaW5nLCAoQVNDSUlM
aXRlcmFsKCJyaWdodCIpKSk7CisKKyAgICBzd2l0Y2ggKG1fdHJhY2tTb3VyY2VJbmZvLT5mYWNp
bmcoKSkgeworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpOb25lOgorICAgICAgICByZXR1cm4g
ZW1wdHlBdG9tOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpVc2VyOgorICAgICAgICByZXR1
cm4gdXNlckZhY2luZzsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6RW52aXJvbm1lbnQ6Cisg
ICAgICAgIHJldHVybiBlbnZpcm9ubWVudEZhY2luZzsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5m
bzo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGxlZnRGYWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJj
ZUluZm86OlJpZ2h0OgorICAgICAgICByZXR1cm4gcmlnaHRGYWNpbmc7CisgICAgfQorCisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5QXRvbTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vU291cmNlSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFNvdXJjZUluZm9faAorI2RlZmluZSBTb3VyY2VJbmZvX2gKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3RDbGllbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTb3VyY2VJbmZv
IDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlSW5mbz4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUluZm8+IGNyZWF0ZShQYXNz
UmVmUHRyPFRyYWNrU291cmNlSW5mbz4pOworICAgIHZpcnR1YWwgflNvdXJjZUluZm8oKSB7IH0K
KworICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tTb3VyY2VJbmZv
LT5pZCgpOyB9CisgICAgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV90cmFj
a1NvdXJjZUluZm8tPmxhYmVsKCk7IH0KKyAgICBBdG9taWNTdHJpbmcga2luZCgpIGNvbnN0Owor
ICAgIEF0b21pY1N0cmluZyBmYWNpbmcoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBTb3VyY2VJ
bmZvKFBhc3NSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPik7CisKKyAgICBSZWZQdHI8VHJhY2tTb3Vy
Y2VJbmZvPiBtX3RyYWNrU291cmNlSW5mbzsKK307CisKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxT
b3VyY2VJbmZvPiA+IFNvdXJjZUluZm9WZWN0b3I7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFNvdXJjZUluZm9faAorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmlkbAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKKyAgICBDb25k
aXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBp
bnRlcmZhY2UgU291cmNlSW5mbyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBp
ZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGZhY2luZzsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEw
NSwxNSArMTA1LDE1IEBACiAJCTA3Mjc3RTRBMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291
cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
Mjc3RTNFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmNwcCAqLzsgfTsKIAkJMDcy
NzdFNEIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTNGMTdEMDE4Q0MwMDE1NTM0RCAv
KiBKU01lZGlhU291cmNlLmggKi87IH07CiAJCTA3Mjc3RTRDMTdEMDE4Q0MwMDE1NTM0RCAvKiBK
U01lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Mjc3RTQwMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmNwcCAqLzsg
fTsKLQkJMDcyNzdFNEQxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQxMTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggKi87IH07CisJCTA3Mjc3RTREMTdEMDE4Q0MwMDE1
NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzI3N0U0MTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3Mjc3
RTRFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdF
NDIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgKi87IH07CiAJCTA3Mjc3RTRGMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVk
aW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mjc3RTQzMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCAqLzsgfTsKIAkJMDcyNzdFNTAxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzI3N0U0NDE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50
LmNwcCAqLzsgfTsKLQkJMDcyNzdFNTExN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1F
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcy
NzdFNDUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oICovOyB9OworCQkw
NzI3N0U1MTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NTE3RDAxOENDMDAx
NTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVk
aWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzI3N0U0NjE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmNw
cCAqLzsgfTsKLQkJMDcyNzdFNTMxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdF
NDcxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oICovOyB9OworCQkwNzI3
N0U1MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NzE3RDAxOENDMDAxNTUz
NEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTQxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
dHJlYW1UcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mjc3RTQ4MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tF
dmVudC5jcHAgKi87IH07Ci0JCTA3Mjc3RTU1MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50
LmggKi87IH07CisJCTA3Mjc3RTU1MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJh
Y2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyQzhCMTEx
MzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzZGMEQwOTEyQjgx
OTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCAqLzsgfTsK
IAkJMDcyQ0E4NjExNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyQ0E4NjAx
NkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwICovOyB9OwogCQkw
NzM1RUU2QTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5ZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNUVFNjkwRjQwQzVFNDAwNEEy
NjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTMyLDYgKzEzMiwxNyBAQAogCQkwNzNCRTM1MDE3RDE4MUE2
MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIxQkE4MTdDRjBBRDQwMDg0OEU1MSAv
KiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwICovOyB9OwogCQkwNzUzODYwMjE0NDg5RTk4
MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAwMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRU
ZXh0VHJhY2suY3BwICovOyB9OwogCQkwNzUzODYwMzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVk
VGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi87IH07CisJ
CTA3NjMwNkQwMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYz
MDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NjMw
NkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2Q0Ux
N0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgKi87
IH07CisJCTA3NjMwNkQzMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NjMwNkNGMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkw
NzYzMDZENzE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZENDE3RTE0OUNGMDA1QTdDNEUg
LyogU291cmNlSW5mby5jcHAgKi87IH07CisJCTA3NjMwNkQ4MTdFMTQ5RDAwMDVBN0M0RSAvKiBT
b3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzYzMDZENTE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NjMwNkRDMTdFMTVGQjAwMDVB
N0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2REExN0UxNUZCMDAwNUE3
QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgKi87IH07CisJCTA3
NjMwNkREMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMw
NkRCMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2su
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYz
MDZFMDE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkRFMTdFMTYwODkwMDVBN0M0RSAv
KiBKU1NvdXJjZUluZm8uY3BwICovOyB9OworCQkwNzYzMDZFMTE3RTE2MDg5MDA1QTdDNEUgLyog
SlNTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc2MzA2RTMxN0UyMkE0
MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2RTIxN0UyMkE0
MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oICovOyB9
OworCQkwNzYzMDZFNzE3RTI1MUVDMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzYzMDZFNjE3RTI1MUVDMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi87IH07CiAJCTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAv
KiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAq
LzsgfTsKIAkJMDc2OTcwODcxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg1MTQ2M0FE
ODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggKi87IH07CiAJCTA3NkYwRDBFMTJCODE5Mjcw
MEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFB
NCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLzsgfTsKQEAgLTY1NjAsNiAr
NjU3MSwxOSBAQAogCQkwNzNCRTM0NzE3RDE3RTdBMDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2Vy
TWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0
NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZD
QzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0Nh
bGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkNEMTdFMTQ3OEQw
MDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2Q0UxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZDRjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwNzYzMDZENDE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VJbmZvLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RDUxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUlu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlSW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZENjE3RTE0OUNGMDA1QTdDNEUgLyogU291
cmNlSW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU291cmNlSW5mby5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkRBMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REIxN0UxNUZCMDAwNUE3QzRFIC8qIEpT
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REUxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNl
SW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUlu
Zm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZERjE3RTE2MDg5MDA1
QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZFMjE3
RTIyQTQzMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZFNjE3
RTI1MUVDMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9t
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFja0N1c3RvbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5
NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODUxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzI0Nyw2ICsxMzI3MSwxMCBAQAogCQkJCTA3MjIxQjU3
MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwICovLAogCQkJCTA3
MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCAqLywKIAkJ
CQkwNzIyMUI1OTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCAq
LywKKwkJCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjay5oICovLAorCQkJCTA3NjMwNkNEMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCAqLywKKwkJCQkwNzYzMDZDRTE3RTE0NzhEMDA1
QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcCAqLywKKwkJCQkwNzYz
MDZDRjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Lmgg
Ki8sCiAJCQkJMDcyMjFCNUExN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmlnYXRvck1lZGlhU3RyZWFt
LmNwcCAqLywKIAkJCQkwNzIyMUI1QjE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFT
dHJlYW0uaCAqLywKIAkJCQkwNzIyMUI1QzE3Q0VDMzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVk
aWFTdHJlYW0uaWRsICovLApAQCAtMTMyOTgsNiArMTMzMjYsOSBAQAogCQkJCTA3MjIxQjhBMTdD
RUMzMjcwMDg0OEU1MSAvKiBSVENTdGF0c1Jlc3BvbnNlLmlkbCAqLywKIAkJCQkwNzIyMUI4QjE3
Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCAqLywKIAkJCQkwNzIyMUI4
QzE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVlc3RJbXBsLmggKi8sCisJCQkJMDc2MzA2
RDQxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3BwICovLAorCQkJCTA3NjMwNkQ1MTdF
MTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggKi8sCisJCQkJMDc2MzA2RDYxN0UxNDlDRjAw
NUE3QzRFIC8qIFNvdXJjZUluZm8uaWRsICovLAogCQkJCTA3MjIxQjhEMTdDRUMzMjcwMDg0OEU1
MSAvKiBVc2VyTWVkaWFDbGllbnQuaCAqLywKIAkJCQkwNzIyMUI4RTE3Q0VDMzI3MDA4NDhFNTEg
LyogVXNlck1lZGlhQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJMDcyMjFCOEYxN0NFQzMyNzAwODQ4
RTUxIC8qIFVzZXJNZWRpYUNvbnRyb2xsZXIuaCAqLywKQEAgLTEzMzIyLDYgKzEzMzUzLDcgQEAK
IAkJCQkwNzIyMUI5RTE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuY3BwICov
LAogCQkJCTA3MjIxQjlGMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5oICov
LAogCQkJCTA3MjIxQkEwMTdDRjBBRDQwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVNvdXJjZXNRdWVy
eUNsaWVudC5oICovLAorCQkJCTA3NjMwNkUyMTdFMjJBNDMwMDVBN0M0RSAvKiBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCAqLywKIAkJCQkwNzIyMUJBMTE3Q0YwQUQ0MDA4
NDhFNTEgLyogUlRDQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTA3MjIxQkEyMTdDRjBBRDQwMDg0
OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCAqLywKIAkJCQkwNzIyMUJBMzE3Q0YwQUQ0
MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmggKi8sCkBAIC0xMzM3NCw2
ICsxMzQwNiw4IEBACiAJCQkJMDcyNzdFNDMxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJl
YW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oICovLAogCQkJCTA3Mjc3RTQ0MTdEMDE4Q0MwMDE1NTM0
RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuY3BwICovLAogCQkJCTA3Mjc3RTQ1MTdEMDE4Q0MwMDE1
NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAqLywKKwkJCQkwNzYzMDZEQTE3RTE1RkIwMDA1
QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcCAqLywKKwkJCQkw
NzYzMDZEQjE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxi
YWNrLmggKi8sCiAJCQkJMDcyNzdFNDYxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1U
cmFjay5jcHAgKi8sCiAJCQkJMDcyNzdFNDcxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJl
YW1UcmFjay5oICovLAogCQkJCTA3Mjc3RTQ4MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2tFdmVudC5jcHAgKi8sCkBAIC0xMzQxMiw2ICsxMzQ0Niw4IEBACiAJCQkJMDc5NjlE
QTgxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBvcnQuaCAqLywKIAkJCQkwNzk2OURB
OTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmNwcCAqLywKIAkJCQkwNzk2
OURBQTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3BvbnNlLmggKi8sCisJCQkJMDc2
MzA2REUxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5jcHAgKi8sCisJCQkJMDc2MzA2
REYxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSBNZWRpYVN0cmVhbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMjI1NSw2ICsy
MjI5MSw3IEBACiAJCQkJRkQzMTYwOTUxMkIwMjZGNzAwQzFBMzU5IC8qIEZGVENvbnZvbHZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOTcxMkIwMjZGNzAwQzFBMzU5IC8qIEZGVEZyYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MzA2RTMxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ3
QTcxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4OTg3ODU2MjEyMkNBMDY0MDAzQUFCREEgLyogRmlsZUVudHJ5LmggaW4gSGVhZGVycyAq
LywKQEAgLTIyNTA4LDYgKzIyNTQ1LDcgQEAKIAkJCQk5NzdFMkRDRTEyRjBFMjgzMDBDMTMzNzkg
LyogSFRNTFNvdXJjZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3OEFENjc1MTQxMzBB
OEQwMEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFE
QzIzMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU3R5bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkwNzYzMDZERDE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0Q0RTk3MzEzMEM3Q0ZFMDA3QkE1NDAg
LyogSFRNTFN1bW1hcnlFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREIyQjBBMTUw
QkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4NzFEQjJBMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVDZWxsRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yMjg0Myw2ICsyMjg4MSw3IEBACiAJCQkJOTM4RTY2NjIwOUYwOUI4
NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
Q0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0QTFFNzE5MTE0RTEwMUU0MDA2MjZGOUQgLyogSlNIVE1MQ29udGVudEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQwMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUMwNDFFNzBG
RkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlEMzU5RDhCRjEyOUNBNTVDMDAwNkU1RDIgLyogSlNIVE1MRGV0YWlsc0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTc2ODA4QjUwMTU5REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFs
b2dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMDM1LDEyICsyMzA3NCwxNCBAQAogCQkJ
CUIyRkEzRDREMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkUmVjdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJGQTNENEYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRTdHJp
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDUxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MzA2RTExN0Ux
NjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNE
NTMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ0OTZFMzlFMTM5ODEzNkMwMDNFRTMyQSAvKiBKU1NWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1NTBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTcw
QUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJGQTNENTkwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ2lyY2xlRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUIwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ2xpcFBh
dGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYzMDZEODE3RTE0OUQwMDA1QTdDNEUg
LyogU291cmNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUQwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHQ29sb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDVGMEFCNzVBNkYw
MDBFNUFDNCAvKiBKU1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkZBM0Q2MTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdDdXJzb3JFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDE5LDYgKzI0NDYwLDcgQEAKIAkJCQkwRkNGMzMy
RjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTMx
NjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFDQUYzNDgxMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQzMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDFC
MEQ3RTJCODIwMDdDMzk4MyAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5N0FBQkQxQjE0RkEwOUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTI1MjYwLDggKzI1MzAyLDEwIEBACiAJCQkJODYxQzJFQTQxM0ZC
NEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzYzMDZEQzE3RTE1RkIwMDA1QTdDNEUg
LyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0QTU5NzAwRDVBN0QzIC8qIERvY3VtZW50UGFy
c2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMwNkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE0
RjQ4QTkxNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50UnVsZVNldHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0
UG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDQ2RjA0RTE3Qjk2RkJEMDA1NjQ3RjAgLyog
SW50UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjE1NCw2ICsyNjE5OCw3IEBACiAJCQkJ
N0EwRTc3MUUxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JEMTAxODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3Rv
ckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzVGQUVEMTBEQ0ZE
OTAxMDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTA3NjMwNkUwMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc5NjlEQjcxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDSWNlQ2FuZGlkYXRl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1RkFFRTcwRENGREE2ODAwRDU4Rjc4IC8q
IEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODY2
MjlENDA5REEyQjQ4MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjYyNTcsNiArMjYzMDIsNyBAQAogCQkJCTUxNEM3NjM4MENFOTIyNUUwMDdFRjNDRCAv
KiBKU1NRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1OURENjlFMTE5MDJB
NDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFEMjMxNkUwQ0QyNjlFNzAwQzFGMTk0IC8qIEpTU1FMVHJhbnNhY3Rpb25DdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2RDcxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJj
ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2QTIxMTkwMkE1MjAwN0U5Njg0IC8q
IEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1
OENFQjZFMTE5MTM2MUMwMDJBNjc5MCAvKiBKU1NRTFRyYW5zYWN0aW9uU3luYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCNTVENUFBNTExOTEzMUZDMDBCQ0MzMTUgLyogSlNTUUxUcmFuc2FjdGlv
blN5bmNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYg
KzM2NSwyOCBAQCBjbGFzcyBET01TdHJpbmdMaXN0OwogICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHB0ci5nZXQoKSk7CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWZWN0b3I8VD4gdmVjdG9yKQorICAg
IHsKKyAgICAgICAgSlNDOjpKU0FycmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhl
YywgMCwgdmVjdG9yLnNpemUoKSk7CisgICAgICAgIAorICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5wdXREaXJlY3RJ
bmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgdmVjdG9yW2ldKSk7CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWZWN0b3I8UmVmUHRyPFQ+ID4gdmVj
dG9yKQorICAgIHsKKyAgICAgICAgSlNDOjpKU0FycmF5KiBhcnJheSA9IGNvbnN0cnVjdEVtcHR5
QXJyYXkoZXhlYywgMCwgdmVjdG9yLnNpemUoKSk7CisgICAgICAgIAorICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5w
dXREaXJlY3RJbmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgdmVjdG9yW2ld
LmdldCgpKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorICAgIAog
ICAgIHRlbXBsYXRlIDxjbGFzcyBUPgogICAgIHN0cnVjdCBKU1ZhbHVlVHJhaXRzIHsKICAgICAg
ICAgc3RhdGljIGlubGluZSBKU0M6OkpTVmFsdWUgYXJyYXlKU1ZhbHVlKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBUJiB2YWx1ZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2Vu
dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1DZW50ZXIuaAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVN0cmVhbUNv
bXBvbmVudDsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIGNsYXNzIE1lZGlhU3RyZWFt
U291cmNlc1F1ZXJ5Q2xpZW50OworY2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
Q2xpZW50OwogCiBjbGFzcyBNZWRpYVN0cmVhbUNlbnRlciB7CiBwdWJsaWM6CkBAIC01Miw2ICs1
Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMo
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4pID0gMDsKIAogICAgIC8v
IENhbGxzIGZyb20gdGhlIERPTSBvYmplY3RzIHRvIG5vdGlmeSB0aGUgcGxhdGZvcm0KKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlh
U3RyZWFtQ29tcG9uZW50KikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVh
bVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFt
RGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgPSAwOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnRfaAorI2Rl
ZmluZSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnRfaAorCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUcmFja1NvdXJjZUluZm8gOiBwdWJsaWMgUmVmQ291
bnRlZDxUcmFja1NvdXJjZUluZm8+IHsKK3B1YmxpYzoKKyAgICBlbnVtIFNvdXJjZUtpbmQgewor
ICAgICAgICBOb1NvdXJjZSwKKyAgICAgICAgQXVkaW8sCisgICAgICAgIFZpZGVvCisgICAgfTsK
KyAgICAKKyAgICBlbnVtIFZpZGVvRmFjaW5nTW9kZSB7CisgICAgICAgIE5vbmUsCisgICAgICAg
IFVzZXIsCisgICAgICAgIEVudmlyb25tZW50LAorICAgICAgICBMZWZ0LAorICAgICAgICBSaWdo
dAorICAgIH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUcmFja1NvdXJjZUluZm8+IGNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBTb3VyY2VLaW5kIGtpbmQsIGNvbnN0IEF0b21pY1N0
cmluZyYgbGFiZWwsIFZpZGVvRmFjaW5nTW9kZSBmYWNpbmcpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFRyYWNrU291cmNlSW5mbyhpZCwga2luZCwgbGFiZWwsIGZhY2luZykp
OworICAgIH0KKyAgICB2aXJ0dWFsIH5UcmFja1NvdXJjZUluZm8oKSB7IH0KKworICAgIEF0b21p
Y1N0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAgICBBdG9taWNTdHJpbmcgbGFi
ZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CisgICAgU291cmNlS2luZCBraW5kKCkgeyBy
ZXR1cm4gbV9raW5kOyB9CisgICAgVmlkZW9GYWNpbmdNb2RlIGZhY2luZygpIHsgcmV0dXJuIG1f
ZmFjaW5nOyB9CisgICAgCitwcml2YXRlOgorICAgIFRyYWNrU291cmNlSW5mbyhjb25zdCBBdG9t
aWNTdHJpbmcmIGlkLCBTb3VyY2VLaW5kIGtpbmQsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWws
IFZpZGVvRmFjaW5nTW9kZSBmYWNpbmcpCisgICAgICAgIDogbV9pZChpZCkKKyAgICAgICAgLCBt
X2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2xhYmVsKGxhYmVsKQorICAgICAgICAsIG1fZmFjaW5n
KGZhY2luZykKKyAgICB7CisgICAgfQorICAgIAorICAgIEF0b21pY1N0cmluZyBtX2lkOworICAg
IFNvdXJjZUtpbmQgbV9raW5kOworICAgIEF0b21pY1N0cmluZyBtX2xhYmVsOworICAgIFZpZGVv
RmFjaW5nTW9kZSBtX2ZhY2luZzsKK307CisKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxUcmFja1Nv
dXJjZUluZm8+ID4gVHJhY2tTb3VyY2VJbmZvVmVjdG9yOworCisKK2NsYXNzIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4geworcHVibGljOgorCisgICAgdmlydHVhbCB+TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFRyYWNrU291cmNlSW5mb1ZlY3RvciYpID0gMDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNlbmRpZiAvLyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnRf
aApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9N
ZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFj
a0JlcnJ5LmNwcAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2MiwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyQmxh
Y2tCZXJyeTo6cXVlcnlNCiAgICAgY2xpZW50LT5kaWRDb21wbGV0ZVF1ZXJ5KGF1ZGlvU291cmNl
cywgdmlkZW9Tb3VyY2VzKTsKIH0KIAorYm9vbCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3RDbGllbnQ+KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBNZWRpYVN0cmVh
bUNlbnRlckJsYWNrQmVycnk6OmRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikKIHsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50
ZXJCbGFja0JlcnJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaAkocmV2aXNp
b24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2ti
ZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZWRpYVN0cmVhbUNlbnRlcgogICAgIHZpcnR1
YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlc1F1ZXJ5Q2xpZW50PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGdldE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
Q2xpZW50PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldE1lZGlhU3RyZWFtVHJh
Y2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50Kikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0
b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCShyZXZpc2lvbiAxNTU1
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miwx
MSBAQCB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyOjpxdWVyeU1lCiAgICAgY2xpZW50
LT5kaWRDb21wbGV0ZVF1ZXJ5KGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKTsKIH0KIAorYm9v
bCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6ZGlkU2V0TWVk
aWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1D
b21wb25lbnQqKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFt
Q2VudGVyR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1lZGlh
U3RyZWFtQ2VudGVyCiAgICAgdmlydHVhbCB2b2lkIHF1ZXJ5TWVkaWFTdHJlYW1Tb3VyY2VzKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQ+KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwg
TWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGlkQWRk
TWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBv
bmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRy
YWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFT
dHJlYW1DZW50ZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAJKHJldmlzaW9uIDE1NTU3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVh
bUNlbnRlck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
c1F1ZXJ5Q2xpZW50LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogCkBAIC02MSw2ICs2MiwxMiBAQCB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyTWFj
OjpxdWVyeU1lZGlhU3RyCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBNZWRpYVN0
cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyTWFjOjpk
aWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRp
YVN0cmVhbUNvbXBvbmVudCopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5oCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBNZWRpYVN0cmVhbUNl
bnRlcgogICAgIHZpcnR1YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50PikgT1ZFUlJJREU7CisgICAgCisgICAgdmly
dHVhbCBib29sIGdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1l
ZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1l
ZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25l
bnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFj
ayhNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURF
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTU1NzIxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDktMTMgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBDaGFu
Z2luZyB0aGUgZGV2aWNlIGVudW1lcmF0aW9uIHRvIGJlIGFzeW5jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA4ODMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay1nZXRTb3VyY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbDogQWRkZWQuCisK
IDIwMTMtMDktMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgRmxha3kgVGVzdDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvYXBwY2FjaGUvYXBwY2FjaGUtbWFu
aWZlc3Qtd2l0aC1ub24tZXhpc3RpbmctZmlsZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LWdldFNvdXJjZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIE1lZGlhU3RyZWFtVHJhY2s6Omdl
dFNvdXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE1lZGlhU3Ry
ZWFtVHJhY2suZ2V0U291cmNlcyhnb3RTb3VyY2VzMSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyBnb3RTb3VyY2VzMSB3YXMgY2FsbGVkLgorUEFTUyBzb3VyY2VzLmxlbmd0aCA+IDAg
aXMgdHJ1ZQorUEFTUyBnb3RTdHJlYW0gd2FzIGNhbGxlZC4KK1BBU1MgTWVkaWFTdHJlYW1UcmFj
ay5nZXRTb3VyY2VzKGdvdFNvdXJjZXMyKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IGdvdFNvdXJjZXMyIHdhcyBjYWxsZWQuCitQQVNTIHNvdXJjZXMubGVuZ3RoID4gMCBpcyB0cnVl
CitQQVNTIHNvdXJjZXNbMF0uaWQgPT09IHByZXZpb3VzSWQgaXMgdHJ1ZQorUEFTUyBzb3VyY2Vz
WzBdLmxhYmVsLmxlbmd0aCA+IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFjay1nZXRTb3VyY2VzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBNZWRp
YVN0cmVhbVRyYWNrOjpnZXRTb3VyY2VzLiIpOworCit2YXIgc291cmNlcyA9IG51bGw7Cit2YXIg
cHJldmlvdXNJZDsKKworZnVuY3Rpb24gZXJyb3IoKSB7CisgICAgdGVzdEZhaWxlZCgnU3RyZWFt
IGdlbmVyYXRpb24gZmFpbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlv
biBnZXRVc2VyTWVkaWEoY29uc3RyYWludHMsIGNhbGxiYWNrKSB7CisgICAgdHJ5IHsKKyAgICAg
ICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShjb25zdHJhaW50cywgY2FsbGJhY2ssIGVy
cm9yKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVz
ZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfQorfQorCitmdW5jdGlvbiBnb3RTb3VyY2VzMihzKSB7CisgICAgdGVzdFBhc3NlZCgn
Z290U291cmNlczIgd2FzIGNhbGxlZC4nKTsKKyAgICBzb3VyY2VzID0gczsKKyAgICBzaG91bGRC
ZVRydWUoJ3NvdXJjZXMubGVuZ3RoID4gMCcpOworICAgIHNob3VsZEJlVHJ1ZSgnc291cmNlc1sw
XS5pZCA9PT0gcHJldmlvdXNJZCcpOworICAgIHNob3VsZEJlVHJ1ZSgnc291cmNlc1swXS5sYWJl
bC5sZW5ndGggPiAwJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZ290
U3RyZWFtKHMpIHsKKyAgICB0ZXN0UGFzc2VkKCdnb3RTdHJlYW0gd2FzIGNhbGxlZC4nKTsKKwor
ICAgIHNob3VsZE5vdFRocm93KCdNZWRpYVN0cmVhbVRyYWNrLmdldFNvdXJjZXMoZ290U291cmNl
czIpOycpOworfQorCitmdW5jdGlvbiBnb3RTb3VyY2VzMShzKSB7CisgICAgdGVzdFBhc3NlZCgn
Z290U291cmNlczEgd2FzIGNhbGxlZC4nKTsKKyAgICBzb3VyY2VzID0gczsKKyAgICBzaG91bGRC
ZVRydWUoJ3NvdXJjZXMubGVuZ3RoID4gMCcpOworICAgIHByZXZpb3VzSWQgPSBzb3VyY2VzWzBd
LmlkOworCisgICAgZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSwgZ290U3Ry
ZWFtKTsKK30KKworc2hvdWxkTm90VGhyb3coJ01lZGlhU3RyZWFtVHJhY2suZ2V0U291cmNlcyhn
b3RTb3VyY2VzMSk7Jyk7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5z
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211601</attachid>
            <date>2013-09-13 16:24:44 -0700</date>
            <delta_ts>2013-09-13 16:52:51 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>get_source_infos_6.txt</filename>
            <type>text/plain</type>
            <size>62633</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEzLTA5LTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRTb3VyY2VzKTogTmV3LgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGw6CisKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oOiBBZGRlZC4KKworICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsOiBBZGRlZC4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOiBBZGQgdG9KUyB0ZW1wbGF0ZXMgZm9yIFZlY3RvcjxU
PiBhbmQgVmVjdG9yPFJlZlB0cjxUPiA+LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuaDogQWRkIHByb3RvdHlwZSBmb3IgZ2V0TWVkaWFTdHJlYW1U
cmFja1NvdXJjZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50Lmg6IEFkZGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRl
ckJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXJNYWM6
OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaDoKKwor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRl
ckdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlck1hYzo6
Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMpOiBBZGRlZAorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oOgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRy
YWNrU291cmNlcyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5oOgorCiAyMDEzLTA5LTEzICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGx5IE9WRVJSSURFIGFuZCBGSU5BTCB0
byBJbWFnZSBzdWJjbGFzc2VzIGFuZCBjbGVhbiB0aGVtIHVwCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNSw2ICsyMTUsNyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsCiAgICAgTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3IuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JV
c2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbApAQCAtMjMyLDYgKzIzMyw3IEBAIHNldChXZWJDb3Jl
X0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L1NvdXJjZUluZm8uaWRsCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZp
Z2F0b3JDb250ZW50VXRpbHMuaWRsCiAKQEAgLTgzOCw2ICs4NDAsNyBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKICAgICBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAKKyAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25l
Q2hhbmdlRXZlbnQuY3BwCkBAIC04NTIsNiArODU1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3Vy
Y2VJbmZvLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5j
cHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTIwLDYgKzEy
MCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVy
cm9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsIFwKQEAgLTEzNyw2ICsxMzgsNyBAQCBCSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJh
Y2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBv
cnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZv
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90
aWZpY2F0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CSh3b3JraW5nIGNvcHkpCkBAIC01MTIsNiArNTEyLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFjay5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXApAQCAtNjY2LDYgKzY2OCw4
IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NvdXJjZUJ1ZmZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVy
TGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VJbmZvLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1NvdXJjZUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NwZWVjaElucHV0RXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNo
SW5wdXRFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRSZXN1
bHQuY3BwIFwKQEAgLTEyNDIsNiArMTI0Niw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCiAJJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCBcCisJ
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVk
aWFTdHJlYW0uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXApAQCAtMTI1OSw2ICsxMjY0LDcgQEAg
ZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXBvcnQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJ
bmZvLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZp
Z2F0b3JDb250ZW50VXRpbHMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCkBAIC0xOTU0LDYgKzE5NjAsOSBAQCB3ZWJjb3Jl
X21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggXAorCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIFwKQEAgLTE5ODgs
NiArMTk5Nyw4IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAgXApAQCAt
NTQ1Miw2ICs1NDYzLDcgQEAgd2ViY29yZV9wbGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlc1F1
ZXJ5Q2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXJIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXJIYW5kbGVyQ2xpZW50LmggXApJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suY3BwCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw4ICsyOSwxMSBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bUNlbnRlci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ29tcG9uZW50LmgiCisjaW5jbHVkZSAi
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNiw2
ICsxMTksMTMgQEAgU3RyaW5nIE1lZGlhU3RyZWFtVHJhY2s6OnJlYWR5U3RhdGUoKSBjbwogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpnZXRTb3VyY2Vz
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNDYWxsYmFjaz4gY2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q+IHJlcXVlc3QgPSBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjayk7CisgICAg
aWYgKCFNZWRpYVN0cmVhbUNlbnRlcjo6aW5zdGFuY2UoKS5nZXRNZWRpYVN0cmVhbVRyYWNrU291
cmNlcyhyZXF1ZXN0LnJlbGVhc2UoKSkpCisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7
Cit9CisKIGJvb2wgTWVkaWFTdHJlYW1UcmFjazo6ZW5kZWQoKSBjb25zdAogewogICAgIHJldHVy
biBtX3N0b3BwZWQgfHwgKG1fY29tcG9uZW50LT5zb3VyY2UoKS0+cmVhZHlTdGF0ZSgpID09IE1l
ZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlRW5kZWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlz
aW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OworY2xhc3MgTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjazsKIAogY2xhc3MgTWVkaWFTdHJlYW1UcmFjayA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2s+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBNZWRpYVN0
cmVhbVNvdXJjZTo6T2JzZXJ2ZXIgewogcHVibGljOgpAQCAtNTgsNiArNTksOCBAQCBwdWJsaWM6
CiAgICAgCiAgICAgU3RyaW5nIHJlYWR5U3RhdGUoKSBjb25zdDsKIAorICAgIHN0YXRpYyB2b2lk
IGdldFNvdXJjZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIobXV0ZSk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUih1bm11dGUpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIo
ZW5kZWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw2ICszOSw4IEBACiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb251
bm11dGU7CiAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKIAorICAgIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBSYWlzZXNFeGNlcHRpb25dIHN0YXRpYyB2b2lk
IGdldFNvdXJjZXMoTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjayBjYWxsYmFjayk7CisK
ICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIo
RE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIg
bGlzdGVuZXIsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tfaAorI2RlZmluZSBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJTb3VyY2VJbmZvLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jlc3BvbnNl
OworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrIDogcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4geworcHVibGljOgorICAgIHZp
cnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlRXZlbnQoU291cmNlSW5mb1ZlY3RvcikgPSAwOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzQ2FsbGJhY2tfaApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2suaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICBOb0ludGVyZmFjZU9i
amVjdCwKK10gY2FsbGJhY2sgaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2sgeworICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoc2VxdWVuY2U8U291cmNlSW5mbz4gc291cmNl
cyk7Cit9OworCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0LmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjay5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNvdXJjZUluZm8u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdD4gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0OjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdChjb250ZXh0LCBjYWxsYmFjaykpOworfQorCitN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6Ok1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayhjYWxs
YmFjaykKKyAgICAsIG1fc2NoZWR1bGVkRXZlbnRUaW1lcih0aGlzLCAmTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0OjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQpCit7CisgICAgbV9vcmln
aW4gPSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpOworfQorCit2b2lkIE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6ZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFRy
YWNrU291cmNlSW5mb1ZlY3RvciYgcmVxdXN0U291cmNlSW5mb3MpCit7CisgICAgQVNTRVJUKG1f
Y2FsbGJhY2sgJiYgIW1fc2NoZWR1bGVkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVxdXN0U291cmNlSW5mb3Muc2l6ZSgpOyArK2kpCisgICAg
ICAgIG1fc291cmNlSW5mb3MuYXBwZW5kKFNvdXJjZUluZm86OmNyZWF0ZShyZXF1c3RTb3VyY2VJ
bmZvc1tpXSkpOworCisgICAgbV9wcm90ZWN0ID0gdGhpczsKKyAgICBtX3NjaGVkdWxlZEV2ZW50
VGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdDo6c2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdD4qKQoreworICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KG1fc291cmNl
SW5mb3MpOworICAgIG1fY2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX3Byb3RlY3QgPSBudWxscHRy
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3RfaAorI2RlZmluZSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RfaAorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudC5oIgorI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKyNpbmNsdWRlICJUaW1l
ci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFjazsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdCA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RDbGllbnQgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0YSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEV4dHJhRGF0YT4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+
RXh0cmFEYXRhKCkgeyB9CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKyAgICB2aXJ0dWFs
IH5NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QoKSB7IH0KKworICAgIFN0cmluZyBvcmln
aW4oKSB7IHJldHVybiBtX29yaWdpbjsgfQorCisgICAgUGFzc1JlZlB0cjxFeHRyYURhdGE+IGV4
dHJhRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZXh0cmFEYXRhOyB9CisgICAgdm9pZCBzZXRFeHRy
YURhdGEoUGFzc1JlZlB0cjxFeHRyYURhdGE+IGV4dHJhRGF0YSkgeyBtX2V4dHJhRGF0YSA9IGV4
dHJhRGF0YTsgfQorCisgICAgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50
IGludGVyZmFjZQorICAgIHZvaWQgZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFRyYWNrU291cmNl
SW5mb1ZlY3RvciYpOworCitwcml2YXRlOgorICAgIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrPik7CisKKyAgICB2b2lkIHNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZChU
aW1lcjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q+Kik7CisKKyAgICBSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4gbV9jYWxsYmFjazsKKyAgICBSZWZQdHI8RXh0
cmFEYXRhPiBtX2V4dHJhRGF0YTsKKyAgICBTdHJpbmcgbV9vcmlnaW47CisgICAgVGltZXI8TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBtX3NjaGVkdWxlZEV2ZW50VGltZXI7CisgICAg
U291cmNlSW5mb1ZlY3RvciBtX3NvdXJjZUluZm9zOworICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3Q+IG1fcHJvdGVjdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdF9oCisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJj
ZUluZm8uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Tb3VyY2VJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTb3VyY2VJbmZvLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNvdXJjZUluZm8+
IGNyZWF0ZShQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4gdHJhY2tTb3VyY2VJbmZvKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU291cmNlSW5mbyh0cmFja1NvdXJjZUluZm8pKTsKK30K
KworU291cmNlSW5mbyhQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4gdHJhY2tTb3VyY2VJbmZv
KQorICAgIDogbV90cmFja1NvdXJjZUluZm8odHJhY2tTb3VyY2VJbmZvKQoreworfQorCitBdG9t
aWNTdHJpbmcgU291cmNlSW5mbzo6a2luZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIG5vbmUsIChBU0NJSUxpdGVyYWwoIm5vbmUiKSkpOworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBhdWRpb0tpbmQsIChBU0NJSUxpdGVyYWwoImF1ZGlvIikpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdmlkZW9LaW5kLCAoQVNDSUlMaXRlcmFs
KCJ2aWRlbyIpKSk7CisKKyAgICBzd2l0Y2ggKG1fdHJhY2tTb3VyY2VJbmZvLT5raW5kKCkpIHsK
KyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6QXVkaW86CisgICAgICAgIHJldHVybiBub25lOwor
ICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpWaWRlbzoKKyAgICAgICAgcmV0dXJuIGF1ZGlvS2lu
ZDsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6Tm9uZToKKyAgICAgICAgcmV0dXJuIHZpZGVv
S2luZDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZW1w
dHlBdG9tOworfQorCitBdG9taWNTdHJpbmcgU291cmNlSW5mbzo6ZmFjaW5nKCkgY29uc3QKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdXNlckZhY2luZywgKEFTQ0lJTGl0ZXJh
bCgidXNlciIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVudmlyb25tZW50
RmFjaW5nLCAoQVNDSUlMaXRlcmFsKCJlbnZpcm9ubWVudCIpKSk7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChTdHJpbmcsIGxlZnRGYWNpbmcsIChBU0NJSUxpdGVyYWwoImxlZnQiKSkpOworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCByaWdodEZhY2luZywgKEFTQ0lJTGl0ZXJhbCgi
cmlnaHQiKSkpOworCisgICAgc3dpdGNoIChtX3RyYWNrU291cmNlSW5mby0+ZmFjaW5nKCkpIHsK
KyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6Tm9uZToKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRv
bTsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6VXNlcjoKKyAgICAgICAgcmV0dXJuIHVzZXJG
YWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OkVudmlyb25tZW50OgorICAgICAgICBy
ZXR1cm4gZW52aXJvbm1lbnRGYWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OkxlZnQ6
CisgICAgICAgIHJldHVybiBsZWZ0RmFjaW5nOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpS
aWdodDoKKyAgICAgICAgcmV0dXJuIHJpZ2h0RmFjaW5nOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBlbXB0eUF0b207Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1NvdXJjZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1NvdXJjZUluZm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09H
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBTb3VyY2VJbmZvX2gKKyNkZWZpbmUgU291cmNlSW5mb19oCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8d3RmL093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlSW5mbyA6IHB1Ymxp
YyBSZWZDb3VudGVkPFNvdXJjZUluZm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VJbmZvPiBjcmVhdGUoUGFzc1JlZlB0cjxU
cmFja1NvdXJjZUluZm8+KTsKKyAgICB2aXJ0dWFsIH5Tb3VyY2VJbmZvKCkgeyB9CisKKyAgICBB
dG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrU291cmNlSW5mby0+aWQoKTsg
fQorICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tTb3VyY2VJ
bmZvLT5sYWJlbCgpOyB9CisgICAgQXRvbWljU3RyaW5nIGtpbmQoKSBjb25zdDsKKyAgICBBdG9t
aWNTdHJpbmcgZmFjaW5nKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU291cmNlSW5mbyhQYXNz
UmVmUHRyPFRyYWNrU291cmNlSW5mbz4pOworCisgICAgUmVmUHRyPFRyYWNrU291cmNlSW5mbz4g
bV90cmFja1NvdXJjZUluZm87Cit9OworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U291cmNlSW5m
bz4gPiBTb3VyY2VJbmZvVmVjdG9yOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBTb3VyY2VJbmZvX2gKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAgQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNl
IFNvdXJjZUluZm8geworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOworICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgbGFiZWw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmYWNp
bmc7Cit9OwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsMTUgKzEw
NSwxNSBAQAogCQkwNzI3N0U0QTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0UzRTE3
RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVNvdXJjZS5jcHAgKi87IH07CiAJCTA3Mjc3RTRCMTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0UzRjE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRp
YVNvdXJjZS5oICovOyB9OwogCQkwNzI3N0U0QzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0
cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzI3N0U0MDE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbS5jcHAgKi87IH07Ci0JCTA3
Mjc3RTREMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0MTE3RDAxOENDMDAxNTUzNEQg
LyogSlNNZWRpYVN0cmVhbS5oICovOyB9OworCQkwNzI3N0U0RDE3RDAxOENDMDAxNTUzNEQgLyog
SlNNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcyNzdFNDExN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW0uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzI3N0U0RTE3RDAx
OENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQyMTdEMDE4
Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovOyB9
OwogCQkwNzI3N0U0RjE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzI3N0U0MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRp
b25Ob2RlLmggKi87IH07CiAJCTA3Mjc3RTUwMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3Ry
ZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcyNzdFNDQxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgKi87
IH07Ci0JCTA3Mjc3RTUxMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ1MTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAqLzsgfTsKKwkJMDcyNzdFNTEx
N0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDUxN0QwMThDQzAwMTU1MzREIC8q
IEpTTWVkaWFTdHJlYW1FdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA3Mjc3RTUyMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFt
VHJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyNzdFNDYxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgKi87IH07
Ci0JCTA3Mjc3RTUzMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ3MTdEMDE4
Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2suaCAqLzsgfTsKKwkJMDcyNzdFNTMxN0Qw
MThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDcxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW1UcmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTA3Mjc3RTU0MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJh
Y2tFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzI3N0U0ODE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3Bw
ICovOyB9OwotCQkwNzI3N0U1NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNr
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
Mjc3RTQ5MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oICovOyB9
OworCQkwNzI3N0U1NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ5
MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3MkM4QjExMTMxQzUxODYw
MEE0RkNFOSAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RjBEMDkxMkI4MTkyNzAwQzI2
QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi87IH07CiAJCTA3MkNB
ODYxMTZDQjREQzMwMDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MkNBODYwMTZDQjREQzMw
MDhBRTEzMSAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJMDczNUVFNkEw
RjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzVFRTY5MEY0MEM1RTQwMDRBMjYwNCAvKiBN
ZWRpYVBsYXllclByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTEzMiw2ICsxMzIsMTcgQEAKIAkJMDczQkUzNTAxN0QxODFBNjAwMkJENDMx
IC8qIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzIyMUJBODE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcCAqLzsgfTsKIAkJMDc1Mzg2MDIxNDQ4OUU5ODAwQjc4NDUy
IC8qIENhY2hlZFRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzUzODYwMDE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNr
LmNwcCAqLzsgfTsKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2
MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9OworCQkwNzYzMDZE
MDE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2Q0MxN0Ux
NDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZEMjE3RTE0
NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkNFMTdFMTQ3OEQw
MDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwICovOyB9OworCQkw
NzYzMDZEMzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZD
RjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc2MzA2RDcx
N0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2RDQxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJj
ZUluZm8uY3BwICovOyB9OworCQkwNzYzMDZEODE3RTE0OUQwMDA1QTdDNEUgLyogU291cmNlSW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2
RDUxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZEQzE3RTE1RkIwMDA1QTdDNEUgLyog
SlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkRBMTdFMTVGQjAwMDVBN0M0RSAvKiBK
U01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwICovOyB9OworCQkwNzYzMDZERDE3
RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZEQjE3RTE1
RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc2MzA2RTAxN0Ux
NjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZERTE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3Vy
Y2VJbmZvLmNwcCAqLzsgfTsKKwkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNl
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2
MzA2REYxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NjMwNkUzMTdFMjJBNDMwMDVBN0M0
RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkUyMTdFMjJBNDMwMDVBN0M0
RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCAqLzsgfTsKKwkJMDc2
MzA2RTcxN0UyNTFFQzAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
a0N1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2MzA2RTYxN0UyNTFFQzAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxs
YmFja0N1c3RvbS5oICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRy
YWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CiAJ
CTA3Njk3MDg3MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NTE0NjNBRDg3MDBGNTAy
Q0YgLyogVGV4dFRyYWNrTGlzdC5oICovOyB9OwogCQkwNzZGMEQwRTEyQjgxOTI3MDBDMjZBQTQg
LyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi87IH07CkBAIC02NTYwLDYgKzY1NzEsMTkg
QEAKIAkJMDczQkUzNDcxN0QxN0U3QTAwMkJENDMxIC8qIEpTTmF2aWdhdG9yVXNlck1lZGlhU3Vj
Y2Vzc0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTmF2aWdh
dG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3NTM4NjAwMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkVGV4dFRyYWNrLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENh
Y2hlZFRleHRUcmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRU
ZXh0VHJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2Q0MxN0UxNDc4
RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZDRDE3RTE0NzhEMDA1QTdDNEUg
LyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3NjMwNkNFMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDc2MzA2Q0YxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MDc2MzA2RDQxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3NjMwNkQ1MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RDYxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNvdXJjZUluZm8uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYzMDZEQTE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkRCMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTA3NjMwNkRFMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTb3VyY2VJbmZvLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REYxN0UxNjA4OTAwNUE3QzRFIC8q
IEpTU291cmNlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NvdXJj
ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RTIxN0UyMkE0MzAw
NUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RTYxN0UyNTFFQzAw
NUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja0N1c3RvbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2tDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODQxNDYz
QUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRUcmFja0xpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTMyNDcsNiArMTMyNzEsMTAgQEAKIAkJCQkwNzIyMUI1NzE3Q0VDMzI3
MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCAqLywKIAkJCQkwNzIyMUI1ODE3
Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggKi8sCiAJCQkJMDcyMjFC
NTkxN0NFQzMyNzAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGwgKi8sCisJCQkJ
MDc2MzA2Q0MxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2suaCAqLywKKwkJCQkwNzYzMDZDRDE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNDYWxsYmFjay5pZGwgKi8sCisJCQkJMDc2MzA2Q0UxN0UxNDc4RDAwNUE3QzRFIC8q
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgKi8sCisJCQkJMDc2MzA2Q0YxN0Ux
NDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oICovLAogCQkJ
CTA3MjIxQjVBMTdDRUMzMjcwMDg0OEU1MSAvKiBOYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAgKi8s
CiAJCQkJMDcyMjFCNUIxN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmlnYXRvck1lZGlhU3RyZWFtLmgg
Ki8sCiAJCQkJMDcyMjFCNUMxN0NFQzMyNzAwODQ4RTUxIC8qIE5hdmlnYXRvck1lZGlhU3RyZWFt
LmlkbCAqLywKQEAgLTEzMjk4LDYgKzEzMzI2LDkgQEAKIAkJCQkwNzIyMUI4QTE3Q0VDMzI3MDA4
NDhFNTEgLyogUlRDU3RhdHNSZXNwb25zZS5pZGwgKi8sCiAJCQkJMDcyMjFCOEIxN0NFQzMyNzAw
ODQ4RTUxIC8qIFJUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgKi8sCiAJCQkJMDcyMjFCOEMxN0NFQzMy
NzAwODQ4RTUxIC8qIFJUQ1ZvaWRSZXF1ZXN0SW1wbC5oICovLAorCQkJCTA3NjMwNkQ0MTdFMTQ5
Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmNwcCAqLywKKwkJCQkwNzYzMDZENTE3RTE0OUNGMDA1
QTdDNEUgLyogU291cmNlSW5mby5oICovLAorCQkJCTA3NjMwNkQ2MTdFMTQ5Q0YwMDVBN0M0RSAv
KiBTb3VyY2VJbmZvLmlkbCAqLywKIAkJCQkwNzIyMUI4RDE3Q0VDMzI3MDA4NDhFNTEgLyogVXNl
ck1lZGlhQ2xpZW50LmggKi8sCiAJCQkJMDcyMjFCOEUxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJN
ZWRpYUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTA3MjIxQjhGMTdDRUMzMjcwMDg0OEU1MSAvKiBV
c2VyTWVkaWFDb250cm9sbGVyLmggKi8sCkBAIC0xMzMyMiw2ICsxMzM1Myw3IEBACiAJCQkJMDcy
MjFCOUUxN0NGMEFENDAwODQ4RTUxIC8qIE1lZGlhU3RyZWFtU291cmNlLmNwcCAqLywKIAkJCQkw
NzIyMUI5RjE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1Tb3VyY2UuaCAqLywKIAkJCQkw
NzIyMUJBMDE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQu
aCAqLywKKwkJCQkwNzYzMDZFMjE3RTIyQTQzMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0Q2xpZW50LmggKi8sCiAJCQkJMDcyMjFCQTExN0NGMEFENDAwODQ4RTUxIC8q
IFJUQ0NvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkwNzIyMUJBMjE3Q0YwQUQ0MDA4NDhFNTEgLyog
UlRDRGF0YUNoYW5uZWxIYW5kbGVyLmggKi8sCiAJCQkJMDcyMjFCQTMxN0NGMEFENDAwODQ4RTUx
IC8qIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudC5oICovLApAQCAtMTMzNzQsNiArMTM0MDYs
OCBAQAogCQkJCTA3Mjc3RTQzMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCAqLywKIAkJCQkwNzI3N0U0NDE3RDAxOENDMDAxNTUzNEQgLyogSlNN
ZWRpYVN0cmVhbUV2ZW50LmNwcCAqLywKIAkJCQkwNzI3N0U0NTE3RDAxOENDMDAxNTUzNEQgLyog
SlNNZWRpYVN0cmVhbUV2ZW50LmggKi8sCisJCQkJMDc2MzA2REExN0UxNUZCMDAwNUE3QzRFIC8q
IEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgKi8sCisJCQkJMDc2MzA2REIx
N0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICov
LAogCQkJCTA3Mjc3RTQ2MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2suY3Bw
ICovLAogCQkJCTA3Mjc3RTQ3MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2su
aCAqLywKIAkJCQkwNzI3N0U0ODE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNr
RXZlbnQuY3BwICovLApAQCAtMTM0MTIsNiArMTM0NDYsOCBAQAogCQkJCTA3OTY5REE4MTdEMTQx
NTEwMDdGRjg0MiAvKiBKU1JUQ1N0YXRzUmVwb3J0LmggKi8sCiAJCQkJMDc5NjlEQTkxN0QxNDE1
MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXNwb25zZS5jcHAgKi8sCiAJCQkJMDc5NjlEQUExN0Qx
NDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXNwb25zZS5oICovLAorCQkJCTA3NjMwNkRFMTdF
MTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3BwICovLAorCQkJCTA3NjMwNkRGMTdFMTYw
ODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uaCAqLywKIAkJCSk7CiAJCQluYW1lID0gTWVkaWFT
dHJlYW07CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjIyNTUsNiArMjIyOTEsNyBA
QAogCQkJCUZEMzE2MDk1MTJCMDI2RjcwMEMxQTM1OSAvKiBGRlRDb252b2x2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDk3MTJCMDI2RjcwMEMxQTM1OSAvKiBGRlRGcmFtZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc2RDZDODExMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTA3NjMwNkUzMTdFMjJBNDMwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNr
U291cmNlc1JlcXVlc3RDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5M0M0N0E3MTIzODkw
OEIwMDJCM0Q4NiAvKiBGaWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NkM3NzJC
MEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4
Nzg1NjIxMjJDQTA2NDAwM0FBQkRBIC8qIEZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MjUwOCw2ICsyMjU0NSw3IEBACiAJCQkJOTc3RTJEQ0UxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxT
b3VyY2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzhBRDY3NTE0MTMwQThEMDBDN0NB
RTMgLyogSFRNTFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREMyMzBBMTUy
MDU3MDBCMTJBNjggLyogSFRNTFN0eWxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2
MzA2REQxN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNENEU5NzMxMzBDN0NGRTAwN0JBNTQwIC8qIEhUTUxT
dW1tYXJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURCMkIwQTE1MEJENjAwQjEy
QTY4IC8qIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcx
REIyQTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjI4NDMsNiArMjI4ODEsNyBAQAogCQkJCTkzOEU2NjYyMDlGMDlCODcwMDhBNDhF
QyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NCQUQ0MTBD
MThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NEExRTcxOTExNEUxMDFFNDAwNjI2RjlEIC8qIEpTSFRNTENvbnRlbnRFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwNzYzMDZEMDE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjVDMDQxRTcwRkZDQTk2RDAw
ODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDM1
OUQ4QkYxMjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3NjgwOEI1MDE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzAzNSwxMiArMjMwNzQsMTQgQEAKIAkJCQlCMkZBM0Q0
RDBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyRkEzRDRGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkU3RyaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1MTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkUxMTdFMTYwODkwMDVB
N0M0RSAvKiBKU1NvdXJjZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDUzMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NDk2RTM5RTEzOTgxMzZDMDAzRUUzMkEgLyogSlNTVkdBbmltYXRlTW90aW9uRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTUwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDU3MEFCNzVBNkYw
MDBFNUFDNCAvKiBKU1NWR0FuaW1hdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
RkEzRDU5MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0NpcmNsZUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyRkEzRDVCMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0NsaXBQYXRoRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MzA2RDgxN0UxNDlEMDAwNUE3QzRFIC8qIFNvdXJj
ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDVEMEFCNzVBNkYwMDBFNUFDNCAvKiBK
U1NWR0NvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1RjBBQjc1QTZGMDAwRTVBQzQg
LyogSlNTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJGQTNENjEwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ3Vyc29yRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDQxOSw2ICsyNDQ2MCw3IEBACiAJCQkJMEZDRjMzMkYwRjJCOUEy
NTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUEzMTYyRDEzNEJD
MzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwNzYzMDZEMzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgy
MDA3QzM5ODMgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4
MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTdBQUJEMUIxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNTI2MCw4ICsyNTMwMiwxMCBAQAogCQkJCTg2MUMyRUE0MTNGQjRGREQwMDA2
MkFCQiAvKiBEb2N1bWVudExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4MUM2
QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNFMDU3RkE1MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2REMxN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDk0
N0ZGRDEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QzIyODBFMTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkwNzYzMDZEMjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRBNEY0OEE5MTZC
MERGQzAwMEVEQkIyOSAvKiBEb2N1bWVudFJ1bGVTZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUFENkU3MUFDMTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ0NkYwNEUxN0I5NkZCRDAwNTY0N0YwIC8qIEludFBvaW50
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYxNTQsNiArMjYxOTgsNyBAQAogCQkJCTdBMEU3NzFF
MTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QTc0RUNCRDEwMTgzOURBMDBCRjkzOUUgLyogSlNJbnNwZWN0b3JGcm9udGVu
ZEhvc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1RkFFRDEwRENGRDkwMTAwRDU4
Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzYz
MDZFMDE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3OTY5REI3MTdEMTQxNTEwMDdGRjg0MiAvKiBKU1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFDNUZBRUU3MERDRkRBNjgwMEQ1OEY3OCAvKiBKU0phdmFT
Y3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg2NjI5RDQwOURB
MkI0ODAwOTYzM0E1IC8qIEpTS2V5Ym9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2
MjU3LDYgKzI2MzAyLDcgQEAKIAkJCQk1MTRDNzYzODBDRTkyMjVFMDA3RUYzQ0QgLyogSlNTUUxU
cmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTlERDY5RTExOTAyQTQyMDA3RTk2
ODQgLyogSlNTUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
RDIzMTZFMENEMjY5RTcwMEMxRjE5NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTA3NjMwNkQ3MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUI1OURENkEyMTE5MDJBNTIwMDdFOTY4NCAvKiBKU1NRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNThDRUI2RTEx
OTEzNjFDMDAyQTY3OTAgLyogSlNTUUxUcmFuc2FjdGlvblN5bmMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjU1RDVBQTUxMTkxMzFGQzAwQkNDMzE1IC8qIEpTU1FMVHJhbnNhY3Rpb25TeW5jQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2NSw2ICszNjUsMjgg
QEAgY2xhc3MgRE9NU3RyaW5nTGlzdDsKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBwdHIuZ2V0KCkpOwogICAgIH0KIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgor
ICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVmVjdG9yPFQ+IHZlY3RvcikKKyAgICB7CisgICAg
ICAgIEpTQzo6SlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIDAsIHZl
Y3Rvci5zaXplKCkpOworICAgICAgICAKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2
ZWN0b3Iuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBhcnJheS0+cHV0RGlyZWN0SW5kZXgoZXhl
YywgaSwgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHZlY3RvcltpXSkpOworICAgICAgICAKKyAg
ICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgor
ICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVmVjdG9yPFJlZlB0cjxUPiA+IHZlY3RvcikKKyAg
ICB7CisgICAgICAgIEpTQzo6SlNBcnJheSogYXJyYXkgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4
ZWMsIDAsIHZlY3Rvci5zaXplKCkpOworICAgICAgICAKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBhcnJheS0+cHV0RGlyZWN0
SW5kZXgoZXhlYywgaSwgdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHZlY3RvcltpXS5nZXQoKSkp
OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKyAgICAKICAgICB0ZW1w
bGF0ZSA8Y2xhc3MgVD4KICAgICBzdHJ1Y3QgSlNWYWx1ZVRyYWl0cyB7CiAgICAgICAgIHN0YXRp
YyBpbmxpbmUgSlNDOjpKU1ZhbHVlIGFycmF5SlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgVCYgdmFsdWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtQ2VudGVyLmgJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYg
KzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7
CiBjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBNZWRpYVN0cmVhbVNvdXJjZXNR
dWVyeUNsaWVudDsKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudDsK
IAogY2xhc3MgTWVkaWFTdHJlYW1DZW50ZXIgewogcHVibGljOgpAQCAtNTIsNiArNTMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHF1ZXJ5TWVkaWFTdHJlYW1Tb3VyY2VzKFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQ+KSA9IDA7CiAKICAgICAvLyBDYWxscyBm
cm9tIHRoZSBET00gb2JqZWN0cyB0byBub3RpZnkgdGhlIHBsYXRmb3JtCisgICAgdmlydHVhbCBi
b29sIGdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRNZWRp
YVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNv
bXBvbmVudCopID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGlkQWRkTWVkaWFTdHJlYW1UcmFjayhN
ZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0
b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50X2gKKyNkZWZpbmUgTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50X2gKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVHJhY2tTb3VyY2VJbmZvIDogcHVibGljIFJlZkNvdW50ZWQ8VHJh
Y2tTb3VyY2VJbmZvPiB7CitwdWJsaWM6CisgICAgZW51bSBTb3VyY2VLaW5kIHsKKyAgICAgICAg
Tm9Tb3VyY2UsCisgICAgICAgIEF1ZGlvLAorICAgICAgICBWaWRlbworICAgIH07CisgICAgCisg
ICAgZW51bSBWaWRlb0ZhY2luZ01vZGUgeworICAgICAgICBOb25lLAorICAgICAgICBVc2VyLAor
ICAgICAgICBFbnZpcm9ubWVudCwKKyAgICAgICAgTGVmdCwKKyAgICAgICAgUmlnaHQKKyAgICB9
OworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPiBjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgU291cmNlS2luZCBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGxh
YmVsLCBWaWRlb0ZhY2luZ01vZGUgZmFjaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBUcmFja1NvdXJjZUluZm8oaWQsIGtpbmQsIGxhYmVsLCBmYWNpbmcpKTsKKyAgICB9
CisgICAgdmlydHVhbCB+VHJhY2tTb3VyY2VJbmZvKCkgeyB9CisKKyAgICBBdG9taWNTdHJpbmcg
aWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisgICAgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29u
c3QgeyByZXR1cm4gbV9sYWJlbDsgfQorICAgIFNvdXJjZUtpbmQga2luZCgpIHsgcmV0dXJuIG1f
a2luZDsgfQorICAgIFZpZGVvRmFjaW5nTW9kZSBmYWNpbmcoKSB7IHJldHVybiBtX2ZhY2luZzsg
fQorICAgIAorcHJpdmF0ZToKKyAgICBUcmFja1NvdXJjZUluZm8oY29uc3QgQXRvbWljU3RyaW5n
JiBpZCwgU291cmNlS2luZCBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhYmVsLCBWaWRlb0Zh
Y2luZ01vZGUgZmFjaW5nKQorICAgICAgICA6IG1faWQoaWQpCisgICAgICAgICwgbV9raW5kKGtp
bmQpCisgICAgICAgICwgbV9sYWJlbChsYWJlbCkKKyAgICAgICAgLCBtX2ZhY2luZyhmYWNpbmcp
CisgICAgeworICAgIH0KKyAgICAKKyAgICBBdG9taWNTdHJpbmcgbV9pZDsKKyAgICBTb3VyY2VL
aW5kIG1fa2luZDsKKyAgICBBdG9taWNTdHJpbmcgbV9sYWJlbDsKKyAgICBWaWRlb0ZhY2luZ01v
ZGUgbV9mYWNpbmc7Cit9OworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8VHJhY2tTb3VyY2VJbmZv
PiA+IFRyYWNrU291cmNlSW5mb1ZlY3RvcjsKKworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RDbGllbnQ+IHsKK3B1YmxpYzoKKworICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZENv
bXBsZXRlUmVxdWVzdChjb25zdCBUcmFja1NvdXJjZUluZm9WZWN0b3ImKSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50X2gKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJl
YW1DZW50ZXJCbGFja0JlcnJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5j
cHAJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnk6
OnF1ZXJ5TQogICAgIGNsaWVudC0+ZGlkQ29tcGxldGVRdWVyeShhdWRpb1NvdXJjZXMsIHZpZGVv
U291cmNlcyk7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50PikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJC
bGFja0JlcnJ5OjpkaWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2Ny
aXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tC
ZXJyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgJKHJldmlzaW9uIDE1NTU3
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVk
aWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcg
QEAgcHVibGljOgogCiAgICAgLy8gTWVkaWFTdHJlYW1DZW50ZXIKICAgICB2aXJ0dWFsIHZvaWQg
cXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNRdWVy
eUNsaWVudD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNr
U291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4p
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxl
ZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVz
Y3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVk
aWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTU1NTc1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFt
Q2VudGVyR1N0cmVhbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgdm9p
ZCBNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6cXVlcnlNZQogICAgIGNsaWVudC0+ZGlkQ29t
cGxldGVRdWVyeShhdWRpb1NvdXJjZXMsIHZpZGVvU291cmNlcyk7CiB9CiAKK2Jvb2wgTWVkaWFT
dHJlYW1DZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OmRpZFNldE1lZGlhU3RyZWFt
VHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50
KikKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lci5oCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZWRpYVN0cmVhbUNl
bnRlcgogICAgIHZpcnR1YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNl
dE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3Ry
ZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3Ry
ZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRp
YVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2Vu
dGVyTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCShyZXZpc2lvbiAxNTU1NzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJN
YWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAKICNpbmNsdWRlICJNZWRp
YVN0cmVhbURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNs
aWVudC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5o
IgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIApAQCAtNjEsNiArNjIsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6cXVlcnlN
ZWRpYVN0cgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50
ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6ZGlkU2V0TWVk
aWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1D
b21wb25lbnQqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJl
YW1DZW50ZXJNYWMuaAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgLy8gTWVkaWFTdHJlYW1DZW50ZXIKICAg
ICB2aXJ0dWFsIHZvaWQgcXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4pIE9WRVJSSURFOworICAgIAorICAgIHZpcnR1YWwgYm9v
bCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRN
ZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVh
bUNvbXBvbmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVh
bVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE1NTcyMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA5LTEzICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQ2hhbmdpbmcgdGhl
IGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2stZ2V0U291cmNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA5
LTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEZsYWt5
IFRlc3Q6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2FwcGNhY2hlL2FwcGNhY2hlLW1hbmlmZXN0LXdp
dGgtbm9uLWV4aXN0aW5nLWZpbGUuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3Vy
Y2VzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4IEBACitUZXN0cyBNZWRpYVN0cmVhbVRyYWNrOjpnZXRTb3VyY2Vz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBNZWRpYVN0cmVhbVRyYWNr
LmdldFNvdXJjZXMoZ290U291cmNlczEpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
Z290U291cmNlczEgd2FzIGNhbGxlZC4KK1BBU1Mgc291cmNlcy5sZW5ndGggPiAwIGlzIHRydWUK
K1BBU1MgZ290U3RyZWFtIHdhcyBjYWxsZWQuCitQQVNTIE1lZGlhU3RyZWFtVHJhY2suZ2V0U291
cmNlcyhnb3RTb3VyY2VzMik7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBnb3RTb3Vy
Y2VzMiB3YXMgY2FsbGVkLgorUEFTUyBzb3VyY2VzLmxlbmd0aCA+IDAgaXMgdHJ1ZQorUEFTUyBz
b3VyY2VzWzBdLmlkID09PSBwcmV2aW91c0lkIGlzIHRydWUKK1BBU1Mgc291cmNlc1swXS5sYWJl
bC5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2stZ2V0U291cmNlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0
U291cmNlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjIgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgTWVkaWFTdHJlYW1U
cmFjazo6Z2V0U291cmNlcy4iKTsKKwordmFyIHNvdXJjZXMgPSBudWxsOwordmFyIHByZXZpb3Vz
SWQ7CisKK2Z1bmN0aW9uIGVycm9yKCkgeworICAgIHRlc3RGYWlsZWQoJ1N0cmVhbSBnZW5lcmF0
aW9uIGZhaWxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZ2V0VXNl
ck1lZGlhKGNvbnN0cmFpbnRzLCBjYWxsYmFjaykgeworICAgIHRyeSB7CisgICAgICAgIG5hdmln
YXRvci53ZWJraXRHZXRVc2VyTWVkaWEoY29uc3RyYWludHMsIGNhbGxiYWNrLCBlcnJvcik7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEg
dGhyZXcgZXhjZXB0aW9uIDonICsgZSk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0K
K30KKworZnVuY3Rpb24gZ290U291cmNlczIocykgeworICAgIHRlc3RQYXNzZWQoJ2dvdFNvdXJj
ZXMyIHdhcyBjYWxsZWQuJyk7CisgICAgc291cmNlcyA9IHM7CisgICAgc2hvdWxkQmVUcnVlKCdz
b3VyY2VzLmxlbmd0aCA+IDAnKTsKKyAgICBzaG91bGRCZVRydWUoJ3NvdXJjZXNbMF0uaWQgPT09
IHByZXZpb3VzSWQnKTsKKyAgICBzaG91bGRCZVRydWUoJ3NvdXJjZXNbMF0ubGFiZWwubGVuZ3Ro
ID4gMCcpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGdvdFN0cmVhbShz
KSB7CisgICAgdGVzdFBhc3NlZCgnZ290U3RyZWFtIHdhcyBjYWxsZWQuJyk7CisKKyAgICBzaG91
bGROb3RUaHJvdygnTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKGdvdFNvdXJjZXMyKTsnKTsK
K30KKworZnVuY3Rpb24gZ290U291cmNlczEocykgeworICAgIHRlc3RQYXNzZWQoJ2dvdFNvdXJj
ZXMxIHdhcyBjYWxsZWQuJyk7CisgICAgc291cmNlcyA9IHM7CisgICAgc2hvdWxkQmVUcnVlKCdz
b3VyY2VzLmxlbmd0aCA+IDAnKTsKKyAgICBwcmV2aW91c0lkID0gc291cmNlc1swXS5pZDsKKwor
ICAgIGdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0sIGdvdFN0cmVhbSk7Cit9
CisKK3Nob3VsZE5vdFRocm93KCdNZWRpYVN0cmVhbVRyYWNrLmdldFNvdXJjZXMoZ290U291cmNl
czEpOycpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211604</attachid>
            <date>2013-09-13 16:52:51 -0700</date>
            <delta_ts>2013-09-16 08:39:06 -0700</delta_ts>
            <desc>Add blink revisions this is based on to ChangeLogs</desc>
            <filename>get_source_infos_7.txt</filename>
            <type>text/plain</type>
            <size>63036</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA5LTEzICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydHMgbWVyZ2VkIGZyb20g
aHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvNDBhOTYw
ODBhMTUzMWU1MGRlNGViODQ1NzFjN2RjOWZiMzIxZWNlNQorICAgICAgICBhbmQgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZmY3ODNhMjNiYjFhZGQ1
ODg5NzFhODE4NzA0OGEzMDVjZjQ4NTEyMQorICAgICAgICBieSBUb21teSBXaWRlbmZseWNodC4K
KworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291
cmNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IERpdHRvLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6Omdl
dFNvdXJjZXMpOiBOZXcuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHA6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0Lmg6IEFkZGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJ
bmZvLmNwcDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZv
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGw6
IEFkZGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBB
ZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6IEFk
ZCB0b0pTIHRlbXBsYXRlcyBmb3IgVmVjdG9yPFQ+IGFuZCBWZWN0b3I8UmVmUHRyPFQ+ID4uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oOiBBZGQg
cHJvdG90eXBlIGZvciBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3RDbGllbnQuaDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMp
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlh
U3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyk6
IEFkZGVkCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3Ry
ZWFtQ2VudGVyR1N0cmVhbWVyLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1DZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKTogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmg6CisKIDIw
MTMtMDktMTMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQXBwbHkgT1ZFUlJJREUgYW5kIEZJTkFMIHRvIEltYWdlIHN1YmNsYXNzZXMgYW5kIGNsZWFu
IHRoZW0gdXAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNTU1NzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIx
NSw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1FdmVudC5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
CisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsCkBA
IC0yMzIsNiArMjMzLDcgQEAgc2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c0NhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXBvcnQuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNl
LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwKIAogICAgIE1vZHVs
ZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwKIApAQCAt
ODM4LDYgKzg0MCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a0V2ZW50LmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNSZXF1ZXN0LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJl
YW0uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlRvbmVDaGFuZ2VFdmVudC5jcHAKQEAgLTg1Miw2ICs4
NTUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENT
dGF0c1JlcXVlc3RJbXBsLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAK
KyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAKIApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDcgQEAgQklORElOR19JRExTID0gXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXApA
QCAtMTM3LDYgKzEzOCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1
MTIsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZWRpYVN0cmVhbVRyYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRp
YVN0cmVhbVRyYWNrRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFT
dHJlYW1UcmFja0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01lZGlhUXVlcnlMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlh
UXVlcnlMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcCBcCkBAIC02NjYsNiArNjY4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyLmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NvdXJjZUluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlSW5mby5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXApAQCAtMTI0Miw2ICsxMjQ2LDcg
QEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkv
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNr
LmlkbCBcCkBAIC0xMjU5LDYgKzEyNjQsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCisJJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVs
ZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwgXAogCSQo
V2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwK
QEAgLTE5NTQsNiArMTk2MCw5IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBcCiAJU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tF
dmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFt
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRp
YVN0cmVhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRv
clVzZXJNZWRpYUVycm9yLmggXApAQCAtMTk4OCw2ICsxOTk3LDggQEAgd2ViY29yZV9tb2R1bGVz
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNSZXNwb25zZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDVm9pZFJlcXVlc3RJbXBsLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vU291cmNlSW5mby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
U291cmNlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYUNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFDb250cm9sbGVyLmNwcCBcCkBAIC01NDUyLDYgKzU0NjMsNyBAQCB3ZWJjb3JlX3Bs
YXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtU291cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3Vy
YXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRFRNRlNl
bmRlckhhbmRsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlckhhbmRsZXJDbGllbnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9u
IDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDExIEBACiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFT
dHJlYW1Db21wb25lbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxi
YWNrLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTE2LDYgKzExOSwxMyBAQCBTdHJpbmcgTWVkaWFTdHJl
YW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCit2b2lk
IE1lZGlhU3RyZWFtVHJhY2s6OmdldFNvdXJjZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiBjYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdD4gcmVxdWVzdCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIGNhbGxiYWNrKTsKKyAgICBpZiAoIU1lZGlhU3RyZWFtQ2VudGVyOjppbnN0
YW5jZSgpLmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKHJlcXVlc3QucmVsZWFzZSgpKSkKKyAg
ICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKK30KKwogYm9vbCBNZWRpYVN0cmVhbVRyYWNr
OjplbmRlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3RvcHBlZCB8fCAobV9jb21wb25lbnQt
PnNvdXJjZSgpLT5yZWFkeVN0YXRlKCkgPT0gTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVF
bmRlZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDYgKzQxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJl
YW1Db21wb25lbnQ7CitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrOwogCiBj
bGFzcyBNZWRpYVN0cmVhbVRyYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFj
az4sIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBFdmVudFRhcmdldCwgcHVibGljIE1lZGlhU3RyZWFtU291cmNlOjpPYnNlcnZlciB7CiBwdWJs
aWM6CkBAIC01OCw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcgcmVhZHlTdGF0
ZSgpIGNvbnN0OwogCisgICAgc3RhdGljIHZvaWQgZ2V0U291cmNlcyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiwgRXhj
ZXB0aW9uQ29kZSYpOworCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihtdXRl
KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHVubXV0ZSk7CiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlbmRlZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJ
KHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDggQEAKICAg
ICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnVubXV0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmVuZGVkOwogCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IFJhaXNlc0V4Y2VwdGlvbl0gc3RhdGljIHZvaWQgZ2V0U291cmNlcyhNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrIGNhbGxiYWNrKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZQogICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXND
YWxsYmFja19oCisjZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tfaAorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVzcG9uc2U7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChTb3VyY2VJbmZv
VmVjdG9yKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisj
ZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja19oCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJh
Y2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorXSBjYWxsYmFjayBpbnRlcmZhY2Ug
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjayB7CisgICAgYm9vbGVhbiBoYW5kbGVFdmVu
dChzZXF1ZW5jZTxTb3VyY2VJbmZvPiBzb3VyY2VzKTsKK307CisKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSAiU291cmNlSW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+IGNhbGxiYWNrKQor
eworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
KGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dDo6TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4gY2Fs
bGJhY2spCisgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAgICwgbV9zY2hlZHVsZWRFdmVu
dFRpbWVyKHRoaXMsICZNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OnNjaGVkdWxlZEV2
ZW50VGltZXJGaXJlZCkKK3sKKyAgICBtX29yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2lu
KCktPnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
OjpkaWRDb21wbGV0ZVJlcXVlc3QoY29uc3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJiByZXF1c3RT
b3VyY2VJbmZvcykKK3sKKyAgICBBU1NFUlQobV9jYWxsYmFjayAmJiAhbV9zY2hlZHVsZWRFdmVu
dFRpbWVyLmlzQWN0aXZlKCkpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXF1c3RT
b3VyY2VJbmZvcy5zaXplKCk7ICsraSkKKyAgICAgICAgbV9zb3VyY2VJbmZvcy5hcHBlbmQoU291
cmNlSW5mbzo6Y3JlYXRlKHJlcXVzdFNvdXJjZUluZm9zW2ldKSk7CisKKyAgICBtX3Byb3RlY3Qg
PSB0aGlzOworICAgIG1fc2NoZWR1bGVkRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0OjpzY2hlZHVsZWRFdmVudFRpbWVy
RmlyZWQoVGltZXI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiopCit7CisgICAgbV9j
YWxsYmFjay0+aGFuZGxlRXZlbnQobV9zb3VyY2VJbmZvcyk7CisgICAgbV9jYWxsYmFjay5jbGVh
cigpOworICAgIG1fcHJvdGVjdCA9IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdF9oCisjZGVmaW5lIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAi
U291cmNlSW5mby5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrOworY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
IDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCB7CitwdWJsaWM6
CisgICAgY2xhc3MgRXh0cmFEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0cmFEYXRhPiB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9OworCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFjaz4pOworICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdCgpIHsgfQorCisgICAgU3RyaW5nIG9yaWdpbigpIHsgcmV0dXJuIG1fb3JpZ2luOyB9CisK
KyAgICBQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9l
eHRyYURhdGE7IH0KKyAgICB2b2lkIHNldEV4dHJhRGF0YShQYXNzUmVmUHRyPEV4dHJhRGF0YT4g
ZXh0cmFEYXRhKSB7IG1fZXh0cmFEYXRhID0gZXh0cmFEYXRhOyB9CisKKyAgICAvLyBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQgaW50ZXJmYWNlCisgICAgdm9pZCBkaWRDb21w
bGV0ZVJlcXVlc3QoY29uc3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJik7CisKK3ByaXZhdGU6Cisg
ICAgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKworICAgIHZv
aWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdD4qKTsKKworICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
PiBtX2NhbGxiYWNrOworICAgIFJlZlB0cjxFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworICAgIFN0
cmluZyBtX29yaWdpbjsKKyAgICBUaW1lcjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q+
IG1fc2NoZWR1bGVkRXZlbnRUaW1lcjsKKyAgICBTb3VyY2VJbmZvVmVjdG9yIG1fc291cmNlSW5m
b3M7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gbV9wcm90ZWN0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0X2gKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdXJjZUluZm8u
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIFBhc3NSZWZQdHI8U291cmNlSW5mbz4gY3JlYXRlKFBhc3NSZWZQdHI8VHJhY2tTb3Vy
Y2VJbmZvPiB0cmFja1NvdXJjZUluZm8pCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTb3Vy
Y2VJbmZvKHRyYWNrU291cmNlSW5mbykpOworfQorCitTb3VyY2VJbmZvKFBhc3NSZWZQdHI8VHJh
Y2tTb3VyY2VJbmZvPiB0cmFja1NvdXJjZUluZm8pCisgICAgOiBtX3RyYWNrU291cmNlSW5mbyh0
cmFja1NvdXJjZUluZm8pCit7Cit9CisKK0F0b21pY1N0cmluZyBTb3VyY2VJbmZvOjpraW5kKCkg
Y29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbm9uZSwgKEFTQ0lJTGl0
ZXJhbCgibm9uZSIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGF1ZGlvS2lu
ZCwgKEFTQ0lJTGl0ZXJhbCgiYXVkaW8iKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCB2aWRlb0tpbmQsIChBU0NJSUxpdGVyYWwoInZpZGVvIikpKTsKKworICAgIHN3aXRjaCAo
bV90cmFja1NvdXJjZUluZm8tPmtpbmQoKSkgeworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpB
dWRpbzoKKyAgICAgICAgcmV0dXJuIG5vbmU7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OlZp
ZGVvOgorICAgICAgICByZXR1cm4gYXVkaW9LaW5kOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZv
OjpOb25lOgorICAgICAgICByZXR1cm4gdmlkZW9LaW5kOworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBlbXB0eUF0b207Cit9CisKK0F0b21pY1N0cmluZyBT
b3VyY2VJbmZvOjpmYWNpbmcoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCB1c2VyRmFjaW5nLCAoQVNDSUlMaXRlcmFsKCJ1c2VyIikpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgZW52aXJvbm1lbnRGYWNpbmcsIChBU0NJSUxpdGVyYWwoImVudmly
b25tZW50IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgbGVmdEZhY2luZywg
KEFTQ0lJTGl0ZXJhbCgibGVmdCIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IHJpZ2h0RmFjaW5nLCAoQVNDSUlMaXRlcmFsKCJyaWdodCIpKSk7CisKKyAgICBzd2l0Y2ggKG1f
dHJhY2tTb3VyY2VJbmZvLT5mYWNpbmcoKSkgeworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpO
b25lOgorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZv
OjpVc2VyOgorICAgICAgICByZXR1cm4gdXNlckZhY2luZzsKKyAgICBjYXNlIFRyYWNrU291cmNl
SW5mbzo6RW52aXJvbm1lbnQ6CisgICAgICAgIHJldHVybiBlbnZpcm9ubWVudEZhY2luZzsKKyAg
ICBjYXNlIFRyYWNrU291cmNlSW5mbzo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGxlZnRGYWNpbmc7
CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OlJpZ2h0OgorICAgICAgICByZXR1cm4gcmlnaHRG
YWNpbmc7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVt
cHR5QXRvbTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZv
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNvdXJjZUluZm9faAorI2RlZmluZSBT
b3VyY2VJbmZvX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRXcmFw
cGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBTb3VyY2VJbmZvIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNlSW5mbz4sIHB1
YmxpYyBTY3JpcHRXcmFwcGFibGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNv
dXJjZUluZm8+IGNyZWF0ZShQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4pOworICAgIHZpcnR1
YWwgflNvdXJjZUluZm8oKSB7IH0KKworICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhY2tTb3VyY2VJbmZvLT5pZCgpOyB9CisgICAgQXRvbWljU3RyaW5nIGxhYmVsKCkg
Y29uc3QgeyByZXR1cm4gbV90cmFja1NvdXJjZUluZm8tPmxhYmVsKCk7IH0KKyAgICBBdG9taWNT
dHJpbmcga2luZCgpIGNvbnN0OworICAgIEF0b21pY1N0cmluZyBmYWNpbmcoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBTb3VyY2VJbmZvKFBhc3NSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPik7CisK
KyAgICBSZWZQdHI8VHJhY2tTb3VyY2VJbmZvPiBtX3RyYWNrU291cmNlSW5mbzsKK307CisKK3R5
cGVkZWYgVmVjdG9yPFJlZlB0cjxTb3VyY2VJbmZvPiA+IFNvdXJjZUluZm9WZWN0b3I7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNvdXJjZUluZm9faAorCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJ
bmZvLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vU291cmNlSW5mby5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBOb0ludGVy
ZmFjZU9iamVjdCwKKyAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgU291cmNlSW5mbyB7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGtpbmQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZhY2luZzsKK307CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTU1
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNSwxNSArMTA1LDE1IEBACiAJCTA3Mjc3RTRBMTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTNFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291
cmNlLmNwcCAqLzsgfTsKIAkJMDcyNzdFNEIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3
RTNGMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmggKi87IH07CiAJCTA3Mjc3RTRD
MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQwMTdEMDE4Q0MwMDE1NTM0RCAvKiBK
U01lZGlhU3RyZWFtLmNwcCAqLzsgfTsKLQkJMDcyNzdFNEQxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3Mjc3RTQxMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggKi87IH07CisJ
CTA3Mjc3RTREMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0MTE3RDAxOENDMDAxNTUz
NEQgLyogSlNNZWRpYVN0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTA3Mjc3RTRFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFt
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyNzdFNDIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgKi87IH07CiAJCTA3Mjc3RTRGMTdEMDE4Q0MwMDE1NTM0
RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQzMTdEMDE4Q0MwMDE1NTM0RCAv
KiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAqLzsgfTsKIAkJMDcyNzdFNTAx
N0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NDE3RDAxOENDMDAxNTUzNEQg
LyogSlNNZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKLQkJMDcyNzdFNTExN0QwMThDQzAwMTU1
MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJl
YW1FdmVudC5oICovOyB9OworCQkwNzI3N0U1MTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0
cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzI3N0U0NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTIxN0Qw
MThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NjE3RDAxOENDMDAxNTUzNEQgLyog
SlNNZWRpYVN0cmVhbVRyYWNrLmNwcCAqLzsgfTsKLQkJMDcyNzdFNTMxN0QwMThDQzAwMTU1MzRE
IC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyNzdFNDcxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1U
cmFjay5oICovOyB9OworCQkwNzI3N0U1MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVh
bVRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzI3N0U0NzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTQxN0QwMThD
QzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ4MTdEMDE4Q0MwMDE1NTM0RCAv
KiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi87IH07Ci0JCTA3Mjc3RTU1MTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW1UcmFja0V2ZW50LmggKi87IH07CisJCTA3Mjc3RTU1MTdEMDE4Q0MwMDE1NTM0
RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
dHJlYW1UcmFja0V2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmNwcCAqLzsgfTsKIAkJMDcyQ0E4NjExNkNCNERDMzAwOEFFMTMxIC8qIENhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXMuY3BwICovOyB9OwogCQkwNzM1RUU2QTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDczNUVFNjkwRjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMyLDYgKzEzMiwxNyBA
QAogCQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MjIx
QkE4MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwICovOyB9
OwogCQkwNzUzODYwMjE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAwMTQ0ODlF
OTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovOyB9OwogCQkwNzUzODYwMzE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVk
VGV4dFRyYWNrLmggKi87IH07CisJCTA3NjMwNkQwMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTA3NjMwNkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc2MzA2Q0UxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdC5jcHAgKi87IH07CisJCTA3NjMwNkQzMTdFMTQ3OEQwMDVBN0M0RSAvKiBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkNGMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZENzE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5m
by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYz
MDZENDE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAgKi87IH07CisJCTA3NjMwNkQ4
MTdFMTQ5RDAwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZENTE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNl
SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTA3NjMwNkRDMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2MzA2REExN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxs
YmFjay5jcHAgKi87IH07CisJCTA3NjMwNkREMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NjMwNkRCMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwNzYzMDZFMDE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZv
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMw
NkRFMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3BwICovOyB9OworCQkwNzYzMDZF
MTE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUgLyogSlNT
b3VyY2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMDc2MzA2RTMxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc2MzA2RTIxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudC5oICovOyB9OworCQkwNzYzMDZFNzE3RTI1MUVDMDA1QTdDNEUgLyogSlNN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZFNjE3RTI1MUVDMDA1QTdDNEUgLyog
SlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi87IH07CiAJCTA3Njk3
MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAv
KiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsgfTsKIAkJMDc2OTcwODcxNDYzQUQ4NzAwRjUwMkNGIC8q
IFRleHRUcmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggKi87IH07
CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aCAqLzsgfTsKQEAgLTY1NjAsNiArNjU3MSwxOSBAQAogCQkwNzNCRTM0NzE3RDE3RTdBMDAyQkQ0
MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4NDUy
IC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDYWNoZWRUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTA3NjMwNkNEMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0Nh
bGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2Q0UxN0Ux
NDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZDRjE3RTE0NzhE
MDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZENDE3RTE0OUNGMDA1QTdDNEUgLyog
U291cmNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3Vy
Y2VJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RDUxN0UxNDlD
RjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZENjE3
RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U291cmNlSW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkRBMTdF
MTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REIx
N0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REUxN0UxNjA4
OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1NvdXJjZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzYzMDZFMjE3RTIyQTQzMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwNzYzMDZFNjE3RTI1MUVDMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja0N1c3RvbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlz
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODUxNDYzQUQ4NzAwRjUw
MkNGIC8qIFRleHRUcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGV4dFRyYWNrTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZGMEQwOTEy
QjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzI0Nyw2ICsxMzI3
MSwxMCBAQAogCQkJCTA3MjIxQjU3MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRyYWNr
RXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVh
bVRyYWNrRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI1OTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVkaWFT
dHJlYW1UcmFja0V2ZW50LmlkbCAqLywKKwkJCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyog
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovLAorCQkJCTA3NjMwNkNEMTdFMTQ3
OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCAqLywKKwkJ
CQkwNzYzMDZDRTE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0LmNwcCAqLywKKwkJCQkwNzYzMDZDRjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0LmggKi8sCiAJCQkJMDcyMjFCNUExN0NFQzMyNzAwODQ4RTUxIC8q
IE5hdmlnYXRvck1lZGlhU3RyZWFtLmNwcCAqLywKIAkJCQkwNzIyMUI1QjE3Q0VDMzI3MDA4NDhF
NTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCAqLywKIAkJCQkwNzIyMUI1QzE3Q0VDMzI3MDA4
NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsICovLApAQCAtMTMyOTgsNiArMTMzMjYs
OSBAQAogCQkJCTA3MjIxQjhBMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENTdGF0c1Jlc3BvbnNlLmlk
bCAqLywKIAkJCQkwNzIyMUI4QjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVlc3RJbXBs
LmNwcCAqLywKIAkJCQkwNzIyMUI4QzE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVlc3RJ
bXBsLmggKi8sCisJCQkJMDc2MzA2RDQxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3Bw
ICovLAorCQkJCTA3NjMwNkQ1MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggKi8sCisJ
CQkJMDc2MzA2RDYxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaWRsICovLAogCQkJCTA3
MjIxQjhEMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVkaWFDbGllbnQuaCAqLywKIAkJCQkwNzIy
MUI4RTE3Q0VDMzI3MDA4NDhFNTEgLyogVXNlck1lZGlhQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJ
MDcyMjFCOEYxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJNZWRpYUNvbnRyb2xsZXIuaCAqLywKQEAg
LTEzMzIyLDYgKzEzMzUzLDcgQEAKIAkJCQkwNzIyMUI5RTE3Q0YwQUQ0MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW1Tb3VyY2UuY3BwICovLAogCQkJCTA3MjIxQjlGMTdDRjBBRDQwMDg0OEU1MSAvKiBN
ZWRpYVN0cmVhbVNvdXJjZS5oICovLAogCQkJCTA3MjIxQkEwMTdDRjBBRDQwMDg0OEU1MSAvKiBN
ZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oICovLAorCQkJCTA3NjMwNkUyMTdFMjJBNDMw
MDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCAqLywKIAkJ
CQkwNzIyMUJBMTE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDQ29uZmlndXJhdGlvbi5oICovLAogCQkJ
CTA3MjIxQkEyMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCAqLywK
IAkJCQkwNzIyMUJBMzE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xp
ZW50LmggKi8sCkBAIC0xMzM3NCw2ICsxMzQwNiw4IEBACiAJCQkJMDcyNzdFNDMxN0QwMThDQzAw
MTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oICovLAogCQkJCTA3
Mjc3RTQ0MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuY3BwICovLAogCQkJ
CTA3Mjc3RTQ1MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAqLywKKwkJ
CQkwNzYzMDZEQTE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0Nh
bGxiYWNrLmNwcCAqLywKKwkJCQkwNzYzMDZEQjE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0
cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi8sCiAJCQkJMDcyNzdFNDYxN0QwMThDQzAwMTU1
MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8sCiAJCQkJMDcyNzdFNDcxN0QwMThDQzAw
MTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oICovLAogCQkJCTA3Mjc3RTQ4MTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi8sCkBAIC0xMzQxMiw2ICsx
MzQ0Niw4IEBACiAJCQkJMDc5NjlEQTgxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNSZXBv
cnQuaCAqLywKIAkJCQkwNzk2OURBOTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jlc3Bv
bnNlLmNwcCAqLywKIAkJCQkwNzk2OURBQTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
c3BvbnNlLmggKi8sCisJCQkJMDc2MzA2REUxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5m
by5jcHAgKi8sCisJCQkJMDc2MzA2REYxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5o
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBNZWRpYVN0cmVhbTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yMjI1NSw2ICsyMjI5MSw3IEBACiAJCQkJRkQzMTYwOTUxMkIwMjZGNzAwQzFB
MzU5IC8qIEZGVENvbnZvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOTcxMkIwMjZG
NzAwQzFBMzU5IC8qIEZGVEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4MTEyMkI4
QTNEMDAxRkQxRjcgLyogRmlsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MzA2RTMxN0UyMkE0
MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODkzQzQ3QTcxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9v
c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU2MjEyMkNBMDY0MDAzQUFCREEgLyogRmls
ZUVudHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNTA4LDYgKzIyNTQ1LDcgQEAKIAkJCQk5NzdF
MkRDRTEyRjBFMjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3OEFENjc1MTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4NzFEQzIzMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU3R5bGVFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYzMDZERDE3RTE1RkIwMDA1QTdDNEUgLyogSlNN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0Q0
RTk3MzEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODcxREIyQjBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQjJBMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1M
VGFibGVDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjg0Myw2ICsyMjg4MSw3IEBA
CiAJCQkJOTM4RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQ0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBKU0hUTUxDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTFFNzE5MTE0RTEwMUU0MDA2MjZGOUQgLyog
SlNIVE1MQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQwMTdFMTQ3
OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDhCRjEyOUNBNTVDMDAwNkU1RDIgLyogSlNI
VE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2ODA4QjUwMTU5REFERkEw
MDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMDM1
LDEyICsyMzA3NCwxNCBAQAogCQkJCUIyRkEzRDREMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0Fu
aW1hdGVkUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENEYwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHQW5pbWF0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDUxMEFC
NzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJGQTNENTMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OTZFMzlFMTM5ODEzNkMwMDNFRTMyQSAvKiBK
U1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1NTBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJGQTNENTcwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0aW9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTkwQUI3NUE2RjAwMEU1QUM0IC8qIEpT
U1ZHQ2lyY2xlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUIwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHQ2xpcFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYz
MDZEODE3RTE0OUQwMDA1QTdDNEUgLyogU291cmNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJGQTNENUQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ29sb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyRkEzRDVGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0NvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q2MTBBQjc1QTZGMDAwRTVB
QzQgLyogSlNTVkdDdXJzb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDE5LDYgKzI0
NDYwLDcgQEAKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0
ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUYzNDgxMEE2QzQwNTIwMEFC
RTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQzMTdF
MTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNTY5RDFCMEQ3RTJCODIwMDdDMzk4MyAvKiBXZWJTY3JpcHRPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3Jp
cHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0FBQkQxQjE0RkEwOUQ1MDA3
NDU3QUUgLyogV2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjYwLDggKzI1MzAyLDEw
IEBACiAJCQkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWluZy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1l
bnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3NkQ1
IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzYz
MDZEQzE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1
bWVudE9yZGVyZWRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0QTU5NzAw
RDVBN0QzIC8qIERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMwNkQy
MTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNEE0RjQ4QTkxNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50UnVs
ZVNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEzIC8q
IERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDQ2RjA0
RTE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjE1
NCw2ICsyNjE5OCw3IEBACiAJCQkJN0EwRTc3MUUxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JEMTAxODM5REEw
MEJGOTM5RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQzVGQUVEMTBEQ0ZEOTAxMDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMwNkUwMTdFMTYwODkwMDVBN0M0RSAvKiBKU1Nv
dXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQjcxN0QxNDE1MTAwN0ZGODQy
IC8qIEpTUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1RkFF
RTcwRENGREE2ODAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBODY2MjlENDA5REEyQjQ4MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYyNTcsNiArMjYzMDIsNyBAQAogCQkJCTUxNEM3
NjM4MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUI1OURENjlFMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEMjMxNkUwQ0QyNjlFNzAwQzFGMTk0IC8qIEpT
U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2RDcxN0Ux
NDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5REQ2
QTIxMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUI1OENFQjZFMTE5MTM2MUMwMDJBNjc5MCAvKiBKU1NRTFRyYW5z
YWN0aW9uU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTVENUFBNTExOTEzMUZDMDBCQ0Mz
MTUgLyogSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lvbiAx
NTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkod29y
a2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwyOCBAQCBjbGFzcyBET01TdHJpbmdMaXN0OwogICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHB0ci5nZXQoKSk7CiAgICAgfQog
CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
ZWN0b3I8VD4gdmVjdG9yKQorICAgIHsKKyAgICAgICAgSlNDOjpKU0FycmF5KiBhcnJheSA9IGNv
bnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCwgdmVjdG9yLnNpemUoKSk7CisgICAgICAgIAorICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkKKyAgICAgICAg
ICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgdmVjdG9yW2ldKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQor
CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
ZWN0b3I8UmVmUHRyPFQ+ID4gdmVjdG9yKQorICAgIHsKKyAgICAgICAgSlNDOjpKU0FycmF5KiBh
cnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCwgdmVjdG9yLnNpemUoKSk7CisgICAg
ICAgIAorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkK
KyAgICAgICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgdmVjdG9yW2ldLmdldCgpKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4g
YXJyYXk7CisgICAgfQorICAgIAogICAgIHRlbXBsYXRlIDxjbGFzcyBUPgogICAgIHN0cnVjdCBK
U1ZhbHVlVHJhaXRzIHsKICAgICAgICAgc3RhdGljIGlubGluZSBKU0M6OkpTVmFsdWUgYXJyYXlK
U1ZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBjb25zdCBUJiB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAkocmV2aXNpb24gMTU1NTc1
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBNZWRpYVN0cmVhbUNvbXBvbmVudDsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRv
cjsKIGNsYXNzIE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50OworY2xhc3MgTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50OwogCiBjbGFzcyBNZWRpYVN0cmVhbUNlbnRlciB7
CiBwdWJsaWM6CkBAIC01Miw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcXVl
cnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNs
aWVudD4pID0gMDsKIAogICAgIC8vIENhbGxzIGZyb20gdGhlIERPTSBvYmplY3RzIHRvIG5vdGlm
eSB0aGUgcGxhdGZvcm0KKyAgICB2aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBkaWRBZGRNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlh
U3RyZWFtQ29tcG9uZW50KikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0
cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50Kikg
PSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xp
ZW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBNZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3RDbGllbnRfaAorI2RlZmluZSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnRfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUcmFja1NvdXJj
ZUluZm8gOiBwdWJsaWMgUmVmQ291bnRlZDxUcmFja1NvdXJjZUluZm8+IHsKK3B1YmxpYzoKKyAg
ICBlbnVtIFNvdXJjZUtpbmQgeworICAgICAgICBOb1NvdXJjZSwKKyAgICAgICAgQXVkaW8sCisg
ICAgICAgIFZpZGVvCisgICAgfTsKKyAgICAKKyAgICBlbnVtIFZpZGVvRmFjaW5nTW9kZSB7Cisg
ICAgICAgIE5vbmUsCisgICAgICAgIFVzZXIsCisgICAgICAgIEVudmlyb25tZW50LAorICAgICAg
ICBMZWZ0LAorICAgICAgICBSaWdodAorICAgIH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxU
cmFja1NvdXJjZUluZm8+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBTb3VyY2VLaW5k
IGtpbmQsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFiZWwsIFZpZGVvRmFjaW5nTW9kZSBmYWNpbmcp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRyYWNrU291cmNlSW5mbyhpZCwg
a2luZCwgbGFiZWwsIGZhY2luZykpOworICAgIH0KKyAgICB2aXJ0dWFsIH5UcmFja1NvdXJjZUlu
Zm8oKSB7IH0KKworICAgIEF0b21pY1N0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0K
KyAgICBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBtX2xhYmVsOyB9CisgICAg
U291cmNlS2luZCBraW5kKCkgeyByZXR1cm4gbV9raW5kOyB9CisgICAgVmlkZW9GYWNpbmdNb2Rl
IGZhY2luZygpIHsgcmV0dXJuIG1fZmFjaW5nOyB9CisgICAgCitwcml2YXRlOgorICAgIFRyYWNr
U291cmNlSW5mbyhjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBTb3VyY2VLaW5kIGtpbmQsIGNvbnN0
IEF0b21pY1N0cmluZyYgbGFiZWwsIFZpZGVvRmFjaW5nTW9kZSBmYWNpbmcpCisgICAgICAgIDog
bV9pZChpZCkKKyAgICAgICAgLCBtX2tpbmQoa2luZCkKKyAgICAgICAgLCBtX2xhYmVsKGxhYmVs
KQorICAgICAgICAsIG1fZmFjaW5nKGZhY2luZykKKyAgICB7CisgICAgfQorICAgIAorICAgIEF0
b21pY1N0cmluZyBtX2lkOworICAgIFNvdXJjZUtpbmQgbV9raW5kOworICAgIEF0b21pY1N0cmlu
ZyBtX2xhYmVsOworICAgIFZpZGVvRmFjaW5nTW9kZSBtX2ZhY2luZzsKK307CisKK3R5cGVkZWYg
VmVjdG9yPFJlZlB0cjxUcmFja1NvdXJjZUluZm8+ID4gVHJhY2tTb3VyY2VJbmZvVmVjdG9yOwor
CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCA6IHB1YmxpYyBS
ZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4geworcHVibGlj
OgorCisgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50KCkg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFRyYWNrU291
cmNlSW5mb1ZlY3RvciYpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBNZWRpYVN0cmVhbVRyYWNr
U291cmNlc1JlcXVlc3RDbGllbnRfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkv
TWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNwcAkocmV2aXNpb24gMTU1NTc1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNl
bnRlckJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2MiwxMSBAQCB2b2lk
IE1lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeTo6cXVlcnlNCiAgICAgY2xpZW50LT5kaWRDb21w
bGV0ZVF1ZXJ5KGF1ZGlvU291cmNlcywgdmlkZW9Tb3VyY2VzKTsKIH0KIAorYm9vbCBNZWRpYVN0
cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKwogdm9pZCBNZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnk6OmRpZFNldE1lZGlhU3RyZWFt
VHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50
KikKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNr
YmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRl
ckJsYWNrQmVycnkuaAkocmV2aXNpb24gMTU1NTc1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuaAko
d29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZWRpYVN0
cmVhbUNlbnRlcgogICAgIHZpcnR1YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50PikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1l
ZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1l
ZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25l
bnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFj
ayhNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURF
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01l
ZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFt
ZXIuY3BwCShyZXZpc2lvbiAxNTU1NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02Miw2ICs2MiwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVy
OjpxdWVyeU1lCiAgICAgY2xpZW50LT5kaWRDb21wbGV0ZVF1ZXJ5KGF1ZGlvU291cmNlcywgdmlk
ZW9Tb3VyY2VzKTsKIH0KIAorYm9vbCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnQ+KQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbUNlbnRl
ckdTdHJlYW1lcjo6ZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNj
cmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKQogewogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmgJKHJldmlzaW9uIDE1NTU3NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0
cmVhbUNlbnRlckdTdHJlYW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1Miw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIE1lZGlhU3RyZWFtQ2VudGVyCiAgICAgdmlydHVhbCB2b2lkIHF1ZXJ5
TWVkaWFTdHJlYW1Tb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGll
bnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoTWVk
aWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgZGlkQWRkTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0
b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBk
aWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3Ry
ZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1h
Yy5jcHAJKHJldmlzaW9uIDE1NTU3NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDYgKzM2LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50LmgiCisjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCkBAIC02MSw2ICs2MiwxMiBAQCB2b2lk
IE1lZGlhU3RyZWFtQ2VudGVyTWFjOjpxdWVyeU1lZGlhU3RyCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAorYm9vbCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIE1l
ZGlhU3RyZWFtQ2VudGVyTWFjOjpkaWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0
cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9N
ZWRpYVN0cmVhbUNlbnRlck1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5oCShyZXZpc2lvbiAxNTU1
NzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJl
YW1DZW50ZXJNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAK
ICAgICAvLyBNZWRpYVN0cmVhbUNlbnRlcgogICAgIHZpcnR1YWwgdm9pZCBxdWVyeU1lZGlhU3Ry
ZWFtU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xpZW50PikgT1ZF
UlJJREU7CisgICAgCisgICAgdmlydHVhbCBib29sIGdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1lZGlh
U3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGlk
UmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVh
bUNvbXBvbmVudCopIE9WRVJSSURFOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTU1NzIxKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMt
MDktMTMgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
TWVkaWFTdHJlYW0gQVBJOiBDaGFuZ2luZyB0aGUgZGV2aWNlIGVudW1lcmF0aW9uIHRvIGJlIGFz
eW5jCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA4
ODMKKworICAgICAgICBNZXJnZWQgZnJvbSBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY2hyb21pdW0vYmxpbmsvKy80MGE5NjA4MGExNTMxZTUwZGU0ZWI4NDU3MWM3ZGM5ZmIzMjFl
Y2U1CisgICAgICAgIGJ5IFRvbW15IFdpZGVuZmx5Y2h0LgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLWdldFNvdXJjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy5odG1sOiBBZGRlZC4KKwogMjAx
My0wOS0xMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBG
bGFreSBUZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9hcHBjYWNoZS9hcHBjYWNoZS1tYW5pZmVz
dC13aXRoLW5vbi1leGlzdGluZy1maWxlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0
U291cmNlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U291
cmNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTWVkaWFTdHJlYW1U
cmFjay5nZXRTb3VyY2VzKGdvdFNvdXJjZXMxKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQ
QVNTIGdvdFNvdXJjZXMxIHdhcyBjYWxsZWQuCitQQVNTIHNvdXJjZXMubGVuZ3RoID4gMCBpcyB0
cnVlCitQQVNTIGdvdFN0cmVhbSB3YXMgY2FsbGVkLgorUEFTUyBNZWRpYVN0cmVhbVRyYWNrLmdl
dFNvdXJjZXMoZ290U291cmNlczIpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgZ290
U291cmNlczIgd2FzIGNhbGxlZC4KK1BBU1Mgc291cmNlcy5sZW5ndGggPiAwIGlzIHRydWUKK1BB
U1Mgc291cmNlc1swXS5pZCA9PT0gcHJldmlvdXNJZCBpcyB0cnVlCitQQVNTIHNvdXJjZXNbMF0u
bGFiZWwubGVuZ3RoID4gMCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LWdldFNvdXJjZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIE1lZGlhU3Ry
ZWFtVHJhY2s6OmdldFNvdXJjZXMuIik7CisKK3ZhciBzb3VyY2VzID0gbnVsbDsKK3ZhciBwcmV2
aW91c0lkOworCitmdW5jdGlvbiBlcnJvcigpIHsKKyAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2Vu
ZXJhdGlvbiBmYWlsZWQuJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGdl
dFVzZXJNZWRpYShjb25zdHJhaW50cywgY2FsbGJhY2spIHsKKyAgICB0cnkgeworICAgICAgICBu
YXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzLCBjYWxsYmFjaywgZXJyb3Ip
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1l
ZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIGdvdFNvdXJjZXMyKHMpIHsKKyAgICB0ZXN0UGFzc2VkKCdnb3RT
b3VyY2VzMiB3YXMgY2FsbGVkLicpOworICAgIHNvdXJjZXMgPSBzOworICAgIHNob3VsZEJlVHJ1
ZSgnc291cmNlcy5sZW5ndGggPiAwJyk7CisgICAgc2hvdWxkQmVUcnVlKCdzb3VyY2VzWzBdLmlk
ID09PSBwcmV2aW91c0lkJyk7CisgICAgc2hvdWxkQmVUcnVlKCdzb3VyY2VzWzBdLmxhYmVsLmxl
bmd0aCA+IDAnKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBnb3RTdHJl
YW0ocykgeworICAgIHRlc3RQYXNzZWQoJ2dvdFN0cmVhbSB3YXMgY2FsbGVkLicpOworCisgICAg
c2hvdWxkTm90VGhyb3coJ01lZGlhU3RyZWFtVHJhY2suZ2V0U291cmNlcyhnb3RTb3VyY2VzMik7
Jyk7Cit9CisKK2Z1bmN0aW9uIGdvdFNvdXJjZXMxKHMpIHsKKyAgICB0ZXN0UGFzc2VkKCdnb3RT
b3VyY2VzMSB3YXMgY2FsbGVkLicpOworICAgIHNvdXJjZXMgPSBzOworICAgIHNob3VsZEJlVHJ1
ZSgnc291cmNlcy5sZW5ndGggPiAwJyk7CisgICAgcHJldmlvdXNJZCA9IHNvdXJjZXNbMF0uaWQ7
CisKKyAgICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0p
OworfQorCitzaG91bGROb3RUaHJvdygnTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKGdvdFNv
dXJjZXMxKTsnKTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211790</attachid>
            <date>2013-09-16 08:39:06 -0700</date>
            <delta_ts>2013-09-17 07:07:34 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>get_source_infos_9.txt</filename>
            <type>text/plain</type>
            <size>64006</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA5LTE2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydHMgbWVyZ2VkIGZyb20g
aHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvNDBhOTYw
ODBhMTUzMWU1MGRlNGViODQ1NzFjN2RjOWZiMzIxZWNlNQorICAgICAgICBhbmQgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZmY3ODNhMjNiYjFhZGQ1
ODg5NzFhODE4NzA0OGEzMDVjZjQ4NTEyMQorICAgICAgICBieSBUb21teSBXaWRlbmZseWNodC4K
KworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291
cmNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IERpdHRvLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6Omdl
dFNvdXJjZXMpOiBOZXcuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmlkbDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHA6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0Lmg6IEFkZGVkLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJ
bmZvLmNwcDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZv
Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGw6
IEFkZGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBB
ZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6IEFk
ZCB0b0pTIHRlbXBsYXRlcyBmb3IgVmVjdG9yPFQ+IGFuZCBWZWN0b3I8UmVmUHRyPFQ+ID4uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oOiBBZGQg
cHJvdG90eXBlIGZvciBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcy4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3RDbGllbnQuaDogQWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMp
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlh
U3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyk6
IEFkZGVkCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3Ry
ZWFtQ2VudGVyR1N0cmVhbWVyLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1DZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKTogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmg6CisKIDIw
MTMtMDktMTQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRhdGUgUlRDRGF0YUNoYW5uZWwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSw3IEBAIHNldChXZWJDb3JlX0lETF9G
SUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9O
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsCkBAIC0yMzIsNiArMjMzLDcgQEAgc2V0KFdl
YkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c0NhbGxiYWNr
LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRsCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAorICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vU291cmNlSW5mby5pZGwKIAogICAgIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxz
L05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwKIApAQCAtODM4LDYgKzg0MCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnku
Y3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcAorICAgIE1vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEVE1GU2VuZGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRN
RlRvbmVDaGFuZ2VFdmVudC5jcHAKQEAgLTg1Miw2ICs4NTUsNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmNwcAogICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5jcHAKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L1NvdXJjZUluZm8uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9s
bGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNTU3OTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAs
NiArMTIwLDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0u
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdh
dG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXApAQCAtMTM3LDYgKzEzOCw3IEBAIEJJTkRJ
TkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHND
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1JlcG9ydC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0
c1Jlc3BvbnNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJj
ZUluZm8uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5k
b3dOb3RpZmljYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHJldmlzaW9uIDE1NTc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1MTIsOCBAQCB3ZWJjb3JlX2J1aWx0X3Nv
dXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRyYWNrLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVlcnlMaXN0LmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhUXVlcnlMaXN0LmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBcCkBAIC02NjYsNiAr
NjY4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU291cmNlQnVmZmVyLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VC
dWZmZXJMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUJ1ZmZlckxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJjZUluZm8uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlSW5mby5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
cGVlY2hJbnB1dEV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1
dFJlc3VsdC5jcHAgXApAQCAtMTI0Miw2ICsxMjQ2LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBc
CiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwgXAog
CSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0
b3JNZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbCBcCkBAIC0xMjU5LDYgKzEyNjQs
NyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU3RhdHNDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTdGF0c1JlcG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTdGF0c1Jlc3BvbnNlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nv
dXJjZUluZm8uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxz
L05hdmlnYXRvckNvbnRlbnRVdGlscy5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwKQEAgLTE5NTQsNiArMTk2MCw5IEBAIHdl
YmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBc
CisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggXApAQCAt
MTk4OCw2ICsxOTk3LDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmggXAor
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcCBc
CkBAIC01NDUwLDYgKzU0NjEsNyBAQCB3ZWJjb3JlX3BsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3Vy
Y2VzUXVlcnlDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0NvbmZpZ3VyYXRpb24uaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlckhhbmRsZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlckhhbmRsZXJDbGllbnQu
aCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9uIDE1NTc5MSkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDggKzI5LDExIEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIk1lZGlh
U3RyZWFtQ2VudGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Db21wb25lbnQuaCIKKyNpbmNs
dWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MTE2LDYgKzExOSwxMyBAQCBTdHJpbmcgTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNv
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmdldFNv
dXJjZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gcmVxdWVzdCA9IE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKTsK
KyAgICBpZiAoIU1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpLmdldE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzKHJlcXVlc3QucmVsZWFzZSgpKSkKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVE
X0VSUjsKK30KKwogYm9vbCBNZWRpYVN0cmVhbVRyYWNrOjplbmRlZCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fc3RvcHBlZCB8fCAobV9jb21wb25lbnQtPnNvdXJjZSgpLT5yZWFkeVN0YXRlKCkg
PT0gTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAko
cmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7CitjbGFzcyBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrOwogCiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrIDog
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1UcmFjaz4sIHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIE1l
ZGlhU3RyZWFtU291cmNlOjpPYnNlcnZlciB7CiBwdWJsaWM6CkBAIC01OCw2ICs1OSw4IEBAIHB1
YmxpYzoKICAgICAKICAgICBTdHJpbmcgcmVhZHlTdGF0ZSgpIGNvbnN0OwogCisgICAgc3RhdGlj
IHZvaWQgZ2V0U291cmNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihtdXRlKTsKICAgICBERUZJTkVfQVRUUklCVVRF
X0VWRU5UX0xJU1RFTkVSKHVubXV0ZSk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNU
RU5FUihlbmRlZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJKHJldmlzaW9uIDE1NTc5MSkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDggQEAKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbnVubXV0ZTsKICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVuZGVkOwogCisgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFJhaXNlc0V4Y2VwdGlvbl0gc3RhdGlj
IHZvaWQgZ2V0U291cmNlcyhNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrIGNhbGxiYWNr
KTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgIHZvaWQgYWRkRXZlbnRMaXN0
ZW5lcihET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0
ZW5lciBsaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
ay5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
R09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja19oCisjZGVmaW5lIE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVz
cG9uc2U7CisKK2NsYXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2sgOiBwdWJsaWMg
UmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaygpIHsgfQorICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVFdmVudChTb3VyY2VJbmZvVmVjdG9yKSA9IDA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNDYWxsYmFja19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXND
YWxsYmFjay5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
R09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIE5vSW50ZXJm
YWNlT2JqZWN0LAorXSBjYWxsYmFjayBpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXND
YWxsYmFjayB7CisgICAgYm9vbGVhbiBoYW5kbGVFdmVudChzZXF1ZW5jZTxTb3VyY2VJbmZvPiBz
b3VyY2VzKTsKK307CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU291cmNl
SW5mby5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0PiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzQ2FsbGJhY2s+IGNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9
CisKK01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdDo6TWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4gY2FsbGJhY2spCisgICAgOiBtX2NhbGxiYWNr
KGNhbGxiYWNrKQorICAgICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKHRoaXMsICZNZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3Q6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKK3sKKyAgICBt
X29yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7Cit9CisKK3Zv
aWQgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0OjpkaWRDb21wbGV0ZVJlcXVlc3QoY29u
c3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJiByZXF1ZXN0U291cmNlSW5mb3MpCit7CisgICAgQVNT
RVJUKG1fY2FsbGJhY2sgJiYgIW1fc2NoZWR1bGVkRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsKKwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVxdWVzdFNvdXJjZUluZm9zLnNpemUoKTsgKytp
KQorICAgICAgICBtX3NvdXJjZUluZm9zLmFwcGVuZChTb3VyY2VJbmZvOjpjcmVhdGUocmVxdWVz
dFNvdXJjZUluZm9zW2ldKSk7CisKKyAgICBtX3Byb3RlY3QgPSB0aGlzOworICAgIG1fc2NoZWR1
bGVkRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0OjpzY2hlZHVsZWRFdmVudFRpbWVyRmlyZWQoVGltZXI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0PiopCit7CisgICAgbV9jYWxsYmFjay0+aGFuZGxlRXZlbnQo
bV9zb3VyY2VJbmZvcyk7CisgICAgbV9jYWxsYmFjay5jbGVhcigpOworICAgIG1fcHJvdGVjdCA9
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdF9oCisjZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdF9o
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAiU291cmNlSW5mby5oIgorI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKwor
Y2xhc3MgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0IDogcHVibGljIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaz4pOwor
ICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdCgpIHsgfQorCisgICAg
U3RyaW5nIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9CisKKyAgICAvLyBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQgaW50ZXJmYWNlCisgICAgdm9pZCBkaWRD
b21wbGV0ZVJlcXVlc3QoY29uc3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJik7CisKK3ByaXZhdGU6
CisgICAgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKworICAg
IHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdD4qKTsKKworICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxi
YWNrPiBtX2NhbGxiYWNrOworICAgIFN0cmluZyBtX29yaWdpbjsKKyAgICBUaW1lcjxNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q+IG1fc2NoZWR1bGVkRXZlbnRUaW1lcjsKKyAgICBTb3Vy
Y2VJbmZvVmVjdG9yIG1fc291cmNlSW5mb3M7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdD4gbV9wcm90ZWN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0X2gKKworI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5m
by5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1NvdXJjZUluZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitQYXNzUmVmUHRyPFNvdXJjZUluZm8+IFNvdXJjZUluZm86OmNyZWF0ZShQYXNzUmVmUHRyPFRy
YWNrU291cmNlSW5mbz4gdHJhY2tTb3VyY2VJbmZvKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU291cmNlSW5mbyh0cmFja1NvdXJjZUluZm8pKTsKK30KKworU291cmNlSW5mbzo6U291cmNl
SW5mbyhQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4gdHJhY2tTb3VyY2VJbmZvKQorICAgIDog
bV90cmFja1NvdXJjZUluZm8odHJhY2tTb3VyY2VJbmZvKQoreworfQorCitBdG9taWNTdHJpbmcg
U291cmNlSW5mbzo6a2luZCgpIGNvbnN0Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0
b21pY1N0cmluZz4gbm9uZSgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1ZGlvS2luZCgi
YXVkaW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB2aWRlb0tpbmQoInZpZGVvIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICBzd2l0Y2ggKG1fdHJhY2tTb3VyY2VJ
bmZvLT5raW5kKCkpIHsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6QXVkaW86CisgICAgICAg
IHJldHVybiBhdWRpb0tpbmQ7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OlZpZGVvOgorICAg
ICAgICByZXR1cm4gdmlkZW9LaW5kOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpOb25lOgor
ICAgICAgICByZXR1cm4gbm9uZTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gZW1wdHlBdG9tOworfQorCitBdG9taWNTdHJpbmcgU291cmNlSW5mbzo6ZmFj
aW5nKCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB1
c2VyRmFjaW5nKCJ1c2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZW52aXJvbm1lbnRGYWNpbmco
ImVudmlyb25tZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbGVmdEZhY2luZygibGVmdCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxBdG9taWNTdHJpbmc+IHJpZ2h0RmFjaW5nKCJyaWdodCIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpOworCisgICAgc3dpdGNoIChtX3RyYWNrU291cmNlSW5mby0+ZmFj
aW5nKCkpIHsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6Tm9uZToKKyAgICAgICAgcmV0dXJu
IGVtcHR5QXRvbTsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6VXNlcjoKKyAgICAgICAgcmV0
dXJuIHVzZXJGYWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OkVudmlyb25tZW50Ogor
ICAgICAgICByZXR1cm4gZW52aXJvbm1lbnRGYWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJjZUlu
Zm86OkxlZnQ6CisgICAgICAgIHJldHVybiBsZWZ0RmFjaW5nOworICAgIGNhc2UgVHJhY2tTb3Vy
Y2VJbmZvOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIHJpZ2h0RmFjaW5nOworICAgIH0KKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBlbXB0eUF0b207Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBTb3VyY2VJbmZvX2gKKyNkZWZpbmUgU291cmNlSW5mb19oCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlSW5m
byA6IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUluZm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxl
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VJbmZvPiBjcmVhdGUoUGFz
c1JlZlB0cjxUcmFja1NvdXJjZUluZm8+KTsKKyAgICB2aXJ0dWFsIH5Tb3VyY2VJbmZvKCkgeyB9
CisKKyAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrU291cmNlSW5m
by0+aWQoKTsgfQorICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
Y2tTb3VyY2VJbmZvLT5sYWJlbCgpOyB9CisgICAgQXRvbWljU3RyaW5nIGtpbmQoKSBjb25zdDsK
KyAgICBBdG9taWNTdHJpbmcgZmFjaW5nKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU291cmNl
SW5mbyhQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4pOworCisgICAgUmVmUHRyPFRyYWNrU291
cmNlSW5mbz4gbV90cmFja1NvdXJjZUluZm87Cit9OworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8
U291cmNlSW5mbz4gPiBTb3VyY2VJbmZvVmVjdG9yOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBTb3VyY2VJbmZvX2gKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorXSBpbnRlcmZhY2UgU291cmNlSW5mbyB7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGtpbmQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZhY2luZzsKK307CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNSwxNSArMTA1LDE1IEBACiAJCTA3Mjc3RTRBMTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTNFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01l
ZGlhU291cmNlLmNwcCAqLzsgfTsKIAkJMDcyNzdFNEIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVk
aWFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3Mjc3RTNGMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmggKi87IH07CiAJCTA3
Mjc3RTRDMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQwMTdEMDE4Q0MwMDE1NTM0
RCAvKiBKU01lZGlhU3RyZWFtLmNwcCAqLzsgfTsKLQkJMDcyNzdFNEQxN0QwMThDQzAwMTU1MzRE
IC8qIEpTTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mjc3RTQxMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggKi87
IH07CisJCTA3Mjc3RTREMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0MTE3RDAxOEND
MDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA3Mjc3RTRFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlh
U3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
dHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgKi87IH07CiAJCTA3Mjc3RTRGMTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQzMTdEMDE4Q0MwMDE1
NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAqLzsgfTsKIAkJMDcy
NzdFNTAxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NDE3RDAxOENDMDAx
NTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKLQkJMDcyNzdFNTExN0QwMThD
QzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVk
aWFTdHJlYW1FdmVudC5oICovOyB9OworCQkwNzI3N0U1MTE3RDAxOENDMDAxNTUzNEQgLyogSlNN
ZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzI3N0U0NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdF
NTIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NjE3RDAxOENDMDAxNTUz
NEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmNwcCAqLzsgfTsKLQkJMDcyNzdFNTMxN0QwMThDQzAw
MTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDcxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
dHJlYW1UcmFjay5oICovOyB9OworCQkwNzI3N0U1MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRp
YVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzI3N0U0NzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTQx
N0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ4MTdEMDE4Q0MwMDE1
NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi87IH07Ci0JCTA3Mjc3RTU1MTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzRE
IC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggKi87IH07CisJCTA3Mjc3RTU1MTdEMDE4Q0Mw
MDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8qIEpT
TWVkaWFTdHJlYW1UcmFja0V2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmNwcCAqLzsgfTsKIAkJMDcyQ0E4NjExNkNCNERDMzAwOEFFMTMxIC8q
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwICovOyB9OwogCQkwNzM1RUU2QTBGNDBDNUU0MDA0QTI2MDQgLyogTWVk
aWFQbGF5ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDczNUVFNjkwRjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMyLDYgKzEz
MiwxNyBAQAogCQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MjIxQkE4MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3Bw
ICovOyB9OwogCQkwNzUzODYwMjE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAw
MTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovOyB9OwogCQkwNzUzODYw
MzE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyog
Q2FjaGVkVGV4dFRyYWNrLmggKi87IH07CisJCTA3NjMwNkQwMTdFMTQ3OEQwMDVBN0M0RSAvKiBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTA3NjMwNkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc2MzA2Q0UxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgKi87IH07CisJCTA3NjMwNkQzMTdFMTQ3OEQwMDVBN0M0
RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkNGMTdFMTQ3OEQwMDVBN0M0RSAvKiBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZENzE3RTE0OUNGMDA1QTdDNEUgLyogU291
cmNlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzYzMDZENDE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAgKi87IH07CisJCTA3
NjMwNkQ4MTdFMTQ5RDAwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZENTE3RTE0OUNGMDA1QTdDNEUgLyog
U291cmNlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTA3NjMwNkRDMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDc2MzA2REExN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFjay5jcHAgKi87IH07CisJCTA3NjMwNkREMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkRCMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZFMDE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3Vy
Y2VJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NjMwNkRFMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3BwICovOyB9OworCQkw
NzYzMDZFMTE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUg
LyogSlNTb3VyY2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMDc2MzA2RTMxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc2MzA2RTIxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudC5oICovOyB9OworCQkwNzYzMDZFNzE3RTI1MUVDMDA1QTdDNEUg
LyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZFNjE3RTI1MUVDMDA1QTdD
NEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi87IH07CiAJ
CTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1
MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsgfTsKIAkJMDc2OTcwODcxNDYzQUQ4NzAwRjUw
MkNGIC8qIFRleHRUcmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0Lmgg
Ki87IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaCAqLzsgfTsKQEAgLTY1NTYsNiArNjU2NywxOSBAQAogCQkwNzNCRTM0NzE3RDE3RTdB
MDAyQkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAw
Qjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDYWNoZWRUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3NjMwNkNEMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2
Q0UxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZDRjE3
RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZENDE3RTE0OUNGMDA1QTdD
NEUgLyogU291cmNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb3VyY2VJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RDUx
N0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYz
MDZENjE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU291cmNlSW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMw
NkRBMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRy
YWNrU291cmNlc0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2
MzA2REIxN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REUx
N0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1NvdXJjZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYzMDZFMjE3RTIyQTQzMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYzMDZFNjE3RTI1MUVDMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVh
bVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja0N1c3RvbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRy
YWNrTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJh
Y2tMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODUxNDYzQUQ4
NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVGV4dFRyYWNrTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZG
MEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzI0Miw2
ICsxMzI2NiwxMCBAQAogCQkJCTA3MjIxQjU3MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVh
bVRyYWNrRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRp
YVN0cmVhbVRyYWNrRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI1OTE3Q0VDMzI3MDA4NDhFNTEgLyog
TWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCAqLywKKwkJCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdD
NEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovLAorCQkJCTA3NjMwNkNE
MTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCAq
LywKKwkJCQkwNzYzMDZDRTE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNSZXF1ZXN0LmNwcCAqLywKKwkJCQkwNzYzMDZDRjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi8sCiAJCQkJMDcyMjFCNUExN0NFQzMyNzAwODQ4
RTUxIC8qIE5hdmlnYXRvck1lZGlhU3RyZWFtLmNwcCAqLywKIAkJCQkwNzIyMUI1QjE3Q0VDMzI3
MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCAqLywKIAkJCQkwNzIyMUI1QzE3Q0VD
MzI3MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsICovLApAQCAtMTMyOTMsNiAr
MTMzMjEsOSBAQAogCQkJCTA3MjIxQjhBMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENTdGF0c1Jlc3Bv
bnNlLmlkbCAqLywKIAkJCQkwNzIyMUI4QjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVl
c3RJbXBsLmNwcCAqLywKIAkJCQkwNzIyMUI4QzE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJl
cXVlc3RJbXBsLmggKi8sCisJCQkJMDc2MzA2RDQxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUlu
Zm8uY3BwICovLAorCQkJCTA3NjMwNkQ1MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmgg
Ki8sCisJCQkJMDc2MzA2RDYxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaWRsICovLAog
CQkJCTA3MjIxQjhEMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVkaWFDbGllbnQuaCAqLywKIAkJ
CQkwNzIyMUI4RTE3Q0VDMzI3MDA4NDhFNTEgLyogVXNlck1lZGlhQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJMDcyMjFCOEYxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJNZWRpYUNvbnRyb2xsZXIuaCAq
LywKQEAgLTEzMzE3LDYgKzEzMzQ4LDcgQEAKIAkJCQkwNzIyMUI5RTE3Q0YwQUQ0MDA4NDhFNTEg
LyogTWVkaWFTdHJlYW1Tb3VyY2UuY3BwICovLAogCQkJCTA3MjIxQjlGMTdDRjBBRDQwMDg0OEU1
MSAvKiBNZWRpYVN0cmVhbVNvdXJjZS5oICovLAogCQkJCTA3MjIxQkEwMTdDRjBBRDQwMDg0OEU1
MSAvKiBNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oICovLAorCQkJCTA3NjMwNkUyMTdF
MjJBNDMwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCAq
LywKIAkJCQkwNzIyMUJBMTE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDQ29uZmlndXJhdGlvbi5oICov
LAogCQkJCTA3MjIxQkEyMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIu
aCAqLywKIAkJCQkwNzIyMUJBMzE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5k
bGVyQ2xpZW50LmggKi8sCkBAIC0xMzM2OSw2ICsxMzQwMSw4IEBACiAJCQkJMDcyNzdFNDMxN0Qw
MThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oICovLAog
CQkJCTA3Mjc3RTQ0MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuY3BwICov
LAogCQkJCTA3Mjc3RTQ1MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAq
LywKKwkJCQkwNzYzMDZEQTE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrLmNwcCAqLywKKwkJCQkwNzYzMDZEQjE3RTE1RkIwMDA1QTdDNEUgLyogSlNN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi8sCiAJCQkJMDcyNzdFNDYxN0QwMThD
QzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8sCiAJCQkJMDcyNzdFNDcxN0Qw
MThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oICovLAogCQkJCTA3Mjc3RTQ4MTdE
MDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi8sCkBAIC0xMzQw
Nyw2ICsxMzQ0MSw4IEBACiAJCQkJMDc5NjlEQTgxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3Rh
dHNSZXBvcnQuaCAqLywKIAkJCQkwNzk2OURBOTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0
c1Jlc3BvbnNlLmNwcCAqLywKIAkJCQkwNzk2OURBQTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENT
dGF0c1Jlc3BvbnNlLmggKi8sCisJCQkJMDc2MzA2REUxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291
cmNlSW5mby5jcHAgKi8sCisJCQkJMDc2MzA2REYxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNl
SW5mby5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBNZWRpYVN0cmVhbTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0yMjI0OSw2ICsyMjI4NSw3IEBACiAJCQkJRkQzMTYwOTUxMkIwMjZG
NzAwQzFBMzU5IC8qIEZGVENvbnZvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOTcx
MkIwMjZGNzAwQzFBMzU5IC8qIEZGVEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4
MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MzA2RTMx
N0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ3QTcxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZp
bGVDaG9vc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU2MjEyMkNBMDY0MDAzQUFCREEg
LyogRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNTAyLDYgKzIyNTM5LDcgQEAKIAkJ
CQk5NzdFMkRDRTEyRjBFMjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3OEFENjc1MTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQzIzMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU3R5
bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYzMDZERDE3RTE1RkIwMDA1QTdDNEUg
LyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlEM0Q0RTk3MzEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODcxREIyQjBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQjJBMEExNTBCRDYwMEIxMkE2OCAv
KiBIVE1MVGFibGVDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjgzNyw2ICsyMjg3
NSw3IEBACiAJCQkJOTM4RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBKU0hU
TUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTFFNzE5MTE0RTEwMUU0MDA2MjZG
OUQgLyogSlNIVE1MQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQw
MTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxp
c3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDhCRjEyOUNBNTVDMDAwNkU1RDIg
LyogSlNIVE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2ODA4QjUwMTU5
REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTIzMDI5LDEyICsyMzA2OCwxNCBAQAogCQkJCUIyRkEzRDREMEFCNzVBNkYwMDBFNUFDNCAvKiBK
U1NWR0FuaW1hdGVkUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENEYwQUI3NUE2RjAw
MEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEz
RDUxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5p
bWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OTZFMzlFMTM5ODEzNkMwMDNFRTMy
QSAvKiBKU1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZB
M0Q1NTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTcwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0
aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTkwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHQ2lyY2xlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUIwQUI3
NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ2xpcFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwNzYzMDZEODE3RTE0OUQwMDA1QTdDNEUgLyogU291cmNlSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJGQTNENUQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ29sb3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyRkEzRDVGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q2MTBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdDdXJzb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDEx
LDYgKzI0NDUyLDcgQEAKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0
dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUYzNDgxMEE2QzQw
NTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMw
NkQzMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNTY5RDFCMEQ3RTJCODIwMDdDMzk4MyAvKiBXZWJTY3JpcHRP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAvKiBX
ZWJTY3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0FBQkQxQjE0RkEw
OUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjUwLDggKzI1
MjkyLDEwIEBACiAJCQkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRp
bWluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyog
RG9jdW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAw
QTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwNzYzMDZEQzE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0Nh
bGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAv
KiBEb2N1bWVudE9yZGVyZWRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0
QTU5NzAwRDVBN0QzIC8qIERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3
NjMwNkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEE0RjQ4QTkxNkIwREZDMDAwRURCQjI5IC8qIERvY3Vt
ZW50UnVsZVNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIw
QzEzIC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDQ2RjA0RTE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yNjE0Myw2ICsyNjE4Nyw3IEBACiAJCQkJN0EwRTc3MUUxMEMwMERCMTAwQTAyNzZFIC8qIEpT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JEMTAx
ODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQzVGQUVEMTBEQ0ZEOTAxMDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMwNkUwMTdFMTYwODkwMDVBN0M0RSAv
KiBKU1NvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQjcxN0QxNDE1MTAw
N0ZGODQyIC8qIEpTUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUM1RkFFRTcwRENGREE2ODAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODY2MjlENDA5REEyQjQ4MDA5NjMzQTUgLyogSlNLZXli
b2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYyNDYsNiArMjYyOTEsNyBAQAogCQkJ
CTUxNEM3NjM4MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI1OURENjlFMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9u
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEMjMxNkUwQ0QyNjlFNzAwQzFGMTk0
IC8qIEpTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2
RDcxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjU5REQ2QTIxMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1OENFQjZFMTE5MTM2MUMwMDJBNjc5MCAvKiBKU1NR
TFRyYW5zYWN0aW9uU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTVENUFBNTExOTEzMUZD
MDBCQ0MzMTUgLyogSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZp
c2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwyOCBAQCBjbGFzcyBET01TdHJpbmdMaXN0
OwogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHB0ci5nZXQoKSk7CiAg
ICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBWZWN0b3I8VD4gdmVjdG9yKQorICAgIHsKKyAgICAgICAgSlNDOjpKU0FycmF5KiBhcnJh
eSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCwgdmVjdG9yLnNpemUoKSk7CisgICAgICAg
IAorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkKKyAg
ICAgICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgdmVjdG9yW2ldKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gYXJyYXk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBWZWN0b3I8UmVmUHRyPFQ+PiB2ZWN0b3IpCisgICAgeworICAgICAgICBKU0M6OkpTQXJy
YXkqIGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwLCB2ZWN0b3Iuc2l6ZSgpKTsK
KyAgICAgICAgCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsg
KytpKQorICAgICAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGksIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCB2ZWN0b3JbaV0uZ2V0KCkpKTsKKyAgICAgICAgCisgICAgICAgIHJl
dHVybiBhcnJheTsKKyAgICB9CisgICAgCiAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICAgc3Ry
dWN0IEpTVmFsdWVUcmFpdHMgewogICAgICAgICBzdGF0aWMgaW5saW5lIEpTQzo6SlNWYWx1ZSBh
cnJheUpTVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IFQmIHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCShyZXZpc2lvbiAx
NTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUNlbnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OwogY2xhc3MgTWVkaWFTdHJlYW1EZXNj
cmlwdG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQ7CitjbGFzcyBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ7CiAKIGNsYXNzIE1lZGlhU3RyZWFtQ2Vu
dGVyIHsKIHB1YmxpYzoKQEAgLTUyLDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlc1F1
ZXJ5Q2xpZW50PikgPSAwOwogCiAgICAgLy8gQ2FsbHMgZnJvbSB0aGUgRE9NIG9iamVjdHMgdG8g
bm90aWZ5IHRoZSBwbGF0Zm9ybQorICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNr
U291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4p
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoTWVk
aWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwg
TWVkaWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1l
ZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25l
bnQqKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3RDbGllbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudF9oCisjZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdENsaWVudF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRyYWNr
U291cmNlSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPFRyYWNrU291cmNlSW5mbz4geworcHVibGlj
OgorICAgIGVudW0gU291cmNlS2luZCB7CisgICAgICAgIE5vU291cmNlLAorICAgICAgICBBdWRp
bywKKyAgICAgICAgVmlkZW8KKyAgICB9OworICAgIAorICAgIGVudW0gVmlkZW9GYWNpbmdNb2Rl
IHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgVXNlciwKKyAgICAgICAgRW52aXJvbm1lbnQsCisg
ICAgICAgIExlZnQsCisgICAgICAgIFJpZ2h0CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFRyYWNrU291cmNlSW5mbz4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFNvdXJj
ZUtpbmQga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgVmlkZW9GYWNpbmdNb2RlIGZh
Y2luZykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVHJhY2tTb3VyY2VJbmZv
KGlkLCBraW5kLCBsYWJlbCwgZmFjaW5nKSk7CisgICAgfQorICAgIHZpcnR1YWwgflRyYWNrU291
cmNlSW5mbygpIHsgfQorCisgICAgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9p
ZDsgfQorICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0K
KyAgICBTb3VyY2VLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KKyAgICBWaWRl
b0ZhY2luZ01vZGUgZmFjaW5nKCkgY29uc3QgeyByZXR1cm4gbV9mYWNpbmc7IH0KKyAgICAKK3By
aXZhdGU6CisgICAgVHJhY2tTb3VyY2VJbmZvKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFNvdXJj
ZUtpbmQga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgVmlkZW9GYWNpbmdNb2RlIGZh
Y2luZykKKyAgICAgICAgOiBtX2lkKGlkKQorICAgICAgICAsIG1fa2luZChraW5kKQorICAgICAg
ICAsIG1fbGFiZWwobGFiZWwpCisgICAgICAgICwgbV9mYWNpbmcoZmFjaW5nKQorICAgIHsKKyAg
ICB9CisgICAgCisgICAgQXRvbWljU3RyaW5nIG1faWQ7CisgICAgU291cmNlS2luZCBtX2tpbmQ7
CisgICAgQXRvbWljU3RyaW5nIG1fbGFiZWw7CisgICAgVmlkZW9GYWNpbmdNb2RlIG1fZmFjaW5n
OworfTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPFRyYWNrU291cmNlSW5mbz4+IFRyYWNrU291
cmNlSW5mb1ZlY3RvcjsKKworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnQ+IHsKK3B1YmxpYzoKKworICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUmVxdWVz
dChjb25zdCBUcmFja1NvdXJjZUluZm9WZWN0b3ImKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8g
TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFj
a0JlcnJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHAJKHJldmlzaW9u
IDE1NTc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVy
cnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NiArNjIsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnk6OnF1ZXJ5TQogICAg
IGNsaWVudC0+ZGlkQ29tcGxldGVRdWVyeShhdWRpb1NvdXJjZXMsIHZpZGVvU291cmNlcyk7CiB9
CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5Ojpk
aWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRp
YVN0cmVhbUNvbXBvbmVudCopCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkv
TWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgJKHJldmlzaW9uIDE1NTc5MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50
ZXJCbGFja0JlcnJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgog
CiAgICAgLy8gTWVkaWFTdHJlYW1DZW50ZXIKICAgICB2aXJ0dWFsIHZvaWQgcXVlcnlNZWRpYVN0
cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVh
bURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1l
ZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92
ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21w
b25lbnQqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3Ry
ZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgdm9pZCBNZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lcjo6cXVlcnlNZQogICAgIGNsaWVudC0+ZGlkQ29tcGxldGVRdWVyeShh
dWRpb1NvdXJjZXMsIHZpZGVvU291cmNlcyk7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJN
YWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQg
TWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OmRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVk
KE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikKIHsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0
cmVhbUNlbnRlckdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCShy
ZXZpc2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZWRpYVN0cmVhbUNlbnRlcgogICAgIHZp
cnR1YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
U291cmNlc1F1ZXJ5Q2xpZW50PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGdldE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0Q2xpZW50PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldE1lZGlhU3RyZWFt
VHJhY2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50
KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVk
aWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2Ny
aXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVk
aWFTdHJlYW1DZW50ZXJNYWMuY3BwCShyZXZpc2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2Ny
aXB0b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oIgorI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtNjEs
NiArNjIsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6cXVlcnlNZWRpYVN0cgogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmdldE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0Q2xpZW50PikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6ZGlkU2V0TWVkaWFTdHJlYW1UcmFj
a0VuYWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMu
aAkocmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUx
LDggQEAgcHVibGljOgogCiAgICAgLy8gTWVkaWFTdHJlYW1DZW50ZXIKICAgICB2aXJ0dWFsIHZv
aWQgcXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNR
dWVyeUNsaWVudD4pIE9WRVJSSURFOworICAgIAorICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0
cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dENsaWVudD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRNZWRpYVN0cmVhbVRy
YWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCop
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVhbVRyYWNrKE1lZGlh
U3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlw
dG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE1NTc5NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDEzLTA5LTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVt
ZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAgTWVyZ2VkIGZyb20gaHR0cHM6Ly9jaHJvbWl1
bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvNDBhOTYwODBhMTUzMWU1MGRlNGVi
ODQ1NzFjN2RjOWZiMzIxZWNlNQorICAgICAgICBieSBUb21teSBXaWRlbmZseWNodC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRTb3VyY2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRt
bDogQWRkZWQuCisKIDIwMTMtMDktMTQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRhdGUgUlRDRGF0YUNoYW5uZWwK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1nZXRT
b3VyY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0
U291cmNlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGVz
dHMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U291cmNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKGdvdFNvdXJjZXMxKTsg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIGdvdFNvdXJjZXMxIHdhcyBjYWxsZWQuCitQ
QVNTIHNvdXJjZXMubGVuZ3RoID4gMCBpcyB0cnVlCitQQVNTIGdvdFN0cmVhbSB3YXMgY2FsbGVk
LgorUEFTUyBNZWRpYVN0cmVhbVRyYWNrLmdldFNvdXJjZXMoZ290U291cmNlczIpOyBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgZ290U291cmNlczIgd2FzIGNhbGxlZC4KK1BBU1Mgc291
cmNlcy5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1Mgc291cmNlc1swXS5pZCA9PT0gcHJldmlvdXNJ
ZCBpcyB0cnVlCitQQVNTIHNvdXJjZXNbMF0ubGFiZWwubGVuZ3RoID4gMCBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2stZ2V0U291cmNlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICAgICAgPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U291cmNlcy4iKTsKKworICAgICAgICAgICAg
dmFyIHNvdXJjZXMgPSBudWxsOworICAgICAgICAgICAgdmFyIHByZXZpb3VzSWQ7CisgICAgICAg
ICAgICB2YXIgdGltZXIgPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpOwor
ICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiBlcnJvcigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOworICAgICAgICAgICAgICAgIGZp
bmlzaFRlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0VXNl
ck1lZGlhKGNvbnN0cmFpbnRzLCBjYWxsYmFjaykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBwcmltZVRpbWVvdXQoIlRpbWVvdXQgd2Fp
dGluZyBmb3Igd2Via2l0R2V0VXNlck1lZGlhKCkiKTsKKyAgICAgICAgICAgICAgICAgICAgbmF2
aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShjb25zdHJhaW50cywgY2FsbGJhY2ssIGVycm9yKTsK
KyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290U291cmNlczIocykKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdnb3RTb3VyY2VzMiB3YXMgY2FsbGVkLicp
OworICAgICAgICAgICAgICAgIHNvdXJjZXMgPSBzOworICAgICAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgnc291cmNlcy5sZW5ndGggPiAwJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCdzb3VyY2VzWzBdLmlkID09PSBwcmV2aW91c0lkJyk7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCdzb3VyY2VzWzBdLmxhYmVsLmxlbmd0aCA+IDAnKTsKKworICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290
U3RyZWFtKHMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnZ290
U3RyZWFtIHdhcyBjYWxsZWQuJyk7CisKKyAgICAgICAgICAgICAgICBwcmltZVRpbWVvdXQoIlRp
bWVvdXQgd2FpdGluZyBmb3IgTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKCkiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGROb3RUaHJvdygnTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKGdv
dFNvdXJjZXMyKTsnKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290
U291cmNlczEocykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdn
b3RTb3VyY2VzMSB3YXMgY2FsbGVkLicpOworICAgICAgICAgICAgICAgIHNvdXJjZXMgPSBzOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnc291cmNlcy5sZW5ndGggPiAwJyk7CisgICAg
ICAgICAgICAgICAgcHJldmlvdXNJZCA9IHNvdXJjZXNbMF0uaWQ7CisKKyAgICAgICAgICAgICAg
ICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwcmltZVRpbWVvdXQobXNnKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CisgICAgICAg
ICAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0ZXN0RmFpbGVkKG1zZyk7
IGZpbmlzaEpTVGVzdCgpIH0sIDQwMDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBw
cmltZVRpbWVvdXQoIlRpbWVvdXQgd2FpdGluZyBmb3IgTWVkaWFTdHJlYW1UcmFjay5nZXRTb3Vy
Y2VzKCkiKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdNZWRpYVN0cmVhbVRyYWNrLmdl
dFNvdXJjZXMoZ290U291cmNlczEpOycpOworCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211900</attachid>
            <date>2013-09-17 07:07:34 -0700</date>
            <delta_ts>2013-09-17 13:36:02 -0700</delta_ts>
            <desc>YAP</desc>
            <filename>get_source_infos_10.txt</filename>
            <type>text/plain</type>
            <size>66574</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTkyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDEzLTA5LTE2ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJhdGlvbiB0byBiZSBhc3luYworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFydHMgbWVyZ2VkIGZyb20g
aHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvNDBhOTYw
ODBhMTUzMWU1MGRlNGViODQ1NzFjN2RjOWZiMzIxZWNlNQorICAgICAgICBhbmQgaHR0cHM6Ly9j
aHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL2JsaW5rLysvZmY3ODNhMjNiYjFhZGQ1
ODg5NzFhODE4NzA0OGEzMDVjZjQ4NTEyMQorICAgICAgICBieSBUb21teSBXaWRlbmZseWNodC4K
KworICAgICAgICBUZXN0OiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291
cmNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IERpdHRvLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6Omtp
bmQpOiBBU0NJSUxpdGVyYWwgLT4gTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPi4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnJlYWR5U3RhdGUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OmdldFNvdXJjZXMpOiBOZXcuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbDoKKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Lmg6IEFkZGVkLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmNwcDogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGw6IEFkZGVkLgorCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6IEFkZCB0b0pTIHRlbXBsYXRlcyBmb3IgVmVj
dG9yPFQ+IGFuZCBWZWN0b3I8UmVmUHRyPFQ+ID4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oOiBBZGQgcHJvdG90eXBlIGZvciBnZXRNZWRpYVN0
cmVhbVRyYWNrU291cmNlcy4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oOiBBZGRlZC4KKworICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQ2VudGVyTWFjOjpnZXRNZWRpYVN0
cmVhbVRyYWNrU291cmNlcyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5Lmg6CisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXJNYWM6OmdldE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzKTogQWRkZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaDoKKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRlck1hYzo6Z2V0TWVkaWFTdHJlYW1UcmFja1NvdXJjZXMp
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1D
ZW50ZXJNYWMuaDoKKwogMjAxMy0wOS0xNiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgog
CiAgICAgICAgIENUVEU6IElucHV0VHlwZSBzaG91bGQgc3RvcmUgaXRzIEhUTUxJbnB1dEVsZW1l
bnQgYmFjayBwb2ludGVyIGFzIGEgcmVmZXJlbmNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAko
cmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTIxNSw2ICsyMTUsNyBAQCBzZXQoV2ViQ29yZV9JRExfRklMRVMKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvck1lZGlhU3RyZWFtLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNl
ck1lZGlhRXJyb3IuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVk
aWFFcnJvckNhbGxiYWNrLmlkbApAQCAtMjMyLDYgKzIzMyw3IEBAIHNldChXZWJDb3JlX0lETF9G
SUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNDYWxsYmFjay5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVwb3J0LmlkbAogICAgIE1vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJj
ZUluZm8uaWRsCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JD
b250ZW50VXRpbHMuaWRsCiAKQEAgLTgzOCw2ICs4NDAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcAogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RFRNRlNlbmRlci5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RUTUZUb25lQ2hhbmdl
RXZlbnQuY3BwCkBAIC04NTIsNiArODU1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENWb2lkUmVxdWVzdEltcGwuY3BwCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZv
LmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKICAg
ICBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBA
IEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YUVycm9yQ2FsbGJhY2suaWRsIFwKQEAgLTEzNyw2ICsxMzgsNyBAQCBCSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzQ2FsbGJhY2suaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5p
ZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0
aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbkNlbnRlci5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MTIsNiArNTEyLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFjay5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZWRpYVF1ZXJ5TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgXApAQCAtNjY2LDYgKzY2OCw4IEBAIHdl
YmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NvdXJj
ZUJ1ZmZlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU291cmNlQnVmZmVyTGlzdC5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VCdWZmZXJMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTb3VyY2VJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NvdXJjZUluZm8uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVj
aElucHV0RXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRF
dmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRSZXN1bHQuY3Bw
IFwKQEAgLTEyNDIsNiArMTI0Niw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCBcCisJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2su
aWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJl
YW0uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgXApAQCAtMTI1OSw2ICsxMjY0LDcgQEAgZG9tX2Jp
bmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
Q2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNS
ZXBvcnQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9Tb3VyY2VJbmZvLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JD
b250ZW50VXRpbHMuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01X
aW5kb3dOb3RpZmljYXRpb25zLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCBcCkBAIC0xOTU0LDYgKzE5NjAsOSBAQCB3ZWJjb3JlX21vZHVs
ZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggXAorCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oIFwKQEAgLTE5ODgsNiArMTk5
Nyw4IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAgXApAQCAtNTQ1MCw2
ICs1NDYxLDcgQEAgd2ViY29yZV9wbGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlc1F1ZXJ5Q2xp
ZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXJIYW5kbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RUTUZTZW5kZXJIYW5kbGVyQ2xpZW50LmggXApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCShyZXZpc2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4
ICsyOSwxMiBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRl
ci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ29tcG9uZW50LmgiCisjaW5jbHVkZSAiTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDggKzQ3LDggQEAgUGFzc1JlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrPiBNZWRpYVN0cmVhbQogCiBNZWRpYVN0cmVhbVRyYWNrOjpNZWRpYVN0cmVhbVRyYWNr
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE1lZGlhU3RyZWFtQ29tcG9uZW50KiBj
b21wb25lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCkKLSAgICAsIG1fc3RvcHBl
ZChmYWxzZSkKICAgICAsIG1fY29tcG9uZW50KGNvbXBvbmVudCkKKyAgICAsIG1fc3RvcHBlZChm
YWxzZSkKIHsKICAgICBtX2NvbXBvbmVudC0+c291cmNlKCktPmFkZE9ic2VydmVyKHRoaXMpOwog
fQpAQCAtNTQsMTAgKzU4LDEwIEBAIE1lZGlhU3RyZWFtVHJhY2s6On5NZWRpYVN0cmVhbVRyYWNr
KCkKICAgICBtX2NvbXBvbmVudC0+c291cmNlKCktPnJlbW92ZU9ic2VydmVyKHRoaXMpOwogfQog
Ci1TdHJpbmcgTWVkaWFTdHJlYW1UcmFjazo6a2luZCgpIGNvbnN0CitBdG9taWNTdHJpbmcgTWVk
aWFTdHJlYW1UcmFjazo6a2luZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGF1ZGlvS2luZCwgKEFTQ0lJTGl0ZXJhbCgiYXVkaW8iKSkpOwotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCB2aWRlb0tpbmQsIChBU0NJSUxpdGVyYWwoInZpZGVvIikpKTsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBhdWRpb0tpbmQoImF1ZGlv
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEF0b21pY1N0cmluZz4gdmlkZW9LaW5kKCJ2aWRlbyIsIEF0b21pY1N0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogCiAgICAgc3dpdGNoIChtX2NvbXBvbmVudC0+c291cmNl
KCktPnR5cGUoKSkgewogICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlR5cGVBdWRpbzoKQEAg
LTY3LDcgKzcxLDcgQEAgU3RyaW5nIE1lZGlhU3RyZWFtVHJhY2s6OmtpbmQoKSBjb25zdAogICAg
IH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBhdWRpb0tpbmQ7Cisg
ICAgcmV0dXJuIGVtcHR5QXRvbTsKIH0KIAogU3RyaW5nIE1lZGlhU3RyZWFtVHJhY2s6OmlkKCkg
Y29uc3QKQEAgLTk4LDIyICsxMDIsMzMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpzZXRFbmFi
bGVkKGJvb2wgZQogICAgIE1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpLmRpZFNldE1lZGlh
U3RyZWFtVHJhY2tFbmFibGVkKG1fY29tcG9uZW50LT5zdHJlYW0oKSwgbV9jb21wb25lbnQuZ2V0
KCkpOwogfQogCi1TdHJpbmcgTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0CitB
dG9taWNTdHJpbmcgTWVkaWFTdHJlYW1UcmFjazo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZW5kZWQoImVuZGVkIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEF0b21pY1N0cmluZz4gbGl2ZSgibGl2ZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxp
dGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IG11dGVkKCJt
dXRlZCIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworCiAgICAgaWYgKG1f
c3RvcHBlZCkKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZW5kZWQiKTsKKyAgICAgICAg
cmV0dXJuIGVuZGVkOwogCiAgICAgc3dpdGNoIChtX2NvbXBvbmVudC0+c291cmNlKCktPnJlYWR5
U3RhdGUoKSkgewogICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVMaXZlOgot
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJsaXZlIik7CisgICAgICAgIHJldHVybiBsaXZl
OwogICAgIGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVNdXRlZDoKLSAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgibXV0ZWQiKTsKKyAgICAgICAgcmV0dXJuIG11dGVkOwogICAg
IGNhc2UgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVFbmRlZDoKLSAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgiZW5kZWQiKTsKKyAgICAgICAgcmV0dXJuIGVuZGVkOwogICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1
cm4gZW1wdHlBdG9tOworfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmdldFNvdXJjZXMoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gcmVxdWVzdCA9IE1lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNrKTsKKyAgICBpZiAo
IU1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpLmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
KHJlcXVlc3QucmVsZWFzZSgpKSkKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0K
IAogYm9vbCBNZWRpYVN0cmVhbVRyYWNrOjplbmRlZCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAko
cmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEzICs0MSwxNCBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYVN0cmVhbUNvbXBvbmVudDsKK2NsYXNzIE1l
ZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s7CiAKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2sg
OiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrPiwgcHVibGljIFNjcmlwdFdyYXBw
YWJsZSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMg
TWVkaWFTdHJlYW1Tb3VyY2U6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1l
ZGlhU3RyZWFtQ29tcG9uZW50Kik7CiAgICAgdmlydHVhbCB+TWVkaWFTdHJlYW1UcmFjaygpOwog
Ci0gICAgU3RyaW5nIGtpbmQoKSBjb25zdDsKKyAgICBBdG9taWNTdHJpbmcga2luZCgpIGNvbnN0
OwogICAgIFN0cmluZyBpZCgpIGNvbnN0OwogICAgIFN0cmluZyBsYWJlbCgpIGNvbnN0OwogCkBA
IC01Niw3ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRW5kVHJhY2soKTsKICAgICAK
LSAgICBTdHJpbmcgcmVhZHlTdGF0ZSgpIGNvbnN0OworICAgIEF0b21pY1N0cmluZyByZWFkeVN0
YXRlKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgdm9pZCBnZXRTb3VyY2VzKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+LCBF
eGNlcHRpb25Db2RlJik7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKG11
dGUpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodW5tdXRlKTsKQEAgLTg4
LDggKzkxLDggQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVNvdXJjZU9ic2VydmVyCiAg
ICAgdmlydHVhbCB2b2lkIHNvdXJjZUNoYW5nZWRTdGF0ZSgpIE9WRVJSSURFOwogCi0gICAgYm9v
bCBtX3N0b3BwZWQ7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtQ29tcG9uZW50PiBtX2NvbXBvbmVu
dDsKKyAgICBib29sIG1fc3RvcHBlZDsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRp
YVN0cmVhbVRyYWNrPiA+IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3I7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5p
ZGwJKHJldmlzaW9uIDE1NTc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDggQEAK
ICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnVubXV0ZTsKICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmVuZGVkOwogCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIFJhaXNlc0V4Y2VwdGlvbl0gc3RhdGljIHZvaWQgZ2V0U291cmNlcyhNZWRpYVN0cmVhbVRy
YWNrU291cmNlc0NhbGxiYWNrIGNhbGxiYWNrKTsKKwogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZQogICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihET01TdHJpbmcgdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNDYWxsYmFja19oCisjZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2tfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBoYW5k
bGVFdmVudChTb3VyY2VJbmZvVmVjdG9yKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFj
a19oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5pZGwJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorXSBj
YWxsYmFjayBpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjayB7CisgICAg
Ym9vbGVhbiBoYW5kbGVFdmVudChzZXF1ZW5jZTxTb3VyY2VJbmZvPiBzb3VyY2VzKTsKK307CisK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU291cmNlSW5mby5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0PiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2Fs
bGJhY2s+IGNhbGxiYWNrKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0KGNvbnRleHQsIGNhbGxiYWNrKSk7Cit9CisKK01lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdDo6TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNDYWxsYmFjaz4gY2FsbGJhY2spCisgICAgOiBtX2NhbGxiYWNrKGNhbGxiYWNrKQorICAg
ICwgbV9zY2hlZHVsZWRFdmVudFRpbWVyKHRoaXMsICZNZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3Q6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZCkKK3sKKyAgICBtX29yaWdpbiA9IGNvbnRl
eHQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNSZXF1ZXN0OjpkaWRDb21wbGV0ZVJlcXVlc3QoY29uc3QgVHJhY2tTb3VyY2VJ
bmZvVmVjdG9yJiByZXF1ZXN0U291cmNlSW5mb3MpCit7CisgICAgQVNTRVJUKCFtX3NjaGVkdWxl
ZEV2ZW50VGltZXIuaXNBY3RpdmUoKSk7CisgICAgQVNTRVJUKG1fY2FsbGJhY2spOworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXF1ZXN0U291cmNlSW5mb3Muc2l6ZSgpOyArK2kpCisg
ICAgICAgIG1fc291cmNlSW5mb3MuYXBwZW5kKFNvdXJjZUluZm86OmNyZWF0ZShyZXF1ZXN0U291
cmNlSW5mb3NbaV0pKTsKKworICAgIG1fcHJvdGVjdCA9IHRoaXM7CisgICAgbV9zY2hlZHVsZWRF
dmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3Q6OnNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZChUaW1lcjxNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3Q+KikKK3sKKyAgICBtX2NhbGxiYWNrLT5oYW5kbGVFdmVudChtX3Nv
dXJjZUluZm9zKTsKKyAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICBtX3Byb3RlY3QgPSBu
dWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1Jl
cXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc1JlcXVlc3RfaAorI2RlZmluZSBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdENsaWVudC5oIgorI2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKyNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNDYWxsYmFjazsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2Ns
YXNzIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdCA6IHB1YmxpYyBNZWRpYVN0cmVhbVRy
YWNrU291cmNlc1JlcXVlc3RDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKyAg
ICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QoKSB7IH0KKworICAgIFN0
cmluZyBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQorCisgICAgLy8gTWVkaWFT
dHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50CisgICAgdm9pZCBkaWRDb21wbGV0ZVJlcXVl
c3QoY29uc3QgVHJhY2tTb3VyY2VJbmZvVmVjdG9yJikgT1ZFUlJJREU7CisKK3ByaXZhdGU6Cisg
ICAgTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKKworICAgIHZv
aWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVkKFRpbWVyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdD4qKTsKKworICAgIFN0cmluZyBtX29yaWdpbjsKKyAgICBSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjaz4gbV9jYWxsYmFjazsKKyAgICBUaW1lcjxNZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3Q+IG1fc2NoZWR1bGVkRXZlbnRUaW1lcjsKKyAgICBTb3VyY2VJ
bmZvVmVjdG9yIG1fc291cmNlSW5mb3M7CisgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdD4gbV9wcm90ZWN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0X2gKKworI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nv
dXJjZUluZm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNvdXJjZUluZm8uaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPFNvdXJjZUluZm8+IFNvdXJjZUluZm86OmNyZWF0ZShQYXNzUmVmUHRyPFRyYWNr
U291cmNlSW5mbz4gdHJhY2tTb3VyY2VJbmZvKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U291cmNlSW5mbyh0cmFja1NvdXJjZUluZm8pKTsKK30KKworU291cmNlSW5mbzo6U291cmNlSW5m
byhQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4gdHJhY2tTb3VyY2VJbmZvKQorICAgIDogbV90
cmFja1NvdXJjZUluZm8odHJhY2tTb3VyY2VJbmZvKQoreworfQorCitBdG9taWNTdHJpbmcgU291
cmNlSW5mbzo6a2luZCgpIGNvbnN0Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gbm9uZSgibm9uZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGF1ZGlvS2luZCgiYXVk
aW8iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB2aWRlb0tpbmQoInZpZGVvIiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisKKyAgICBzd2l0Y2ggKG1fdHJhY2tTb3VyY2VJbmZv
LT5raW5kKCkpIHsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6QXVkaW86CisgICAgICAgIHJl
dHVybiBhdWRpb0tpbmQ7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OlZpZGVvOgorICAgICAg
ICByZXR1cm4gdmlkZW9LaW5kOworICAgIGNhc2UgVHJhY2tTb3VyY2VJbmZvOjpOb25lOgorICAg
ICAgICByZXR1cm4gbm9uZTsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gZW1wdHlBdG9tOworfQorCitBdG9taWNTdHJpbmcgU291cmNlSW5mbzo6ZmFjaW5n
KCkgY29uc3QKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiB1c2Vy
RmFjaW5nKCJ1c2VyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZW52aXJvbm1lbnRGYWNpbmcoImVu
dmlyb25tZW50IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gbGVmdEZhY2luZygibGVmdCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBdG9taWNTdHJpbmc+IHJpZ2h0RmFjaW5nKCJyaWdodCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworCisgICAgc3dpdGNoIChtX3RyYWNrU291cmNlSW5mby0+ZmFjaW5n
KCkpIHsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6Tm9uZToKKyAgICAgICAgcmV0dXJuIGVt
cHR5QXRvbTsKKyAgICBjYXNlIFRyYWNrU291cmNlSW5mbzo6VXNlcjoKKyAgICAgICAgcmV0dXJu
IHVzZXJGYWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86OkVudmlyb25tZW50OgorICAg
ICAgICByZXR1cm4gZW52aXJvbm1lbnRGYWNpbmc7CisgICAgY2FzZSBUcmFja1NvdXJjZUluZm86
OkxlZnQ6CisgICAgICAgIHJldHVybiBsZWZ0RmFjaW5nOworICAgIGNhc2UgVHJhY2tTb3VyY2VJ
bmZvOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIHJpZ2h0RmFjaW5nOworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBlbXB0eUF0b207Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1NvdXJjZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBTb3VyY2VJbmZvX2gKKyNkZWZpbmUgU291cmNlSW5mb19oCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0Q2xpZW50LmgiCisjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU291cmNlSW5mbyA6
IHB1YmxpYyBSZWZDb3VudGVkPFNvdXJjZUluZm8+LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTb3VyY2VJbmZvPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxUcmFja1NvdXJjZUluZm8+KTsKKyAgICB2aXJ0dWFsIH5Tb3VyY2VJbmZvKCkgeyB9CisK
KyAgICBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX3RyYWNrU291cmNlSW5mby0+
aWQoKTsgfQorICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tT
b3VyY2VJbmZvLT5sYWJlbCgpOyB9CisgICAgQXRvbWljU3RyaW5nIGtpbmQoKSBjb25zdDsKKyAg
ICBBdG9taWNTdHJpbmcgZmFjaW5nKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgU291cmNlSW5m
byhQYXNzUmVmUHRyPFRyYWNrU291cmNlSW5mbz4pOworCisgICAgUmVmUHRyPFRyYWNrU291cmNl
SW5mbz4gbV90cmFja1NvdXJjZUluZm87Cit9OworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U291
cmNlSW5mbz4gPiBTb3VyY2VJbmZvVmVjdG9yOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBTb3VyY2VJbmZvX2gKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU291cmNlSW5mby5pZGwJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1NvdXJjZUluZm8uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgR09PR0xFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCisgICAgQ29uZGl0
aW9uYWw9TUVESUFfU1RSRUFNLAorXSBpbnRlcmZhY2UgU291cmNlSW5mbyB7CisgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGtpbmQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZhY2luZzsKK307CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAx
NTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEwNSwxNSArMTA1LDE1IEBACiAJCTA3Mjc3RTRBMTdEMDE4
Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTNFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlh
U291cmNlLmNwcCAqLzsgfTsKIAkJMDcyNzdFNEIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
Mjc3RTNGMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU291cmNlLmggKi87IH07CiAJCTA3Mjc3
RTRDMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQwMTdEMDE4Q0MwMDE1NTM0RCAv
KiBKU01lZGlhU3RyZWFtLmNwcCAqLzsgfTsKLQkJMDcyNzdFNEQxN0QwMThDQzAwMTU1MzREIC8q
IEpTTWVkaWFTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Mjc3RTQxMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggKi87IH07
CisJCTA3Mjc3RTREMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0MTE3RDAxOENDMDAx
NTUzNEQgLyogSlNNZWRpYVN0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTA3Mjc3RTRFMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3Ry
ZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDIxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJl
YW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgKi87IH07CiAJCTA3Mjc3RTRGMTdEMDE4Q0MwMDE1
NTM0RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQzMTdEMDE4Q0MwMDE1NTM0
RCAvKiBKU01lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAqLzsgfTsKIAkJMDcyNzdF
NTAxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NDE3RDAxOENDMDAxNTUz
NEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmNwcCAqLzsgfTsKLQkJMDcyNzdFNTExN0QwMThDQzAw
MTU1MzREIC8qIEpTTWVkaWFTdHJlYW1FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDUxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFT
dHJlYW1FdmVudC5oICovOyB9OworCQkwNzI3N0U1MTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRp
YVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzI3N0U0NTE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbUV2ZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTIx
N0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI3N0U0NjE3RDAxOENDMDAxNTUzNEQg
LyogSlNNZWRpYVN0cmVhbVRyYWNrLmNwcCAqLzsgfTsKLQkJMDcyNzdFNTMxN0QwMThDQzAwMTU1
MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDcxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJl
YW1UcmFjay5oICovOyB9OworCQkwNzI3N0U1MzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0
cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzI3N0U0NzE3RDAxOENDMDAxNTUzNEQgLyogSlNNZWRpYVN0cmVhbVRyYWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDcyNzdFNTQxN0Qw
MThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjc3RTQ4MTdEMDE4Q0MwMDE1NTM0
RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi87IH07Ci0JCTA3Mjc3RTU1MTdEMDE4
Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8q
IEpTTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggKi87IH07CisJCTA3Mjc3RTU1MTdEMDE4Q0MwMDE1
NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNzdFNDkxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmNwcCAqLzsgfTsKIAkJMDcyQ0E4NjExNkNCNERDMzAwOEFFMTMxIC8qIENh
cHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyQ0E4NjAxNkNCNERDMzAwOEFFMTMxIC8qIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMuY3BwICovOyB9OwogCQkwNzM1RUU2QTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQ
bGF5ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDczNUVFNjkwRjQwQzVFNDAwNEEyNjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMyLDYgKzEzMiwx
NyBAQAogCQkwNzNCRTM1MDE3RDE4MUE2MDAyQkQ0MzEgLyogUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
MjIxQkE4MTdDRjBBRDQwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwICov
OyB9OwogCQkwNzUzODYwMjE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4NjAwMTQ0
ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwICovOyB9OwogCQkwNzUzODYwMzE0
NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2Fj
aGVkVGV4dFRyYWNrLmggKi87IH07CisJCTA3NjMwNkQwMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTA3NjMwNkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDc2MzA2Q0UxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJh
Y2tTb3VyY2VzUmVxdWVzdC5jcHAgKi87IH07CisJCTA3NjMwNkQzMTdFMTQ3OEQwMDVBN0M0RSAv
KiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkNGMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRp
YVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZENzE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNl
SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzYzMDZENDE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5jcHAgKi87IH07CisJCTA3NjMw
NkQ4MTdFMTQ5RDAwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZENTE3RTE0OUNGMDA1QTdDNEUgLyogU291
cmNlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTA3NjMwNkRDMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc2MzA2REExN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXND
YWxsYmFjay5jcHAgKi87IH07CisJCTA3NjMwNkREMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjMwNkRCMTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwNzYzMDZFMDE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJ
bmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
NjMwNkRFMTdFMTYwODkwMDVBN0M0RSAvKiBKU1NvdXJjZUluZm8uY3BwICovOyB9OworCQkwNzYz
MDZFMTE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUgLyog
SlNTb3VyY2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMDc2MzA2RTMxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc2MzA2RTIxN0UyMkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdENsaWVudC5oICovOyB9OworCQkwNzYzMDZFNzE3RTI1MUVDMDA1QTdDNEUgLyog
SlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzMDZFNjE3RTI1MUVDMDA1QTdDNEUg
LyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi87IH07CiAJCTA3
Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcwMEY1MDJD
RiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsgfTsKIAkJMDc2OTcwODcxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Njk3MDg1MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmggKi87
IH07CiAJCTA3NkYwRDBFMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaCAqLzsgfTsKQEAgLTY1NTYsNiArNjU2NywxOSBAQAogCQkwNzNCRTM0NzE3RDE3RTdBMDAy
QkQ0MzEgLyogSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1Mzg2MDAxNDQ4OUU5ODAwQjc4
NDUyIC8qIENhY2hlZFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDYWNoZWRUZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFRleHRUcmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1U
cmFja1NvdXJjZXNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTA3NjMwNkNEMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291
cmNlc0NhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2Q0Ux
N0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbVRyYWNrU291cmNl
c1JlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZDRjE3RTE0
NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZENDE3RTE0OUNGMDA1QTdDNEUg
LyogU291cmNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
b3VyY2VJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2RDUxN0Ux
NDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzYzMDZE
NjE3RTE0OUNGMDA1QTdDNEUgLyogU291cmNlSW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU291cmNlSW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjMwNkRB
MTdFMTVGQjAwMDVBN0M0RSAvKiBKU01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVN0cmVhbVRyYWNr
U291cmNlc0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2
REIxN0UxNUZCMDAwNUE3QzRFIC8qIEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MzA2REUxN0Ux
NjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1NvdXJjZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzYzMDZERjE3RTE2MDg5MDA1QTdDNEUgLyogSlNTb3VyY2VJbmZvLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU291cmNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzYzMDZFMjE3RTIyQTQzMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwNzYzMDZFNjE3RTI1MUVDMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRy
YWNrU291cmNlc0NhbGxiYWNrQ3VzdG9tLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFja0N1c3RvbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNr
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODUxNDYzQUQ4NzAw
RjUwMkNGIC8qIFRleHRUcmFja0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGV4dFRyYWNrTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzZGMEQw
OTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzI0Miw2ICsx
MzI2NiwxMCBAQAogCQkJCTA3MjIxQjU3MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0cmVhbVRy
YWNrRXZlbnQuY3BwICovLAogCQkJCTA3MjIxQjU4MTdDRUMzMjcwMDg0OEU1MSAvKiBNZWRpYVN0
cmVhbVRyYWNrRXZlbnQuaCAqLywKIAkJCQkwNzIyMUI1OTE3Q0VDMzI3MDA4NDhFNTEgLyogTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmlkbCAqLywKKwkJCQkwNzYzMDZDQzE3RTE0NzhEMDA1QTdDNEUg
LyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNDYWxsYmFjay5oICovLAorCQkJCTA3NjMwNkNEMTdF
MTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmlkbCAqLywK
KwkJCQkwNzYzMDZDRTE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNS
ZXF1ZXN0LmNwcCAqLywKKwkJCQkwNzYzMDZDRjE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJl
YW1UcmFja1NvdXJjZXNSZXF1ZXN0LmggKi8sCiAJCQkJMDcyMjFCNUExN0NFQzMyNzAwODQ4RTUx
IC8qIE5hdmlnYXRvck1lZGlhU3RyZWFtLmNwcCAqLywKIAkJCQkwNzIyMUI1QjE3Q0VDMzI3MDA4
NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaCAqLywKIAkJCQkwNzIyMUI1QzE3Q0VDMzI3
MDA4NDhFNTEgLyogTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsICovLApAQCAtMTMyOTMsNiArMTMz
MjEsOSBAQAogCQkJCTA3MjIxQjhBMTdDRUMzMjcwMDg0OEU1MSAvKiBSVENTdGF0c1Jlc3BvbnNl
LmlkbCAqLywKIAkJCQkwNzIyMUI4QjE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVlc3RJ
bXBsLmNwcCAqLywKIAkJCQkwNzIyMUI4QzE3Q0VDMzI3MDA4NDhFNTEgLyogUlRDVm9pZFJlcXVl
c3RJbXBsLmggKi8sCisJCQkJMDc2MzA2RDQxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8u
Y3BwICovLAorCQkJCTA3NjMwNkQ1MTdFMTQ5Q0YwMDVBN0M0RSAvKiBTb3VyY2VJbmZvLmggKi8s
CisJCQkJMDc2MzA2RDYxN0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uaWRsICovLAogCQkJ
CTA3MjIxQjhEMTdDRUMzMjcwMDg0OEU1MSAvKiBVc2VyTWVkaWFDbGllbnQuaCAqLywKIAkJCQkw
NzIyMUI4RTE3Q0VDMzI3MDA4NDhFNTEgLyogVXNlck1lZGlhQ29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJMDcyMjFCOEYxN0NFQzMyNzAwODQ4RTUxIC8qIFVzZXJNZWRpYUNvbnRyb2xsZXIuaCAqLywK
QEAgLTEzMzE3LDYgKzEzMzQ4LDcgQEAKIAkJCQkwNzIyMUI5RTE3Q0YwQUQ0MDA4NDhFNTEgLyog
TWVkaWFTdHJlYW1Tb3VyY2UuY3BwICovLAogCQkJCTA3MjIxQjlGMTdDRjBBRDQwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbVNvdXJjZS5oICovLAogCQkJCTA3MjIxQkEwMTdDRjBBRDQwMDg0OEU1MSAv
KiBNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oICovLAorCQkJCTA3NjMwNkUyMTdFMjJB
NDMwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaCAqLywK
IAkJCQkwNzIyMUJBMTE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDQ29uZmlndXJhdGlvbi5oICovLAog
CQkJCTA3MjIxQkEyMTdDRjBBRDQwMDg0OEU1MSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCAq
LywKIAkJCQkwNzIyMUJBMzE3Q0YwQUQ0MDA4NDhFNTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVy
Q2xpZW50LmggKi8sCkBAIC0xMzM2OSw2ICsxMzQwMSw4IEBACiAJCQkJMDcyNzdFNDMxN0QwMThD
QzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oICovLAogCQkJ
CTA3Mjc3RTQ0MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuY3BwICovLAog
CQkJCTA3Mjc3RTQ1MTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtRXZlbnQuaCAqLywK
KwkJCQkwNzYzMDZEQTE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrLmNwcCAqLywKKwkJCQkwNzYzMDZEQjE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRp
YVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggKi8sCiAJCQkJMDcyNzdFNDYxN0QwMThDQzAw
MTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8sCiAJCQkJMDcyNzdFNDcxN0QwMThD
QzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1UcmFjay5oICovLAogCQkJCTA3Mjc3RTQ4MTdEMDE4
Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAgKi8sCkBAIC0xMzQwNyw2
ICsxMzQ0MSw4IEBACiAJCQkJMDc5NjlEQTgxN0QxNDE1MTAwN0ZGODQyIC8qIEpTUlRDU3RhdHNS
ZXBvcnQuaCAqLywKIAkJCQkwNzk2OURBOTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0c1Jl
c3BvbnNlLmNwcCAqLywKIAkJCQkwNzk2OURBQTE3RDE0MTUxMDA3RkY4NDIgLyogSlNSVENTdGF0
c1Jlc3BvbnNlLmggKi8sCisJCQkJMDc2MzA2REUxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNl
SW5mby5jcHAgKi8sCisJCQkJMDc2MzA2REYxN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5m
by5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBNZWRpYVN0cmVhbTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0yMjI0OSw2ICsyMjI4NSw3IEBACiAJCQkJRkQzMTYwOTUxMkIwMjZGNzAw
QzFBMzU5IC8qIEZGVENvbnZvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwOTcxMkIw
MjZGNzAwQzFBMzU5IC8qIEZGVEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4MTEy
MkI4QTNEMDAxRkQxRjcgLyogRmlsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MzA2RTMxN0Uy
MkE0MzAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODkzQzQ3QTcxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY2Qzc3MkIwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVD
aG9vc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODU2MjEyMkNBMDY0MDAzQUFCREEgLyog
RmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNTAyLDYgKzIyNTM5LDcgQEAKIAkJCQk5
NzdFMkRDRTEyRjBFMjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3OEFENjc1MTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4NzFEQzIzMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MU3R5bGVF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYzMDZERDE3RTE1RkIwMDA1QTdDNEUgLyog
SlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
M0Q0RTk3MzEzMEM3Q0ZFMDA3QkE1NDAgLyogSFRNTFN1bW1hcnlFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODcxREIyQjBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQjJBMEExNTBCRDYwMEIxMkE2OCAvKiBI
VE1MVGFibGVDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjgzNyw2ICsyMjg3NSw3
IEBACiAJCQkJOTM4RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBKU0hUTUxD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTFFNzE5MTE0RTEwMUU0MDA2MjZGOUQg
LyogSlNIVE1MQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQwMTdF
MTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDhCRjEyOUNBNTVDMDAwNkU1RDIgLyog
SlNIVE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2ODA4QjUwMTU5REFE
RkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIz
MDI5LDEyICsyMzA2OCwxNCBAQAogCQkJCUIyRkEzRDREMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NW
R0FuaW1hdGVkUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENEYwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHQW5pbWF0ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDUx
MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMDc2MzA2RTExN0UxNjA4OTAwNUE3QzRFIC8qIEpTU291cmNlSW5mby5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0
ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OTZFMzlFMTM5ODEzNkMwMDNFRTMyQSAv
KiBKU1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1
NTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJGQTNENTcwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0aW9u
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENTkwQUI3NUE2RjAwMEU1QUM0IC8q
IEpTU1ZHQ2lyY2xlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUIwQUI3NUE2
RjAwMEU1QUM0IC8qIEpTU1ZHQ2xpcFBhdGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
NzYzMDZEODE3RTE0OUQwMDA1QTdDNEUgLyogU291cmNlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjJGQTNENUQwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ29sb3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyRkEzRDVGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q2MTBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdDdXJzb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDExLDYg
KzI0NDUyLDcgQEAKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJp
YnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUYzNDgxMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjMwNkQz
MTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNTY5RDFCMEQ3RTJCODIwMDdDMzk4MyAvKiBXZWJTY3JpcHRPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUYzNDgzMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJT
Y3JpcHRPYmplY3RQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0FBQkQxQjE0RkEwOUQ1
MDA3NDU3QUUgLyogV2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjUwLDggKzI1Mjky
LDEwIEBACiAJCQkJODYxQzJFQTQxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9j
dW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3
NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
NzYzMDZEQzE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNlc0NhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBE
b2N1bWVudE9yZGVyZWRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0QTU5
NzAwRDVBN0QzIC8qIERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMw
NkQyMTdFMTQ3OEQwMDVBN0M0RSAvKiBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNEE0RjQ4QTkxNkIwREZDMDAwRURCQjI5IC8qIERvY3VtZW50
UnVsZVNldHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ2RTcxQUMxNjY4ODk5RDAwMzIwQzEz
IC8qIERvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDQ2
RjA0RTE3Qjk2RkJEMDA1NjQ3RjAgLyogSW50UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
NjE0Myw2ICsyNjE4Nyw3IEBACiAJCQkJN0EwRTc3MUUxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JEMTAxODM5
REEwMEJGOTM5RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQzVGQUVEMTBEQ0ZEOTAxMDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA3NjMwNkUwMTdFMTYwODkwMDVBN0M0RSAvKiBK
U1NvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5NjlEQjcxN0QxNDE1MTAwN0ZG
ODQyIC8qIEpTUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1
RkFFRTcwRENGREE2ODAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODY2MjlENDA5REEyQjQ4MDA5NjMzQTUgLyogSlNLZXlib2Fy
ZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYyNDYsNiArMjYyOTEsNyBAQAogCQkJCTUx
NEM3NjM4MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUI1OURENjlFMTE5MDJBNDIwMDdFOTY4NCAvKiBKU1NRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEMjMxNkUwQ0QyNjlFNzAwQzFGMTk0IC8q
IEpTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDc2MzA2RDcx
N0UxNDlDRjAwNUE3QzRFIC8qIFNvdXJjZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjU5
REQ2QTIxMTkwMkE1MjAwN0U5Njg0IC8qIEpTU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUI1OENFQjZFMTE5MTM2MUMwMDJBNjc5MCAvKiBKU1NRTFRy
YW5zYWN0aW9uU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTVENUFBNTExOTEzMUZDMDBC
Q0MzMTUgLyogSlNTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShyZXZpc2lv
biAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAko
d29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwyOCBAQCBjbGFzcyBET01TdHJpbmdMaXN0Owog
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHB0ci5nZXQoKSk7CiAgICAg
fQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWZWN0b3I8VD4gdmVjdG9yKQorICAgIHsKKyAgICAgICAgSlNDOjpKU0FycmF5KiBhcnJheSA9
IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgMCwgdmVjdG9yLnNpemUoKSk7CisgICAgICAgIAor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7ICsraSkKKyAgICAg
ICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpLCB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgdmVjdG9yW2ldKSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gYXJyYXk7CisgICAg
fQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBWZWN0b3I8UmVmUHRyPFQ+PiB2ZWN0b3IpCisgICAgeworICAgICAgICBKU0M6OkpTQXJyYXkq
IGFycmF5ID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwLCB2ZWN0b3Iuc2l6ZSgpKTsKKyAg
ICAgICAgCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytp
KQorICAgICAgICAgICAgYXJyYXktPnB1dERpcmVjdEluZGV4KGV4ZWMsIGksIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCB2ZWN0b3JbaV0uZ2V0KCkpKTsKKyAgICAgICAgCisgICAgICAgIHJldHVy
biBhcnJheTsKKyAgICB9CisgICAgCiAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICAgc3RydWN0
IEpTVmFsdWVUcmFpdHMgewogICAgICAgICBzdGF0aWMgaW5saW5lIEpTQzo6SlNWYWx1ZSBhcnJh
eUpTVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IFQmIHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCShyZXZpc2lvbiAxNTU3
OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNl
bnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OwogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlw
dG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQ7CitjbGFzcyBNZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ7CiAKIGNsYXNzIE1lZGlhU3RyZWFtQ2VudGVy
IHsKIHB1YmxpYzoKQEAgLTUyLDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBx
dWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlc1F1ZXJ5
Q2xpZW50PikgPSAwOwogCiAgICAgLy8gQ2FsbHMgZnJvbSB0aGUgRE9NIG9iamVjdHMgdG8gbm90
aWZ5IHRoZSBwbGF0Zm9ybQorICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNrU291
cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0TWVkaWFTdHJlYW1UcmFja0VuYWJsZWQoTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmlydHVh
bCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVk
aWFTdHJlYW1Db21wb25lbnQqKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1lZGlh
U3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQq
KSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RD
bGllbnQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzUmVxdWVzdENsaWVudF9oCisjZGVmaW5lIE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVz
dENsaWVudF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRyYWNrU291
cmNlSW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPFRyYWNrU291cmNlSW5mbz4geworcHVibGljOgor
ICAgIGVudW0gU291cmNlS2luZCB7CisgICAgICAgIE5vU291cmNlLAorICAgICAgICBBdWRpbywK
KyAgICAgICAgVmlkZW8KKyAgICB9OworICAgIAorICAgIGVudW0gVmlkZW9GYWNpbmdNb2RlIHsK
KyAgICAgICAgTm9uZSwKKyAgICAgICAgVXNlciwKKyAgICAgICAgRW52aXJvbm1lbnQsCisgICAg
ICAgIExlZnQsCisgICAgICAgIFJpZ2h0CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFRyYWNrU291cmNlSW5mbz4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFNvdXJjZUtp
bmQga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgVmlkZW9GYWNpbmdNb2RlIGZhY2lu
ZykKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVHJhY2tTb3VyY2VJbmZvKGlk
LCBraW5kLCBsYWJlbCwgZmFjaW5nKSk7CisgICAgfQorICAgIHZpcnR1YWwgflRyYWNrU291cmNl
SW5mbygpIHsgfQorCisgICAgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsg
fQorICAgIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAg
ICBTb3VyY2VLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBtX2tpbmQ7IH0KKyAgICBWaWRlb0Zh
Y2luZ01vZGUgZmFjaW5nKCkgY29uc3QgeyByZXR1cm4gbV9mYWNpbmc7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgVHJhY2tTb3VyY2VJbmZvKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFNvdXJjZUtp
bmQga2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgVmlkZW9GYWNpbmdNb2RlIGZhY2lu
ZykKKyAgICAgICAgOiBtX2lkKGlkKQorICAgICAgICAsIG1fa2luZChraW5kKQorICAgICAgICAs
IG1fbGFiZWwobGFiZWwpCisgICAgICAgICwgbV9mYWNpbmcoZmFjaW5nKQorICAgIHsKKyAgICB9
CisgICAgCisgICAgQXRvbWljU3RyaW5nIG1faWQ7CisgICAgU291cmNlS2luZCBtX2tpbmQ7Cisg
ICAgQXRvbWljU3RyaW5nIG1fbGFiZWw7CisgICAgVmlkZW9GYWNpbmdNb2RlIG1fZmFjaW5nOwor
fTsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPFRyYWNrU291cmNlSW5mbz4+IFRyYWNrU291cmNl
SW5mb1ZlY3RvcjsKKworCitjbGFzcyBNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGll
bnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGll
bnQ+IHsKK3B1YmxpYzoKKworICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVx
dWVzdENsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUmVxdWVzdChj
b25zdCBUcmFja1NvdXJjZUluZm9WZWN0b3ImKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0Jl
cnJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDE1
NTc5MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkv
TWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiAr
NjIsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnk6OnF1ZXJ5TQogICAgIGNs
aWVudC0+ZGlkQ29tcGxldGVRdWVyeShhdWRpb1NvdXJjZXMsIHZpZGVvU291cmNlcyk7CiB9CiAK
K2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50PikKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5OjpkaWRT
ZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0
cmVhbUNvbXBvbmVudCopCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVk
aWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgJKHJldmlzaW9uIDE1NTc5MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJC
bGFja0JlcnJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gTWVkaWFTdHJlYW1DZW50ZXIKICAgICB2aXJ0dWFsIHZvaWQgcXVlcnlNZWRpYVN0cmVh
bVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4pIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRTZXRNZWRpYVN0cmVhbVRyYWNrRW5hYmxlZChNZWRpYVN0cmVhbURl
c2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBkaWRBZGRNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlh
U3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1l
ZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25l
bnQqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFt
Q2VudGVyR1N0cmVhbWVyLmNwcAkocmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbUNl
bnRlckdTdHJlYW1lcjo6cXVlcnlNZQogICAgIGNsaWVudC0+ZGlkQ29tcGxldGVRdWVyeShhdWRp
b1NvdXJjZXMsIHZpZGVvU291cmNlcyk7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJNYWM6
OmdldE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0Q2xpZW50PikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgTWVk
aWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OmRpZFNldE1lZGlhU3RyZWFtVHJhY2tFbmFibGVkKE1l
ZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikKIHsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVh
bUNlbnRlckdTdHJlYW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCShyZXZp
c2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NiArNTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZWRpYVN0cmVhbUNlbnRlcgogICAgIHZpcnR1
YWwgdm9pZCBxdWVyeU1lZGlhU3RyZWFtU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtU291
cmNlc1F1ZXJ5Q2xpZW50PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGdldE1lZGlhU3Ry
ZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0
Q2xpZW50PikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldE1lZGlhU3RyZWFtVHJh
Y2tFbmFibGVkKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50Kikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRpZEFkZE1lZGlhU3RyZWFtVHJhY2soTWVkaWFT
dHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0
b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFT
dHJlYW1DZW50ZXJNYWMuY3BwCShyZXZpc2lvbiAxNTU3OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudC5oIgorI2luY2x1
ZGUgIk1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudC5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIApAQCAtNjEsNiAr
NjIsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6cXVlcnlNZWRpYVN0cgogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgTWVkaWFTdHJlYW1DZW50ZXJNYWM6OmdldE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1
ZXN0Q2xpZW50PikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKwogdm9pZCBNZWRpYVN0cmVhbUNlbnRlck1hYzo6ZGlkU2V0TWVkaWFTdHJlYW1UcmFja0Vu
YWJsZWQoTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuaAko
cmV2aXNpb24gMTU1NzkxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDgg
QEAgcHVibGljOgogCiAgICAgLy8gTWVkaWFTdHJlYW1DZW50ZXIKICAgICB2aXJ0dWFsIHZvaWQg
cXVlcnlNZWRpYVN0cmVhbVNvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZXNRdWVy
eUNsaWVudD4pIE9WRVJSSURFOworICAgIAorICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVh
bVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENs
aWVudD4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRNZWRpYVN0cmVhbVRyYWNr
RW5hYmxlZChNZWRpYVN0cmVhbURlc2NyaXB0b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkaWRBZGRNZWRpYVN0cmVhbVRyYWNrKE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW1EZXNjcmlwdG9y
KiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklERTsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1
NTkyOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTA5LTE2ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQ2hhbmdpbmcgdGhlIGRldmljZSBlbnVtZXJh
dGlvbiB0byBiZSBhc3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay1nZXRTb3VyY2VzLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA5LTE2ICBDaHJpcyBGbGVp
emFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFSSUEgdGFibGlzdCBp
cyBkaXNhYmxlZCwgYnV0IFZvaWNlT3ZlciBkb2VzIG5vdCBzcGVhayB0aGUgdGFicyBhcyBkaW1t
ZWQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1n
ZXRTb3VyY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0U291cmNlcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2st
Z2V0U291cmNlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAor
VGVzdHMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U291cmNlcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKGdvdFNvdXJjZXMx
KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIGdvdFNvdXJjZXMxIHdhcyBjYWxsZWQu
CitQQVNTIHNvdXJjZXMubGVuZ3RoID4gMCBpcyB0cnVlCitQQVNTIGdvdFN0cmVhbSB3YXMgY2Fs
bGVkLgorUEFTUyBNZWRpYVN0cmVhbVRyYWNrLmdldFNvdXJjZXMoZ290U291cmNlczIpOyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgZ290U291cmNlczIgd2FzIGNhbGxlZC4KK1BBU1Mg
c291cmNlcy5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1Mgc291cmNlc1swXS5pZCA9PT0gcHJldmlv
dXNJZCBpcyB0cnVlCitQQVNTIHNvdXJjZXNbMF0ubGFiZWwubGVuZ3RoID4gMCBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2stZ2V0U291cmNlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldFNvdXJjZXMuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICAgICAgPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBkZXNjcmlw
dGlvbigiVGVzdHMgTWVkaWFTdHJlYW1UcmFjazo6Z2V0U291cmNlcy4iKTsKKworICAgICAgICAg
ICAgdmFyIHNvdXJjZXMgPSBudWxsOworICAgICAgICAgICAgdmFyIHByZXZpb3VzSWQ7CisgICAg
ICAgICAgICB2YXIgdGltZXIgPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIp
OworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBlcnJvcigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOworICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0
VXNlck1lZGlhKGNvbnN0cmFpbnRzLCBjYWxsYmFjaykKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBwcmltZVRpbWVvdXQoIlRpbWVvdXQg
d2FpdGluZyBmb3Igd2Via2l0R2V0VXNlck1lZGlhKCkiKTsKKyAgICAgICAgICAgICAgICAgICAg
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShjb25zdHJhaW50cywgY2FsbGJhY2ssIGVycm9y
KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicgKyBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ290U291cmNlczIocykKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdnb3RTb3VyY2VzMiB3YXMgY2FsbGVk
LicpOworICAgICAgICAgICAgICAgIHNvdXJjZXMgPSBzOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgnc291cmNlcy5sZW5ndGggPiAwJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCdzb3VyY2VzWzBdLmlkID09PSBwcmV2aW91c0lkJyk7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCdzb3VyY2VzWzBdLmxhYmVsLmxlbmd0aCA+IDAnKTsKKworICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Z290U3RyZWFtKHMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgn
Z290U3RyZWFtIHdhcyBjYWxsZWQuJyk7CisKKyAgICAgICAgICAgICAgICBwcmltZVRpbWVvdXQo
IlRpbWVvdXQgd2FpdGluZyBmb3IgTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2VzKCkiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGROb3RUaHJvdygnTWVkaWFTdHJlYW1UcmFjay5nZXRTb3VyY2Vz
KGdvdFNvdXJjZXMyKTsnKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Z290U291cmNlczEocykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KCdnb3RTb3VyY2VzMSB3YXMgY2FsbGVkLicpOworICAgICAgICAgICAgICAgIHNvdXJjZXMgPSBz
OworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnc291cmNlcy5sZW5ndGggPiAwJyk7Cisg
ICAgICAgICAgICAgICAgcHJldmlvdXNJZCA9IHNvdXJjZXNbMF0uaWQ7CisKKyAgICAgICAgICAg
ICAgICBnZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9LCBnb3RTdHJlYW0pOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwcmltZVRpbWVvdXQobXNnKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7CisgICAg
ICAgICAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0ZXN0RmFpbGVkKG1z
Zyk7IGZpbmlzaEpTVGVzdCgpIH0sIDQwMDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBwcmltZVRpbWVvdXQoIlRpbWVvdXQgd2FpdGluZyBmb3IgTWVkaWFTdHJlYW1UcmFjay5nZXRT
b3VyY2VzKCkiKTsKKyAgICAgICAgICAgIHNob3VsZE5vdFRocm93KCdNZWRpYVN0cmVhbVRyYWNr
LmdldFNvdXJjZXMoZ290U291cmNlczEpOycpOworCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>