<?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>128143</bug_id>
          
          <creation_ts>2014-02-03 16:55:53 -0800</creation_ts>
          <short_desc>Add support for AVKit fullscreen to WebKit2</short_desc>
          <delta_ts>2014-02-18 17:22:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>976116</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-03 16:55:53 -0800</bug_when>
    <thetext>Add support for AVKit fullscreen to WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976133</commentid>
    <comment_count>1</comment_count>
      <attachid>223052</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-03 17:54:51 -0800</bug_when>
    <thetext>Created attachment 223052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976340</commentid>
    <comment_count>2</comment_count>
      <attachid>223052</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-02-04 07:27:53 -0800</bug_when>
    <thetext>Comment on attachment 223052
Patch

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

&gt; Source/WebCore/ChangeLog:21
&gt; +        * WebCore.exp.in:
&gt; +        * WebCore.xcodeproj/project.pbxproj:
&gt; +        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
&gt; +        (-[WebVideoFullscreenController exitFullscreen]):
&gt; +        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
&gt; +        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
&gt; +        (WebVideoFullscreenInterfaceAVKit::enterFullscreenCompletion):
&gt; +        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
&gt; +        (WebVideoFullscreenInterfaceAVKit::exitFullscreenCompletion):
&gt; +        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
&gt; +        * platform/ios/WebVideoFullscreenModelMediaElement.h:

Nit: I think it is helpful to have per-method comments in ChangeLog files.

&gt; Source/WebKit2/ChangeLog:15
&gt; +        * DerivedSources.make:
&gt; +        * UIProcess/WebPageProxy.cpp:
&gt; +        (WebKit::WebPageProxy::WebPageProxy):
&gt; +        (WebKit::WebPageProxy::videoFullscreenManager):
&gt; +        * UIProcess/WebPageProxy.h:

Ditto.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:67
&gt;      void setVideoLayerID(uint32_t videoContextID) override {UNUSED_PARAM(videoContextID);};

Nit: remove &quot;videoContextID&quot; and you won&apos;t need the UNUSED_PARAM() macro.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:69
&gt; +    void enterFullscreenCompletion(std::function&lt;void()&gt; completion);

Nit: &quot;completion&quot; adds no information, so it should be removed.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:71
&gt; +    void exitFullscreenCompletion(std::function&lt;void()&gt; completion);

Ditto.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:302
&gt; -    enterFullscreen(nullptr);
&gt; +    exitFullscreenCompletion(nullptr);

Do you really want to call *exit*FullscreenCompletion here?

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.cpp:93
&gt; +
&gt; +    

Nit: extra blank line.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.h:51
&gt; +    void setVideoLayerID(unsigned videoContextID) override;

Nit: &quot;videoContextID&quot; adds no information, so it should be removed.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.h:57
&gt; +    void seekToTime(double time) override;

Nit: &quot;time&quot; adds no information, so it should be removed.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.h:60
&gt; +    WebPageProxy* m_page;

You should use a reference instead of a pointer, the page can never be NULL.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:52
&gt; +#include &quot;WebVideoFullscreenManager.h&quot;

Nit: This include is only needed on iOS so you can include it conditionally.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:90
&gt; +#include &quot;WebVideoFullscreenManager.h&quot;

Ditto.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:37
&gt; +#include &lt;WebCore/HTMLMediaElement.h&gt;
&gt; +#include &lt;WebCore/HTMLVideoElement.h&gt;

Nit: HTMLVideoElement.h includes HTMLMediaElement.h so you don&apos;t need to include both.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:44
&gt; +PassRefPtr&lt;WebVideoFullscreenManager&gt; WebVideoFullscreenManager::create(WebPage* page)

The page can never be NULL so you should use a reference instead of a pointer.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:76
&gt; +void WebVideoFullscreenManager::exitFullscreenForNode(Node* node)

This won&apos;t build in the Release configuration, &quot;node&quot; is unused.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:100
&gt; +

Nit: extra blank line.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:103
&gt; +void WebVideoFullscreenManager::setVideoLayer(PlatformLayer* videoLayer)

This won&apos;t build in the Release configuration, &quot;videoLayer&quot; is unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976538</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-04 15:32:44 -0800</bug_when>
    <thetext>&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:69
&gt; &gt; +    void enterFullscreenCompletion(std::function&lt;void()&gt; completion);
&gt; 
&gt; Nit: &quot;completion&quot; adds no information, so it should be removed.
&gt; 

I added &quot;completion&quot; to disambiguate the overloaded functions. The code generated from .messages.in contains a function pointer passed to a template method and the compiler can&apos;t infer what the type of the function pointer is when it is overloaded.

Side note: when you have a function pointer to a member that is overloaded, who do you specify which member you want a pointer to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976576</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-04 16:44:54 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:69
&gt; &gt; &gt; +    void enterFullscreenCompletion(std::function&lt;void()&gt; completion);
&gt; &gt; 
&gt; &gt; Nit: &quot;completion&quot; adds no information, so it should be removed.
&gt; &gt; 
&gt; 
&gt; I added &quot;completion&quot; to disambiguate the overloaded functions. The code generated from .messages.in contains a function pointer passed to a template method and the compiler can&apos;t infer what the type of the function pointer is when it is overloaded.
&gt; 
&gt; Side note: when you have a function pointer to a member that is overloaded, who do you specify which member you want a pointer to?

Oh! You meant the parameter, not the function name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976648</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-02-04 21:07:06 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:69
&gt; &gt; &gt; &gt; +    void enterFullscreenCompletion(std::function&lt;void()&gt; completion);
&gt; &gt; &gt; 
&gt; &gt; &gt; Nit: &quot;completion&quot; adds no information, so it should be removed.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; I added &quot;completion&quot; to disambiguate the overloaded functions. The code generated from .messages.in contains a function pointer passed to a template method and the compiler can&apos;t infer what the type of the function pointer is when it is overloaded.
&gt; &gt; 
&gt; &gt; Side note: when you have a function pointer to a member that is overloaded, who do you specify which member you want a pointer to?
&gt; 
&gt; Oh! You meant the parameter, not the function name.

👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976757</commentid>
    <comment_count>6</comment_count>
      <attachid>223052</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-02-05 08:57:50 -0800</bug_when>
    <thetext>Comment on attachment 223052
Patch

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

&gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:69
&gt;&gt; +    void enterFullscreenCompletion(std::function&lt;void()&gt; completion);
&gt; 
&gt; Nit: &quot;completion&quot; adds no information, so it should be removed.

If I may bike shed a bit, the name of this function could be improved. It sounds like you are entering fullscreen completion, not entering fullscreen with a callback.

I&apos;d suggest
void enterFullscreenWithCompletionCallback(std::function&lt;void()&gt;);

&gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h:71
&gt;&gt; +    void exitFullscreenCompletion(std::function&lt;void()&gt; completion);
&gt; 
&gt; Ditto.

Similarly here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977196</commentid>
    <comment_count>7</comment_count>
      <attachid>223291</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-05 19:15:16 -0800</bug_when>
    <thetext>Created attachment 223291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977339</commentid>
    <comment_count>8</comment_count>
      <attachid>223291</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-02-06 07:52:49 -0800</bug_when>
    <thetext>Comment on attachment 223291
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Rename overloaded exitFullscreen to exitFullscreenCompletionHandler.
&gt; +        Rename overloaded enterFullscreen to enterFullscreenCompletionHandler.

Nit: you renamed them enterFullscreenWithCompletionHandler and exitFullscreenWithCompletionHandler.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:91
&gt; +#include &quot;WebVideoFullscreenManagerProxy.h&quot;
&gt; +#include &quot;WebVideoFullscreenManagerProxyMessages.h&quot;

Nit: these are both iOS-only so they don&apos;t need to be included by all ports.

&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:2303
&gt; +		3F418EF81887BD97002795FD /* WebVideoFullscreenManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenManagerProxyMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };

WebVideoFullscreenManagerProxyMessages.h isn&apos;t in the patch, did you forget to add it?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:54
&gt; +#if PLATFORM(IOS)
&gt; +#include &quot;WebVideoFullscreenManager.h&quot;
&gt; +#endif

Nit: a conditionally included header should be after the unconditional headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977456</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-06 11:37:51 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:2303
&gt; &gt; +		3F418EF81887BD97002795FD /* WebVideoFullscreenManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenManagerProxyMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; WebVideoFullscreenManagerProxyMessages.h isn&apos;t in the patch, did you forget to add it?
&gt; 

Nope. It and WebVideoFullscreenManagerMessages.h are derived sources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977459</commentid>
    <comment_count>10</comment_count>
      <attachid>223291</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-06 11:46:54 -0800</bug_when>
    <thetext>Comment on attachment 223291
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h:33
&gt; +#include &lt;WebCore/HTMLMediaElement.h&gt;

We try to avoid including files in headers. Why this include here and not in the impl?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2971
&gt; +WebVideoFullscreenManagerProxy* WebPageProxy::videoFullscreenManager()

This should return a reference if it can never be null.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.cpp:29
&gt; +#if PLATFORM(IOS)

This file should live in UIProcess/ios if it&apos;s iOS-only.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.cpp:57
&gt; +void WebVideoFullscreenManagerProxy::setVideoLayerID(unsigned videoContextID)

It&apos;s called setVideoLayerID but sets a videoContextID. Which is it?

Can we use a stronger type than &quot;unsigned&quot;?

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.h:42
&gt; +class WebVideoFullscreenManagerProxy : public WebCore::WebVideoFullscreenInterfaceAVKit, public WebCore::WebVideoFullscreenModel, public IPC::MessageReceiver {

I think IPC::MessageReceiver can be privately inherited.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.h:58
&gt; +    void setVideoLayerID(unsigned) override;
&gt; +    
&gt; +    void requestExitFullScreen() override;
&gt; +    void play() override;
&gt; +    void pause() override;
&gt; +    void togglePlayState() override;
&gt; +    void seekToTime(double) override;
&gt; +    void didExitFullscreen() override;

Please use &apos;virtual&apos; for these.

&gt; Source/WebKit2/UIProcess/WebVideoFullscreenManagerProxy.h:60
&gt; +    WebPageProxy* m_page;

Can this be a reference?

&gt;&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:2303
&gt;&gt; +		3F418EF81887BD97002795FD /* WebVideoFullscreenManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenManagerProxyMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
&gt; 
&gt; WebVideoFullscreenManagerProxyMessages.h isn&apos;t in the patch, did you forget to add it?

It&apos;s generated.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:210
&gt; +    WebVideoFullscreenManager* videoFullscreenManager();

Can this return a reference?

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:28
&gt; +#if PLATFORM(IOS)

This file should live in an /ios directory.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.cpp:51
&gt; +    setWebVideoFullscreenInterface(this);

Seems odd to call this here. Also odd that it&apos;s never unset in the dtor.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.h:28
&gt; +#if PLATFORM(IOS)

This file should live in an /ios directory.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.h:51
&gt; +class WebVideoFullscreenManager : public WebCore::WebVideoFullscreenModelMediaElement, public WebCore::WebVideoFullscreenInterface, public IPC::MessageReceiver {

It&apos;s weird that the existing WebVideoFullscreenModelMediaElement doesn&apos;t inherit from HTMLMediaElement.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.h:58
&gt; +    bool supportsFullscreen(const WebCore::Node*);

const method?

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.h:64
&gt; +    bool operator==(const EventListener&amp; rhs) override {return static_cast&lt;WebCore::EventListener*&gt;(this) == &amp;rhs;}

Need spaces inside the {}

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.h:73
&gt; +    void setDuration(double) override;
&gt; +    void setCurrentTime(double currentTime, double anchorTime) override;
&gt; +    void setRate(bool isPlaying, float playbackRate) override;
&gt; +    void setVideoDimensions(bool hasVideo, float width, float height) override;
&gt; +    void setVideoLayer(PlatformLayer*) override;
&gt; +    void setVideoLayerID(uint32_t) override;
&gt; +    void enterFullscreen() override;
&gt; +    void exitFullscreen() override;

virtual please.

&gt; Source/WebKit2/WebProcess/WebVideoFullscreenManager.h:75
&gt; +    RefPtr&lt;WebPage&gt; m_page;

Seems very odd for this to retain Page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977460</commentid>
    <comment_count>11</comment_count>
      <attachid>223358</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-06 11:50:11 -0800</bug_when>
    <thetext>Created attachment 223358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977594</commentid>
    <comment_count>12</comment_count>
      <attachid>223400</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-06 16:15:51 -0800</bug_when>
    <thetext>Created attachment 223400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977649</commentid>
    <comment_count>13</comment_count>
      <attachid>223400</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-06 17:30:55 -0800</bug_when>
    <thetext>Comment on attachment 223400
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:60
&gt; +    WebPageProxy* m_page;

Can this be a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977678</commentid>
    <comment_count>14</comment_count>
      <attachid>223400</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 18:15:05 -0800</bug_when>
    <thetext>Comment on attachment 223400
Patch

Clearing flags on attachment: 223400

Committed r163600: &lt;http://trac.webkit.org/changeset/163600&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977679</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 18:15:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982181</commentid>
    <comment_count>16</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-02-18 17:22:12 -0800</bug_when>
    <thetext>*** Bug 127302 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223052</attachid>
            <date>2014-02-03 17:54:51 -0800</date>
            <delta_ts>2014-02-05 19:15:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128143-20140203175456.patch</filename>
            <type>text/plain</type>
            <size>52023</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjVjMDAzNTY3ZGM4NjVk
ODk0NzU1NDg3MzhhMmY4NTMxNzJiMTNjOS4uZjNkMDQxNmUyOGM0ODEyOGRhODUzMGFmNjU3YzQx
YzVhMTY3Y2RhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAyLTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QVZLaXQgZnVsbHNjcmVlbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgb3ZlcmxvYWRlZCBmdW5jdGlvbnMgdG8gcHJldmVu
dCBhbWJpZ3VvdXMgdGVtcGxhdGUgcGFyYW1ldGVyCisgICAgICAgIGNvbXBpbGUgZXJyb3IgaW4g
Z2VuZXJhdGVkIGNvZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlciBleGl0RnVsbHNjcmVlbl0pOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAg
KFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5Db21wbGV0
aW9uKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4
aXRGdWxsc2NyZWVuQ29tcGxldGlvbik6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oOgorCiAyMDE0LTAyLTAzICBKaW53b28g
U29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2Vk
IGNvZGUgaW4gQ1NTUGFyc2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYyYmQ2NjM4ZWI1YTI4MmEwN2Qx
OGY3MDM1MTQ0YjI2NTRjNTMyNzMuLmVjNzI0NGQ3YjE3OTI0ODY3OWQwYWQ2NDE4Njc0YzViOWI0
NzVmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxNC0wMi0wMyAgSmVyZW15IEpv
bmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEFWS2l0
IGZ1bGxzY3JlZW4gdG8gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI4MTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgYW5kIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSB0aGF0IGltcGxlbWVudCAKKyAgICAgICAgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWwgYW5kIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS4KKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Ojp+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVySUQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVs
bFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6cGxheSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6cGF1c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OnRvZ2dsZVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5v
ZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlckZ1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0RHVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFJhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcklE
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhp
dEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorCiAyMDE0LTAyLTAzICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IFdLMiB0byByZWFkIGZyb20g
TlNVc2VyRGVmYXVsdHMgd2hlbiBpdCBoYXMgbm8gcHJlZnMgaWRlbnRpZmllcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCBkZmNhZjU1MDcwZGM2OWY0OWY0MjE4Y2MyZTQ2Y2ZjYmM4NGFlNjRiLi5k
OGFlZDZkMGJlODZiMDNkM2EzNDJmMjdkMTE5MzVmMDkwY2RiNTc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgpAQCAtMzA0MCwzNiArMzA0MCw2MSBAQCBfX1pON1dlYkNvcmUyOVNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlTWFjNmNyZWF0ZUVSTlNfMTNTY3JvbGxpbmdUcmVlRXkKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFZJREVPKQorLm9iamNfY2xhc3NfbmFtZV9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyCitfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXMzYWRkRWRkCitfX1pON1dlYkNvcmUxMnRv
VGltZVJhbmdlc0VOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MTJlbmRTY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTRiZWdpblNj
cnViYmluZ0V2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNGV4aXRGdWxsc2NyZWVu
RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDE1Y2xlYXJNZWRpYUNhY2hlRXYKK19f
Wk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDE1dG9nZ2xlUGxheVN0YXRlRXYKK19fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE2cmV0dXJuVG9SZWFsdGltZUV2CiBfX1pON1dlYkNvcmUx
NkhUTUxNZWRpYUVsZW1lbnQyMGdldFNpdGVzSW5NZWRpYUNhY2hlRVJOM1dURjZWZWN0b3JJTlMx
XzZTdHJpbmdFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMTZIVE1M
TWVkaWFFbGVtZW50MjJjbGVhck1lZGlhQ2FjaGVGb3JTaXRlRVJLTjNXVEY2U3RyaW5nRQogX19a
TjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NHBsYXlFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVk
aWFFbGVtZW50NXBhdXNlRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDhzZXRNdXRl
ZEViCitfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCitfX1pOSzdXZWJDb3JlMTBUaW1lUmFuZ2VzN25lYXJl
c3RFZAogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDExY3VycmVudFRpbWVFdgorX19a
Tks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyaXNGdWxsc2NyZWVuRXYKK19fWk5LN1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQxMnBsYXliYWNrUmF0ZUV2CiBfX1pOSzdXZWJDb3JlMTZIVE1M
TWVkaWFFbGVtZW50MTNwbGF0Zm9ybU1lZGlhRXYKK19fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVs
ZW1lbnQ1ZW5kZWRFdgogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVtdXRlZEV2Citf
X1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NnBhdXNlZEV2CiBfX1pOSzdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50NnZvbHVtZUV2CiBfX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
N2NhblBsYXlFdgotX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEycGxheWJhY2tSYXRl
RXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ4ZHVyYXRpb25FdgotX19aTjdXZWJD
b3JlMTZIVE1MTWVkaWFFbGVtZW50MTZyZXR1cm5Ub1JlYWx0aW1lRXYKLV9fWk5LN1dlYkNvcmUx
NkhUTUxNZWRpYUVsZW1lbnQxMmlzRnVsbHNjcmVlbkV2Ci1fX1pON1dlYkNvcmUxMFRpbWVSYW5n
ZXMzYWRkRWRkCi1fX1pON1dlYkNvcmUxMnRvVGltZVJhbmdlc0VOM0pTQzdKU1ZhbHVlRQotX19a
TjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQ
TlNfMTBUaW1lUmFuZ2VzRQotX19aTks3V2ViQ29yZTEwVGltZVJhbmdlczduZWFyZXN0RWQKICNl
bmRpZgogCi0jaWYgRU5BQkxFKFZJREVPKQotX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVu
dDVlbmRlZEV2Ci1fX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NnBhdXNlZEV2Ci0ub2Jq
Y19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKElPUykKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQxMXNldER1cmF0aW9uRWQKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQxM3NldFZpZGVvTGF5ZXJFUDdDQUxheWVyCitfX1pON1dlYkNvcmUz
MldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTRleGl0RnVsbHNjcmVlbkV2CitfX1pO
N1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTRzZXRDdXJyZW50VGlt
ZUVkZAorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE1ZW50
ZXJGdWxsc2NyZWVuRXYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxOHNldFZpZGVvRGltZW5zaW9uc0ViZmYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQyNnNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsRVBOU18yM1dl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsRQorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDdzZXRSYXRlRWJmCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0QzJFdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bE1lZGlhRWxlbWVudDEwc2Vla1RvVGltZUVkCitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsTWVkaWFFbGVtZW50MTFoYW5kbGVFdmVudEVQTlNfMjJTY3JpcHRFeGVjdXRpb25D
b250ZXh0RVBOU181RXZlbnRFCitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50MTVzZXRNZWRpYUVsZW1lbnRFUE5TXzE2SFRNTE1lZGlhRWxlbWVudEUKK19f
Wk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxNXRvZ2dsZVBs
YXlTdGF0ZUV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVt
ZW50MTdkaWRFeGl0RnVsbHNjcmVlbkV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsTWVkaWFFbGVtZW50MjFyZXF1ZXN0RXhpdEZ1bGxTY3JlZW5FdgorX19aTjdXZWJDb3Jl
MzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDRwbGF5RXYKK19fWk43V2ViQ29y
ZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ1cGF1c2VFdgorX19aTjdXZWJD
b3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudEMyRXYKK19fWk5LN1dlYkNv
cmUxNkhUTUxWaWRlb0VsZW1lbnQxMHZpZGVvV2lkdGhFdgorX19aTks3V2ViQ29yZTE2SFRNTFZp
ZGVvRWxlbWVudDExdmlkZW9IZWlnaHRFdgorX19aVFZON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0RQorX19aVFZON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50RQorX19aVGhuOF9ON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50MTFoYW5kbGVFdmVudEVQTlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0
RVBOU181RXZlbnRFCiAjZW5kaWYKIAorCiAjaWYgRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEp
CiBfX1pON1dlYkNvcmU0UGFnZTExc2V0Vmlld01vZGVFTlMwXzhWaWV3TW9kZUUKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDA0ZmZhNDc2NzJlMWUwZjU4NTRmMzA4YzdiM2EzOGVmYzAxYTJlZDAuLjI1ODNjMTU1ZjA1
NDBkNGJhMzdlZDVlOThhZTA4YWZiNTBkNzY3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5MDYsNyArNTkwNiw3IEBACiAJ
CUU0NDYxM0E3MENENjMzMTAwMEZBREE3NSAvKiBIVE1MU291cmNlRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5NTBDRDYzMzEw
MDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuY3BwICovOyB9OwogCQlFNDQ2MTNBODBDRDYz
MzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzk2MENENjMzMTAwMEZBREE3NSAvKiBIVE1M
U291cmNlRWxlbWVudC5oICovOyB9OwogCQlFNDQ2MTNBQTBDRDYzMzEwMDBGQURBNzUgLyogSFRN
TFZpZGVvRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDQ2MTM5ODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAg
Ki87IH07Ci0JCUU0NDYxM0FCMENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5OTBD
RDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oICovOyB9OworCQlFNDQ2MTNBQjBD
RDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxWaWRlb0VsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFNDQ2MTNBRDBDRDYzMzEwMDBGQURBNzUgLyogTWVkaWFFcnJvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOUIwQ0Q2MzMx
MDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCAqLzsgfTsKIAkJRTQ0NjEzQUYwQ0Q2MzMxMDAwRkFE
QTc1IC8qIFRpbWVSYW5nZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQ0NjEzOUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuY3BwICov
OyB9OwogCQlFNDQ2MTNCMDBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOUUwQ0Q2MzMxMDAw
RkFEQTc1IC8qIFRpbWVSYW5nZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KaW5kZXggZmUxMzlh
YjU5MzFiOTIxNDMwNjVkZDcxMDU3ZGZhMWZkYjk1MzZjNi4uNzdiOGUxNWE1NmYwYTgyYmE0NjU2
YjgzYTQyYjFkZmM4OGY2OGY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBA
IC04Miw3ICs4Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogewogICAgIFJldGFpblB0
cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyPiBzdHJvbmdTZWxmKHNlbGYpOwogICAgIAot
ICAgIF9pbnRlcmZhY2UtPmV4aXRGdWxsc2NyZWVuKFtzdHJvbmdTZWxmXXsKKyAgICBfaW50ZXJm
YWNlLT5leGl0RnVsbHNjcmVlbkNvbXBsZXRpb24oW3N0cm9uZ1NlbGZdewogICAgICAgICBXZWJU
aHJlYWRSdW4oW3N0cm9uZ1NlbGZdewogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X21vZGVsLT5z
ZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBzdHJvbmdTZWxmLT5faW50ZXJm
YWNlLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbChudWxscHRyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgKaW5kZXggMTYwMjNhYTRmYzZlMWMzMGI3ZjJmMGIzMTU1ODZjMjhmMjYxOGY0
OC4uZTY0OTI4ZjAzZmMyNzg4ZjE4YzhmN2I1MzFiMjhlYTFjNjZjMjFkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmgKQEAgLTY2LDkgKzY2LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0xh
eWVySUQodWludDMyX3QgdmlkZW9Db250ZXh0SUQpIG92ZXJyaWRlIHtVTlVTRURfUEFSQU0odmlk
ZW9Db250ZXh0SUQpO307CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbik7
CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Db21wbGV0aW9uKHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBjb21wbGV0aW9uKTsKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBleGl0RnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbik7Cisg
ICAgdm9pZCBleGl0RnVsbHNjcmVlbkNvbXBsZXRpb24oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNv
bXBsZXRpb24pOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IDhl
YzlkNDU2Mzk1MWUzNzk5NzUyOWE1M2U3Y2M0Y2JkZGY0Nzc5YzIuLjExM2JhNmRiNTJiZGE0NDQy
MDA1MWM4MDkzODYwMzQwMjUwZjU4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0K
QEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqIHZpZGVvTGF5ZXIpCiAgICAgbV9wbGF5ZXJD
b250cm9sbGVyLmdldCgpLnBsYXllckxheWVyID0gKENBTGF5ZXI8QVZQbGF5ZXJMYXllcj4qKXZp
ZGVvTGF5ZXI7CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVu
dGVyRnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbikKK3ZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbkNvbXBsZXRpb24o
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb24pCiB7CiAgICAgUmVmUHRyPFdlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMpOwogICAgIApAQCAtMjk5
LDEwICsyOTksMTAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50
ZXJGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb20KIAogdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCkKIHsKLSAgICBlbnRlckZ1
bGxzY3JlZW4obnVsbHB0cik7CisgICAgZXhpdEZ1bGxzY3JlZW5Db21wbGV0aW9uKG51bGxwdHIp
OwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNj
cmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbikKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuQ29tcGxldGlvbihzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gY29tcGxldGlvbikKIHsKICAgICBtX3BsYXllckNvbnRyb2xsZXIuY2xlYXIo
KTsKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1Ro
aXModGhpcyk7CkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXAKIAog
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oKQog
ewotICAgIGV4aXRGdWxsc2NyZWVuKG51bGxwdHIpOworICAgIGV4aXRGdWxsc2NyZWVuQ29tcGxl
dGlvbihudWxscHRyKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5oCmluZGV4IGMzYzU4ZjAxOWExOWFmYmUxOGIyYWRlZjk2ZWIzZWYyMjc4NmI1NGUuLjY5Njhm
NTg4ODQ4M2JmN2I0M2ZjOGI4NzFlODg4N2RmOGE4YTkwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bE1lZGlhRWxlbWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogCiAj
aW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IVE1M
TWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGMzOGRhMTcxYTI2ZjEz
NTM5MDRmNTFjYTcxNmRkMTkxMDQ0NmIyM2EuLjA4YTgzNDhmMjNiNjVmMzM4ZmMyMTJjYzdhZTVm
MWUwNzAwZjc1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI2LDYgKzEy
Niw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
IFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJSZXNvdXJjZUxv
YWRlciBcCisgICAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciBcCisgICAgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5IFwKICMKIAogU0NSSVBUUyA9IFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYmY1OWVjNjdmNDdhNWY1YzRiMjk5YjhhYmJh
YWJkOWVkMzMzMmY2OS4uNjc2NmUzNjc0MThmZTRmNDZmZmMwNjIyNjk2ODg4MTEyNWQ1YjY3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg1LDYgKzg1
LDggQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm90ZWN0
aW9uU3BhY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29udHJv
bGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RyYWdTZXNzaW9uLmg+CkBAIC05NCw4ICs5Niw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAjaW5jbHVkZSAiUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgpAQCAtMzQ4LDYgKzM1MCw5IEBAIFdlYlBh
Z2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcywgV2ViCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIG1fZnVs
bFNjcmVlbk1hbmFnZXIgPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUoKnRoaXMs
IG1fcGFnZUNsaWVudC5mdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KCkpOwogI2VuZGlmCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKCp0aGlzKTsKKyNlbmRpZgogI2lmIEVOQUJM
RShWSUJSQVRJT04pCiAgICAgbV92aWJyYXRpb24gPSBXZWJWaWJyYXRpb25Qcm94eTo6Y3JlYXRl
KHRoaXMpOwogI2VuZGlmCkBAIC0yOTUzLDYgKzI5NTgsMTMgQEAgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eSogV2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcigpCiAgICAgcmV0dXJuIG1f
ZnVsbFNjcmVlbk1hbmFnZXIuZ2V0KCk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJ
T1MpCitXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6dmlkZW9G
dWxsc2NyZWVuTWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5nZXQoKTsKK30KKyNlbmRpZgogCiAvLyBCYWNrRm9yd2FyZExpc3QKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDhlZmZhYmYzZTUxNDg2ZGVjMzRjOGVmNDE2
YTVhNjBiMzFlZDJjOTMuLmZmYWE3YzQyMTNiNmEyOTk5YmYwNDg2ZGRkNWQwMWMzYzgxYmFmMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0Nyw2ICsxNDcs
NyBAQCBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJD
b250ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNsYXNz
IFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CkBAIC0zNjAsNiArMzYxLDkgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5KiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQor
ICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogdmlkZW9GdWxsc2NyZWVuTWFuYWdl
cigpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGluaXRp
YWxpemVDb250ZXh0TWVudUNsaWVudChjb25zdCBXS1BhZ2VDb250ZXh0TWVudUNsaWVudEJhc2Uq
KTsKQEAgLTEyMDksNiArMTIxMyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogICAgIFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3JlZW5N
YW5hZ2VyOwogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJlZlB0cjxXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKKyNlbmRpZgog
CiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICAgICBSZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+IG1f
dmlicmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDI1YjRjZDJmYzk1
ZGVlZTcwN2IzZTRmNDI5ZTQ2MDVjYTBmYzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAKQEAgLTAs
MCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKwor
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgor
I2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1Bhc3NSZWZQdHI8V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkocGFnZSkpOworfQorCitXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eShXZWJQ
YWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UoJnBhZ2UpCit7CisgICAgbV9wYWdlLT5wcm9j
ZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSwgKnRoaXMp
OworICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKHRoaXMpOworfQorCitXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKQor
eworICAgIG1fcGFnZS0+cHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6c2V0VmlkZW9MYXllcklEKHVuc2lnbmVkIHZpZGVvQ29udGV4dElEKQoreworICAgIC8vIFRP
RE86IGZpbmQgYSByZWFsIHZpZGVvIGxheWVyIG9yIG1ha2Ugb25lIHRoYXQgbWVldHMgdGhlIG5l
Y2Vzc2FyeSByZXF1aXJlbWVudHMuCisgICAgc2V0VmlkZW9MYXllcihudWxscHRyKTsKK30KKwor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVl
bigpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAg
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cGxheSgpCit7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpQbGF5KCksIG1f
cGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnBhdXNlKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OlBhdXNlKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnRvZ2dsZVBsYXlTdGF0ZSgpCit7Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpUb2dn
bGVQbGF5U3RhdGUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2Vla1RvVGltZShkb3VibGUgdGltZSkKK3sKKyAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNlZWtUb1Rp
bWUodGltZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsc2NyZWVuKCkKK3sKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZEV4aXRGdWxsc2NyZWVu
KCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ZGVhMjRlYjM1MjdjYTEzYWUyMGZjMGY4YWRmMDYxMzlmMDMwNmM5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eV9oCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oPgorI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7
CisKK2NsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCwgcHVibGljIFdlYkNvcmU6OldlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4g
Y3JlYXRlKFdlYlBhZ2VQcm94eSYpOworICAgIHZpcnR1YWwgfldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKworICAg
IHZvaWQgc2V0VmlkZW9MYXllcklEKHVuc2lnbmVkIHZpZGVvQ29udGV4dElEKSBvdmVycmlkZTsK
KyAgICAKKyAgICB2b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpIG92ZXJyaWRlOworICAgIHZv
aWQgcGxheSgpIG92ZXJyaWRlOworICAgIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKKyAgICB2b2lk
IHRvZ2dsZVBsYXlTdGF0ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vla1RvVGltZShkb3VibGUg
dGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwor
CisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDI4OTczMjg2OTMwNTQyMjQ1NzBjNGMyZGQ3ZTRmMThjZWMxNTk5MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
IyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIGNoYW5nZXMgaGVyZSBtdXN0IGJlIHJlZmxl
Y3RlZCBpbiBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbAorI2lmIFBMQVRGT1JNKElPUykKK21lc3Nh
Z2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7CisgICAgU2V0Q3VycmVudFRp
bWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgaG9zdFRpbWUpCisgICAgU2V0VmlkZW9MYXll
cklEKHVuc2lnbmVkIGludCB2aWRlb0NvbnRleHRJRCkKKyAgICBTZXRWaWRlb0RpbWVuc2lvbnMo
Ym9vbCBoYXNWaWRlbywgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKKyAgICBTZXRE
dXJhdGlvbihkb3VibGUgZHVyYXRpb24pCisgICAgU2V0UmF0ZShib29sIGlzUGxheWluZywgZG91
YmxlIHJhdGUpCisgICAgRW50ZXJGdWxsc2NyZWVuKCkKKyAgICBFeGl0RnVsbHNjcmVlbigpCit9
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkYzEzY2RjNWI0ZDgwMWVmY2Q5MGNkODM0ODAwZWJkM2IwOGEwYzBkLi4y
MjlhOWZlYWQ1OGI0NTBiODI1YTg3NWEyMjQ0MWE5Njk4ZmViNjBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTcsOSArNTk3
LDE0IEBACiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExv
YWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExv
YWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkzN0ZDMTk0QTE4NTEwRDZBMDA4Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzdGQzE5NDgxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5tbSAqLzsgfTsKIAkJMzdGQzE5NEIxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OworCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAy
Nzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CisJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTNGODdCOUJE
MTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07CiAJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAv
KiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAq
LzsgfTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCRjE1ODk0
MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAqLzsgfTsKKwkJM0Y4ODlEMTQxODg3NzhD
OTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQxMjE4ODc3OEM5MDBG
RUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJM0Y4
ODlEMTUxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTMx
ODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovOyB9
OworCQkzRjg4OUQxNzE4ODc4NTkzMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4
OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi87
IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjYwMTQzMDE1
NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovOyB9OwogCQk1MTAyMUU5
QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1
QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07CiAJCTUxMDMyRjE4MTgw
RjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMzJGMTYxODBGNzNC
QjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi87IH07CkBA
IC0yMjgwLDkgKzIyODUsMTkgQEAKIAkJMzdGQzE5NDYxODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDgxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDkxODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y0MThFRjgxODg3
QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJB
MTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvckNob29zZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8q
IFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
bG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGODg5RDBEMTg4NzY5
OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg4OUQwRTE4ODc2OTlDMDBGRUFEQUYgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTNGODg5RDEwMTg4NzcxMDAwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGODg5
RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4ODlEMTMx
ODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4ODlEMTYxODg3N0EyNDAwRkVB
REFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1QzVBMzIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NraW5nUmVzcG9u
c2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAw
QzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVu
dUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTA2Myw2ICs1MDc4LDkgQEAKIAkJCQkzMzM2NzYzNDEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkxQTU5NEFCODExMkEx
RkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuY3BwICovLAogCQkJCTFBNTk0QUI5MTEyQTFGQjYw
MDlERTdDNyAvKiBXZWJVSUNsaWVudC5oICovLAorCQkJCTNGODg5RDEyMTg4Nzc4QzkwMEZFQURB
RiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTNGODg5RDEz
MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLywK
KwkJCQkzRjg4OUQxNjE4ODc3QTI0MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBVSVByb2Nlc3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTg4Myw2ICs1OTAxLDEwIEBACiAJCUMwQ0U3MjlE
MTI0N0U3MUQwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzRjQx
OEVGNjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmggKi8sCisJCQkJM0Y0MThFRjcxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJM0Y0MThFRjgxODg3QkQ5
NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJMkQ4MTlCOUYxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xs
ZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJEODE5QkEwMTg2MjgwMEUwMDFGMDNE
MSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZXMuaCAqLywKIAkJCQk1MTJG
NThBMDEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKQEAgLTYwNDAsNiArNjA2Miw5IEBACiAJCQkJQ0Q3M0JBMzcxMzFBMjlGRTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLywKIAkJCQlDRDczQkEzODEzMUEy
OUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCAqLywKIAkJCQlDRDczQkEzOTEz
MUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJ
CQkJM0Y4ODlEMEQxODg3Njk5QzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwICovLAorCQkJCTNGODg5RDBFMTg4NzY5OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmggKi8sCisJCQkJM0Y4ODlEMTAxODg3NzEwMDAwRkVBREFGIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJbmFtZSA9IEZ1bGxT
Y3JlZW47CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjU2Nyw2ICs2NTkyLDcgQEAK
IAkJCQlCQzFERkVBNDEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEOEYxMEY0MzdBMDAwNThDMTVBIC8q
IFdlYlBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNTM1NjlEMTI5MUIxRDIwMDA3NDlEQyAv
KiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTNGODg5RDE1
MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDN0I2MjA2MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MjUyMTJBNDNDOTYwMEQxNzRBNCAvKiBXZWJQYWdl
R3JvdXBEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjIxNTEyQTQyMTlBMDBEMTc0QTQg
LyogV2ViUGFnZUdyb3VwUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtNzg4MSw2ICs3OTA3LDcg
QEAKIAkJCQlGNkEyNUZEQzEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NkI2MTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRh
YmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMzUy
MDkxODBGNUQ2QjAwRTUzQkU5IC8qIERhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291
cmNlcyAqLywKKwkJCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzY1
QzEyQjFBQkMzMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNBQzExMjAxMkM5MkMxRjAwQjA4RUVFIC8qIFdlYkRhdGFiYXNlTWFuYWdl
clByb3h5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NkI4MTJCMUIyNUYwMDA1
RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTgwMTYsNiArODA0Myw3IEBACiAJCQkJMzMzNjc2MzUxMzBDOTlCMjAwNkM5
REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzMzNjc2NTcxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwQUZGQjkxNjU0MjA0
ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTNG
ODg5RDE0MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8qIFdlYlJl
c291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEUx
QTNEMTgxRUQ2RkYwMDMxMDA3QSAvKiBBUElPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MUZCMDhGRjE2MzlERTFBMDBFQzMyNEEgLyogV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBp
biBTb3VyY2VzICovLApAQCAtODEyNiw3ICs4MTU0LDkgQEAKIAkJCQlCQzg1ODA2MzEyQjg1MDU3
MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDODU4MDYyMTJCODUwNTcwMEVERUIyRSAvKiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkNCMTg4MTdCQkZFMDMwMDM5NENEOCAvKiBTeW5jaHJv
bm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJM0Y0MThFRkIx
ODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q1OTdENjExMkI1NkRDMDBFQzhDMjMg
LyogV0tQYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTNGODg5RDE3MTg4Nzg1OTMwMEZFQURB
RiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
N0I2MzM4MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0UxN0I3RDEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdlUHJpdmF0ZU1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3QzEzNUFBODE3M0IwQkNBMDA1ODZBRTIgLyogV0tQbHVnaW5JbmZv
cm1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA4
MjY0ODRjOGVhNTUxZTQzMzFhNzNlOGVlNjUwZTI5YzRhNzc5NTI5Li5jMDUyYjE2ZDRiNWYxNmVh
ZDcyZDhiNjUxYTQ3NjkzZTQ2NjY0MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00
OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5o
IgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3Nlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VNYW5hZ2VyLmg+CkBAIC04MzAsNiArODMxLDIzIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpuZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkVG91Y2hFdmVu
dHMpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7
CisgICAgcmV0dXJuIG1fcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLT5zdXBwb3J0c0Z1
bGxzY3JlZW4obm9kZSk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxzY3Jl
ZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7CisgICAgbV9wYWdlLT52aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyKCktPmVudGVyRnVsbHNjcmVlbkZvck5vZGUobm9kZSk7Cit9CisKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSogbm9k
ZSkKK3sKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxzY3Jl
ZW5Gb3JOb2RlKG5vZGUpOworfQorI2VuZGlmCisgICAgCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggYjc1MzFkMTRmMzBmNmIyNGIzMTQ2ODRmMTFjZWUxMDg1YjZkNTFjOS4u
YTAwOWY4NTIyMTYyMjVlYjZlODY0MDE2OTVlOTI3MjNmNGFjYTI1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0yMzgsNiArMjM4LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGVs
ZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JO
b2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2Ny
ZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChj
b25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCA0ZTcyZjM1ZTc0NTliN2M5MWIwZjliMzU1YzZjYTFjZThhYzhiOGVhLi5jOTI4
YzYwNTM3ZjI3YmVhNjQ4MjIyMzhkNjJhMjQ5YjBmZjRkNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04Nyw2ICs4Nyw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ2hyb21lLmg+CkBAIC0yNjI0LDYgKzI2MjUsMTUgQEAgV2ViSW5zcGVjdG9yKiBXZWJQYWdl
OjppbnNwZWN0b3IoKQogICAgIHJldHVybiBtX2luc3BlY3Rvci5nZXQoKTsKIH0KICNlbmRpZgor
ICAgIAorI2lmIFBMQVRGT1JNKElPUykKK1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIFdlYlBh
Z2U6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQoreworICAgIGlmICghbV92aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKQorICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5nZXQoKTsKK30KKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDIxNjBlMTRk
ODI0ZjY3YWU5MWI1MjU5MDcyNDUyNGYyMDJjYzRmZGYuLmNiNTkxN2Q2M2Q2OTIyZTFlMjhhMmUw
Y2IzZmI0MTI5Nzc1MGVkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMTUzLDYgKzE1Myw3IEBAIGNsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dDsKIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogY2xhc3MgV2ViUGFnZUdyb3Vw
UHJveHk7CiBjbGFzcyBXZWJQb3B1cE1lbnU7CitjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOwogY2xhc3MgV2ViV2hlZWxFdmVudDsKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3Ry
dWN0IEVkaXRvclN0YXRlOwpAQCAtMjA0LDYgKzIwNSwxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICBXZWJJbnNwZWN0b3IqIGluc3BlY3RvcigpOwogI2VuZGlmCisgICAg
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIHZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIoKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwpAQCAtOTkz
LDYgKzk5OCw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBSZWZQdHI8
V2ViSW5zcGVjdG9yPiBtX2luc3BlY3RvcjsKICNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gbV92aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOworI2VuZGlmCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJlZlB0cjxXZWJG
dWxsU2NyZWVuTWFuYWdlcj4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWRmMmZiOGRkNGRkN2NmMjY2ZWE0OTRhYjA4YjY2ZDU0ZDA4NTc5OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCIKKworI2lm
IFBMQVRGT1JNKElPUykKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0V2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9I
VE1MVmlkZW9FbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitQYXNzUmVm
UHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcihwYWdlKSk7Cit9CisKK1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoV2ViUGFnZSogcGFnZSkKKyAgICA6IG1fcGFn
ZShwYWdlKQoreworICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSh0aGlzKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS0+cGFnZUlE
KCksICp0aGlzKTsKK30KKworV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworYm9vbCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3QgTm9kZSogbm9kZSkKK3sKKyAg
ICBpZiAoIVNldHRpbmdzOjphdktpdEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICBtX25vZGUgPSBub2RlOworICAgIHNldE1lZGlhRWxlbWVu
dCh0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkpOworICAgIGVudGVyRnVsbHNjcmVlbigpOworfQor
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShO
b2RlKiBub2RlKQoreworICAgIGV4aXRGdWxsc2NyZWVuKCk7CisgICAgc2V0TWVkaWFFbGVtZW50
KG51bGxwdHIpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldER1cmF0
aW9uKGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0RHVyYXRpb24oZHVyYXRpb24pLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0
Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5jaG9yVGltZSkKK3sKKyAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
U2V0Q3VycmVudFRpbWUoY3VycmVudFRpbWUsIGFuY2hvclRpbWUpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0UmF0ZShib29s
IGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRSYXRlKGlzUGxheWluZywg
cGxheWJhY2tSYXRlKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWlnaHQpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvRGltZW5zaW9ucyhoYXNWaWRlbywgd2lk
dGgsIGhlaWdodCksIG1fcGFnZS0+cGFnZUlEKCkpOworCit9CisgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9MYXll
cikKK3sKKyAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2l0aCBjb3JyZWN0IGxheWVyIElELgorICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpT
ZXRWaWRlb0xheWVySUQoMCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9Db250
ZXh0SUQpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OlNldFZpZGVvTGF5ZXJJRCh2aWRlb0NvbnRleHRJRCksIG1fcGFnZS0+cGFn
ZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNj
cmVlbigpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAg
ICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4oKQorewor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpFeGl0RnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVjNWQ4OTUxYzY0MDJlNGJlOGU2Yzc0YmNiNWVmNzAxYjU5OTQ5MDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyNpZm5kZWYgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcl9oCisjZGVmaW5lIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJfaAorCisjaWYgUExB
VEZPUk0oSU9TKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9FdmVudExpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IE1lc3NhZ2VEZWNvZGVyOworY2xhc3MgTWVzc2FnZVJlY2VpdmVyOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBOb2RlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciA6IHB1YmxpYyBXZWJD
b3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudCwgcHVibGljIFdlYkNvcmU6
OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIHZpcnR1YWwgfldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoKTsKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICAKKyAgICBib29sIHN1cHBvcnRzRnVsbHNj
cmVlbihjb25zdCBXZWJDb3JlOjpOb2RlKik7CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JO
b2RlKFdlYkNvcmU6Ok5vZGUqKTsKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJD
b3JlOjpOb2RlKik7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcihXZWJQYWdlKik7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50
TGlzdGVuZXImIHJocykgb3ZlcnJpZGUge3JldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVu
dExpc3RlbmVyKj4odGhpcykgPT0gJnJoczt9CisgICAgCisgICAgdm9pZCBzZXREdXJhdGlvbihk
b3VibGUpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRU
aW1lLCBkb3VibGUgYW5jaG9yVGltZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRSYXRlKGJvb2wg
aXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Vmlk
ZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIG92
ZXJyaWRlOworICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMyX3QpIG92ZXJyaWRlOworICAgIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0RnVsbHNjcmVlbigpIG92
ZXJyaWRlOworICAgIAorICAgIFJlZlB0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgUmVmUHRyPFdl
YkNvcmU6Ok5vZGU+IG1fbm9kZTsKK307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKworI2VuZGlmIC8vIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0MWU1NWY0
MmM4ZDQ1YTgzZTQ4NjQxOTk3MjE3NzA0ZWI5ZmMyODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjIGNoYW5nZXMgaGVyZSBtdXN0IGJlIHJlZmxlY3RlZCBpbiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbAorI2lmIFBMQVRGT1JNKElPUykKK21lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIgeworICAgIFJlcXVlc3RFeGl0RnVsbFNjcmVlbigpCisgICAgUGxheSgpCisgICAg
UGF1c2UoKQorICAgIFRvZ2dsZVBsYXlTdGF0ZSgpCisgICAgU2Vla1RvVGltZShkb3VibGUgdGlt
ZSkKKyAgICBEaWRFeGl0RnVsbHNjcmVlbigpCit9CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223291</attachid>
            <date>2014-02-05 19:15:16 -0800</date>
            <delta_ts>2014-02-06 11:50:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128143-20140205191520.patch</filename>
            <type>text/plain</type>
            <size>53138</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0OGYyYzFhNGFhNDUy
YmFhNjE0MTg2ZjM3M2ViNGZiZmYwMWE0Yi4uZjI4ZTM2NjVkMmIzNGEyMWZkMjkwMDdmOGQ0NGVj
NTI4ZWU1ZGY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAyLTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QVZLaXQgZnVsbHNjcmVlbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgb3ZlcmxvYWRlZCBmdW5jdGlvbnMgdG8gcHJldmVu
dCBhbWJpZ3VvdXMgdGVtcGxhdGUgcGFyYW1ldGVyCisgICAgICAgIGNvbXBpbGUgZXJyb3IgaW4g
Z2VuZXJhdGVkIGNvZGUuCisKKyAgICAgICAgUmVuYW1lIG92ZXJsb2FkZWQgZXhpdEZ1bGxzY3Jl
ZW4gdG8gZXhpdEZ1bGxzY3JlZW5Db21wbGV0aW9uSGFuZGxlci4KKyAgICAgICAgUmVuYW1lIG92
ZXJsb2FkZWQgZW50ZXJGdWxsc2NyZWVuIHRvIGVudGVyRnVsbHNjcmVlbkNvbXBsZXRpb25IYW5k
bGVyLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXIgZXhpdEZ1bGxzY3JlZW5dKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuV2l0aENvbXBsZXRpb25IYW5k
bGVyKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4
aXRGdWxsc2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbik6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lmg6CisKIDIwMTQtMDIt
MDUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBGaXgg
dGhlICFFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmMDYx
NmQ0MTllZGVkYmNhNTRjNjI5Yzg4OWExY2M0MTY3ZWM0NmE5Li41NjU0YTc5Mjk0NzIzY2Q3ZjM2
MWQwMDIwNmZmNjNiZTE0MmY2NDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTQt
MDItMDMgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBBVktpdCBmdWxsc2NyZWVuIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyIGFuZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgdGhhdCBpbXBsZW1lbnQgCisg
ICAgICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsIGFuZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Oldl
YlBhZ2VQcm94eSk6CisgICAgICAgICAgICBpbml0aWFsaXplIG1lbWJlciBtX3ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIKKyAgICAKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgICAgIGFkZCBhY2Nlc3NvciBmb3IgdmlkZW9GdWxs
c2NyZWVuTWFuYWdlcgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSk6
CisgICAgICAgICAgICBhZGQgYmFzaWMgY3JlYXRpb24gZm9yIG9iamVjdC4KKworICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJJRCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVz
dEV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6dG9nZ2xlUGxheVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWVrVG9UaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAg
ICAgICBpbXBsZW1lbnQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwgdG8gc2VuZCBJUEMgbWVzc2Fn
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICAgICB0aGlzIGludGVyZmFjZSBjbG9z
ZWx5IG1hdGNoZXMgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlCisKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAgICAgICBG
b3J3YXJkIHRoZXNlIHJlcXVlc3RzIG9udG8gdGhlIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgICAgIGFjY2Vzc29y
IGZvciBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjp+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcik6CisgICAgICAg
ICAgICBhZGQgYmFzaWMgY3JlYXRpb24gZm9yIG9iamVjdC4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxz
Y3JlZW5Gb3JOb2RlKToKKyAgICAgICAgICAgIGltcGxlbWVudCBpbnRlcmZhY2UgY2FsbGVkIGJ5
IFdlYkNocm9tZUNsaWVudAorCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldER1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6c2V0Q3VycmVudFRpbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzZXRSYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0VmlkZW9EaW1lbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJJRCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuKToKKyAg
ICAgICAgICAgIGltcGxlbWVudCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgdG8gc2VuZCBJ
UEMgbWVzc2FnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAgICAgdGhpcyBpbnRlcmZhY2UgY2xv
c2VseSBtYXRjaGVzIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsCisKIDIwMTQtMDItMDUgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc291cmNlRnJh
bWUgdG8gV0tOYXZpZ2F0aW9uQWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGJmZmE3ODky
NDM1MDVlNTc0NTg5NmU1MmQwMTZlZmZjNjQ2ZWI3MWEuLjBkYTIwZTJlYWRhMWM3YzRhYjM5ZDY5
MWZjOGE1MzJiN2Y3OTAxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMDQyLDM2ICszMDQy
LDYxIEBAIF9fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM2Y3JlYXRl
RVJOU18xM1Njcm9sbGluZ1RyZWVFeQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCisub2Jq
Y19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKK19fWk43V2ViQ29yZTEw
VGltZVJhbmdlczNhZGRFZGQKK19fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pTVmFs
dWVFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMmVuZFNjcnViYmluZ0V2CiBfX1pO
N1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNGJlZ2luU2NydWJiaW5nRXYKIF9fWk43V2ViQ29y
ZTE2SFRNTE1lZGlhRWxlbWVudDE0ZXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMTZIVE1M
TWVkaWFFbGVtZW50MTVjbGVhck1lZGlhQ2FjaGVFdgorX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50MTV0b2dnbGVQbGF5U3RhdGVFdgorX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MTZyZXR1cm5Ub1JlYWx0aW1lRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDIwZ2V0
U2l0ZXNJbk1lZGlhQ2FjaGVFUk4zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFTlMxXzE1Q3Jh
c2hPbk92ZXJmbG93RUVFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNsZWFyTWVk
aWFDYWNoZUZvclNpdGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVs
ZW1lbnQ0cGxheUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VFdgogX19a
TjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50OHNldE11dGVkRWIKK19fWk43V2ViQ29yZTR0b0pT
RVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzEwVGltZVJhbmdl
c0UKK19fWk5LN1dlYkNvcmUxMFRpbWVSYW5nZXM3bmVhcmVzdEVkCiBfX1pOSzdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTFjdXJyZW50VGltZUV2CitfX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50MTJpc0Z1bGxzY3JlZW5FdgorX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEy
cGxheWJhY2tSYXRlRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxM3BsYXRmb3Jt
TWVkaWFFdgorX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVlbmRlZEV2CiBfX1pOSzdX
ZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NW11dGVkRXYKK19fWk5LN1dlYkNvcmUxNkhUTUxNZWRp
YUVsZW1lbnQ2cGF1c2VkRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ2dm9sdW1l
RXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ3Y2FuUGxheUV2Ci1fX1pOSzdXZWJD
b3JlMTZIVE1MTWVkaWFFbGVtZW50MTJwbGF5YmFja1JhdGVFdgogX19aTks3V2ViQ29yZTE2SFRN
TE1lZGlhRWxlbWVudDhkdXJhdGlvbkV2Ci1fX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQx
NnJldHVyblRvUmVhbHRpbWVFdgotX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyaXNG
dWxsc2NyZWVuRXYKLV9fWk43V2ViQ29yZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29y
ZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pTVmFsdWVFCi1fX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5
RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCi1fX1pO
SzdXZWJDb3JlMTBUaW1lUmFuZ2VzN25lYXJlc3RFZAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVklE
RU8pCi1fX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NWVuZGVkRXYKLV9fWk5LN1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQ2cGF1c2VkRXYKLS5vYmpjX2NsYXNzX25hbWVfV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlcgorI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oSU9TKQor
X19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDExc2V0RHVyYXRp
b25FZAorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDEzc2V0
VmlkZW9MYXllckVQN0NBTGF5ZXIKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQxNGV4aXRGdWxsc2NyZWVuRXYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQxNHNldEN1cnJlbnRUaW1lRWRkCitfX1pON1dlYkNvcmUzMldl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVlbnRlckZ1bGxzY3JlZW5FdgorX19aTjdX
ZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNp
b25zRWJmZgorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI2
c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFUE5TXzIzV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxF
CitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0N3NldFJhdGVF
YmYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXRDMkV2Citf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTBzZWVrVG9U
aW1lRWQKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQx
MWhhbmRsZUV2ZW50RVBOU18yMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFUE5TXzVFdmVudEUKK19f
Wk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxNXNldE1lZGlh
RWxlbWVudEVQTlNfMTZIVE1MTWVkaWFFbGVtZW50RQorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE1dG9nZ2xlUGxheVN0YXRlRXYKK19fWk43V2ViQ29y
ZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxN2RpZEV4aXRGdWxsc2NyZWVu
RXYKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQyMXJl
cXVlc3RFeGl0RnVsbFNjcmVlbkV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50NHBsYXlFdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudDVwYXVzZUV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsTWVkaWFFbGVtZW50QzJFdgorX19aTks3V2ViQ29yZTE2SFRNTFZpZGVvRWxlbWVudDEw
dmlkZW9XaWR0aEV2CitfX1pOSzdXZWJDb3JlMTZIVE1MVmlkZW9FbGVtZW50MTF2aWRlb0hlaWdo
dEV2CitfX1pUVk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXRFCitf
X1pUVk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnRFCitfX1pU
aG40X043V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxMWhhbmRs
ZUV2ZW50RVBOU18yMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFUE5TXzVFdmVudEUKICNlbmRpZgog
CisKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKIF9fWk43V2ViQ29yZTRQYWdlMTFz
ZXRWaWV3TW9kZUVOUzBfOFZpZXdNb2RlRQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjlhNjFkNTdiNGRlZjc1MDcx
Y2VjZGU0NmVkMjhlOTM1YmNiZmEyZC4uMjM4NzI3ZjFlODQ1Yjc1MmM1M2I2NGZhNDUzOGJhMDE5
MjYwOGM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNTkwNyw3ICs1OTA3LDcgQEAKIAkJRTQ0NjEzQTcwQ0Q2MzMxMDAwRkFE
QTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzk1MENENjMzMTAwMEZBREE3NSAvKiBIVE1MU291cmNl
RWxlbWVudC5jcHAgKi87IH07CiAJCUU0NDYxM0E4MENENjMzMTAwMEZBREE3NSAvKiBIVE1MU291
cmNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQ0NjEzOTYwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmggKi87IH07
CiAJCUU0NDYxM0FBMENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzk4MENENjMz
MTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmNwcCAqLzsgfTsKLQkJRTQ0NjEzQUIwQ0Q2
MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzk5MENENjMzMTAwMEZBREE3NSAvKiBIVE1M
VmlkZW9FbGVtZW50LmggKi87IH07CisJCUU0NDYxM0FCMENENjMzMTAwMEZBREE3NSAvKiBIVE1M
VmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNDQ2MTM5OTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0NDYxM0FEMENE
NjMzMTAwMEZBREE3NSAvKiBNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5QjBDRDYzMzEwMDBGQURBNzUgLyogTWVkaWFFcnJv
ci5oICovOyB9OwogCQlFNDQ2MTNBRjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5RDBD
RDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5jcHAgKi87IH07CiAJCUU0NDYxM0IwMENENjMz
MTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5RTBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRleCBmZTEzOWFiNTkzMWI5MjE0MzA2NWRkNzEwNTdk
ZmExZmRiOTUzNmM2Li5mMTgwYTc3YmI4OWVlYjYyZDI3MGI1N2U4YmU0OTQ1M2U2MjA1NGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KQEAgLTgyLDcgKzgyLDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB7CiAgICAgUmV0YWluUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXI+IHN0cm9uZ1NlbGYoc2VsZik7CiAgICAgCi0gICAgX2ludGVyZmFjZS0+ZXhpdEZ1
bGxzY3JlZW4oW3N0cm9uZ1NlbGZdeworICAgIF9pbnRlcmZhY2UtPmV4aXRGdWxsc2NyZWVuV2l0
aENvbXBsZXRpb25IYW5kbGVyKFtzdHJvbmdTZWxmXXsKICAgICAgICAgV2ViVGhyZWFkUnVuKFtz
dHJvbmdTZWxmXXsKICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9tb2RlbC0+c2V0TWVkaWFFbGVt
ZW50KG51bGxwdHIpOwogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2ludGVyZmFjZS0+c2V0V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWwobnVsbHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CmluZGV4IDE2MDIzYWE0ZmM2ZTFjMzBiN2YyZjBiMzE1NTg2YzI4ZjI2MThmNDguLjZiOGI4YzY3
Y2RjYjUyZTdiZGFmYTE2OWVhMTU2MGFmMzRlZjY2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCkBAIC02NCwxMSArNjQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmF0ZShib29s
IGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZp
ZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBv
dmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciopIG92ZXJyaWRl
OwotICAgIHZvaWQgc2V0VmlkZW9MYXllcklEKHVpbnQzMl90IHZpZGVvQ29udGV4dElEKSBvdmVy
cmlkZSB7VU5VU0VEX1BBUkFNKHZpZGVvQ29udGV4dElEKTt9OworICAgIHZvaWQgc2V0VmlkZW9M
YXllcklEKHVpbnQzMl90KSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4o
KSBvdmVycmlkZTsKLSAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gY29tcGxldGlvbik7CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhh
bmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBleGl0RnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
Y29tcGxldGlvbik7CisgICAgdm9pZCBleGl0RnVsbHNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxl
cihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCmluZGV4IDhlYzlkNDU2Mzk1MWUzNzk5NzUyOWE1M2U3Y2M0Y2JkZGY0Nzc5YzIuLjJi
ZmE1N2Q5MzE5ZjBhOGY4MmIyNTA0MGJlODk1OGFjNDljNzE4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqIHZpZGVvTGF5ZXIp
CiAgICAgbV9wbGF5ZXJDb250cm9sbGVyLmdldCgpLnBsYXllckxheWVyID0gKENBTGF5ZXI8QVZQ
bGF5ZXJMYXllcj4qKXZpZGVvTGF5ZXI7CiB9CiAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxl
dGlvbikKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNj
cmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bikKIHsKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9u
Z1RoaXModGhpcyk7CiAgICAgCkBAIC0yOTksMTAgKzI5OSwxMCBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGNvbQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1
bGxzY3JlZW4oKQogewotICAgIGVudGVyRnVsbHNjcmVlbihudWxscHRyKTsKKyAgICBlbnRlckZ1
bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CiB9CiAKLXZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBjb21wbGV0aW9uKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6ZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGNvbXBsZXRpb24pCiB7CiAgICAgbV9wbGF5ZXJDb250cm9sbGVyLmNsZWFyKCk7CiAgICAg
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRoaXMp
OwpAQCAtMzI0LDcgKzMyNCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQ6OmV4aXRGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wCiAKIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKCkKIHsKLSAgICBl
eGl0RnVsbHNjcmVlbihudWxscHRyKTsKKyAgICBleGl0RnVsbHNjcmVlbldpdGhDb21wbGV0aW9u
SGFuZGxlcihudWxscHRyKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5oCmluZGV4IGMzYzU4ZjAxOWExOWFmYmUxOGIyYWRlZjk2ZWIzZWYyMjc4NmI1NGUuLjY5
NjhmNTg4ODQ4M2JmN2I0M2ZjOGI4NzFlODg4N2RmOGE4YTkwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQog
CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9I
VE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUxheWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGMzOGRhMTcxYTI2
ZjEzNTM5MDRmNTFjYTcxNmRkMTkxMDQ0NmIyM2EuLjA4YTgzNDhmMjNiNjVmMzM4ZmMyMTJjYzdh
ZTVmMWUwNzAwZjc1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI2LDYg
KzEyNiw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyIFwKICAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5IFwKICAgICBXZWJSZXNvdXJj
ZUxvYWRlciBcCisgICAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciBcCisgICAgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5IFwKICMKIAogU0NSSVBUUyA9IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggODQ1YTI4ZmJiMjYzZGFlNTEzZWM5NDg0
NWEyYjk0NTU3MjNiNmJkYy4uM2Q0OWEzMDVkMWNhOTU3YTU3M2IwODA2NTE1YjRmNGI4NWRjZjhj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg3LDYg
Kzg3LDggQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm90
ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29u
dHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdTZXNzaW9uLmg+CkBAIC05Niw4ICs5OCw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGll
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+Ci0jaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAjaW5jbHVkZSAi
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgpAQCAtMzUxLDYgKzM1Myw5IEBAIFdl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgV2ViCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIG1f
ZnVsbFNjcmVlbk1hbmFnZXIgPSBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUoKnRo
aXMsIG1fcGFnZUNsaWVudC5mdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KCkpOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKCp0aGlzKTsKKyNlbmRpZgogI2lmIEVO
QUJMRShWSUJSQVRJT04pCiAgICAgbV92aWJyYXRpb24gPSBXZWJWaWJyYXRpb25Qcm94eTo6Y3Jl
YXRlKHRoaXMpOwogI2VuZGlmCkBAIC0yOTYxLDYgKzI5NjYsMTMgQEAgV2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eSogV2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcigpCiAgICAgcmV0dXJu
IG1fZnVsbFNjcmVlbk1hbmFnZXIuZ2V0KCk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9S
TShJT1MpCitXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQcm94eTo6dmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcigpCit7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5nZXQoKTsKK30KKyNlbmRpZgogCiAvLyBCYWNrRm9yd2FyZExpc3QKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGI0NmMwN2NmMTI3NzhmYTM1OGE2YTM2
ODNiMTE1OGQ0ZmM1NWI5NDcuLjZmNzc2NDk5YWI1OTA3ZDk1YjliNWY1MzI4MzlhMWIwZDFmNDg4
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0Nyw2ICsx
NDcsNyBAQCBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBX
ZWJDb250ZXh0TWVudVByb3h5OwogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91c2VFdmVudDsKIGNs
YXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CkBAIC0zNjAsNiArMzYxLDkgQEAg
cHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5KiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9T
KQorICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogdmlkZW9GdWxsc2NyZWVuTWFu
YWdlcigpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGlu
aXRpYWxpemVDb250ZXh0TWVudUNsaWVudChjb25zdCBXS1BhZ2VDb250ZXh0TWVudUNsaWVudEJh
c2UqKTsKQEAgLTEyMDksNiArMTIxMyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3Jl
ZW5NYW5hZ2VyOwogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKKyNlbmRp
ZgogCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKICAgICBSZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+
IG1fdmlicmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDI1YjRjZDJm
Yzk1ZGVlZTcwN2IzZTRmNDI5ZTQ2MDVjYTBmYzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAKQEAg
LTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKElPUykK
KworI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5o
IgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1Bhc3NSZWZQdHI8
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkocGFnZSkpOworfQorCitXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UoJnBhZ2UpCit7CisgICAgbV9wYWdlLT5w
cm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSwgKnRo
aXMpOworICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKHRoaXMpOworfQorCitXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHko
KQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6c2V0VmlkZW9MYXllcklEKHVuc2lnbmVkIHZpZGVvQ29udGV4dElEKQoreworICAgIC8v
IFRPRE86IGZpbmQgYSByZWFsIHZpZGVvIGxheWVyIG9yIG1ha2Ugb25lIHRoYXQgbWVldHMgdGhl
IG5lY2Vzc2FyeSByZXF1aXJlbWVudHMuCisgICAgc2V0VmlkZW9MYXllcihudWxscHRyKTsKK30K
Kwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNj
cmVlbigpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9Cisg
ICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cGxheSgpCit7CisgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpQbGF5KCks
IG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnBhdXNlKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OlBhdXNlKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnRvZ2dsZVBsYXlTdGF0ZSgpCit7
CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpU
b2dnbGVQbGF5U3RhdGUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2Vla1RvVGltZShkb3VibGUgdGltZSkKK3sKKyAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNlZWtU
b1RpbWUodGltZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsc2NyZWVuKCkKK3sKKyAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZEV4aXRGdWxsc2Ny
ZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOTYwMzgwZTU4ZWMwYTVmZjExZmY4ZTFiYTE4ZWE1ODBiNTU0ZjRhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eV9oCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJv
eHk7CisKK2NsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBXZWJD
b3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCwgcHVibGljIFdlYkNvcmU6Oldl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYpOworICAgIHZpcnR1YWwgfldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgc2V0VmlkZW9MYXllcklEKHVuc2lnbmVkKSBvdmVycmlkZTsKKyAgICAKKyAgICB2
b2lkIHJlcXVlc3RFeGl0RnVsbFNjcmVlbigpIG92ZXJyaWRlOworICAgIHZvaWQgcGxheSgpIG92
ZXJyaWRlOworICAgIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHRvZ2dsZVBsYXlT
dGF0ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2Vla1RvVGltZShkb3VibGUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKworICAgIFdlYlBhZ2VQcm94
eSogbV9wYWdlOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyODk3
MzI4NjkzMDU0MjI0NTcwYzRjMmRkN2U0ZjE4Y2VjMTU5OTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
CisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworIyBjaGFuZ2VzIGhlcmUgbXVzdCBiZSByZWZsZWN0ZWQgaW4gV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWwKKyNpZiBQTEFURk9STShJT1MpCittZXNzYWdlcyAtPiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkgeworICAgIFNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50
VGltZSwgZG91YmxlIGhvc3RUaW1lKQorICAgIFNldFZpZGVvTGF5ZXJJRCh1bnNpZ25lZCBpbnQg
dmlkZW9Db250ZXh0SUQpCisgICAgU2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIHVu
c2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCisgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKQorICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQorICAgIEVu
dGVyRnVsbHNjcmVlbigpCisgICAgRXhpdEZ1bGxzY3JlZW4oKQorfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmU1
ZmNlNjdjNWRjYjYzNjgxMWMxYzFjYzhhM2FlMDA5NjY4ZmJiZC4uZjNkOTgzOTlmZDcyYWQ0NjZk
MzE5NDlhZjUwZjNkMGJjZGE2YjU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAyLDkgKzYwMiwxNCBAQAogCQkzN0ZDMTk0
NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0
NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdG
QzE5NEExODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ4
MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0gKi87
IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCAqLzsgfTsKKwkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzRjQxOEVGQjE4
ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIu
Y3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlC
QjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggKi87IH07CiAJCTNGODdCOUMw
MTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdl
YkNvbG9yUGlja2VyLmggKi87IH07CisJCTNGODg5RDE0MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTNGODg5RDE1MTg4Nzc4QzkwMEZF
QURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJM0Y4ODlEMTcxODg3
ODU5MzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMEQxODg3Njk5QzAwRkVB
REFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwICovOyB9OwogCQk0RjYwMTQzMjE1
NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8q
IEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzND
IC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRl
eHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTAzMkYxODE4MEY3M0JCMDA5NjFCQjcgLyog
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjE2MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJU
b0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovOyB9OwpAQCAtMjI5Miw5ICsyMjk3LDE5
IEBACiAJCTM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS05T
VVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY1
MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzRjQxOEVGNjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRjg3QjlCQTE1ODkzRjYzMDA5MEZGNjIg
LyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
ODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9vc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb2xvclBpY2tlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJM0Y4ODlEMEUxODg3Njk5QzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg4OUQxMDE4
ODc3MTAwMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFE
QUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTNGODg5RDE2MTg4NzdBMjQwMEZFQURBRiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3BvbnNlTWFwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0IwMEM4REZFNCAvKiBTZWNJdGVt
U2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFNl
Y0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwNzksNiArNTA5NCw5IEBA
CiAJCQkJMzMzNjc2MzIxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwICovLAogCQkJCTMzMzY3NjMzMTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5LmggKi8sCiAJCQkJMzMzNjc2MzQxMzBDOTlCMjAwNkM5REUyIC8q
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJM0Y4ODlE
MTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAg
Ki8sCisJCQkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5oICovLAorCQkJCTNGODg5RDE2MTg4NzdBMjQwMEZFQURBRiAvKiBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IFVJUHJvY2VzczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01OTAyLDYgKzU5MjAs
MTAgQEAKIAkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJM0Y0MThFRjUxODg3
QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTNGNDE4RUY2MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJ
CQkzRjQxOEVGODE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCAqLywKIAkJCQkyRDgxOUI5RjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dl
c3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMkQ4MTlC
QTAxODYyODAwRTAwMUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdl
cy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtNjA1OSw2ICs2MDgxLDkgQEAKIAkJCQlD
RDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwICovLAog
CQkJCUNENzNCQTM4MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5oICov
LAogCQkJCUNENzNCQTM5MTMxQTI5RkUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLywKKwkJCQkzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5jcHAgKi8sCisJCQkJM0Y4ODlEMEUxODg3Njk5QzAwRkVBREFGIC8q
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCAqLywKKwkJCQkzRjg4OUQxMDE4ODc3MTAwMDBG
RUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7
CiAJCQluYW1lID0gRnVsbFNjcmVlbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02
NTg5LDYgKzY2MTQsNyBAQAogCQkJCUJDMURGRUE0MTJCMzFGODcwMDVERjczMCAvKiBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ4RjEw
RjQzN0EwMDA1OEMxNUEgLyogV2ViUGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1MzU2OUQx
MjkxQjFEMjAwMDc0OURDIC8qIFdlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJM0Y4ODlEMTUxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3QjYyMDYxMjlBMEE2NzAwRDE3NEE0
IC8qIFdlYlBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3QjYyNTIxMkE0M0M5NjAw
RDE3NEE0IC8qIFdlYlBhZ2VHcm91cERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MjE1
MTJBNDIxOUEwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBA
IC03OTA1LDYgKzc5MzEsNyBAQAogCQkJCUY2QTI1RkRDMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJE
YXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjYyQTc2QjYxMkIxQjI1RjAw
MDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUUzNTIwOTE4MEY1RDZCMDBFNTNCRTkgLyogRGF0YWJhc2VTZXJ2aWNlRW50
cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUY2MkE3NjVDMTJCMUFCQzMwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FDMTEyMDEyQzkyQzFGMDBCMDhFRUUgLyog
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjYy
QTc2QjgxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODA0MCw2ICs4MDY3LDcgQEAKIAkJCQkzMzM2
NzYzNTEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTBBRkZCOTE2NTQyMDQ4MDAxQkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1
MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzc4RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9iamVjdC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUxRkIwOEZGMTYzOURFMUEwMEVDMzI0QSAvKiBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC04MTUwLDcgKzgxNzgsOSBAQAogCQkJ
CUJDODU4MDYzMTJCODUwNTcwMEVERUIyRSAvKiBXS09wZW5QYW5lbFBhcmFtZXRlcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4NTgwNjIxMkI4NTA1NzAwRURFQjJFIC8qIFdLT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGQ0IxODgxN0JCRkUwMzAw
Mzk0Q0Q4IC8qIFN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRDU5N0Q2
MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJM0Y4ODlE
MTcxODg3ODU5MzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM3QjYzMzgxMkE0NUFCQTAwRDE3NEE0IC8qIFdLUGFnZUdyb3VwLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTE3QjdEMTM4MUYxMTcwMDEyQTY0MSAvKiBXS1BhZ2VQ
cml2YXRlTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMTM1QUE4MTczQjBCQ0EwMDU4NkFF
MiAvKiBXS1BsdWdpbkluZm9ybWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCmluZGV4IDgyNjQ4NGM4ZWE1NTFlNDMzMWE3M2U4ZWU2NTBlMjljNGE3Nzk1Mjku
LjUyN2ExNDZkNjgzOTU1YWQ5N2RlMzVjZWMyMGU3M2UzZGYzODZlZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKQEAgLTQ5LDYgKzQ5LDkgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1ZGUgIldl
YlNlY3VyaXR5T3JpZ2luLmgiCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RD
YWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JDaG9vc2VyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9EYXRhYmFzZU1hbmFnZXIuaD4KQEAgLTgzMCw2ICs4MzMsMjMgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6Om5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKIH0KICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oSU9TKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVs
bHNjcmVlbkZvck5vZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4g
bV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbHNjcmVlbihub2Rl
KTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoV2Vi
Q29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KS0+ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShub2RlKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQoreworICAgIG1f
cGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbHNjcmVlbkZvck5vZGUobm9k
ZSk7Cit9CisjZW5kaWYKKyAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBib29sIFdl
YkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3Jl
OjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCBiNzUzMWQxNGYzMGY2YjI0YjMxNDY4NGYxMWNlZTEwODViNmQ1MWM5Li5hMDA5Zjg1MjIxNjIy
NWViNmU4NjQwMTY5NWU5MjcyM2Y0YWNhMjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIz
OCw2ICsyMzgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIo
Y29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgV2Vi
Q29yZTo6Tm9kZSopOworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdl
YkNvcmU6Ok5vZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdl
YkNvcmU6Ok5vZGUqKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQw
Zjg4NTM1NTM3YTVhNDhkYjkyMDYzZWUxNGU5ZWExZDJmOTRjYjEuLmZmNjk5N2U4NGZkZTI4NzNm
M2EzOWNjMDU3NzY0YWVmZGI1M2M2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4K
QEAgLTI2MjYsNiArMjYyNywxNSBAQCBXZWJJbnNwZWN0b3IqIFdlYlBhZ2U6Omluc3BlY3Rvcigp
CiAgICAgcmV0dXJuIG1faW5zcGVjdG9yLmdldCgpOwogfQogI2VuZGlmCisgICAgCisjaWYgUExB
VEZPUk0oSU9TKQorV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciogV2ViUGFnZTo6dmlkZW9GdWxs
c2NyZWVuTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpCisg
ICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmdl
dCgpOworfQorI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBXZWJGdWxsU2Ny
ZWVuTWFuYWdlciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjQ1YTMxNDY2OWQ4OWI2ZjM0NmM0
NmM2MWVmZjBlZWIzY2I1MDExZS4uZWY1NTg1Mjg2ZjgwYTc1MjdjMDNkYTg5MzBmMTg3NjczZTQz
MzliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC0xNTMsNiArMTUzLDcgQEAgY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50OwogY2xhc3MgV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiBjbGFzcyBXZWJQYWdlR3JvdXBQcm94eTsKIGNsYXNz
IFdlYlBvcHVwTWVudTsKK2NsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiBjbGFzcyBX
ZWJXaGVlbEV2ZW50Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgRWRpdG9yU3Rh
dGU7CkBAIC0yMDQsNiArMjA1LDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQog
ICAgIFdlYkluc3BlY3RvciogaW5zcGVjdG9yKCk7CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciogdmlkZW9GdWxsc2NyZWVuTWFu
YWdlcigpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgV2ViRnVs
bFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CkBAIC05OTYsNiArMTAwMSw5IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9y
PiBtX2luc3BlY3RvcjsKICNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICBSZWZQdHI8V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOworI2VuZGlm
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFu
YWdlcj4gbV9mdWxsU2NyZWVuTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWZiNzg5OWIxYjQzYTAzMzljNjY5ZjVlZDJkZjhmY2YzZTIzNDJiNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5jcHAKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCIKKworI2lmIFBMQVRGT1JNKElP
UykKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0V2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitQ
YXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI+IFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmNyZWF0ZShQYXNzUmVmUHRyPFdlYlBhZ2U+IHBhZ2UpCit7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKHBhZ2UpKTsKK30KKworV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcihQYXNzUmVmUHRy
PFdlYlBhZ2U+IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKKyAgICBzZXRXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UodGhpcyk7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIHBhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisKK2Jvb2wgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c3VwcG9ydHNGdWxsc2Ny
ZWVuKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFTZXR0aW5nczo6YXZLaXRFbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNIVE1MVmlkZW9FbGVtZW50
KG5vZGUpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNj
cmVlbkZvck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgbV9ub2Rl
ID0gbm9kZTsKKyAgICBzZXRNZWRpYUVsZW1lbnQodG9IVE1MTWVkaWFFbGVtZW50KG5vZGUpKTsK
KyAgICBlbnRlckZ1bGxzY3JlZW4oKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopCit7CisgICAgZXhpdEZ1bGxzY3JlZW4o
KTsKKyAgICBzZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQoreworICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXREdXJh
dGlvbihkdXJhdGlvbiksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRpbWUsIGRv
dWJsZSBhbmNob3JUaW1lKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRDdXJyZW50VGltZShjdXJyZW50VGltZSwgYW5jaG9y
VGltZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpCit7
CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OlNldFJhdGUoaXNQbGF5aW5nLCBwbGF5YmFja1JhdGUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
K30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0RpbWVuc2lvbnMo
Ym9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkKK3sKKyAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0VmlkZW9E
aW1lbnNpb25zKGhhc1ZpZGVvLCB3aWR0aCwgaGVpZ2h0KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXIoUGxh
dGZvcm1MYXllciopCit7CisgICAgLy8gVE9ETzogaW1wbGVtZW50IHdpdGggY29ycmVjdCBsYXll
ciBJRC4KKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6U2V0VmlkZW9MYXllcklEKDApLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAK
K3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcklEKHVpbnQzMl90
IHZpZGVvQ29udGV4dElEKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQodmlkZW9Db250ZXh0SUQpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
bnRlckZ1bGxzY3JlZW4oKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2Ny
ZWVuKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNGI2OGE5ZDhiYjc2MmI5ODFlM2E1MjEzMzM1ODdiNTUzYWMzYjBjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaWZuZGVmIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJfaAorI2RlZmluZSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyX2gK
KworI2lmIFBMQVRGT1JNKElPUykKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rp
b247CitjbGFzcyBNZXNzYWdlRGVjb2RlcjsKK2NsYXNzIE1lc3NhZ2VSZWNlaXZlcjsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTm9kZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgOiBw
dWJsaWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQsIHB1Ymxp
YyBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UsIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViUGFnZT4pOworICAgIHZpcnR1YWwg
fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKyAgICAKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKTsKKyAgICAKKyAg
ICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbihjb25zdCBXZWJDb3JlOjpOb2RlKik7CisgICAgdm9p
ZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKKyAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CisgICAgCitwcm90ZWN0ZWQ6CisgICAg
ZXhwbGljaXQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcihQYXNzUmVmUHRyPFdlYlBhZ2U+KTsK
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgcmhzKSBvdmVycmlkZSB7
cmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50TGlzdGVuZXIqPih0aGlzKSA9PSAmcmhz
O30KKyAgICAKKyAgICB2b2lkIHNldER1cmF0aW9uKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBhbmNob3JUaW1lKSBv
dmVycmlkZTsKKyAgICB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNr
UmF0ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRl
bywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaWRl
b0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFZpZGVvTGF5ZXJJ
RCh1aW50MzJfdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgCisgICAgUmVmUHRy
PFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9ub2RlOworfTsK
KyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
CisjZW5kaWYgLy8gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQxZTU1ZjQyYzhkNDVhODNlNDg2NDE5OTcyMTc3MDRl
YjlmYzI4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBACisjIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgY2hhbmdlcyBoZXJlIG11c3Qg
YmUgcmVmbGVjdGVkIGluIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsCisjaWYgUExBVEZPUk0oSU9T
KQorbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CisgICAgUmVxdWVzdEV4
aXRGdWxsU2NyZWVuKCkKKyAgICBQbGF5KCkKKyAgICBQYXVzZSgpCisgICAgVG9nZ2xlUGxheVN0
YXRlKCkKKyAgICBTZWVrVG9UaW1lKGRvdWJsZSB0aW1lKQorICAgIERpZEV4aXRGdWxsc2NyZWVu
KCkKK30KKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223358</attachid>
            <date>2014-02-06 11:50:11 -0800</date>
            <delta_ts>2014-02-06 16:15:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128143-20140206115010.patch</filename>
            <type>text/plain</type>
            <size>52996</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0OGYyYzFhNGFhNDUy
YmFhNjE0MTg2ZjM3M2ViNGZiZmYwMWE0Yi4uMmE1NzNiOTdjNzNjNWZkNmMyMGMxMmY5NDA4MTQz
NTEyMTAxMWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAyLTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QVZLaXQgZnVsbHNjcmVlbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgb3ZlcmxvYWRlZCBmdW5jdGlvbnMgdG8gcHJldmVu
dCBhbWJpZ3VvdXMgdGVtcGxhdGUgcGFyYW1ldGVyCisgICAgICAgIGNvbXBpbGUgZXJyb3IgaW4g
Z2VuZXJhdGVkIGNvZGUuCisKKyAgICAgICAgUmVuYW1lIG92ZXJsb2FkZWQgZXhpdEZ1bGxzY3Jl
ZW4gdG8gZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIuCisgICAgICAgIFJlbmFt
ZSBvdmVybG9hZGVkIGVudGVyRnVsbHNjcmVlbiB0byBlbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxl
dGlvbkhhbmRsZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlciBleGl0RnVsbHNjcmVlbl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxl
dGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaDoKKwog
MjAxNC0wMi0wNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEZpeCB0aGUgIUVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKSBidWlsZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGYwNjE2ZDQxOWVkZWRiY2E1NGM2MjljODg5YTFjYzQxNjdlYzQ2YTkuLjU2NTRhNzkyOTQ3
MjNjZDdmMzYxZDAwMjA2ZmY2M2JlMTQyZjY0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBA
QAorMjAxNC0wMi0wMyAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIEFWS2l0IGZ1bGxzY3JlZW4gdG8gV2ViS2l0MgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIgYW5kIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB0aGF0IGltcGxl
bWVudCAKKyAgICAgICAgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwgYW5kIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgICAgIGluaXRpYWxpemUgbWVtYmVyIG1fdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcgorICAgIAorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAgICAgYWRkIGFjY2Vzc29yIGZvciB2
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5KToKKyAgICAgICAgICAgIGFkZCBiYXNpYyBjcmVhdGlvbiBmb3Igb2JqZWN0LgorCisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9M
YXllcklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OnBsYXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OnBhdXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Ojp0b2dnbGVQbGF5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsc2NyZWVuKToK
KyAgICAgICAgICAgIGltcGxlbWVudCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCB0byBzZW5kIElQ
QyBtZXNzYWdlLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgICAgIHRoaXMgaW50ZXJm
YWNlIGNsb3NlbHkgbWF0Y2hlcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UKKworICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAg
ICAgICAgIEZvcndhcmQgdGhlc2UgcmVxdWVzdHMgb250byB0aGUgdmlkZW9GdWxsc2NyZWVuTWFu
YWdlcgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAgICAg
YWNjZXNzb3IgZm9yIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToK
KyAgICAgICAgICAgIGFkZCBiYXNpYyBjcmVhdGlvbiBmb3Igb2JqZWN0LgorCisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzRnVsbHNjcmVlbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVl
bkZvck5vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
eGl0RnVsbHNjcmVlbkZvck5vZGUpOgorICAgICAgICAgICAgaW1wbGVtZW50IGludGVyZmFjZSBj
YWxsZWQgYnkgV2ViQ2hyb21lQ2xpZW50CisKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6c2V0RHVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpzZXRDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFJhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcklEKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3Jl
ZW4pOgorICAgICAgICAgICAgaW1wbGVtZW50IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSB0
byBzZW5kIElQQyBtZXNzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICAgICB0aGlzIGludGVy
ZmFjZSBjbG9zZWx5IG1hdGNoZXMgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwKKwogMjAxNC0wMi0w
NSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBz
b3VyY2VGcmFtZSB0byBXS05hdmlnYXRpb25BY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
YmZmYTc4OTI0MzUwNWU1NzQ1ODk2ZTUyZDAxNmVmZmM2NDZlYjcxYS4uMGRhMjBlMmVhZGExYzdj
NGFiMzlkNjkxZmM4YTUzMmI3Zjc5MDE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTMwNDIs
MzYgKzMwNDIsNjEgQEAgX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
YzZjcmVhdGVFUk5TXzEzU2Nyb2xsaW5nVHJlZUV5CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURF
TykKKy5vYmpjX2NsYXNzX25hbWVfV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlcgorX19aTjdX
ZWJDb3JlMTBUaW1lUmFuZ2VzM2FkZEVkZAorX19aTjdXZWJDb3JlMTJ0b1RpbWVSYW5nZXNFTjNK
U0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5n
RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19a
TjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CiBfX1pON1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQxNWNsZWFyTWVkaWFDYWNoZUV2CitfX1pON1dlYkNvcmUxNkhU
TUxNZWRpYUVsZW1lbnQxNXRvZ2dsZVBsYXlTdGF0ZUV2CitfX1pON1dlYkNvcmUxNkhUTUxNZWRp
YUVsZW1lbnQxNnJldHVyblRvUmVhbHRpbWVFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVt
ZW50MjBnZXRTaXRlc0luTWVkaWFDYWNoZUVSTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVO
UzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDIy
Y2xlYXJNZWRpYUNhY2hlRm9yU2l0ZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2SFRN
TE1lZGlhRWxlbWVudDRwbGF5RXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVwYXVz
ZUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ4c2V0TXV0ZWRFYgorX19aTjdXZWJD
b3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfMTBU
aW1lUmFuZ2VzRQorX19aTks3V2ViQ29yZTEwVGltZVJhbmdlczduZWFyZXN0RWQKIF9fWk5LN1dl
YkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMWN1cnJlbnRUaW1lRXYKK19fWk5LN1dlYkNvcmUxNkhU
TUxNZWRpYUVsZW1lbnQxMmlzRnVsbHNjcmVlbkV2CitfX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50MTJwbGF5YmFja1JhdGVFdgogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEz
cGxhdGZvcm1NZWRpYUV2CitfX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NWVuZGVkRXYK
IF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1bXV0ZWRFdgorX19aTks3V2ViQ29yZTE2
SFRNTE1lZGlhRWxlbWVudDZwYXVzZWRFdgogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVu
dDZ2b2x1bWVFdgogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDdjYW5QbGF5RXYKLV9f
Wk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMnBsYXliYWNrUmF0ZUV2CiBfX1pOSzdXZWJD
b3JlMTZIVE1MTWVkaWFFbGVtZW50OGR1cmF0aW9uRXYKLV9fWk43V2ViQ29yZTE2SFRNTE1lZGlh
RWxlbWVudDE2cmV0dXJuVG9SZWFsdGltZUV2Ci1fX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVt
ZW50MTJpc0Z1bGxzY3JlZW5FdgotX19aTjdXZWJDb3JlMTBUaW1lUmFuZ2VzM2FkZEVkZAotX19a
TjdXZWJDb3JlMTJ0b1RpbWVSYW5nZXNFTjNKU0M3SlNWYWx1ZUUKLV9fWk43V2ViQ29yZTR0b0pT
RVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzEwVGltZVJhbmdl
c0UKLV9fWk5LN1dlYkNvcmUxMFRpbWVSYW5nZXM3bmVhcmVzdEVkCiAjZW5kaWYKIAotI2lmIEVO
QUJMRShWSURFTykKLV9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1ZW5kZWRFdgotX19a
Tks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDZwYXVzZWRFdgotLm9iamNfY2xhc3NfbmFtZV9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyCisjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9S
TShJT1MpCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTFz
ZXREdXJhdGlvbkVkCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0MTNzZXRWaWRlb0xheWVyRVA3Q0FMYXllcgorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDE0ZXhpdEZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKK19fWk43V2Vi
Q29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2
CitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MThzZXRWaWRl
b0RpbWVuc2lvbnNFYmZmCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0MjZzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEVQTlNfMjNXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ3
c2V0UmF0ZUViZgorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dEMyRXYKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQx
MHNlZWtUb1RpbWVFZAorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlh
RWxlbWVudDExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dEVQTlNfNUV2
ZW50RQorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE1
c2V0TWVkaWFFbGVtZW50RVBOU18xNkhUTUxNZWRpYUVsZW1lbnRFCitfX1pON1dlYkNvcmUzNVdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTV0b2dnbGVQbGF5U3RhdGVFdgorX19a
TjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE3ZGlkRXhpdEZ1
bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudDIxcmVxdWVzdEV4aXRGdWxsU2NyZWVuRXYKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ0cGxheUV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50NXBhdXNlRXYKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnRDMkV2CitfX1pOSzdXZWJDb3JlMTZIVE1MVmlkZW9F
bGVtZW50MTB2aWRlb1dpZHRoRXYKK19fWk5LN1dlYkNvcmUxNkhUTUxWaWRlb0VsZW1lbnQxMXZp
ZGVvSGVpZ2h0RXYKK19fWlRWTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdEUKK19fWlRWTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dEUKK19fWlRobjRfTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dDExaGFuZGxlRXZlbnRFUE5TXzIyU2NyaXB0RXhlY3V0aW9uQ29udGV4dEVQTlNfNUV2ZW50RQog
I2VuZGlmCiAKKwogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQogX19aTjdXZWJDb3Jl
NFBhZ2UxMXNldFZpZXdNb2RlRU5TMF84Vmlld01vZGVFCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmOWE2MWQ1N2I0
ZGVmNzUwNzFjZWNkZTQ2ZWQyOGU5MzViY2JmYTJkLi4yMzg3MjdmMWU4NDViNzUyYzUzYjY0ZmE0
NTM4YmEwMTkyNjA4YzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTA3LDcgKzU5MDcsNyBAQAogCQlFNDQ2MTNBNzBDRDYz
MzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTUwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxTb3VyY2VFbGVtZW50LmNwcCAqLzsgfTsKIAkJRTQ0NjEzQTgwQ0Q2MzMxMDAwRkFEQTc1IC8q
IEhUTUxTb3VyY2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDQ2MTM5NjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQu
aCAqLzsgfTsKIAkJRTQ0NjEzQUEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEz
OTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuY3BwICovOyB9OwotCQlFNDQ2
MTNBQjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1
IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLzsgfTsKKwkJRTQ0NjEzQUIwQ0Q2MzMxMDAwRkFEQTc1
IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0NDYxMzk5MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ0
NjEzQUQwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzlCMENENjMzMTAwMEZBREE3NSAvKiBN
ZWRpYUVycm9yLmggKi87IH07CiAJCUU0NDYxM0FGMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFu
Z2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
NDYxMzlEMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmNwcCAqLzsgfTsKIAkJRTQ0NjEz
QjAwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzlFMENENjMzMTAwMEZBREE3NSAvKiBUaW1l
UmFuZ2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IGZlMTM5YWI1OTMxYjkyMTQzMDY1
ZGQ3MTA1N2RmYTFmZGI5NTM2YzYuLmYxODBhNzdiYjg5ZWViNjJkMjcwYjU3ZThiZTQ5NDUzZTYy
MDU0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtODIsNyArODIsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgICBSZXRhaW5QdHI8V2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlcj4gc3Ryb25nU2VsZihzZWxmKTsKICAgICAKLSAgICBfaW50ZXJmYWNl
LT5leGl0RnVsbHNjcmVlbihbc3Ryb25nU2VsZl17CisgICAgX2ludGVyZmFjZS0+ZXhpdEZ1bGxz
Y3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoW3N0cm9uZ1NlbGZdewogICAgICAgICBXZWJUaHJl
YWRSdW4oW3N0cm9uZ1NlbGZdewogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X21vZGVsLT5zZXRN
ZWRpYUVsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBzdHJvbmdTZWxmLT5faW50ZXJmYWNl
LT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbChudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0LmgKaW5kZXggMTYwMjNhYTRmYzZlMWMzMGI3ZjJmMGIzMTU1ODZjMjhmMjYxOGY0OC4u
NmI4YjhjNjdjZGNiNTJlN2JkYWZhMTY5ZWExNTYwYWYzNGVmNjYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0LmgKQEAgLTY0LDExICs2NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRS
YXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9Db250ZXh0
SUQpIG92ZXJyaWRlIHtVTlVTRURfUEFSQU0odmlkZW9Db250ZXh0SUQpO307CisgICAgdm9pZCBz
ZXRWaWRlb0xheWVySUQodWludDMyX3QpIG92ZXJyaWRlIHsgfTsKICAgICB2b2lkIGVudGVyRnVs
bHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBjb21wbGV0aW9uKTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbldpdGhDb21w
bGV0aW9uSGFuZGxlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogICAgIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oKSBvdmVycmlkZTsKLSAgICB2b2lkIGV4aXRGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBjb21wbGV0aW9uKTsKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aENvbXBsZXRp
b25IYW5kbGVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KaW5kZXggOGVjOWQ0NTYzOTUxZTM3OTk3NTI5YTUzZTdjYzRjYmRkZjQ3
NzljMi4uMmJmYTU3ZDkzMTlmMGE4ZjgyYjI1MDQwYmU4OTU4YWM0OWM3MThlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciogdmlk
ZW9MYXllcikKICAgICBtX3BsYXllckNvbnRyb2xsZXIuZ2V0KCkucGxheWVyTGF5ZXIgPSAoQ0FM
YXllcjxBVlBsYXllckxheWVyPiopdmlkZW9MYXllcjsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBjb21wbGV0aW9uKQordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50
ZXJGdWxsc2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBj
b21wbGV0aW9uKQogewogICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dD4gc3Ryb25nVGhpcyh0aGlzKTsKICAgICAKQEAgLTI5OSwxMCArMjk5LDEwIEBAIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbihzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gY29tCiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmVudGVyRnVsbHNjcmVlbigpCiB7Ci0gICAgZW50ZXJGdWxsc2NyZWVuKG51bGxwdHIpOworICAg
IGVudGVyRnVsbHNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKIH0KIAotdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb24pCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcihzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gY29tcGxldGlvbikKIHsKICAgICBtX3BsYXllckNvbnRyb2xsZXIuY2xlYXIo
KTsKICAgICBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHN0cm9uZ1Ro
aXModGhpcyk7CkBAIC0zMjQsNyArMzI0LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXAKIAog
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oKQog
ewotICAgIGV4aXRGdWxsc2NyZWVuKG51bGxwdHIpOworICAgIGV4aXRGdWxsc2NyZWVuV2l0aENv
bXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50LmgKaW5kZXggYzNjNThmMDE5YTE5YWZiZTE4YjJhZGVmOTZlYjNlZjIyNzg2
YjU0ZS4uNjk2OGY1ODg4NDgzYmY3YjQzZmM4Yjg3MWU4ODg3ZGY4YThhOTA5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVk
aWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBQTEFURk9S
TShJT1MpCiAKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzM4
ZGExNzFhMjZmMTM1MzkwNGY1MWNhNzE2ZGQxOTEwNDQ2YjIzYS4uMDhhODM0OGYyM2I2NWYzMzhm
YzIxMmNjN2FlNWYxZTA3MDBmNzUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0xMjYsNiArMTI2LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIgXAogICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdl
YlJlc291cmNlTG9hZGVyIFwKKyAgICBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIFwKKyAgICBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgXAogIwogCiBTQ1JJUFRTID0gXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4NDVhMjhmYmIyNjNkYWU1
MTNlYzk0ODQ1YTJiOTQ1NTcyM2I2YmRjLi41MmVkZTJmNTRkNTJlMzdkN2RmYzdhZDlkOTlmNDFm
NThhMTZmNjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtOTYsOCArOTYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9XaW5kb3dGZWF0dXJlcy5oPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaCIKQEAgLTEzMSw2ICsxMzEsMTEgQEAKICNpbmNsdWRlICJWaWV3U25hcHNo
b3RTdG9yZS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSAiV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNlbmRpZgorCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQg
c3RyYXRlZ3kgd2UgdXNlIGZvciBtb3VzZSB3aGVlbCBjb2FsZXNjaW5nLgogI2RlZmluZSBNRVJH
RV9XSEVFTF9FVkVOVFMgMQogCkBAIC0zNTEsNiArMzU2LDkgQEAgV2ViUGFnZVByb3h5OjpXZWJQ
YWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
LCBXZWIKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgbV9mdWxsU2NyZWVuTWFuYWdl
ciA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0ZSgqdGhpcywgbV9wYWdlQ2xpZW50
LmZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpjcmVhdGUoKnRoaXMpOworI2VuZGlmCiAjaWYgRU5BQkxFKFZJQlJBVElPTikK
ICAgICBtX3ZpYnJhdGlvbiA9IFdlYlZpYnJhdGlvblByb3h5OjpjcmVhdGUodGhpcyk7CiAjZW5k
aWYKQEAgLTI5NjEsNiArMjk2OSwxMyBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBXZWJQ
YWdlUHJveHk6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKICAgICByZXR1cm4gbV9mdWxsU2NyZWVuTWFu
YWdlci5nZXQoKTsKIH0KICNlbmRpZgorICAgIAorI2lmIFBMQVRGT1JNKElPUykKK1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSogV2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyKCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmdldCgpOworfQor
I2VuZGlmCiAKIC8vIEJhY2tGb3J3YXJkTGlzdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggYjQ2YzA3Y2YxMjc3OGZhMzU4YTZhMzY4M2IxMTU4ZDRmYzU1Yjk0
Ny4uNmY3NzY0OTlhYjU5MDdkOTViOWI1ZjUzMjgzOWExYjBkMWY0ODg4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ3LDYgKzE0Nyw3IEBAIGNsYXNzIFdl
YkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJv
eHk7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eTsKK2NsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdl
YktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eTsKQEAgLTM2MCw2ICszNjEsOSBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIGZ1bGxT
Y3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShJT1MpCisgICAgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5KiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisjZW5kaWYK
IAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbnRleHRN
ZW51Q2xpZW50KGNvbnN0IFdLUGFnZUNvbnRleHRNZW51Q2xpZW50QmFzZSopOwpAQCAtMTIwOSw2
ICsxMjEzLDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgUmVm
UHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IG1fZnVsbFNjcmVlbk1hbmFnZXI7CiAjZW5k
aWYKKyNpZiBQTEFURk9STShJT1MpCisgICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eT4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOworI2VuZGlmCiAKICNpZiBFTkFCTEUo
VklCUkFUSU9OKQogICAgIFJlZlB0cjxXZWJWaWJyYXRpb25Qcm94eT4gbV92aWJyYXRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMjViNGNkMmZjOTVkZWVlNzA3YjNlNGY0
MjllNDYwNWNhMGZjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDk2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIAorUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdl
YlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eShwYWdlKSk7Cit9CisKK1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFn
ZSkKKyAgICA6IG1fcGFnZSgmcGFnZSkKK3sKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CisgICAgc2V0V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWwodGhpcyk7Cit9CisKK1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpCit7CisgICAgbV9wYWdl
LT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xh
eWVySUQodW5zaWduZWQgdmlkZW9Db250ZXh0SUQpCit7CisgICAgLy8gVE9ETzogZmluZCBhIHJl
YWwgdmlkZW8gbGF5ZXIgb3IgbWFrZSBvbmUgdGhhdCBtZWV0cyB0aGUgbmVjZXNzYXJ5IHJlcXVp
cmVtZW50cy4KKyAgICBzZXRWaWRlb0xheWVyKG51bGxwdHIpOworfQorCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKK3sKKyAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RF
eGl0RnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwbGF5KCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlBsYXkoKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cGF1c2Uo
KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6UGF1c2UoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6dG9nZ2xlUGxheVN0YXRlKCkKK3sKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlRvZ2dsZVBsYXlTdGF0ZSgp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpzZWVrVG9UaW1lKGRvdWJsZSB0aW1lKQoreworICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2Vla1RvVGltZSh0aW1lKSwgbV9w
YWdlLT5wYWdlSUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5w
YWdlSUQoKSk7Cit9CisKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NjAzODBlNThlYzBh
NWZmMTFmZjhlMWJhMThlYTU4MGI1NTRmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5X2gKKyNkZWZpbmUgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5X2gKKworI2lmIFBM
QVRGT1JNKElPUykKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IDogcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LCBwdWJsaWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVu
TW9kZWwsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViUGFn
ZVByb3h5Jik7CisgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KCk7
CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KFdlYlBhZ2VQcm94eSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRWaWRl
b0xheWVySUQodW5zaWduZWQpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQgcmVxdWVzdEV4aXRG
dWxsU2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBwYXVzZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9nZ2xlUGxheVN0YXRlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZWVrVG9UaW1lKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRFeGl0
RnVsbHNjcmVlbigpIG92ZXJyaWRlOworCisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7Cit9Owor
ICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCisK
KyNlbmRpZiAvLyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI4OTczMjg2OTMwNTQyMjQ1NzBj
NGMyZGQ3ZTRmMThjZWMxNTk5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzNCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIGNo
YW5nZXMgaGVyZSBtdXN0IGJlIHJlZmxlY3RlZCBpbiBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbAor
I2lmIFBMQVRGT1JNKElPUykKK21lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eSB7CisgICAgU2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgaG9z
dFRpbWUpCisgICAgU2V0VmlkZW9MYXllcklEKHVuc2lnbmVkIGludCB2aWRlb0NvbnRleHRJRCkK
KyAgICBTZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgdW5zaWduZWQgd2lkdGgsIHVu
c2lnbmVkIGhlaWdodCkKKyAgICBTZXREdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCisgICAgU2V0
UmF0ZShib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCisgICAgRW50ZXJGdWxsc2NyZWVuKCkK
KyAgICBFeGl0RnVsbHNjcmVlbigpCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZTVmY2U2N2M1ZGNiNjM2ODEx
YzFjMWNjOGEzYWUwMDk2NjhmYmJkLi5mM2Q5ODM5OWZkNzJhZDQ2NmQzMTk0OWFmNTBmM2QwYmNk
YTZiNTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC02MDIsOSArNjAyLDE0IEBACiAJCTM3RkMxOTQ3MTg1MEZCRjIwMDhDRkE0
NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0
NyAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzN0ZDMTk0QTE4NTEwRDZBMDA4
Q0ZBNDcgLyogV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDgxODUxMEQ2QTAwOENGQTQ3
IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbSAqLzsgfTsKIAkJMzdGQzE5NEIx
ODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGQzE5NDkxODUxMEQ2
QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyB9OworCQkz
RjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTNGNDE4RUZCMTg4N0JEOTcwMDI3OTVGRCAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjcxODg3QkQ5
NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4
N0I5QkExNTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07CiAJCTNG
ODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2
MiAvKiBXZWJDb2xvckNob29zZXIuaCAqLzsgfTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAwOTBGRjYy
IC8qIFdlYkNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAq
LzsgfTsKKwkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmNwcCAqLzsgfTsKKwkJM0Y4ODlEMTUxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5oICovOyB9OworCQkzRjg4OUQxNzE4ODc4NTkzMDBGRUFEQUYgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5jcHAgKi87IH07CiAJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAv
KiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25z
ZU1hcC5oICovOyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMu
bW0gKi87IH07CiAJCTUxMDMyRjE4MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEwMzJGMTYxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgKi87IH07CkBAIC0yMjkyLDkgKzIyOTcsMTkgQEAKIAkJMzdGQzE5NDYx
ODUwRkJGMjAwOENGQTQ3IC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlUHJpdmF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDgx
ODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzdGQzE5NDkxODUx
MEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y0MThFRjUxODg3QkQ5NzAwMjc5NUZE
IC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY2
MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4RUY3MTg4N0JE
OTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJM0Y0MThFRjgxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTNGODdCOUJBMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xvckNob29z
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JDaG9v
c2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4N0I5QkIxNTg5M0Y2MzAw
OTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDb2xvckNob29zZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4
N0I5QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTNGODg5RDBEMTg4NzY5OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg4
OUQwRTE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGODg5RDEwMTg4NzcxMDAwMEZFQURBRiAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJM0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGNjAxNDMwMTU1QzVBMzIw
MDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJsb2NraW5nUmVzcG9uc2VNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFNlY0l0ZW1TaGltLmR5bGliICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gU2VjSXRlbVNoaW0uZHlsaWI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgw
MDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA3OSw2ICs1MDk0LDkgQEAKIAkJCQkzMzM2NzYzMjEz
MEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCiAJ
CQkJMzMzNjc2MzMxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkuaCAqLywKIAkJCQkzMzM2NzYzNDEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFE
QUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQkzRjg4OUQx
MzE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8s
CisJCQkJM0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0gVUlQcm9jZXNzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTU5MDIsNiArNTkyMCwxMCBAQAogCQlDMENFNzI5
RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkzRjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJM0Y0
MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdl
cy5oICovLAorCQkJCTNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTNGNDE4RUY4MTg4N0JE
OTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
LAogCQkJCTJEODE5QjlGMTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29s
bGVjdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkyRDgxOUJBMDE4NjI4MDBFMDAxRjAz
RDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvck1lc3NhZ2VzLmggKi8sCiAJCQkJNTEy
RjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCkBAIC02MDU5LDYgKzYwODEsOSBAQAogCQkJCUNENzNCQTM3MTMxQTI5RkUw
MEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgKi8sCiAJCQkJQ0Q3M0JBMzgxMzFB
MjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmggKi8sCiAJCQkJQ0Q3M0JBMzkx
MzFBMjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAor
CQkJCTNGODg5RDBEMTg4NzY5OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LmNwcCAqLywKKwkJCQkzRjg4OUQwRTE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oICovLAorCQkJCTNGODg5RDEwMTg4NzcxMDAwMEZFQURBRiAvKiBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCW5hbWUgPSBGdWxs
U2NyZWVuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY1ODksNiArNjYxNCw3IEBA
CiAJCQkJQkMxREZFQTQxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDhGMTBGNDM3QTAwMDU4QzE1QSAv
KiBXZWJQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTUzNTY5RDEyOTFCMUQyMDAwNzQ5REMg
LyogV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzRjg4OUQx
NTE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzdCNjIwNjEyOUEwQTY3MDBEMTc0QTQgLyogV2ViUGFnZUdyb3Vw
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjI1MjEyQTQzQzk2MDBEMTc0QTQgLyogV2ViUGFn
ZUdyb3VwRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3QjYyMTUxMkE0MjE5QTAwRDE3NEE0
IC8qIFdlYlBhZ2VHcm91cFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTc5MDUsNiArNzkzMSw3
IEBACiAJCQkJRjZBMjVGREMxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzZCNjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0
YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTM1
MjA5MTgwRjVENkIwMEU1M0JFOSAvKiBEYXRhYmFzZVNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjYyQTc2
NUMxMkIxQUJDMzAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQUMxMTIwMTJDOTJDMUYwMEIwOEVFRSAvKiBXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjJBNzZCODEyQjFCMjVGMDAw
NUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC04MDQwLDYgKzgwNjcsNyBAQAogCQkJCTMzMzY3NjM1MTMwQzk5QjIwMDZD
OURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTMzMzY3NjU3MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEFGRkI5MTY1NDIw
NDgwMDFCQTA1RSAvKiBXZWJSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
Rjg4OUQxNDE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJS
ZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzhF
MUEzRDE4MUVENkZGMDAzMTAwN0EgLyogQVBJT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTFGQjA4RkYxNjM5REUxQTAwRUMzMjRBIC8qIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTgxNTAsNyArODE3OCw5IEBACiAJCQkJQkM4NTgwNjMxMkI4NTA1
NzAwRURFQjJFIC8qIFdLT3BlblBhbmVsUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzg1ODA2MjEyQjg1MDU3MDBFREVCMkUgLyogV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUZDQjE4ODE3QkJGRTAzMDAzOTRDRDggLyogU3luY2hy
b25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTNGNDE4RUZC
MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNENTk3RDYxMTJCNTZEQzAwRUM4QzIz
IC8qIFdLUGFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzRjg4OUQxNzE4ODc4NTkzMDBGRUFE
QUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzdCNjMzODEyQTQ1QUJBMDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNFMTdCN0QxMzgxRjExNzAwMTJBNjQxIC8qIFdLUGFnZVByaXZhdGVNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0MxMzVBQTgxNzNCMEJDQTAwNTg2QUUyIC8qIFdLUGx1Z2luSW5m
b3JtYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXgg
ODI2NDg0YzhlYTU1MWU0MzMxYTczZThlZTY1MGUyOWM0YTc3OTUyOS4uZDk2NDFhYmNjMjYxZDUy
NGE1ZjQxODlkMzcxZTIyOTBjMGJjMmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
NjksNiArNjksMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUg
IldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2Vu
ZGlmCkBAIC04MzAsNiArODM0LDIzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpuZWVkVG91Y2hF
dmVudHMoYm9vbCBuZWVkVG91Y2hFdmVudHMpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
UykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG1fcGFnZS0+dmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcigpLT5zdXBwb3J0c0Z1bGxzY3JlZW4obm9kZSk7Cit9CisKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7
CisgICAgbV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCktPmVudGVyRnVsbHNjcmVlbkZv
ck5vZGUobm9kZSk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZv
ck5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIoKS0+ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKG5vZGUpOworfQorI2VuZGlmCisgICAg
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0
aEtleWJvYXJkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYjc1MzFkMTRmMzBmNmIyNGIz
MTQ2ODRmMTFjZWUxMDg1YjZkNTFjOS4uYTAwOWY4NTIyMTYyMjVlYjZlODY0MDE2OTVlOTI3MjNm
NGFjYTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMzgsNiArMjM4LDEyIEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CisgICAg
dmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CisjZW5k
aWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRo
S2V5Ym9hcmQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0MGY4ODUzNTUzN2E1YTQ4ZGI5MjA2
M2VlMTRlOWVhMWQyZjk0Y2IxLi4wYmVjM2Y0OGY0YThhZTdmMDQxNjYzZGNmNjY0YzU0ZmQyZGZh
MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC0xODIsNiArMTgyLDEwIEBACiAjaW5jbHVkZSAiV2ViUHJpbnRPcGVyYXRpb25HdGsuaCIK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaCIKKyNlbmRpZgorCiAjaWZuZGVmIE5ERUJVRwogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkTGVha0NvdW50ZXIuaD4KICNlbmRpZgpAQCAtMjYyNiw2ICsyNjMwLDE1IEBAIFdlYklu
c3BlY3RvciogV2ViUGFnZTo6aW5zcGVjdG9yKCkKICAgICByZXR1cm4gbV9pbnNwZWN0b3IuZ2V0
KCk7CiB9CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1MpCitXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKiBXZWJQYWdlOjp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKK3sKKyAgICBpZiAo
IW1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVy
biBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuZ2V0KCk7Cit9CisjZW5kaWYKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2Ny
ZWVuTWFuYWdlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCBmNDVhMzE0NjY5ZDg5YjZmMzQ2YzQ2YzYxZWZmMGVlYjNjYjUwMTFlLi5lZjU1ODUy
ODZmODBhNzUyN2MwM2RhODkzMGYxODc2NzNlNDMzOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE1Myw2ICsxNTMsNyBAQCBjbGFzcyBXZWJO
b3RpZmljYXRpb25DbGllbnQ7CiBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIGNs
YXNzIFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUG9wdXBNZW51OworY2xhc3MgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiBzdHJ1Y3QgQXR0cmli
dXRlZFN0cmluZzsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKQEAgLTIwNCw2ICsyMDUsMTAgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3Io
KTsKICNlbmRpZgorICAgIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CisjZW5kaWYKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1h
bmFnZXIoKTsKQEAgLTk5Niw2ICsxMDAxLDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwogI2VuZGlmCisjaWYg
UExBVEZPUk0oSU9TKQorICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBtX3Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI7CisjZW5kaWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyPiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmI3ODk5YjFiNDNhMDMzOWM2NjlmNWVk
MmRmOGZjZjNlMjM0MmI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0V2ZW50TmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1Bhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcj4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8V2Vi
UGFnZT4gcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIocGFnZSkpOworfQorCitXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkKKyAgICA6IG1fcGFn
ZShwYWdlKQoreworICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSh0aGlzKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS0+cGFnZUlE
KCksICp0aGlzKTsKK30KKworV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworYm9vbCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3QgTm9kZSogbm9kZSkKK3sKKyAg
ICBpZiAoIVNldHRpbmdzOjphdktpdEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICBtX25vZGUgPSBub2RlOworICAgIHNldE1lZGlhRWxlbWVu
dCh0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkpOworICAgIGVudGVyRnVsbHNjcmVlbigpOworfQor
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShO
b2RlKikKK3sKKyAgICBleGl0RnVsbHNjcmVlbigpOworICAgIHNldE1lZGlhRWxlbWVudChudWxs
cHRyKTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXREdXJhdGlvbihk
b3VibGUgZHVyYXRpb24pCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldER1cmF0aW9uKGR1cmF0aW9uKSwgbV9wYWdlLT5wYWdl
SUQoKSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEN1cnJl
bnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpCit7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEN1
cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBhbmNob3JUaW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9
CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFJhdGUoYm9vbCBpc1Bs
YXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0UmF0ZShpc1BsYXlpbmcsIHBsYXli
YWNrUmF0ZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OnNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoaGFzVmlkZW8sIHdpZHRoLCBo
ZWlnaHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKikKK3sKKyAgICAvLyBUT0RP
OiBpbXBsZW1lbnQgd2l0aCBjb3JyZWN0IGxheWVyIElELgorICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQoMCks
IG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpzZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9Db250ZXh0SUQpCit7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZp
ZGVvTGF5ZXJJRCh2aWRlb0NvbnRleHRJRCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVy
RnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW4oKQoreworICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVlbigp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0YjY4YTlkOGJiNzYyYjk4
MWUzYTUyMTMzMzU4N2I1NTNhYzNiMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMCwwICsxLDgzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKyNpZm5kZWYgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcl9oCisjZGVmaW5l
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJfaAorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9FdmVudExpc3RlbmVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VEZWNvZGVyOwor
Y2xhc3MgTWVzc2FnZVJlY2VpdmVyOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBO
b2RlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3Mg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciA6IHB1YmxpYyBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudCwgcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZSwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxXZWJQYWdlPik7CisgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcigp
OworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpOworICAgIAorICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqKTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5vZGUoV2Vi
Q29yZTo6Tm9kZSopOworICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5v
ZGUqKTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKFBhc3NSZWZQdHI8V2ViUGFnZT4pOworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBF
dmVudExpc3RlbmVyJiByaHMpIG92ZXJyaWRlIHtyZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RXZlbnRMaXN0ZW5lcio+KHRoaXMpID09ICZyaHM7fQorICAgIAorICAgIHZvaWQgc2V0RHVyYXRp
b24oZG91YmxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJy
ZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0UmF0ZShi
b29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciopIG92ZXJy
aWRlOworICAgIHZvaWQgc2V0VmlkZW9MYXllcklEKHVpbnQzMl90KSBvdmVycmlkZTsKKyAgICB2
b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4o
KSBvdmVycmlkZTsKKyAgICAKKyAgICBSZWZQdHI8V2ViUGFnZT4gbV9wYWdlOworICAgIFJlZlB0
cjxXZWJDb3JlOjpOb2RlPiBtX25vZGU7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNlbmRpZiAvLyBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDFl
NTVmNDJjOGQ0NWE4M2U0ODY0MTk5NzIxNzcwNGViOWZjMjg0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworIyBjaGFuZ2VzIGhlcmUgbXVzdCBiZSByZWZsZWN0ZWQgaW4gV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWwKKyNpZiBQTEFURk9STShJT1MpCittZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyIHsKKyAgICBSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQorICAgIFBsYXkoKQor
ICAgIFBhdXNlKCkKKyAgICBUb2dnbGVQbGF5U3RhdGUoKQorICAgIFNlZWtUb1RpbWUoZG91Ymxl
IHRpbWUpCisgICAgRGlkRXhpdEZ1bGxzY3JlZW4oKQorfQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223400</attachid>
            <date>2014-02-06 16:15:51 -0800</date>
            <delta_ts>2014-02-06 18:15:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128143-20140206161551.patch</filename>
            <type>text/plain</type>
            <size>55082</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg0YmRmYmU4Nzc5NDEx
ZTViNzFhNmViYjk1ZmMzMmEwYmRkYTU4Yy4uN2YxOGEyNGQ4OTNlNjVjNTI0YTJhZDFhYzkyOTg5
Nzg3NDA0YTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAyLTAzICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
QVZLaXQgZnVsbHNjcmVlbiB0byBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgxNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgb3ZlcmxvYWRlZCBmdW5jdGlvbnMgdG8gcHJldmVu
dCBhbWJpZ3VvdXMgdGVtcGxhdGUgcGFyYW1ldGVyCisgICAgICAgIGNvbXBpbGUgZXJyb3IgaW4g
Z2VuZXJhdGVkIGNvZGUuCisKKyAgICAgICAgUmVuYW1lIG92ZXJsb2FkZWQgZXhpdEZ1bGxzY3Jl
ZW4gdG8gZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIuCisgICAgICAgIFJlbmFt
ZSBvdmVybG9hZGVkIGVudGVyRnVsbHNjcmVlbiB0byBlbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxl
dGlvbkhhbmRsZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlciBleGl0RnVsbHNjcmVlbl0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxl
dGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaDoKKwog
MjAxNC0wMi0wNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2MzU0Mi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzMWFl
ZDk5MTgwOWE0OTRiNWEyZTc2MmExY2I2MzNhZGEwYWZlN2JkLi5kZWZlZmZlMzk4NDIyZDI0NmQ2
ZTM0NWNjOGZlNmMxNGUyNjM3NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTQt
MDItMDMgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBBVktpdCBmdWxsc2NyZWVuIHRvIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODE0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyIGFuZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgdGhhdCBpbXBsZW1lbnQgCisg
ICAgICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsIGFuZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Oldl
YlBhZ2VQcm94eSk6CisgICAgICAgICAgICBpbml0aWFsaXplIG1lbWJlciBtX3ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIKKyAgICAKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgICAgIGFkZCBhY2Nlc3NvciBmb3IgdmlkZW9GdWxs
c2NyZWVuTWFuYWdlcgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSk6
CisgICAgICAgICAgICBhZGQgYmFzaWMgY3JlYXRpb24gZm9yIG9iamVjdC4KKworICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJJRCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVz
dEV4aXRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwbGF5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpwYXVzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6dG9nZ2xlUGxheVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWVrVG9UaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAg
ICAgICBpbXBsZW1lbnQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwgdG8gc2VuZCBJUEMgbWVzc2Fn
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICAgICB0aGlzIGludGVyZmFjZSBjbG9z
ZWx5IG1hdGNoZXMgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlCisKKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAgICAgICBG
b3J3YXJkIHRoZXNlIHJlcXVlc3RzIG9udG8gdGhlIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKyAgICAgICAgICAgIGFjY2Vzc29y
IGZvciBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjp+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcik6CisgICAgICAg
ICAgICBhZGQgYmFzaWMgY3JlYXRpb24gZm9yIG9iamVjdC4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxz
Y3JlZW5Gb3JOb2RlKToKKyAgICAgICAgICAgIGltcGxlbWVudCBpbnRlcmZhY2UgY2FsbGVkIGJ5
IFdlYkNocm9tZUNsaWVudAorCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldER1cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6c2V0Q3VycmVudFRpbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzZXRSYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0VmlkZW9EaW1lbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJJRCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuKToKKyAg
ICAgICAgICAgIGltcGxlbWVudCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgdG8gc2VuZCBJ
UEMgbWVzc2FnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAgICAgdGhpcyBpbnRlcmZhY2UgY2xv
c2VseSBtYXRjaGVzIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsCisKIDIwMTQtMDItMDYgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIOKAmSB3
aXRoICcgdG8gc2lsZW5jZSB0aGUgY2hlY2stZm9yLXdlYmtpdC1mcmFtZXdvcmstaW5jbHVkZS1j
b25zaXN0ZW5jeSBzY3JpcHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDhhZTI3MDliOTM1YWU5
NTgzY2ZiNGE0OTkyNTNlMWJlMzgzZGJjYTEuLjVmYjhhYTM2MzdjMzUxMDZjYmU0MzFhMTBjYTJi
YjZiMzA2MTA4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMDU0LDM2ICszMDU0LDYyIEBA
IF9fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM2Y3JlYXRlRVJOU18x
M1Njcm9sbGluZ1RyZWVFeQogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCisub2JqY19jbGFz
c19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKK19fWk43V2ViQ29yZTEwVGltZVJh
bmdlczNhZGRFZGQKK19fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMmVuZFNjcnViYmluZ0V2CiBfX1pON1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQxNGJlZ2luU2NydWJiaW5nRXYKIF9fWk43V2ViQ29yZTE2SFRN
TE1lZGlhRWxlbWVudDE0ZXhpdEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50MTVjbGVhck1lZGlhQ2FjaGVFdgorX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MTV0b2dnbGVQbGF5U3RhdGVFdgorX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTZyZXR1
cm5Ub1JlYWx0aW1lRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDIwZ2V0U2l0ZXNJ
bk1lZGlhQ2FjaGVFUk4zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFTlMxXzE1Q3Jhc2hPbk92
ZXJmbG93RUVFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQyMmNsZWFyTWVkaWFDYWNo
ZUZvclNpdGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ0
cGxheUV2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ1cGF1c2VFdgogX19aTjdXZWJD
b3JlMTZIVE1MTWVkaWFFbGVtZW50OHNldE11dGVkRWIKK19fWk43V2ViQ29yZTR0b0pTRVBOM0pT
QzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzEwVGltZVJhbmdlc0UKK19f
Wk5LN1dlYkNvcmUxMFRpbWVSYW5nZXM3bmVhcmVzdEVkCiBfX1pOSzdXZWJDb3JlMTZIVE1MTWVk
aWFFbGVtZW50MTFjdXJyZW50VGltZUV2CitfX1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50
MTJpc0Z1bGxzY3JlZW5FdgorX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEycGxheWJh
Y2tSYXRlRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxM3BsYXRmb3JtTWVkaWFF
dgorX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDVlbmRlZEV2CiBfX1pOSzdXZWJDb3Jl
MTZIVE1MTWVkaWFFbGVtZW50NW11dGVkRXYKK19fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1l
bnQ2cGF1c2VkRXYKIF9fWk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ2dm9sdW1lRXYKIF9f
Wk5LN1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQ3Y2FuUGxheUV2Ci1fX1pOSzdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTJwbGF5YmFja1JhdGVFdgogX19aTks3V2ViQ29yZTE2SFRNTE1lZGlh
RWxlbWVudDhkdXJhdGlvbkV2Ci1fX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNnJldHVy
blRvUmVhbHRpbWVFdgotX19aTks3V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyaXNGdWxsc2Ny
ZWVuRXYKLV9fWk43V2ViQ29yZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9U
aW1lUmFuZ2VzRU4zSlNDN0pTVmFsdWVFCi1fX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0
YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU18xMFRpbWVSYW5nZXNFCi1fX1pOSzdXZWJD
b3JlMTBUaW1lUmFuZ2VzN25lYXJlc3RFZAogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVklERU8pCi1f
X1pOSzdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50NWVuZGVkRXYKLV9fWk5LN1dlYkNvcmUxNkhU
TUxNZWRpYUVsZW1lbnQ2cGF1c2VkRXYKLS5vYmpjX2NsYXNzX25hbWVfV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlcgorI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oSU9TKQorX19aTjdX
ZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDExc2V0RHVyYXRpb25FZAor
X19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDEzc2V0VmlkZW9M
YXllckVQN0NBTGF5ZXIKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQxNGV4aXRGdWxsc2NyZWVuRXYKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQxNHNldEN1cnJlbnRUaW1lRWRkCitfX1pON1dlYkNvcmUzMldlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVlbnRlckZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3Jl
MzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJm
ZgorX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDI2c2V0V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxFUE5TXzIzV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxFCitfX1pO
N1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0N3NldFJhdGVFYmYKK19f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXRDMkV2CitfX1pON1dl
YkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTBzZWVrVG9UaW1lRWQK
K19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxMWhhbmRs
ZUV2ZW50RVBOU18yMlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRFUE5TXzVFdmVudEUKK19fWk43V2Vi
Q29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxNXNldE1lZGlhRWxlbWVu
dEVQTlNfMTZIVE1MTWVkaWFFbGVtZW50RQorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbE1lZGlhRWxlbWVudDE1dG9nZ2xlUGxheVN0YXRlRXYKK19fWk43V2ViQ29yZTM1V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQxN2RpZEV4aXRGdWxsc2NyZWVuRXYKK19f
Wk43V2ViQ29yZTM1V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQyMXJlcXVlc3RF
eGl0RnVsbFNjcmVlbkV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVk
aWFFbGVtZW50NHBsYXlFdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudDVwYXVzZUV2CitfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50QzJFdgorX19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudEQyRXYKK19fWk5LN1dlYkNvcmUxNkhUTUxWaWRlb0VsZW1lbnQxMHZpZGVvV2lk
dGhFdgorX19aTks3V2ViQ29yZTE2SFRNTFZpZGVvRWxlbWVudDExdmlkZW9IZWlnaHRFdgorX19a
VFZON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0RQorX19aVFZON1dl
YkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50RQorX19aVGhuOF9ON1dl
YkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTFoYW5kbGVFdmVudEVQ
TlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0RVBOU181RXZlbnRFCiAjZW5kaWYKIAorCiAjaWYg
RU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiBfX1pON1dlYkNvcmU0UGFnZTExc2V0Vmlld01v
ZGVFTlMwXzhWaWV3TW9kZUUKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGFjYTg1NWM0Nzg5Nzk1MDRhMGQyMzdjMzQx
NGM0NGZhNjU5MzY4NGYuLmE2YWI0MzdkOTMyNWI0YmEwNGI2MzkyNjJmOGVjZTFjZDc3ZjU4ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTU5MTEsNyArNTkxMSw3IEBACiAJCUU0NDYxM0E3MENENjMzMTAwMEZBREE3NSAvKiBI
VE1MU291cmNlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDQ2MTM5NTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1lbnQu
Y3BwICovOyB9OwogCQlFNDQ2MTNBODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFNvdXJjZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYx
Mzk2MENENjMzMTAwMEZBREE3NSAvKiBIVE1MU291cmNlRWxlbWVudC5oICovOyB9OwogCQlFNDQ2
MTNBQTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5ODBDRDYzMzEwMDBGQURB
NzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgKi87IH07Ci0JCUU0NDYxM0FCMENENjMzMTAwMEZB
REE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5OTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxl
bWVudC5oICovOyB9OworCQlFNDQ2MTNBQjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0
NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDQ2MTNBRDBDRDYzMzEwMDBG
QURBNzUgLyogTWVkaWFFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQ0NjEzOUIwQ0Q2MzMxMDAwRkFEQTc1IC8qIE1lZGlhRXJyb3IuaCAqLzsg
fTsKIAkJRTQ0NjEzQUYwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOUQwQ0Q2MzMxMDAw
RkFEQTc1IC8qIFRpbWVSYW5nZXMuY3BwICovOyB9OwogCQlFNDQ2MTNCMDBDRDYzMzEwMDBGQURB
NzUgLyogVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ0NjEzOUUwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0KaW5kZXggZmUxMzlhYjU5MzFiOTIxNDMwNjVkZDcxMDU3ZGZhMWZkYjk1
MzZjNi4uZjE4MGE3N2JiODllZWI2MmQyNzBiNTdlOGJlNDk0NTNlNjIwNTRhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXJBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCkBAIC04Miw3ICs4Miw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogewogICAgIFJldGFpblB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
PiBzdHJvbmdTZWxmKHNlbGYpOwogICAgIAotICAgIF9pbnRlcmZhY2UtPmV4aXRGdWxsc2NyZWVu
KFtzdHJvbmdTZWxmXXsKKyAgICBfaW50ZXJmYWNlLT5leGl0RnVsbHNjcmVlbldpdGhDb21wbGV0
aW9uSGFuZGxlcihbc3Ryb25nU2VsZl17CiAgICAgICAgIFdlYlRocmVhZFJ1bihbc3Ryb25nU2Vs
Zl17CiAgICAgICAgICAgICBzdHJvbmdTZWxmLT5fbW9kZWwtPnNldE1lZGlhRWxlbWVudChudWxs
cHRyKTsKICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCAx
NjAyM2FhNGZjNmUxYzMwYjdmMmYwYjMxNTU4NmMyOGYyNjE4ZjQ4Li42YjhiOGM2N2NkY2I1MmU3
YmRhZmExNjllYTE1NjBhZjM0ZWY2NjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApA
QCAtNjQsMTEgKzY0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlp
bmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0RpbWVu
c2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2
b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0NvbnRleHRJRCkgb3ZlcnJpZGUge1VO
VVNFRF9QQVJBTSh2aWRlb0NvbnRleHRJRCk7fTsKKyAgICB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1
aW50MzJfdCkgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBs
ZXRpb24pOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyKHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbigpIG92ZXJyaWRl
OwotICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRp
b24pOworICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpm
dW5jdGlvbjx2b2lkKCk+KTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpp
bmRleCA4ZWM5ZDQ1NjM5NTFlMzc5OTc1MjlhNTNlN2NjNGNiZGRmNDc3OWMyLi4yYmZhNTdkOTMx
OWYwYThmODJiMjUwNDBiZTg5NThhYzQ5YzcxOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0Lm1tCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyKQogICAgIG1f
cGxheWVyQ29udHJvbGxlci5nZXQoKS5wbGF5ZXJMYXllciA9IChDQUxheWVyPEFWUGxheWVyTGF5
ZXI+Kil2aWRlb0xheWVyOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjplbnRlckZ1bGxzY3JlZW4oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb24pCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5XaXRo
Q29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb24pCiB7CiAg
ICAgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBzdHJvbmdUaGlzKHRo
aXMpOwogICAgIApAQCAtMjk5LDEwICsyOTksMTAgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb20K
IAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVu
KCkKIHsKLSAgICBlbnRlckZ1bGxzY3JlZW4obnVsbHB0cik7CisgICAgZW50ZXJGdWxsc2NyZWVu
V2l0aENvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
Y29tcGxldGlvbikKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmV4aXRG
dWxsc2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21w
bGV0aW9uKQogewogICAgIG1fcGxheWVyQ29udHJvbGxlci5jbGVhcigpOwogICAgIFJlZlB0cjxX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gc3Ryb25nVGhpcyh0aGlzKTsKQEAgLTMy
NCw3ICszMjQsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0
RnVsbHNjcmVlbihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcAogCiB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpleGl0RnVsbHNjcmVlbigpCiB7Ci0gICAgZXhpdEZ1bGxz
Y3JlZW4obnVsbHB0cik7CisgICAgZXhpdEZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIo
bnVsbHB0cik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaApp
bmRleCBjM2M1OGYwMTlhMTlhZmJlMThiMmFkZWY5NmViM2VmMjI3ODZiNTRlLi40Yzc0YWY1ZjI0
ZTk0MDM3Y2ViOWEzNmFiYWZjNWI5N2Y1MTBkMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRp
YUVsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bE1lZGlhRWxlbWVudCA6IHB1YmxpYyBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCwgcHVibAogICAg
IAogcHVibGljOgogICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50KCk7Ci0g
ICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQoKSB7IH0KKyAg
ICB2aXJ0dWFsIH5XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudCgpOwogICAgIHZv
aWQgc2V0V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZSogaW50ZXJmYWNlKSB7bV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSBpbnRlcmZhY2U7
fQogICAgIHZvaWQgc2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBkMGYwM2JlNjM2NTA4MTc0YWU1
ZWU2ODZjMTU4ZTZjYWMzYjM2ZGMxLi5jZjg1ZjBmMmVlMzMyNjVjMjU2YWE1ODJlOTNiZTcyM2Uz
YTk4NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRXZlbnROYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxWaWRl
b0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgpAQCAtNTAsNiArNTEsMTAgQEAgV2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVt
ZW50KCkKIHsKIH0KIAorV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6On5XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudCgpCit7Cit9CisKIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQpCiB7CiAgICAgaWYgKG1fbWVkaWFFbGVtZW50ID09IG1lZGlhRWxl
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGMzOGRhMTcxYTI2ZjEzNTM5
MDRmNTFjYTcxNmRkMTkxMDQ0NmIyM2EuLjUzNGQ4NGZlOGQwMzFlMTA4NzgyNGFmZGViNzcwMzQy
NzIwYTIxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTAsNiArNTAsNyBA
QCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvU3RvcmFnZSBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvV2ViUGFnZSBcCisgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL2lvcyBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2VzcyBcCiAgICAgJChX
ZWJLaXQyKS9VSVByb2Nlc3MvRGF0YWJhc2VzIFwKQEAgLTYwLDYgKzYxLDcgQEAgVlBBVEggPSBc
CiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9VSVBy
b2Nlc3MvU3RvcmFnZSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvbWFjIFwKKyAgICAkKFdl
YktpdDIpL1VJUHJvY2Vzcy9pb3MgXAogIwogCiBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKQEAgLTEy
Niw2ICsxMjgsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlciBcCiAgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViUmVz
b3VyY2VMb2FkZXIgXAorICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgXAorICAgIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBcCiAjCiAKIFNDUklQVFMgPSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDBhMjg1ZGQ3N2RhMzYzZmMxMWIy
NDczZGE3ZDRmNTUzOWRhM2NkOTUuLmM2MzJhMzBjZmRhNGNlZGMzODk4MDc5MDIyYzM1Njk2ZjZk
Y2ViYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05
Niw4ICs5Niw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dpbmRvd0ZlYXR1cmVzLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oIgpAQCAtMTMxLDYgKzEzMSwxMSBAQAogI2luY2x1ZGUgIlZpZXdTbmFwc2hvdFN0
b3JlLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJh
dGVneSB3ZSB1c2UgZm9yIG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dI
RUVMX0VWRU5UUyAxCiAKQEAgLTM0OCw2ICszNTMsOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQ
cm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdl
YgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBtX2Z1bGxTY3JlZW5NYW5hZ2VyID0g
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKCp0aGlzLCBtX3BhZ2VDbGllbnQuZnVs
bFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCgpKTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykK
KyAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmNyZWF0ZSgqdGhpcyk7CisjZW5kaWYKICNpZiBFTkFCTEUoVklCUkFUSU9OKQogICAg
IG1fdmlicmF0aW9uID0gV2ViVmlicmF0aW9uUHJveHk6OmNyZWF0ZSh0aGlzKTsKICNlbmRpZgpA
QCAtMjk3MCw2ICsyOTc4LDEzIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIFdlYlBhZ2VQ
cm94eTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogICAgIHJldHVybiBtX2Z1bGxTY3JlZW5NYW5hZ2Vy
LmdldCgpOwogfQogI2VuZGlmCisgICAgCisjaWYgUExBVEZPUk0oSU9TKQorUmVmUHRyPFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gV2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKCkKK3sKKyAgICByZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOworfQorI2Vu
ZGlmCiAKIC8vIEJhY2tGb3J3YXJkTGlzdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKaW5kZXggNjgzZWE3NGIzNDBhYzZjNTc0ODc4MjBmODI2OWQzY2IxOWIyMjliMC4u
YzQzNWNhODI2MTIyYzE4M2Q5NmNmOTBhMzIwYzM2ZTgwYjgwZTI4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIGNsYXNzIFdlYkNv
bG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94eTsKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHk7
CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTsKK2NsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYktl
eWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eTsKQEAgLTM2MSw2ICszNjIsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIGZ1bGxTY3Jl
ZW5NYW5hZ2VyKCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShJT1MpCisgICAgUmVmUHRyPFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gdmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpOworI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGluaXRpYWxpemVDb250
ZXh0TWVudUNsaWVudChjb25zdCBXS1BhZ2VDb250ZXh0TWVudUNsaWVudEJhc2UqKTsKQEAgLTEy
MDksNiArMTIxMyw5IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IFJlZlB0cjxXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5PiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwog
I2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKKyNlbmRpZgogCiAjaWYgRU5B
QkxFKFZJQlJBVElPTikKICAgICBSZWZQdHI8V2ViVmlicmF0aW9uUHJveHk+IG1fdmlicmF0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MmRmMjhmOGNjODFm
MGM3N2I5MmNhMzc2Mzg5YjhhZThlZDI3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAKQEAg
LTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKKworI2lmIFBMQVRGT1JNKElPUykK
KworI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5o
IgorI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK1Bhc3NSZWZQdHI8
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkocGFnZSkpOworfQorCitXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UoJnBhZ2UpCit7CisgICAgbV9wYWdlLT5w
cm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSwgKnRo
aXMpOworICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKHRoaXMpOworfQorCitXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHko
KQoreworICAgIG1fcGFnZS0+cHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6c2V0VmlkZW9MYXllcklEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCkKK3sKKyAgICAvLyBU
T0RPOiBmaW5kIGEgcmVhbCB2aWRlbyBsYXllciBvciBtYWtlIG9uZSB0aGF0IG1lZXRzIHRoZSBu
ZWNlc3NhcnkgcmVxdWlyZW1lbnRzLgorICAgIHNldFZpZGVvTGF5ZXIobnVsbHB0cik7Cit9CisK
K3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3Jl
ZW4oKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6UmVxdWVzdEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAg
IAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnBsYXkoKQoreworICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UGxheSgpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpwYXVzZSgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpQYXVzZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp0b2dnbGVQbGF5U3RhdGUoKQorewor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6VG9n
Z2xlUGxheVN0YXRlKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlZWtUb1RpbWUoZG91YmxlIHRpbWUpCit7CisgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZWVrVG9U
aW1lKHRpbWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVlbigpCit7CisgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpEaWRFeGl0RnVsbHNjcmVl
bigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hZjFkMTg1Y2VmOTA2MmIzNzRkNjkyZGUwMzczNDYxNWJmNWIwODdmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlfaAorCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBw
dWJsaWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQsIHB1YmxpYyBX
ZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYpOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcklEKHVpbnQz
Ml90KSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2Ny
ZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBsYXkoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlUGxh
eVN0YXRlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsK
KworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOworfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5kaWYgLy8gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZkMTU3MmM2ZGIwMDBmODY5MzQ2MzU1MjI4OTk1YjQzMDdm
MGE3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzQgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBjaGFuZ2VzIGhlcmUg
bXVzdCBiZSByZWZsZWN0ZWQgaW4gV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwKKyNpZiBQTEFURk9S
TShJT1MpCittZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgeworICAg
IFNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGhvc3RUaW1lKQorICAg
IFNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCisgICAgU2V0VmlkZW9EaW1l
bnNpb25zKGJvb2wgaGFzVmlkZW8sIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCisg
ICAgU2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQorICAgIFNldFJhdGUoYm9vbCBpc1BsYXlp
bmcsIGRvdWJsZSByYXRlKQorICAgIEVudGVyRnVsbHNjcmVlbigpCisgICAgRXhpdEZ1bGxzY3Jl
ZW4oKQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOGQ5ODNjZGQwY2M5NDQ4NWIwNzBjNTIwMmQyNDcyNmM3YmI3
NzA2MS4uM2RhZjY0N2U0MTEzNDBiZmRhNzBmZjBmMzU2Njg4YTViOTVjYzYxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAz
LDkgKzYwMywxNCBAQAogCQkzN0ZDMTk0NzE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzN0ZDMTk0NjE4NTBGQkYyMDA4Q0ZBNDcgLyogV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdGQzE5NEExODUxMEQ2QTAwOENGQTQ3IC8qIFdLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAvKiBXS05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UubW0gKi87IH07CiAJCTM3RkMxOTRCMTg1MTBENkEwMDhDRkE0NyAv
KiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBXS05T
VVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgfTsKKwkJM0Y0MThFRjkxODg3QkQ5NzAw
Mjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y0MThFRjUxODg3
QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OworCQkzRjQxOEVGQjE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDE4RUY3MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkz
Rjg3QjlCRDE1ODk0MDEyMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJBMTU4OTNGNjMwMDkw
RkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3BwICovOyB9OwogCQkzRjg3QjlCRTE1ODk0MDE5MDA5
MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRjg3QjlCQjE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9v
c2VyLmggKi87IH07CiAJCTNGODdCOUMwMTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvclBpY2tl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5
QkYxNTg5NDBEODAwOTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggKi87IH07CisJCTNGODg5RDE0
MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMTIxODg3
NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi87IH07
CisJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNG
ODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aCAqLzsgfTsKKwkJM0Y4ODlEMTcxODg3ODU5MzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0Y4ODlEMEQxODg3Njk5QzAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwICovOyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25z
ZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY2
MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCAqLzsgfTsKIAkJ
NTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIx
Njc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTAz
MkYxODE4MEY3M0JCMDA5NjFCQjcgLyogV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjE2
MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICov
OyB9OwpAQCAtMjI5NCw5ICsyMjk5LDE5IEBACiAJCTM3RkMxOTQ2MTg1MEZCRjIwMDhDRkE0NyAv
KiBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3RkMxOTQ4MTg1MTBENkEwMDhDRkE0NyAv
KiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3RkMxOTQ5MTg1MTBENkEwMDhDRkE0NyAvKiBX
S05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTNGNDE4RUY1MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGNjE4ODdCRDk3MDAyNzk1RkQg
LyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjQxOEVGNzE4ODdCRDk3MDAyNzk1RkQgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGNDE4
RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
Rjg3QjlCQTE1ODkzRjYzMDA5MEZGNjIgLyogV2ViQ29sb3JDaG9vc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yQ2hvb3Nlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBXZWJDb2xv
ckNob29zZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29sb3JDaG9v
c2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODdCOUJGMTU4OTQwRDgwMDkw
RkY2MiAvKiBXZWJDb2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJDb2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRjg4OUQw
RDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LmNwcDsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4ODlEMEUxODg3Njk5QzAwRkVBREFGIC8qIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4ODlEMTAxODg3NzEwMDAw
RkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0
aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHA7IHBhdGggPSBpb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJM0Y4ODlEMTMxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0Y4ODlEMTYxODg3N0EyNDAw
RkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBpb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RjYwMTQzMDE1NUM1QTMyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNw
b25zZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9ja2luZ1Jlc3Bv
bnNlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2MTM3OUNBQ0Iw
MEM4REZFNCAvKiBTZWNJdGVtU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbklu
ZGV4ID0gMDsgcGF0aCA9IFNlY0l0ZW1TaGltLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTQxOTIsNiArNDIwNyw5IEBACiAJCQkJMkRBOTQ0QUExODg0RTlCQTAwRUQ4NkRCIC8qIFdlYklu
c3BlY3RvclByb3h5SU9TLm1tICovLAogCQkJCTJEQTk0NEFCMTg4NEU5QkEwMEVEODZEQiAvKiBX
ZWJQYWdlUHJveHlJT1MubW0gKi8sCiAJCQkJMkRBOTQ0QUMxODg0RTlCQTAwRUQ4NkRCIC8qIFdl
YlByb2Nlc3NQcm94eUlPUy5tbSAqLywKKwkJCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQkzRjg4OUQxMzE4ODc3
OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCisJCQkJ
M0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTQyMDAsNiArNDIxOCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTJEQTk0NEIyMTg4NEU5RUMwMEVEODZEQiAvKiBXZWJQcm9jZXNz
SU9TLm1tICovLAorCQkJCTNGODg5RDBEMTg4NzY5OUMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmNwcCAqLywKKwkJCQkzRjg4OUQwRTE4ODc2OTlDMDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oICovLAorCQkJCTNGODg5RDEwMTg4NzcxMDAwMEZFQURB
RiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNjAzMyw2ICs2MDU0
LDEwIEBACiAJCQkJMzMzNjc2NTQxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgxQiAv
KiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREUx
NjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLywKKwkJCQkz
RjQxOEVGNTE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJM0Y0MThFRjYxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTNGNDE4RUY3MTg4N0JEOTcw
MDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCTNGNDE4RUY4MTg4N0JEOTcwMDI3OTVGRCAvKiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiRGVyaXZlZCBT
b3VyY2VzIjsKIAkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyOwpAQCAtNjU5Myw2ICs2
NjE4LDcgQEAKIAkJCQlCQzFERkVBNDEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEOEYxMEY0MzdBMDAw
NThDMTVBIC8qIFdlYlBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNTM1NjlEMTI5MUIxRDIw
MDA3NDlEQyAvKiBXZWJQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTNGODg5RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MjA2MTI5QTBBNjcwMEQxNzRBNCAvKiBXZWJQ
YWdlR3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0I2MjUyMTJBNDNDOTYwMEQxNzRBNCAv
KiBXZWJQYWdlR3JvdXBEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjIxNTEyQTQyMTlB
MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtNzkwOSw2
ICs3OTM1LDcgQEAKIAkJCQlGNkEyNUZEQzEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NkI2MTJCMUIyNUYwMDA1RjFCNiAv
KiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFFMzUyMDkxODBGNUQ2QjAwRTUzQkU5IC8qIERhdGFiYXNlU2VydmljZUVudHJ5UG9pbnQu
bW0gaW4gU291cmNlcyAqLywKKwkJCQkzRjQxOEVGOTE4ODdCRDk3MDAyNzk1RkQgLyogV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGNjJBNzY1QzEyQjFBQkMzMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBQzExMjAxMkM5MkMxRjAwQjA4RUVFIC8qIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MkE3NkI4MTJC
MUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTgwNDQsNiArODA3MSw3IEBACiAJCQkJMzMzNjc2MzUxMzBD
OTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzMzNjc2NTcxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwQUZG
QjkxNjU0MjA0ODAwMUJBMDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTNGODg5RDE0MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFC
IC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTM3OEUxQTNEMTgxRUQ2RkYwMDMxMDA3QSAvKiBBUElPYmplY3QubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1MUZCMDhGRjE2MzlERTFBMDBFQzMyNEEgLyogV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODE1NCw3ICs4MTgyLDkgQEAKIAkJCQlCQzg1ODA2
MzEyQjg1MDU3MDBFREVCMkUgLyogV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDODU4MDYyMTJCODUwNTcwMEVERUIyRSAvKiBXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRkNCMTg4MTdCQkZFMDMwMDM5NENEOCAv
KiBTeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
M0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Q1OTdENjExMkI1NkRD
MDBFQzhDMjMgLyogV0tQYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTNGODg5RDE3MTg4Nzg1
OTMwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDN0I2MzM4MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0UxN0I3RDEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdlUHJpdmF0ZU1h
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzEzNUFBODE3M0IwQkNBMDA1ODZBRTIgLyogV0tQ
bHVnaW5JbmZvcm1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCA5MGE2OWYwNzIyZmM1ZTJjN2E0MzYxOTZjMDFkZGNmOTU5NmJkMTdkLi45Y2MxOGVm
YjE2ZTExNjY3YzQ5NzBlYjc4NmI2YmFkNzg3NmY5ZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC02OSw2ICs2OSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisj
aW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorI2VuZGlmCisKICNpZiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgiCiAjZW5kaWYKQEAgLTgyMSw2ICs4MjUsMjMgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWcK
IH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1
cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAg
ICByZXR1cm4gbV9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbHNj
cmVlbihub2RlKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbkZv
ck5vZGUoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBtX3BhZ2UtPnZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIoKS0+ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShub2RlKTsKK30KKwordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQor
eworICAgIG1fcGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbHNjcmVlbkZv
ck5vZGUobm9kZSk7Cit9CisjZW5kaWYKKyAgICAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25z
dCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCAyMDU2YWVlZTk0MjhiMDE3MTY2MzdmYzMxNGYyNDdjNTM2N2ZkMjM2Li40ODY1
YmE3ZmM1Njg0OGNiYWFmMzRiNmFjM2E3NTA1NzI2ZWJmOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTIzOCw2ICsyMzgsMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVu
dERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUo
Y29uc3QgV2ViQ29yZTo6Tm9kZSopOworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW5G
b3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5G
b3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDI4OTA1OTgxZGNhOThiMjc0NDI3ZmFmNGQ2MmM0OGRjYzQ5ZTlhNjEuLmFiYzFjMTU4
MGRhNTdhZTVjNDcyMGQ0MzNkNjhkYzFhZjU5YWZmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE4Miw2ICsxODIsMTAgQEAKICNpbmNs
dWRlICJXZWJQcmludE9wZXJhdGlvbkd0ay5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1Mp
CisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorI2VuZGlmCisKICNpZm5k
ZWYgTkRFQlVHCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2VuZGlm
CkBAIC0yNTg0LDYgKzI1ODgsMTUgQEAgV2ViSW5zcGVjdG9yKiBXZWJQYWdlOjppbnNwZWN0b3Io
KQogICAgIHJldHVybiBtX2luc3BlY3Rvci5nZXQoKTsKIH0KICNlbmRpZgorICAgIAorI2lmIFBM
QVRGT1JNKElPUykKK1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKQoreworICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQor
ICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlci5n
ZXQoKTsKK30KKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogV2ViRnVsbFNj
cmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGY1NDkwYzFiN2IxOTQ5ZTIxMmM1
Y2EzNTUxMjNlN2JkMjc3NjY3NDAuLjIxNzhhMjgzYzE3Y2RlZmFiYWE1MTI5OWY0ZjMzMDU4YTEy
YTQ2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMTU0LDYgKzE1NCw3IEBAIGNsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudDsKIGNsYXNzIFdl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiBjbGFz
cyBXZWJQb3B1cE1lbnU7CitjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOwogY2xhc3Mg
V2ViV2hlZWxFdmVudDsKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEVkaXRvclN0
YXRlOwpAQCAtMjA1LDYgKzIwNiwxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBXZWJJbnNwZWN0b3IqIGluc3BlY3RvcigpOwogI2VuZGlmCisgICAgCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIHZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwpAQCAtMTAwNSw2ICsxMDEwLDkg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFJlZlB0cjxXZWJJbnNwZWN0
b3I+IG1faW5zcGVjdG9yOwogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJlZlB0cjxX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CisjZW5k
aWYKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgUmVmUHRyPFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyPiBtX2Z1bGxTY3JlZW5NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZkZWRmMWFiNWRhMjAxYmZmZWJmNTc4YTEzZjkxNmQ5ZjA0MjIwOWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorCisj
aWYgUExBVEZPUk0oSU9TKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKyAgICAKK1Bhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIocGFnZSkp
OworfQorCitXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlLmdldCgpKQor
eworICAgIHNldFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSh0aGlzKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS0+cGFnZUlEKCksICp0aGlz
KTsKK30KKworV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBp
ZiAoIVNldHRpbmdzOjphdktpdEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVChub2RlKTsKKyAgICBtX25vZGUgPSBub2RlOworICAgIHNldE1lZGlhRWxlbWVudCh0
b0hUTUxNZWRpYUVsZW1lbnQobm9kZSkpOworICAgIGVudGVyRnVsbHNjcmVlbigpOworfQorCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2Rl
KikKK3sKKyAgICBleGl0RnVsbHNjcmVlbigpOworICAgIHNldE1lZGlhRWxlbWVudChudWxscHRy
KTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXREdXJhdGlvbihkb3Vi
bGUgZHVyYXRpb24pCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OlNldER1cmF0aW9uKGR1cmF0aW9uKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEN1cnJlbnRU
aW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGFuY2hvclRpbWUpCit7CisgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEN1cnJl
bnRUaW1lKGN1cnJlbnRUaW1lLCBhbmNob3JUaW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9Cisg
ICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFJhdGUoYm9vbCBpc1BsYXlp
bmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0UmF0ZShpc1BsYXlpbmcsIHBsYXliYWNr
UmF0ZSksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoaGFzVmlkZW8sIHdpZHRoLCBoZWln
aHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKikKK3sKKyAgICAvLyBUT0RPOiBp
bXBsZW1lbnQgd2l0aCBjb3JyZWN0IGxheWVyIElELgorICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQoMCksIG1f
cGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpzZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9MYXllcklEKQoreworICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xh
eWVySUQodmlkZW9MYXllcklEKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxsc2Ny
ZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpleGl0RnVsbHNjcmVlbigpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuKCksIG1fcGFn
ZS0+cGFnZUlEKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTM3Yzk5NjUzNjAwNGYy
ZjMwZjFkZjFjNjdiZjEyMTZhMzU5YjAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0wLDAgKzEs
ODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworI2lmbmRlZiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyX2gKKyNk
ZWZpbmUgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcl9oCisKKyNpZiBQTEFURk9STShJT1MpCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TGlz
dGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZURlY29k
ZXI7CitjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIE5vZGU7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OldlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LCBwdWJsaWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBjcmVhdGUo
UGFzc1JlZlB0cjxXZWJQYWdlPik7CisgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcigpOworICAgIAorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
KiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOworICAgIAorICAgIGJvb2wgc3VwcG9ydHNGdWxsc2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBjb25zdDsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVl
bkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOworICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2Rl
KFdlYkNvcmU6Ok5vZGUqKTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyKFBhc3NSZWZQdHI8V2ViUGFnZT4pOworICAgIHZpcnR1YWwgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIHJocykgb3ZlcnJpZGUgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRMaXN0ZW5lcio+KHRoaXMpID09ICZyaHM7IH0KKyAg
ICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgYW5j
aG9yVGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlp
bmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZp
ZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOworICAgIAorICAgIFdlYlBh
Z2UqIG1fcGFnZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9ub2RlOworfTsKKyAgICAK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjZW5k
aWYgLy8gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDFlNTVmNDJjOGQ0NWE4M2U0ODY0MTk5NzIxNzcw
NGViOWZjMjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDMzIEBA
CisjIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgY2hhbmdlcyBoZXJl
IG11c3QgYmUgcmVmbGVjdGVkIGluIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsCisjaWYgUExBVEZP
Uk0oSU9TKQorbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CisgICAgUmVx
dWVzdEV4aXRGdWxsU2NyZWVuKCkKKyAgICBQbGF5KCkKKyAgICBQYXVzZSgpCisgICAgVG9nZ2xl
UGxheVN0YXRlKCkKKyAgICBTZWVrVG9UaW1lKGRvdWJsZSB0aW1lKQorICAgIERpZEV4aXRGdWxs
c2NyZWVuKCkKK30KKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>