<?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>207427</bug_id>
          
          <creation_ts>2020-02-08 10:26:12 -0800</creation_ts>
          <short_desc>Expose &quot;allowsContentJavaScript&quot; on WKWebpagePreferences</short_desc>
          <delta_ts>2020-02-17 11:39:17 -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>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616564</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 10:26:12 -0800</bug_when>
    <thetext>Expose &quot;allowsContentJavaScript&quot; on WKWebpagePreferences

This will allow content (ne &quot;markup&quot;) JS to be disabled while still allowing script from API entry points.

&lt;rdar://problem/51534967&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616567</commentid>
    <comment_count>1</comment_count>
      <attachid>390173</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 10:31:13 -0800</bug_when>
    <thetext>Created attachment 390173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616586</commentid>
    <comment_count>2</comment_count>
      <attachid>390178</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 13:09:19 -0800</bug_when>
    <thetext>Created attachment 390178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616607</commentid>
    <comment_count>3</comment_count>
      <attachid>390181</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 13:53:57 -0800</bug_when>
    <thetext>Created attachment 390181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616619</commentid>
    <comment_count>4</comment_count>
      <attachid>390181</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-02-08 15:19:14 -0800</bug_when>
    <thetext>Comment on attachment 390181
Patch

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

&gt; Source/WebCore/loader/DocumentLoader.h:650
&gt; +    Optional&lt;bool&gt; m_allowsScriptMarkup;

I find Optional&lt;bool&gt; to be hard to reason about and not all that self documenting. In other cases I have been recommending a three state enum instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616639</commentid>
    <comment_count>5</comment_count>
      <attachid>390191</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 17:56:21 -0800</bug_when>
    <thetext>Created attachment 390191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616640</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 17:57:31 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Comment on attachment 390181 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390181&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/DocumentLoader.h:650
&gt; &gt; +    Optional&lt;bool&gt; m_allowsScriptMarkup;
&gt; 
&gt; I find Optional&lt;bool&gt; to be hard to reason about and not all that self
&gt; documenting. In other cases I have been recommending a three state enum
&gt; instead.

Fair enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616655</commentid>
    <comment_count>7</comment_count>
      <attachid>390195</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-08 21:36:31 -0800</bug_when>
    <thetext>Created attachment 390195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616771</commentid>
    <comment_count>8</comment_count>
      <attachid>390195</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-09 21:17:55 -0800</bug_when>
    <thetext>Comment on attachment 390195
Patch

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

Looks generally good. I have some questions so I didn’t review+ or review-.

&gt; Source/WebCore/loader/DocumentLoader.cpp:1227
&gt; +    if (m_scriptMarkupPolicy != ScriptMarkupPolicy::Default)
&gt; +        m_frame-&gt;settings().setScriptMarkupEnabled(m_scriptMarkupPolicy == ScriptMarkupPolicy::Enable);

I’m concerned that applyPoliciesToSettings is not a maintainable approach long term. Things that are different-per-document-loader probably should not be stored in settings that hang off the frame.

Separate thought: The behavior of ScriptMarkupPolicy::Default seems to be &quot;leave the settings behind from the previous document&quot;? Is that safe?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:347
&gt; +    switch (_websitePolicies-&gt;scriptMarkupPolicy()) {
&gt; +    case WebCore::ScriptMarkupPolicy::Default:
&gt; +    case WebCore::ScriptMarkupPolicy::Enable:
&gt; +        return true;
&gt; +    case WebCore::ScriptMarkupPolicy::Disable:
&gt; +        return false;
&gt; +    }

If you never set this property, the markup policy is different from either NO or YES. But we do not document this difference. Nor offer a way to restore this behavior. I guess this third policy means &quot;respect a preference with no API but that might be set on the command line&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616775</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-09 22:01:14 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 390195 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390195&amp;action=review
&gt; 
&gt; Looks generally good. I have some questions so I didn’t review+ or review-.
&gt; 
&gt; &gt; Source/WebCore/loader/DocumentLoader.cpp:1227
&gt; &gt; +    if (m_scriptMarkupPolicy != ScriptMarkupPolicy::Default)
&gt; &gt; +        m_frame-&gt;settings().setScriptMarkupEnabled(m_scriptMarkupPolicy == ScriptMarkupPolicy::Enable);
&gt; 
&gt; I’m concerned that applyPoliciesToSettings is not a maintainable approach
&gt; long term. Things that are different-per-document-loader probably should not
&gt; be stored in settings that hang off the frame.

In this case, &quot;any document loader in the page getting this&quot; should apply to the page global settings.

I 100% agree that this approach doesn&apos;t seem as general purpose as as some of the other users of it!

&gt; Separate thought: The behavior of ScriptMarkupPolicy::Default seems to be
&gt; &quot;leave the settings behind from the previous document&quot;? Is that safe?

The *intention* was &quot;If WKPreferencesRef or WKBrowsingContextGroup users had set the markup-enabled flag, and nobody set it on the WKWebsitePreferences, respect the SPI setting&quot;

But in those cases, you are 100% correct that this is what happens in effect.

The SPI override really gets in the way here.

I&apos;ll either determine the SPI support is no longer needed and greatly simplify this code, or I&apos;ll adjust to handle it.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:347
&gt; &gt; +    switch (_websitePolicies-&gt;scriptMarkupPolicy()) {
&gt; &gt; +    case WebCore::ScriptMarkupPolicy::Default:
&gt; &gt; +    case WebCore::ScriptMarkupPolicy::Enable:
&gt; &gt; +        return true;
&gt; &gt; +    case WebCore::ScriptMarkupPolicy::Disable:
&gt; &gt; +        return false;
&gt; &gt; +    }
&gt; 
&gt; If you never set this property, the markup policy is different from either
&gt; NO or YES. But we do not document this difference. Nor offer a way to
&gt; restore this behavior. I guess this third policy means &quot;respect a preference
&gt; with no API but that might be set on the command line&quot;?

Indeed - this trinary state came about because of a conflict with the SPI code paths to this setting.

As mentioned above, I&apos;ll figure out the way forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616776</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-09 22:06:13 -0800</bug_when>
    <thetext>Well it&apos;s actually SPI on WKWebViewConfiguration, so that&apos;s potentially much more problematic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616778</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-09 22:11:42 -0800</bug_when>
    <thetext>Yup, definitely still have to support that SPI.

The &quot;dangerous&quot; thing is accidentally allowing markup JS when somebody has asked the view to not allow it.

I can do that with Settings + FrameLoaderClient instead of this ternary state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617292</commentid>
    <comment_count>12</comment_count>
      <attachid>390346</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-10 22:42:34 -0800</bug_when>
    <thetext>Created attachment 390346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617293</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-10 22:48:10 -0800</bug_when>
    <thetext>(In reply to Brady Eidson from comment #9)
&gt; (In reply to Darin Adler from comment #8
&gt; 
&gt; In this case, &quot;any document loader in the page getting this&quot; should apply to
&gt; the page global settings.

This got me thinking as to my approach, which is now to put the &quot;did this navigation have the markup disabled policy?&quot; flag on the Page itself, living side-by-side with the WKPreferences-driven Settings version.

Then we consult both at decision time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618589</commentid>
    <comment_count>14</comment_count>
      <attachid>390669</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-13 10:49:47 -0800</bug_when>
    <thetext>Created attachment 390669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618627</commentid>
    <comment_count>15</comment_count>
      <attachid>390673</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-13 11:46:45 -0800</bug_when>
    <thetext>Created attachment 390673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618877</commentid>
    <comment_count>16</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-13 22:07:58 -0800</bug_when>
    <thetext>Ouch. The key with these layout test failures is:

bool Document::scriptMarkupEnabled() const
{
    if (!settings().scriptMarkupEnabled())
        return false;

    if (!m_frame || m_frame-&gt;document() != this)
        return false;
    return m_frame-&gt;loader().client().scriptMarkupPolicyFromMostRecentNavigation() == ScriptMarkupPolicy::Enable;
}

The middle clause of no frame.

I&apos;d figured &quot;A frameless document should never be executing script, right?&quot;

But I was totally wrong.

So now I have to find a (good) way to propagate the policy forward to frameless documents from whoever creates them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618878</commentid>
    <comment_count>17</comment_count>
      <attachid>390731</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-13 22:50:59 -0800</bug_when>
    <thetext>Created attachment 390731
Patch

Trying this approach on the bots (fixed at least some tests locally)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618988</commentid>
    <comment_count>18</comment_count>
      <attachid>390768</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-14 07:53:33 -0800</bug_when>
    <thetext>Created attachment 390768
Patch

Trying this approach on the bots (fixed more tests locally)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619069</commentid>
    <comment_count>19</comment_count>
      <attachid>390784</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-14 10:23:15 -0800</bug_when>
    <thetext>Created attachment 390784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619255</commentid>
    <comment_count>20</comment_count>
      <attachid>390784</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-02-14 15:16:04 -0800</bug_when>
    <thetext>Comment on attachment 390784
Patch

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

I like the public allowsContentJavaScript name so much better than the internal scriptMarkupPolicy name.

&gt; Source/WebCore/dom/Document.cpp:6817
&gt; +    if (!settings().scriptMarkupEnabled())

Seems slightly dangerous to still have this Settings::scriptMarkupEnabled function. If anyone calls it and it returns true, they will likely do the wrong thing. Maybe at some point we can rename it?

&gt; Source/WebCore/dom/Document.cpp:6826
&gt; +        if (m_contextDocument)
&gt; +            return m_contextDocument-&gt;scriptMarkupEnabled();
&gt; +
&gt; +        // If this Document is frameless or in the wrong frame, *and* it has no context document,
&gt; +        // then it has no business running markup script.
&gt; +        return false;

I’d find this slightly easier to read as an &amp;&amp; expression:

    return m_contextDocument &amp;&amp; m_contextDocument-&gt;scriptMarkupEnabled();

Also slightly annoying that there’s recursion here, but I suppose it’s unlikely to recurse deeply.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:194
&gt;              m_responseDocument-&gt;setContextDocument(context);
&gt; +            m_responseDocument-&gt;setContent(m_responseBuilder.toStringPreserveCapacity());
&gt;              m_responseDocument-&gt;setSecurityOriginPolicy(context.securityOriginPolicy());
&gt;              m_responseDocument-&gt;overrideMIMEType(mimeType);

Maybe we should also move up the setSecurityOriginPolicy and overrideMIMEType calls up before we call setContent too? Seems like we’d want all those things set before we do any parsing.

&gt; Source/WebKit/WebProcess/WebPage/WebFrame.cpp:269
&gt; +        ASSERT(page());

What guarantees page() is not null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619337</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-14 18:27:44 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #20)
&gt; Comment on attachment 390784 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390784&amp;action=review
&gt; 
&gt; I like the public allowsContentJavaScript name so much better than the
&gt; internal scriptMarkupPolicy name.

Me too. It was originally the tri-state enum Sam requested and this &quot;FooPolicy&quot; name was matching other tri-state style.

I&apos;ll rename.

&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:6817
&gt; &gt; +    if (!settings().scriptMarkupEnabled())
&gt; 
&gt; Seems slightly dangerous to still have this Settings::scriptMarkupEnabled
&gt; function. If anyone calls it and it returns true, they will likely do the
&gt; wrong thing. Maybe at some point we can rename it?

I agree! Unfortunately it is exposed as (multiple) SPIs that are still used.

Renaming it to something that discourages its use seems great.

&gt; &gt; Source/WebCore/dom/Document.cpp:6826
&gt; &gt; +        if (m_contextDocument)
&gt; &gt; +            return m_contextDocument-&gt;scriptMarkupEnabled();
&gt; &gt; +
&gt; &gt; +        // If this Document is frameless or in the wrong frame, *and* it has no context document,
&gt; &gt; +        // then it has no business running markup script.
&gt; &gt; +        return false;
&gt; 
&gt; I’d find this slightly easier to read as an &amp;&amp; expression:
&gt; 
&gt;     return m_contextDocument &amp;&amp; m_contextDocument-&gt;scriptMarkupEnabled();
&gt; 
&gt; Also slightly annoying that there’s recursion here, but I suppose it’s
&gt; unlikely to recurse deeply.
&gt; 
&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:194
&gt; &gt;              m_responseDocument-&gt;setContextDocument(context);
&gt; &gt; +            m_responseDocument-&gt;setContent(m_responseBuilder.toStringPreserveCapacity());
&gt; &gt;              m_responseDocument-&gt;setSecurityOriginPolicy(context.securityOriginPolicy());
&gt; &gt;              m_responseDocument-&gt;overrideMIMEType(mimeType);
&gt; 
&gt; Maybe we should also move up the setSecurityOriginPolicy and
&gt; overrideMIMEType calls up before we call setContent too? Seems like we’d
&gt; want all those things set before we do any parsing.

Sounds right!

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebFrame.cpp:269
&gt; &gt; +        ASSERT(page());
&gt; 
&gt; What guarantees page() is not null?

The coreFrame null check earlier almost always guarantees this.
It&apos;s not a 100% guarantee, I&apos;ll clean it up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619367</commentid>
    <comment_count>22</comment_count>
      <attachid>390855</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-14 22:37:48 -0800</bug_when>
    <thetext>Created attachment 390855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619418</commentid>
    <comment_count>23</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-15 08:08:37 -0800</bug_when>
    <thetext>(In reply to Brady Eidson from comment #22)
&gt; Created attachment 390855 [details]
&gt; Patch

This will be for landing later: Some clients need to handle the deprecation first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619527</commentid>
    <comment_count>24</comment_count>
      <attachid>390855</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-16 17:35:23 -0800</bug_when>
    <thetext>Comment on attachment 390855
Patch

Clearing flags on attachment: 390855

Committed r256715: &lt;https://trac.webkit.org/changeset/256715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619528</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-16 17:35:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619529</commentid>
    <comment_count>26</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-16 17:36:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/59498009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619759</commentid>
    <comment_count>27</comment_count>
      <attachid>390855</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-17 11:39:17 -0800</bug_when>
    <thetext>Comment on attachment 390855
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:261
&gt; +TEST(WebKit, AllowsContentJavaScript)

This needs #if HAVE(NETWORK_FRAMEWORK)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390173</attachid>
            <date>2020-02-08 10:31:13 -0800</date>
            <delta_ts>2020-02-08 13:09:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200208103112.patch</filename>
            <type>text/plain</type>
            <size>26489</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uNzc3YjU3ZDA1NjljYWI0Yzk4ZDRjNjViMDc4Y2Nk
MGUxZGY2M2IzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTA4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphcHBseVBv
bGljaWVzVG9TZXR0aW5ncyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0QWxsb3dzU2NyaXB0TWFya3VwKToK
KwogMjAyMC0wMi0wNyAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6OkZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29y
ZVRleHQ6OmZvbnRSYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmU3NDUyODA0OTM4YTdlYzdmNGQ5Y2YxNGIx
ZDc1MWZjYTVkMTdlZC4uNjkzNDg5NDA4Y2UzMTU1ZjUyM2I5ZDExY2UxZTYzNjVmN2I5MmRjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wMi0wOCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTM0
OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdXRp
aXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTY3JpcHRNYXJrdXBF
bmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGRlcHJlY2F0
ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVuY2UgYXMgaXQgZG9l
c24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBs
eVRvRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRh
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHA6Cisg
ICAgICAgIChBUEk6OldlYnNpdGVQb2xpY2llczo6ZGF0YSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBqYXZhU2NyaXB0RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIHNldEphdmFTY3JpcHRFbmFibGVkOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVu
Y2VzIHNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyBhbGxvd3NDb250ZW50SmF2YVNjcmlwdF0pOgorCiAyMDIwLTAyLTA3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T046IEFTU0VSVElPTiBGQUlMRUQ6IHJlc2V0UmVzdWx0ID09IDAgb24gcmVncmVzc2lvbiB0ZXN0
cyBpbiBJVFAgY29kZSwgcmVzZXR0aW5nIFNRTGl0ZSBzdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGJjNmI5MGU2M2Q5NmJjNjMyM2Q2ZmI2NWY2
MmJmMDY3MGU3MzQyY2EuLjA2NWVjNTgzOGJkOTQ2Y2IzOWY1NGY5NDI4NjIzNWIwZDAwNDRjNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTIyMyw2ICsx
MjIzLDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YXBwbHlQb2xpY2llc1RvU2V0dGluZ3MoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9mcmFtZS0+c2V0dGluZ3MoKS5zZXRTY3Jp
cHRNYXJrdXBFbmFibGVkKG1fYWxsb3dzU2NyaXB0TWFya3VwKTsKKwogICAgIGlmICghbV9mcmFt
ZS0+aXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oCmluZGV4IGQ2YTNkMGFjZDI0NmRlNzBjYjQ4NTg4MGEwNGIzODk0MWM4
MzJmNjUuLmExNmQ5ZTI1ZmMyZWRmZjJiMGI5Yjg0NTQ0ZGViMDA1OTQxNDU5MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0zMjgsNiArMzI4LDggQEAgcHVibGlj
OgogICAgIExlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbGVnYWN5T3ZlcmZsb3dT
Y3JvbGxpbmdUb3VjaFBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVnYWN5T3ZlcmZsb3dTY3Jv
bGxpbmdUb3VjaFBvbGljeTsgfQogICAgIHZvaWQgc2V0TGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdU
b3VjaFBvbGljeShMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IHBvbGljeSkgeyBt
X2xlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgPSBwb2xpY3k7IH0KIAorICAgIHZv
aWQgc2V0QWxsb3dzU2NyaXB0TWFya3VwKGJvb2wgYWxsb3dzTWFya3VwKSB7IG1fYWxsb3dzU2Ny
aXB0TWFya3VwID0gYWxsb3dzTWFya3VwOyB9CisKICAgICB2b2lkIGFkZFN1YnJlc291cmNlTG9h
ZGVyKFJlc291cmNlTG9hZGVyKik7CiAgICAgdm9pZCByZW1vdmVTdWJyZXNvdXJjZUxvYWRlcihM
b2FkQ29tcGxldGlvblR5cGUsIFJlc291cmNlTG9hZGVyKik7CiAgICAgdm9pZCBhZGRQbHVnSW5T
dHJlYW1Mb2FkZXIoUmVzb3VyY2VMb2FkZXImKTsKQEAgLTY0NSw2ICs2NDcsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9hbGxvd3NEYXRhVVJMc0Zvck1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2FsbG93c1NjcmlwdE1hcmt1cCB7IHRydWUgfTsKICAgICBTdHJpbmcgbV9kb3dubG9hZEF0
dHJpYnV0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQ
b2xpY2llc0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0
YS5jcHAKaW5kZXggOTQ4ZjJhNWFiYjgyYTEyOWU0NjE5ZDMyNjIzNGMwZjEwNjg5NjhiNy4uZWFi
YTNlOThlYzkxMGZiOTBjYzA2NmVjNjE1MTY1ZjkxOGRhYzM5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBX
ZWJzaXRlUG9saWNpZXNEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTsKICAgICBl
bmNvZGVyIDw8IGxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k7CiAgICAgZW5jb2Rl
ciA8PCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOworICAgIGVuY29kZXIgPDwgYWxs
b3dzQ29udGVudEphdmFTY3JpcHQ7CiB9CiAKIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0x
MzQsNyArMTM1LDEyIEBAIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xp
Y2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgZGVjb2RlciA+PiBh
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOwogICAgIGlmICghYWxsb3dDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJRdWlyaykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKKwor
ICAgIE9wdGlvbmFsPGJvb2w+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OworICAgIGRlY29kZXIg
Pj4gYWxsb3dzQ29udGVudEphdmFTY3JpcHQ7CisgICAgaWYgKCFhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7IHsKICAg
ICAgICAgV1RGTW92ZSgqY29udGVudEJsb2NrZXJzRW5hYmxlZCksCiAgICAgICAgIFdURk1vdmUo
KmFsbG93ZWRBdXRvcGxheVF1aXJrcyksCkBAIC0xNTMsNiArMTU5LDcgQEAgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRj
aFBvbGljeSksCiAgICAgICAgIFdURk1vdmUoKmxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQ
b2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCphbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxsb3dzQ29udGVudEphdmFTY3JpcHQpLAogICAgIH0gfTsK
IH0KIApAQCAtMjY0LDYgKzI3MSw3IEBAIHZvaWQgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlU
b0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9sCiAgICAgfQog
CiAgICAgZG9jdW1lbnRMb2FkZXIuc2V0QWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayh3
ZWJzaXRlUG9saWNpZXMuYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayk7CisgICAgZG9j
dW1lbnRMb2FkZXIuc2V0QWxsb3dzU2NyaXB0TWFya3VwKHdlYnNpdGVQb2xpY2llcy5hbGxvd3ND
b250ZW50SmF2YVNjcmlwdCk7CiAKICAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50TG9hZGVyLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xp
Y2llc0RhdGEuaAppbmRleCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2NiMjBmNWY3MzNkMzczYTQyMmY0
Li40ZWJiMWUzYjIxN2VkYjQ1NTMyMmJjZGZmY2Q5YjBkMjM1MzgyYzFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCkBAIC02OCw2ICs2OCw3IEBAIHN0cnVj
dCBXZWJzaXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNE
aXNwYXRjaFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHsgV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBXZWJz
aXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9s
bGluZ1RvdWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xp
Y3k6OkRlZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsg
eyBmYWxzZSB9OworICAgIGJvb2wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgeyB0cnVlIH07CiAK
ICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAppbmRleCBl
NzFlM2IzMGI5MzVkYTBhZGM3NjZjMzRjNTc2YzMxNGExZDE5NmI5Li43Zjc4YWFhODg3YjBhMTRh
Y2Y1ZDAxMDQ0YTFlYTZhZTI3MTIwYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcApAQCAtMTE3LDYgKzExNyw3IEBAIFdlYktp
dDo6V2Vic2l0ZVBvbGljaWVzRGF0YSBXZWJzaXRlUG9saWNpZXM6OmRhdGEoKQogICAgICAgICBt
X3NpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3ksCiAgICAgICAgIG1fbGVnYWN5T3Zl
cmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSwKICAgICAgICAgbV9hbGxvd0NvbnRlbnRDaGFuZ2VP
YnNlcnZlclF1aXJrLAorICAgICAgICBtX2FsbG93c0NvbnRlbnRKYXZhU2NyaXB0LCAKICAgICB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZVBvbGljaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGlj
aWVzLmgKaW5kZXggOTQ2M2U1Mzk0ZjUxY2M3MmQ3NjA4OTFjZDg0NDUxMDExOTg5ZWE2MC4uZDI1
MzY4YjEyMjZjNTc3NGVmNDlkMWE5OGZmMjdiMGU3ZTA1MjViZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaApAQCAtMTE2LDYgKzExNiw5
IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoKSBj
b25zdCB7IHJldHVybiBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7IH0KICAgICB2
b2lkIHNldEFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoYm9vbCBhbGxvdykgeyBtX2Fs
bG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgPSBhbGxvdzsgfQogCisgICAgYm9vbCBhbGxv
d3NDb250ZW50SmF2YVNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQ29udGVudEphdmFT
Y3JpcHQ7IH0KKyAgICB2b2lkIHNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KGJvb2wgYWxsb3dz
KSB7IG1fYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBhbGxvd3M7IH0KKwogcHJpdmF0ZToKICAg
ICBXZWJzaXRlUG9saWNpZXMoYm9vbCBjb250ZW50QmxvY2tlcnNFbmFibGVkLCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlRdWlyaz4sIFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UG9s
aWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiYmLCBWZWN0b3I8V2ViQ29yZTo6
Q3VzdG9tSGVhZGVyRmllbGRzPiYmLCBXZWJLaXQ6OldlYnNpdGVQb3BVcFBvbGljeSwgUmVmUHRy
PFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4mJik7CiAKQEAgLTE0MCw2ICsxNDMsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9hbGxvd1NpdGVTcGVjaWZpY1F1aXJrc1RvT3ZlcnJpZGVDb250ZW50
TW9kZSB7IGZhbHNlIH07CiAgICAgV1RGOjpTdHJpbmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNr
dG9wVXNlckFnZW50OwogICAgIGJvb2wgbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsb3dzQ29udGVudEphdmFTY3JpcHQgeyB0cnVlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJiMTcyNTgyYTRjMTA1
YWFmOTdkYTc0OTQ5ZTA4NWMuLjM5MDhiNGQzMmJiYzYyYWIzY2U3YThhMjhmZmFjYWMwOWNlNzI1
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMuaApAQCAtNDAsMTEgKzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IG1pbmltdW1G
b250U2l6ZTsKIAotLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0
aGVyIEphdmFTY3JpcHQgaXMgZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyBZRVMuCi0gKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFi
bGVkOwotCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIg
SmF2YVNjcmlwdCBjYW4gb3BlbgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgog
IEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBhbmQgWUVTIGluIE9T
IFguCkBAIC03Myw1ICs2OCw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlv
cyg4LjApKQogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhRW5hYmxlZCBXS19BUElf
REVQUkVDQVRFRCgiSmF2YSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEw
LjE1KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwbHVnSW5zRW5hYmxlZCBXS19BUElf
REVQUkVDQVRFRCgiUGx1Zy1pbnMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4x
MCwgMTAuMTUpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVk
IFdLX0FQSV9ERVBSRUNBVEVEKCJVc2UgV0tXZWJQYWdlUHJlZmVyZW5jZXMuYWxsb3dzSmF2YVNj
cmlwdE1hcmt1cCB0byBkaXNhYmxlIEphdmFTY3JpcHQgbWFya3VwIG9uIGEgcGVyLW5hdmlnYXRp
b24gYmFzaXMiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEp
KTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cmVmZXJlbmNlcy5tbQppbmRleCA1NDIxOGE0ZDljMGY5YWRiNjE0MjkyZDJmMmFlYmMyYjM1M2Fh
Mjg4Li4xNDIwMTFmYmIzZTM2ZTZiYzliZmY1MTgzZjZhZmI1NmM3M2M0ZjlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAt
NjUsOSArNjUsMTIgQEAgKyAoQk9PTClzdXBwb3J0c1NlY3VyZUNvZGluZwogLSAodm9pZCllbmNv
ZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewogICAgIFtjb2RlciBlbmNvZGVEb3VibGU6
c2VsZi5taW5pbXVtRm9udFNpemUgZm9yS2V5OkAibWluaW11bUZvbnRTaXplIl07Ci0gICAgW2Nv
ZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCBmb3JLZXk6QCJqYXZhU2NyaXB0
RW5hYmxlZCJdOwogICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSBmb3JLZXk6QCJqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5Il07CiAKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAg
W2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCBmb3JLZXk6QCJqYXZhU2Ny
aXB0RW5hYmxlZCJdOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKICNpZiBQ
TEFURk9STShNQUMpCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtj
b2RlciBlbmNvZGVCb29sOnNlbGYuamF2YUVuYWJsZWQgZm9yS2V5OkAiamF2YUVuYWJsZWQiXTsK
QEAgLTgzLDkgKzg2LDEyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVy
ICopY29kZXIKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYubWluaW11bUZvbnRTaXpl
ID0gW2NvZGVyIGRlY29kZURvdWJsZUZvcktleTpAIm1pbmltdW1Gb250U2l6ZSJdOwotICAgIHNl
bGYuamF2YVNjcmlwdEVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3Jp
cHRFbmFibGVkIl07CiAgICAgc2VsZi5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5Il07CiAKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisg
ICAgc2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2
YVNjcmlwdEVuYWJsZWQiXTsKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAj
aWYgUExBVEZPUk0oTUFDKQogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAg
ICBzZWxmLmphdmFFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhRW5hYmxl
ZCJdOwpAQCAtMTEyLDE2ICsxMTgsNiBAQCAtICh2b2lkKXNldE1pbmltdW1Gb250U2l6ZTooQ0dG
bG9hdCltaW5pbXVtRm9udFNpemUKICAgICBfcHJlZmVyZW5jZXMtPnNldE1pbmltdW1Gb250U2l6
ZShtaW5pbXVtRm9udFNpemUpOwogfQogCi0tIChCT09MKWphdmFTY3JpcHRFbmFibGVkCi17Ci0g
ICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+amF2YVNjcmlwdEVuYWJsZWQoKTsKLX0KLQotLSAodm9p
ZClzZXRKYXZhU2NyaXB0RW5hYmxlZDooQk9PTClqYXZhU2NyaXB0RW5hYmxlZAotewotICAgIF9w
cmVmZXJlbmNlcy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOwotfQot
CiAtICh2b2lkKXNldEZyYXVkdWxlbnRXZWJzaXRlV2FybmluZ0VuYWJsZWQ6KEJPT0wpZW5hYmxl
ZAogewogICAgIF9wcmVmZXJlbmNlcy0+c2V0U2FmZUJyb3dzaW5nRW5hYmxlZChlbmFibGVkKTsK
QEAgLTE0MzIsMTAgKzE0MjgsMTEgQEAgLSAoQk9PTClfZGV2aWNlT3JpZW50YXRpb25FdmVudEVu
YWJsZWQKIAogQGVuZAogCi0jaWYgIVRBUkdFVF9PU19JUEhPTkUKIAogQGltcGxlbWVudGF0aW9u
IFdLUHJlZmVyZW5jZXMgKFdLRGVwcmVjYXRlZCkKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCisK
IC0gKEJPT0wpamF2YUVuYWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhRW5h
YmxlZCgpOwpAQCAtMTQ1Niw2ICsxNDUzLDE3IEBAIC0gKHZvaWQpc2V0UGx1Z0luc0VuYWJsZWQ6
KEJPT0wpcGx1Z0luc0VuYWJsZWQKICAgICBfcHJlZmVyZW5jZXMtPnNldFBsdWdpbnNFbmFibGVk
KHBsdWdJbnNFbmFibGVkKTsKIH0KIAorI2VuZGlmCisKKy0gKEJPT0wpamF2YVNjcmlwdEVuYWJs
ZWQKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5hYmxlZCgpOworfQor
CistICh2b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3JpcHRFbmFibGVkCit7
CisgICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxl
ZCk7Cit9CisKIEBlbmQKIAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCmluZGV4IDI3NDdlODEyOGYw
M2YwMmRiZWVmYjVjNWZjOTZmYzU3N2YyMTdhZDYuLjkxY2E0ZGQ2OGI0NjY4NDU4MDFhYTQ1YTZl
MzBlY2QxMmI5NTM1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCkBAIC01Nyw0ICs1NywxOSBAQCBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpCiAgKi8KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBXS0NvbnRlbnRNb2RlIHByZWZlcnJlZENvbnRlbnRNb2RlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEzLjApKTsKIAorLyogQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBmcm9tIHdlYiBjb250ZW50IGlzIGVuYWJsZWQKK0BkaXNj
dXNzaW9uIElmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHRoZW4gSmF2YVNjcmlwdCByZWZlcmVu
Y2VkIGJ5IHRoZSB3ZWIgY29udGVudCB3aWxsIG5vdCBleGVjdXRlLgorVGhpcyBpbmNsdWRlcyBK
YXZhU2NyaXB0IGZvdW5kIGluIGlubGluZSA8c2NyaXB0PiBlbGVtZW50cywgcmVmZXJlbmNlZCBi
eSBleHRlcm5hbCBKYXZhU2NyaXB0IHJlc291cmNlcywKKyJqYXZhc2NyaXB0OiIgVVJMcywgYW5k
IGFsbCBvdGhlciBmb3Jtcy4KKworRXZlbiBpZiB0aGlzIHZhbHVlIGlzIHNldCB0byBOTyB5b3Vy
IGFwcGxpY2F0aW9uIGNhbiBzdGlsbCBleGVjdXRlIEphdmFTY3JpcHQgdXNpbmc6CistIFtXS1dl
YlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhhbmRsZXI6XQorLSBbV0tXZWJWaWV3
IGV2YWx1dGVKYXZhU2NyaXB0OmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKy0g
W1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3VtZW50czppbkNvbnRlbnRXb3JsZDpj
b21wbGV0aW9uSGFuZGxlcjpdCistIFdLVXNlclNjcmlwdHMKKworVGhlIGRlZmF1bHQgdmFsdWUg
aXMgWUVTLgorKi8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQppbmRleCA5OWYwYzBhODBhOGJlNDUzMjQzNTZi
NjM5NjEwOWYzNmY0Y2ZkYzc0Li5iYzIzYjQ5YWM3ZDBlNWIxYzQyNDdjMDlmN2FhZjVkNzZiYTI1
ZDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJw
YWdlUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCkBAIC0zMzEsNiArMzMxLDE2IEBAIC0gKEFQSTo6T2Jq
ZWN0JilfYXBpT2JqZWN0CiAgICAgcmV0dXJuICpfd2Vic2l0ZVBvbGljaWVzOwogfQogCistICh2
b2lkKXNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OihCT09MKWFsbG93c0NvbnRlbnRKYXZhU2Ny
aXB0Cit7CisgICAgX3dlYnNpdGVQb2xpY2llcy0+c2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQo
YWxsb3dzQ29udGVudEphdmFTY3JpcHQpOworfQorCistIChCT09MKWFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0Cit7CisgICAgcmV0dXJuIF93ZWJzaXRlUG9saWNpZXMtPmFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0KCk7Cit9CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAtICh2b2lkKXNldFBy
ZWZlcnJlZENvbnRlbnRNb2RlOihXS0NvbnRlbnRNb2RlKWNvbnRlbnRNb2RlCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDVjNzM2ZWVlODBlNGM3
YjFlMjIxMzdjZTE3ZGRmNGE3NTQ5MzE3Zi4uM2U1NjIyYmFmZjg2MDRmMWY4NGFlNzBiZDZiZTlh
NTRmNTE0ZmI5MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAyLTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IiBv
biBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE1MzQ5Njc+
IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NDI3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFRlc3RXS1dl
YlZpZXcgQVBJIGZvciBzeW5jIG5hdmlnYXRpb25zIHdpdGggYSB3ZWJwYWdlIHByZWZlcmVuY2Vz
IG9iamVjdC4KKyAgICAgICAgCisgICAgICAgIFVzZSBpdCBpbiB0aGUgbmV3IHRlc3RzLgorICAg
ICAgICAKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0V2YWx1YXRlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25X
aXRoUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6cHJlZmVyZW5jZXM6XSk6
CisKIDIwMjAtMDItMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgU2V2ZXJhbCBpT1MgQVBJIHRlc3RzIHRoYXQgY2FsbCAtbWFrZUtleVdpbmRvdyBh
c3NlcnQgYWZ0ZXIgcjI1NTkwNwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5t
bQppbmRleCBmYzAzMzc1N2U0NDgxYzA2ZjE4ZmYxOTc2N2UwM2ZkMjEzZjIxZjA3Li4xNjRiMzM2
Y2Q3MjAwZjNjZGY3ZWJhNGVlZTJjMmFhMGNmZTc1NmZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2
YWx1YXRlSmF2YVNjcmlwdC5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIu
aCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUQ1BTZXJ2ZXIuaCIK
ICNpbXBvcnQgIlRlc3QuaCIKQEAgLTI1NCwzICsyNTUsNzkgQEAgVEVTVChXZWJLaXQsIEV2YWx1
YXRlSmF2YVNjcmlwdEluQXR0YWNobWVudHMpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKIH0KIAorVEVTVChXZWJLaXQsIEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KQorewor
ICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZhciBm
b28gPSAnYmFyJzwvc2NyaXB0PiJdOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVy
Ol4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJv
cik7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcg
Y2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAi
YmFyIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgUmV0YWluUHRyPFdLV2VicGFnZVByZWZlcmVuY2Vz
PiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxvY10gaW5p
dF0pOworICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9
IE5POworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+
dmFyIGZvbyA9ICdiYXInPC9zY3JpcHQ+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07
CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
Zm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBk
ZXNjcmlwdGlvbl0gY29udGFpbnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7
CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7Cisg
ICAgICAgIHsgIi9zY3JpcHQiLCB7ICJ2YXIgZm9vID0gJ2JhciciIH0gfQorICAgIH0pOworICAg
IHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gWUVTOworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIjxzY3JpcHQgc3JjPSdodHRwOi8vMTI3LjAuMC4xOiVkL3NjcmlwdCc+PC9zY3JpcHQ+
Iiwgc2VydmVyLnBvcnQoKV0gcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAg
ZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29t
cGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVY
UEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNs
YXNzOltOU1N0cmluZyBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0Vx
dWFsVG9TdHJpbmc6QCJiYXIiXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBwcmVmZXJlbmNlcy5nZXQo
KS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IE5POworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQgc3Jj
PSdodHRwOi8vMTI3LjAuMC4xOiVkL3NjcmlwdCc+PC9zY3JpcHQ+Iiwgc2VydmVyLnBvcnQoKV0g
cHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6Xihp
ZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7
CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5n
OkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgcHJlZmVy
ZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBZRVM7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2lu
ZG93LmZvbyA9IDEnPjwvaWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOwor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndp
bmRvdy5mcmFtZXNbMF0uZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1Rf
VFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pOworICAgICAgICBF
WFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb051bWJlcjpAMV0pOworICAgICAgICBkb25lID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisg
ICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aWZyYW1lIHNyYz0namF2YXNj
cmlwdDp3aW5kb3cuZm9vID0gMSc+PC9pZnJhbWU+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5n
ZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAid2luZG93LmZyYW1lc1swXS5mb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAg
ICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IDIyMzIwMWJjYmVm
OWM5Yzc3ZDg1YzFkZDFlODU4ODQyNmI2MmY1ZmIuLmI2NDcyMjlkY2I4NTk5NzQ2MDVjN2ZiMzA5
ZDg1ZDJjYTAzNDRlNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0zMSw2ICszMSw3IEBACiBAaW50ZXJmYWNlIFRlc3RO
YXZpZ2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbikoV0tOYXZpZ2F0aW9uQWN0aW9uICosIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKShXS05hdmlnYXRpb25BY3Rpb24g
KiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05h
dmlnYXRpb24gKiwgTlNFcnJvciAqKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
ICheZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRp
b24gKik7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZENvbW1pdE5hdmln
YXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7CkBAIC00MSw2ICs0Miw3IEBACiAK
IC0gKHZvaWQpd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwogLSAodm9pZCl3
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsKKy0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7
CiAtICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwogCiBAZW5kCkBA
IC00OCw1ICs1MCw2IEBACiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoVGVzdFdlYktpdEFQSUV4dHJh
cykKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwog
LSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsKKy0gKHZvaWQpX3Rlc3Rf
d2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZl
cmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uV2l0aG91dFByZXNlbnRhdGlvblVwZGF0ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQppbmRleCAzM2UyMTFi
NDFmNGM3ZmNkZDVmYzZlNGQyZDgxYjNiNDU5NWQwYjY1Li5iZGM1MTc1N2IzOTRhZjYyY2M0MGY0
MTEzMGI1NTAyZWI3ZjdiMjlmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCkBAIC0zMiwxMiArMzIsMTYgQEAKIAogQGltcGxl
bWVudGF0aW9uIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUKIAotLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdh
dGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdL
TmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2VicGFn
ZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFu
ZGxlcgogewotICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikKLSAgICAg
ICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgZGVj
aXNpb25IYW5kbGVyKTsKLSAgICBlbHNlCi0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7CisgICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKQorICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywg
ZGVjaXNpb25IYW5kbGVyKTsKKyAgICBlbHNlIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbikgeworICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihuYXZp
Z2F0aW9uQWN0aW9uLCBeKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb24pIHsKKyAgICAg
ICAgICAgIGRlY2lzaW9uSGFuZGxlcihhY3Rpb24sIHByZWZlcmVuY2VzKTsKKyAgICAgICAgfSk7
CisgICAgfSBlbHNlCisgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAq
KW5hdmlnYXRpb24KQEAgLTExMiw2ICsxMTYsMTkgQEAgLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNo
TmF2aWdhdGlvbgogICAgIHNlbGYuZGlkRmluaXNoTmF2aWdhdGlvbiA9IG5pbDsKIH0KIAorLSAo
dm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdl
UHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVYUEVDVF9GQUxTRShzZWxmLmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpOworICAgIEVYUEVDVF9U
UlVFKCEhcHJlZmVyZW5jZXMpOworCisgICAgc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uV2l0aFByZWZlcmVuY2VzID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAgICAgICAgaGFuZGxlcihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOworICAgIH07CisKKyAgICBbc2Vs
ZiB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgc2VsZi5kZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzID0gbmlsOworfQorCiAtICh2b2lkKXdhaXRG
b3JEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uCiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYu
ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbik7CkBAIC0xNTIsNiArMTY5LDE3IEBAIC0gKHZv
aWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRob3V0UHJlc2VudGF0aW9uVXBk
YXRlCiAgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuaWw7CiB9CiAKKy0gKHZvaWQpX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5uYXZpZ2F0
aW9uRGVsZWdhdGUpOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHNlbGYubmF2aWdhdGlv
bkRlbGVnYXRlID0gbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOworICAgIFtuYXZpZ2F0aW9uRGVs
ZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6cHJlZmVyZW5j
ZXNdOworCisgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuaWw7Cit9CisKIC0gKHZvaWQp
X3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KIHsKICAgICBFWFBFQ1RfRkFMU0Uoc2Vs
Zi5uYXZpZ2F0aW9uRGVsZWdhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcuaAppbmRleCBkOGU3NWRjM2MwZGM0YjVhNDM2ZjJmZmVjYjk2Njc3NGU2OGM1ODlmLi5j
MTYyMGNlNGUwYjViYThlMGVhNTA2YTQwZjgwMmRiZjY0ZjAyODNkIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNTQsNiArNTQsNyBAQAogLSAodm9pZClz
eW5jaHJvbm91c2x5R29Gb3J3YXJkOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6KE5TU3RyaW5nICopaHRtbDsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OihOU1N0cmluZyAqKWh0bWwgYmFzZVVSTDooTlNVUkwgKil1cmw7CistICh2b2lkKXN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIHByZWZlcmVuY2VzOihXS1dlYnBh
Z2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2Fk
VGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsKIC0gKEJPT0wpX3N5bmNocm9ub3Vz
bHlFeGVjdXRlRWRpdENvbW1hbmQ6KE5TU3RyaW5nICopY29tbWFuZCBhcmd1bWVudDooTlNTdHJp
bmcgKilhcmd1bWVudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5t
bQppbmRleCAyN2EyOGFhOThjYTZhOWEwYWY5ZTIyNzk4YjQ2MmEzOTY1M2FmNGE2Li41Y2QyZGY2
YjI2ZTcxMTNhYmU5OTYxMDFkYmQwYTI3OGVkZTcxNmFjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0xMDEsNiArMTAxLDEyIEBAIC0gKHZvaWQpc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwKICAgICBbc2VsZiBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5k
bGVdIGJ1bmRsZVVSTF0gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXV07CiB9CiAKKy0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OihOU1N0cmluZyAqKWh0bWwgcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJl
ZmVyZW5jZXMKK3sKKyAgICBbc2VsZiBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W1tbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbc2VsZiBfdGVzdF93YWl0Rm9yRGlk
RmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpwcmVmZXJlbmNlc107Cit9CisKIC0gKHZv
aWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lCiB7
CiAgICAgW3NlbGYgbG9hZFRlc3RQYWdlTmFtZWQ6cGFnZU5hbWVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390178</attachid>
            <date>2020-02-08 13:09:19 -0800</date>
            <delta_ts>2020-02-08 13:53:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200208130918.patch</filename>
            <type>text/plain</type>
            <size>26566</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uNzc3YjU3ZDA1NjljYWI0Yzk4ZDRjNjViMDc4Y2Nk
MGUxZGY2M2IzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTA4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphcHBseVBv
bGljaWVzVG9TZXR0aW5ncyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0QWxsb3dzU2NyaXB0TWFya3VwKToK
KwogMjAyMC0wMi0wNyAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6OkZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29y
ZVRleHQ6OmZvbnRSYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmU3NDUyODA0OTM4YTdlYzdmNGQ5Y2YxNGIx
ZDc1MWZjYTVkMTdlZC4uNjkzNDg5NDA4Y2UzMTU1ZjUyM2I5ZDExY2UxZTYzNjVmN2I5MmRjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wMi0wOCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTM0
OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdXRp
aXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTY3JpcHRNYXJrdXBF
bmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGRlcHJlY2F0
ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVuY2UgYXMgaXQgZG9l
c24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBs
eVRvRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRh
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHA6Cisg
ICAgICAgIChBUEk6OldlYnNpdGVQb2xpY2llczo6ZGF0YSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBqYXZhU2NyaXB0RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIHNldEphdmFTY3JpcHRFbmFibGVkOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVu
Y2VzIHNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyBhbGxvd3NDb250ZW50SmF2YVNjcmlwdF0pOgorCiAyMDIwLTAyLTA3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T046IEFTU0VSVElPTiBGQUlMRUQ6IHJlc2V0UmVzdWx0ID09IDAgb24gcmVncmVzc2lvbiB0ZXN0
cyBpbiBJVFAgY29kZSwgcmVzZXR0aW5nIFNRTGl0ZSBzdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGJjNmI5MGU2M2Q5NmJjNjMyM2Q2ZmI2NWY2
MmJmMDY3MGU3MzQyY2EuLjA2NWVjNTgzOGJkOTQ2Y2IzOWY1NGY5NDI4NjIzNWIwZDAwNDRjNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTIyMyw2ICsx
MjIzLDggQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YXBwbHlQb2xpY2llc1RvU2V0dGluZ3MoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9mcmFtZS0+c2V0dGluZ3MoKS5zZXRTY3Jp
cHRNYXJrdXBFbmFibGVkKG1fYWxsb3dzU2NyaXB0TWFya3VwKTsKKwogICAgIGlmICghbV9mcmFt
ZS0+aXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5oCmluZGV4IGQ2YTNkMGFjZDI0NmRlNzBjYjQ4NTg4MGEwNGIzODk0MWM4
MzJmNjUuLmExNmQ5ZTI1ZmMyZWRmZjJiMGI5Yjg0NTQ0ZGViMDA1OTQxNDU5MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0zMjgsNiArMzI4LDggQEAgcHVibGlj
OgogICAgIExlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbGVnYWN5T3ZlcmZsb3dT
Y3JvbGxpbmdUb3VjaFBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVnYWN5T3ZlcmZsb3dTY3Jv
bGxpbmdUb3VjaFBvbGljeTsgfQogICAgIHZvaWQgc2V0TGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdU
b3VjaFBvbGljeShMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IHBvbGljeSkgeyBt
X2xlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgPSBwb2xpY3k7IH0KIAorICAgIHZv
aWQgc2V0QWxsb3dzU2NyaXB0TWFya3VwKGJvb2wgYWxsb3dzTWFya3VwKSB7IG1fYWxsb3dzU2Ny
aXB0TWFya3VwID0gYWxsb3dzTWFya3VwOyB9CisKICAgICB2b2lkIGFkZFN1YnJlc291cmNlTG9h
ZGVyKFJlc291cmNlTG9hZGVyKik7CiAgICAgdm9pZCByZW1vdmVTdWJyZXNvdXJjZUxvYWRlcihM
b2FkQ29tcGxldGlvblR5cGUsIFJlc291cmNlTG9hZGVyKik7CiAgICAgdm9pZCBhZGRQbHVnSW5T
dHJlYW1Mb2FkZXIoUmVzb3VyY2VMb2FkZXImKTsKQEAgLTY0NSw2ICs2NDcsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9hbGxvd3NEYXRhVVJMc0Zvck1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2FsbG93c1NjcmlwdE1hcmt1cCB7IHRydWUgfTsKICAgICBTdHJpbmcgbV9kb3dubG9hZEF0
dHJpYnV0ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQ
b2xpY2llc0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0
YS5jcHAKaW5kZXggOTQ4ZjJhNWFiYjgyYTEyOWU0NjE5ZDMyNjIzNGMwZjEwNjg5NjhiNy4uZWFi
YTNlOThlYzkxMGZiOTBjYzA2NmVjNjE1MTY1ZjkxOGRhYzM5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBX
ZWJzaXRlUG9saWNpZXNEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTsKICAgICBl
bmNvZGVyIDw8IGxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k7CiAgICAgZW5jb2Rl
ciA8PCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOworICAgIGVuY29kZXIgPDwgYWxs
b3dzQ29udGVudEphdmFTY3JpcHQ7CiB9CiAKIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0x
MzQsNyArMTM1LDEyIEBAIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xp
Y2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgZGVjb2RlciA+PiBh
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOwogICAgIGlmICghYWxsb3dDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJRdWlyaykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKKwor
ICAgIE9wdGlvbmFsPGJvb2w+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OworICAgIGRlY29kZXIg
Pj4gYWxsb3dzQ29udGVudEphdmFTY3JpcHQ7CisgICAgaWYgKCFhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7IHsKICAg
ICAgICAgV1RGTW92ZSgqY29udGVudEJsb2NrZXJzRW5hYmxlZCksCiAgICAgICAgIFdURk1vdmUo
KmFsbG93ZWRBdXRvcGxheVF1aXJrcyksCkBAIC0xNTMsNiArMTU5LDcgQEAgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRj
aFBvbGljeSksCiAgICAgICAgIFdURk1vdmUoKmxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQ
b2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCphbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxsb3dzQ29udGVudEphdmFTY3JpcHQpLAogICAgIH0gfTsK
IH0KIApAQCAtMjY0LDYgKzI3MSw3IEBAIHZvaWQgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlU
b0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9sCiAgICAgfQog
CiAgICAgZG9jdW1lbnRMb2FkZXIuc2V0QWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayh3
ZWJzaXRlUG9saWNpZXMuYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayk7CisgICAgZG9j
dW1lbnRMb2FkZXIuc2V0QWxsb3dzU2NyaXB0TWFya3VwKHdlYnNpdGVQb2xpY2llcy5hbGxvd3ND
b250ZW50SmF2YVNjcmlwdCk7CiAKICAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50TG9hZGVyLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xp
Y2llc0RhdGEuaAppbmRleCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2NiMjBmNWY3MzNkMzczYTQyMmY0
Li40ZWJiMWUzYjIxN2VkYjQ1NTMyMmJjZGZmY2Q5YjBkMjM1MzgyYzFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCkBAIC02OCw2ICs2OCw3IEBAIHN0cnVj
dCBXZWJzaXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNE
aXNwYXRjaFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHsgV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBXZWJz
aXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9s
bGluZ1RvdWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xp
Y3k6OkRlZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsg
eyBmYWxzZSB9OworICAgIGJvb2wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgeyB0cnVlIH07CiAK
ICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0aW9u
YWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAppbmRleCBl
NzFlM2IzMGI5MzVkYTBhZGM3NjZjMzRjNTc2YzMxNGExZDE5NmI5Li43Zjc4YWFhODg3YjBhMTRh
Y2Y1ZDAxMDQ0YTFlYTZhZTI3MTIwYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcApAQCAtMTE3LDYgKzExNyw3IEBAIFdlYktp
dDo6V2Vic2l0ZVBvbGljaWVzRGF0YSBXZWJzaXRlUG9saWNpZXM6OmRhdGEoKQogICAgICAgICBt
X3NpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3ksCiAgICAgICAgIG1fbGVnYWN5T3Zl
cmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSwKICAgICAgICAgbV9hbGxvd0NvbnRlbnRDaGFuZ2VP
YnNlcnZlclF1aXJrLAorICAgICAgICBtX2FsbG93c0NvbnRlbnRKYXZhU2NyaXB0LCAKICAgICB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0
ZVBvbGljaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGlj
aWVzLmgKaW5kZXggOTQ2M2U1Mzk0ZjUxY2M3MmQ3NjA4OTFjZDg0NDUxMDExOTg5ZWE2MC4uZDI1
MzY4YjEyMjZjNTc3NGVmNDlkMWE5OGZmMjdiMGU3ZTA1MjViZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaApAQCAtMTE2LDYgKzExNiw5
IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoKSBj
b25zdCB7IHJldHVybiBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7IH0KICAgICB2
b2lkIHNldEFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoYm9vbCBhbGxvdykgeyBtX2Fs
bG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgPSBhbGxvdzsgfQogCisgICAgYm9vbCBhbGxv
d3NDb250ZW50SmF2YVNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQ29udGVudEphdmFT
Y3JpcHQ7IH0KKyAgICB2b2lkIHNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KGJvb2wgYWxsb3dz
KSB7IG1fYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBhbGxvd3M7IH0KKwogcHJpdmF0ZToKICAg
ICBXZWJzaXRlUG9saWNpZXMoYm9vbCBjb250ZW50QmxvY2tlcnNFbmFibGVkLCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlRdWlyaz4sIFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UG9s
aWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiYmLCBWZWN0b3I8V2ViQ29yZTo6
Q3VzdG9tSGVhZGVyRmllbGRzPiYmLCBXZWJLaXQ6OldlYnNpdGVQb3BVcFBvbGljeSwgUmVmUHRy
PFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4mJik7CiAKQEAgLTE0MCw2ICsxNDMsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9hbGxvd1NpdGVTcGVjaWZpY1F1aXJrc1RvT3ZlcnJpZGVDb250ZW50
TW9kZSB7IGZhbHNlIH07CiAgICAgV1RGOjpTdHJpbmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNr
dG9wVXNlckFnZW50OwogICAgIGJvb2wgbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsb3dzQ29udGVudEphdmFTY3JpcHQgeyB0cnVlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJiMTcyNTgyYTRjMTA1
YWFmOTdkYTc0OTQ5ZTA4NWMuLjg5Njg2ZGFlZGNiOWI5MWQ2NTJjYzQxZGRlZGYzYzBiZWNmY2Q0
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMuaApAQCAtNDAsMTEgKzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IG1pbmltdW1G
b250U2l6ZTsKIAotLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0
aGVyIEphdmFTY3JpcHQgaXMgZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyBZRVMuCi0gKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFi
bGVkOwotCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIg
SmF2YVNjcmlwdCBjYW4gb3BlbgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgog
IEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBhbmQgWUVTIGluIE9T
IFguCkBAIC03MSw3ICs2NiwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBp
b3MoOC4wKSkKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCiAKKyNp
ZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YUVuYWJs
ZWQgV0tfQVBJX0RFUFJFQ0FURUQoIkphdmEgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29z
KDEwLjEwLCAxMC4xNSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGx1Z0luc0VuYWJs
ZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBsdWctaW5zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwg
bWFjb3MoMTAuMTAsIDEwLjE1KSk7CisjZW5kaWYKKworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgamF2YVNjcmlwdEVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBXS1dlYlBhZ2VQcmVm
ZXJlbmNlcy5hbGxvd3NKYXZhU2NyaXB0TWFya3VwIHRvIGRpc2FibGUgSmF2YVNjcmlwdCBtYXJr
dXAgb24gYSBwZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwg
aW9zKDguMCwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDU0MjE4YTRkOWMwZjlhZGI2
MTQyOTJkMmYyYWViYzJiMzUzYWEyODguLjE0MjAxMWZiYjNlMzZlNmJjOWJmZjUxODNmNmFmYjU2
YzczYzRmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCkBAIC02NSw5ICs2NSwxMiBAQCArIChCT09MKXN1cHBvcnRzU2VjdXJl
Q29kaW5nCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7CiAgICAg
W2NvZGVyIGVuY29kZURvdWJsZTpzZWxmLm1pbmltdW1Gb250U2l6ZSBmb3JLZXk6QCJtaW5pbXVt
Rm9udFNpemUiXTsKLSAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVk
IGZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2Vs
Zi5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IGZvcktleTpAImphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KKyAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFi
bGVkIGZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CitBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKKwogI2lmIFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhRW5hYmxlZCBmb3JL
ZXk6QCJqYXZhRW5hYmxlZCJdOwpAQCAtODMsOSArODYsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAg
c2VsZi5taW5pbXVtRm9udFNpemUgPSBbY29kZXIgZGVjb2RlRG91YmxlRm9yS2V5OkAibWluaW11
bUZvbnRTaXplIl07Ci0gICAgc2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVC
b29sRm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAgICBzZWxmLmphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFT
Y3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfQkVHSU4KKyAgICBzZWxmLmphdmFTY3JpcHRFbmFibGVkID0gW2NvZGVyIGRl
Y29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOworQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMpCiBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIHNlbGYuamF2YUVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9v
bEZvcktleTpAImphdmFFbmFibGVkIl07CkBAIC0xMTIsMTYgKzExOCw2IEBAIC0gKHZvaWQpc2V0
TWluaW11bUZvbnRTaXplOihDR0Zsb2F0KW1pbmltdW1Gb250U2l6ZQogICAgIF9wcmVmZXJlbmNl
cy0+c2V0TWluaW11bUZvbnRTaXplKG1pbmltdW1Gb250U2l6ZSk7CiB9CiAKLS0gKEJPT0wpamF2
YVNjcmlwdEVuYWJsZWQKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5h
YmxlZCgpOwotfQotCi0tICh2b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3Jp
cHRFbmFibGVkCi17Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZh
U2NyaXB0RW5hYmxlZCk7Ci19Ci0KIC0gKHZvaWQpc2V0RnJhdWR1bGVudFdlYnNpdGVXYXJuaW5n
RW5hYmxlZDooQk9PTCllbmFibGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5zZXRTYWZlQnJvd3Np
bmdFbmFibGVkKGVuYWJsZWQpOwpAQCAtMTQzMiwxMCArMTQyOCwxMSBAQCAtIChCT09MKV9kZXZp
Y2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZAogCiBAZW5kCiAKLSNpZiAhVEFSR0VUX09TX0lQSE9O
RQogCiBAaW1wbGVtZW50YXRpb24gV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQogCisjaWYg
IVRBUkdFVF9PU19JUEhPTkUKKwogLSAoQk9PTClqYXZhRW5hYmxlZAogewogICAgIHJldHVybiBf
cHJlZmVyZW5jZXMtPmphdmFFbmFibGVkKCk7CkBAIC0xNDU2LDYgKzE0NTMsMTcgQEAgLSAodm9p
ZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClwbHVnSW5zRW5hYmxlZAogICAgIF9wcmVmZXJlbmNl
cy0+c2V0UGx1Z2luc0VuYWJsZWQocGx1Z0luc0VuYWJsZWQpOwogfQogCisjZW5kaWYKKworLSAo
Qk9PTClqYXZhU2NyaXB0RW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFT
Y3JpcHRFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEVuYWJsZWQ6KEJPT0wp
amF2YVNjcmlwdEVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFi
bGVkKGphdmFTY3JpcHRFbmFibGVkKTsKK30KKwogQGVuZAogCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2Vz
LmgKaW5kZXggMjc0N2U4MTI4ZjAzZjAyZGJlZWZiNWM1ZmM5NmZjNTc3ZjIxN2FkNi4uOTFjYTRk
ZDY4YjQ2Njg0NTgwMWFhNDVhNmUzMGVjZDEyYjk1MzVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKQEAg
LTU3LDQgKzU3LDE5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4w
KSkKICAqLwogQHByb3BlcnR5IChub25hdG9taWMpIFdLQ29udGVudE1vZGUgcHJlZmVycmVkQ29u
dGVudE1vZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogCisvKiBAYWJzdHJhY3QgQSBC
b29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGZyb20gd2ViIGNvbnRl
bnQgaXMgZW5hYmxlZAorQGRpc2N1c3Npb24gSWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gTk8gdGhl
biBKYXZhU2NyaXB0IHJlZmVyZW5jZWQgYnkgdGhlIHdlYiBjb250ZW50IHdpbGwgbm90IGV4ZWN1
dGUuCitUaGlzIGluY2x1ZGVzIEphdmFTY3JpcHQgZm91bmQgaW4gaW5saW5lIDxzY3JpcHQ+IGVs
ZW1lbnRzLCByZWZlcmVuY2VkIGJ5IGV4dGVybmFsIEphdmFTY3JpcHQgcmVzb3VyY2VzLAorImph
dmFzY3JpcHQ6IiBVUkxzLCBhbmQgYWxsIG90aGVyIGZvcm1zLgorCitFdmVuIGlmIHRoaXMgdmFs
dWUgaXMgc2V0IHRvIE5PIHlvdXIgYXBwbGljYXRpb24gY2FuIHN0aWxsIGV4ZWN1dGUgSmF2YVNj
cmlwdCB1c2luZzoKKy0gW1dLV2ViVmlldyBldmFsdXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFu
ZGxlcjpdCistIFtXS1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29t
cGxldGlvbkhhbmRsZXI6XQorLSBbV0tXZWJWaWV3IGNhbGxBc3luY0phdmFTY3JpcHQ6YXJndW1l
bnRzOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKy0gV0tVc2VyU2NyaXB0cwor
CitUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCisqLworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmluZGV4IDk5
ZjBjMGE4MGE4YmU0NTMyNDM1NmI2Mzk2MTA5ZjM2ZjRjZmRjNzQuLmJjMjNiNDlhYzdkMGU1YjFj
NDI0N2MwOWY3YWFmNWQ3NmJhMjVkNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTMzMSw2ICsz
MzEsMTYgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1cm4gKl93ZWJzaXRl
UG9saWNpZXM7CiB9CiAKKy0gKHZvaWQpc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6KEJPT0wp
YWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBfd2Vic2l0ZVBvbGljaWVzLT5zZXRBbGxv
d3NDb250ZW50SmF2YVNjcmlwdChhbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7Cit9CisKKy0gKEJP
T0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICByZXR1cm4gX3dlYnNpdGVQb2xpY2ll
cy0+YWxsb3dzQ29udGVudEphdmFTY3JpcHQoKTsKK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKIC0gKHZvaWQpc2V0UHJlZmVycmVkQ29udGVudE1vZGU6KFdLQ29udGVudE1vZGUpY29u
dGVudE1vZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAwNWM3MzZlZWU4MGU0YzdiMWUyMjEzN2NlMTdkZGY0YTc1NDkzMTdmLi4zZTU2MjJiYWZm
ODYwNGYxZjg0YWU3MGJkNmJlOWE1NGY1MTRmYjkwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMDggIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSAiYWxsb3dz
Q29udGVudEphdmFTY3JpcHQiIG9uIFdLV2VicGFnZVByZWZlcmVuY2VzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81MTUzNDk2Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgVGVzdFdLV2ViVmlldyBBUEkgZm9yIHN5bmMgbmF2aWdhdGlvbnMgd2l0aCBh
IHdlYnBhZ2UgcHJlZmVyZW5jZXMgb2JqZWN0LgorICAgICAgICAKKyAgICAgICAgVXNlIGl0IGlu
IHRoZSBuZXcgdGVzdHMuCisgICAgICAgIAorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRl
Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRl
Lm1tOgorICAgICAgICAoLVtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b25XaXRoUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdGVzdF93YWl0Rm9y
RGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29j
b2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpwcmVmZXJlbmNlczpdKToKKwogMjAyMC0wMi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXZlcmFsIGlPUyBBUEkgdGVzdHMgdGhhdCBj
YWxsIC1tYWtlS2V5V2luZG93IGFzc2VydCBhZnRlciByMjU1OTA3CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNj
cmlwdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3
RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCmluZGV4IGZjMDMzNzU3ZTQ0ODFjMDZmMThmZjE5NzY3ZTAz
ZmQyMTNmMjFmMDcuLjE2NGIzMzZjZDcyMDBmM2NkZjdlYmE0ZWVlMmMyYWEwY2ZlNzU2ZmIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3
RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAor
I2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdC5oIgpAQCAtMjU0LDMgKzI1NSw3OSBA
QCBURVNUKFdlYktpdCwgRXZhbHVhdGVKYXZhU2NyaXB0SW5BdHRhY2htZW50cykKICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQogCitURVNUKFdlYktpdCwgQWxsb3dzQ29u
dGVudEphdmFTY3JpcHQpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXInPC9zY3JpcHQ+Il07CisKKyAgICBfX2Jsb2Nr
IGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZv
byIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tp
bmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3Vs
dCBpc0VxdWFsVG9TdHJpbmc6QCJiYXIiXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBSZXRhaW5QdHI8
V0tXZWJwYWdlUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dLV2VicGFnZVBy
ZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CisgICAgRVhQRUNUX1RSVUUocHJlZmVyZW5jZXMuZ2V0
KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQpOworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93
c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iIHByZWZlcmVuY2Vz
OnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBF
WFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZp
bmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OkhU
VFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiL3NjcmlwdCIsIHsgInZhciBmb28gPSAnYmFy
JyIgfSB9CisgICAgfSk7CisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFT
Y3JpcHQgPSBZRVM7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOltO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdCBzcmM9J2h0dHA6Ly8xMjcuMC4wLjE6
JWQvc2NyaXB0Jz48L3NjcmlwdD4iLCBzZXJ2ZXIucG9ydCgpXSBwcmVmZXJlbmNlczpwcmVmZXJl
bmNlcy5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAq
ZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJV
RShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAgICAgICBFWFBF
Q1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKwor
ICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiPHNjcmlwdCBzcmM9J2h0dHA6Ly8xMjcuMC4wLjE6JWQvc2NyaXB0Jz48L3Njcmlw
dD4iLCBzZXJ2ZXIucG9ydCgpXSBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAg
ICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBj
b21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAg
RVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlw
dGlvbl0gY29udGFpbnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAg
ICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9
IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aWZyYW1l
IHNyYz0namF2YXNjcmlwdDp3aW5kb3cuZm9vID0gMSc+PC9pZnJhbWU+IiBwcmVmZXJlbmNlczpw
cmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmZyYW1lc1swXS5mb28iIGNvbXBsZXRpb25IYW5kbGVy
Ol4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJv
cik7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIg
Y2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvTnVtYmVyOkAx
XSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2
YVNjcmlwdCA9IE5POworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
IjxpZnJhbWUgc3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48L2lmcmFtZT4iIHByZWZl
cmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBdLmZvbyIgY29tcGxldGlv
bkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9O
VUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxl
Z2F0ZS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRl
LmgKaW5kZXggMjIzMjAxYmNiZWY5YzljNzdkODVjMWRkMWU4NTg4NDI2YjYyZjVmYi4uYjY0NzIy
OWRjYjg1OTk3NDYwNWM3ZmIzMDlkODVkMmNhMDM0NGU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTMxLDYgKzMxLDcg
QEAKIEBpbnRlcmZhY2UgVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmln
YXRpb25EZWxlZ2F0ZT4KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKShXS05hdmlnYXRpb25BY3Rpb24gKiwgdm9pZCAo
XikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMp
KFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlv
bikoV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqLCBOU0Vycm9yICopOwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tX
ZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkQ29tbWl0TmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKTsK
QEAgLTQxLDYgKzQyLDcgQEAKIAogLSAodm9pZCl3YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb247CiAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9pZCl3
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5h
dmlnYXRpb247CiAKIEBlbmQKQEAgLTQ4LDUgKzUwLDYgQEAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3
IChUZXN0V2ViS2l0QVBJRXh0cmFzKQogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb247CiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0
aW9uOworLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJl
bmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQpX3Rlc3Rf
d2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRob3V0UHJlc2VudGF0aW9uVXBkYXRlOwogQGVu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRl
bGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLm1tCmluZGV4IDMzZTIxMWI0MWY0YzdmY2RkNWZjNmU0ZDJkODFiM2I0NTk1ZDBiNjUuLmJk
YzUxNzU3YjM5NGFmNjJjYzQwZjQxMTMwYjU1MDJlYjdmN2IyOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KQEAgLTMyLDEy
ICszMiwxNiBAQAogCiBAaW1wbGVtZW50YXRpb24gVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZQogCi0t
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5k
bGVyCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBw
cmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNpc2lvbkhh
bmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKQotICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihu
YXZpZ2F0aW9uQWN0aW9uLCBkZWNpc2lvbkhhbmRsZXIpOwotICAgIGVsc2UKLSAgICAgICAgZGVj
aXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICBpZiAoX2Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpCisgICAgICAgIF9k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKG5hdmlnYXRpb25B
Y3Rpb24sIHByZWZlcmVuY2VzLCBkZWNpc2lvbkhhbmRsZXIpOworICAgIGVsc2UgaWYgKF9kZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKSB7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb24sIF4oV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5IGFjdGlvbikgeworICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyKGFjdGlvbiwgcHJlZmVy
ZW5jZXMpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGVjaXNpb25IYW5kbGVy
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CiB9CiAKIC0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdh
dGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgpAQCAtMTEyLDYgKzExNiwxOSBAQCAtICh2
b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCiAgICAgc2VsZi5kaWRGaW5pc2hOYXZpZ2F0
aW9uID0gbmlsOwogfQogCistICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFBy
ZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgRVhQ
RUNUX0ZBTFNFKHNlbGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJl
bmNlcyk7CisgICAgRVhQRUNUX1RSVUUoISFwcmVmZXJlbmNlcyk7CisKKyAgICBzZWxmLmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlv
bkFjdGlvbiAqYWN0aW9uLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheaGFuZGxlciko
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAg
ICAgICBoYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7
CisgICAgfTsKKworICAgIFtzZWxmIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBz
ZWxmLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBuaWw7
Cit9CisKIC0gKHZvaWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24KIHsKICAg
ICBFWFBFQ1RfRkFMU0Uoc2VsZi5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKTsKQEAgLTE1
Miw2ICsxNjksMTcgQEAgLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldp
dGhvdXRQcmVzZW50YXRpb25VcGRhdGUKICAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5p
bDsKIH0KIAorLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVm
ZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVYUEVD
VF9GQUxTRShzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7
CisgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQ
cmVmZXJlbmNlczpwcmVmZXJlbmNlc107CisKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9
IG5pbDsKK30KKwogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogewog
ICAgIEVYUEVDVF9GQUxTRShzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSk7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCmluZGV4IGQ4ZTc1ZGMzYzBkYzRiNWE0MzZmMmZm
ZWNiOTY2Nzc0ZTY4YzU4OWYuLmMxNjIwY2U0ZTBiNWJhOGUwZWE1MDZhNDBmODAyZGJmNjRmMDI4
M2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5o
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01NCw2
ICs1NCw3IEBACiAtICh2b2lkKXN5bmNocm9ub3VzbHlHb0ZvcndhcmQ7CiAtICh2b2lkKXN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sOwogLSAodm9pZClzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVy
bDsKKy0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwg
cHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lk
KXN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIC0gKHZv
aWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwog
LSAoQk9PTClfc3luY2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21t
YW5kIGFyZ3VtZW50OihOU1N0cmluZyAqKWFyZ3VtZW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDI3YTI4YWE5OGNhNmE5YTBhZjllMjI3OThiNDYy
YTM5NjUzYWY0YTYuLjVjZDJkZjZiMjZlNzExM2FiZTk5NjEwMWRiZDBhMjc4ZWRlNzE2YWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTEwMSw2ICsx
MDEsMTIgQEAgLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICop
aHRtbAogICAgIFtzZWxmIHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6
W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21w
b25lbnQ6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKIH0KIAorLSAodm9pZClzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBwcmVmZXJlbmNlczooV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIFtzZWxmIGxvYWRIVE1MU3RyaW5n
Omh0bWwgYmFzZVVSTDpbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBw
ZW5kaW5nUGF0aENvbXBvbmVudDpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtz
ZWxmIF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOnByZWZl
cmVuY2VzXTsKK30KKwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5T
U3RyaW5nICopcGFnZU5hbWUKIHsKICAgICBbc2VsZiBsb2FkVGVzdFBhZ2VOYW1lZDpwYWdlTmFt
ZV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390181</attachid>
            <date>2020-02-08 13:53:57 -0800</date>
            <delta_ts>2020-02-08 17:56:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200208135356.patch</filename>
            <type>text/plain</type>
            <size>26679</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uNzc3YjU3ZDA1NjljYWI0Yzk4ZDRjNjViMDc4Y2Nk
MGUxZGY2M2IzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTA4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphcHBseVBv
bGljaWVzVG9TZXR0aW5ncyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0QWxsb3dzU2NyaXB0TWFya3VwKToK
KwogMjAyMC0wMi0wNyAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6OkZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29y
ZVRleHQ6OmZvbnRSYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmU3NDUyODA0OTM4YTdlYzdmNGQ5Y2YxNGIx
ZDc1MWZjYTVkMTdlZC4uNjkzNDg5NDA4Y2UzMTU1ZjUyM2I5ZDExY2UxZTYzNjVmN2I5MmRjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wMi0wOCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTM0
OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdXRp
aXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTY3JpcHRNYXJrdXBF
bmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGRlcHJlY2F0
ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVuY2UgYXMgaXQgZG9l
c24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBs
eVRvRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRh
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHA6Cisg
ICAgICAgIChBUEk6OldlYnNpdGVQb2xpY2llczo6ZGF0YSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBqYXZhU2NyaXB0RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIHNldEphdmFTY3JpcHRFbmFibGVkOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVu
Y2VzIHNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyBhbGxvd3NDb250ZW50SmF2YVNjcmlwdF0pOgorCiAyMDIwLTAyLTA3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T046IEFTU0VSVElPTiBGQUlMRUQ6IHJlc2V0UmVzdWx0ID09IDAgb24gcmVncmVzc2lvbiB0ZXN0
cyBpbiBJVFAgY29kZSwgcmVzZXR0aW5nIFNRTGl0ZSBzdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGJjNmI5MGU2M2Q5NmJjNjMyM2Q2ZmI2NWY2
MmJmMDY3MGU3MzQyY2EuLjA2OGI3NjVlMjEwNzk1OTUxODQzZjVkYzhiNTQyOTIzODZkMzEwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTIyMyw2ICsx
MjIzLDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YXBwbHlQb2xpY2llc1RvU2V0dGluZ3MoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fYWxsb3dzU2NyaXB0TWFya3VwKQor
ICAgICAgICBtX2ZyYW1lLT5zZXR0aW5ncygpLnNldFNjcmlwdE1hcmt1cEVuYWJsZWQoKm1fYWxs
b3dzU2NyaXB0TWFya3VwKTsKKwogICAgIGlmICghbV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4
IGQ2YTNkMGFjZDI0NmRlNzBjYjQ4NTg4MGEwNGIzODk0MWM4MzJmNjUuLjRiN2UwNTExOWRlMjJk
YjE2Mzk2OWYwMzc4ZmVmOGQyMjhlNzE0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5oCkBAIC0zMjgsNiArMzI4LDggQEAgcHVibGljOgogICAgIExlZ2FjeU92ZXJmbG93
U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTsgfQog
ICAgIHZvaWQgc2V0TGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeShMZWdhY3lPdmVy
Zmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IHBvbGljeSkgeyBtX2xlZ2FjeU92ZXJmbG93U2Nyb2xs
aW5nVG91Y2hQb2xpY3kgPSBwb2xpY3k7IH0KIAorICAgIHZvaWQgc2V0QWxsb3dzU2NyaXB0TWFy
a3VwKE9wdGlvbmFsPGJvb2w+IGFsbG93c01hcmt1cCkgeyBtX2FsbG93c1NjcmlwdE1hcmt1cCA9
IGFsbG93c01hcmt1cDsgfQorCiAgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJj
ZUxvYWRlciopOwogICAgIHZvaWQgcmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoTG9hZENvbXBsZXRp
b25UeXBlLCBSZXNvdXJjZUxvYWRlciopOwogICAgIHZvaWQgYWRkUGx1Z0luU3RyZWFtTG9hZGVy
KFJlc291cmNlTG9hZGVyJik7CkBAIC02NDUsNiArNjQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV9hbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lIHsgZmFsc2UgfTsKICAgICBib29sIG1f
YWxsb3dzRGF0YVVSTHNGb3JNYWluRnJhbWUgeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPGJvb2w+
IG1fYWxsb3dzU2NyaXB0TWFya3VwOwogICAgIFN0cmluZyBtX2Rvd25sb2FkQXR0cmlidXRlOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAppbmRl
eCA5NDhmMmE1YWJiODJhMTI5ZTQ2MTlkMzI2MjM0YzBmMTA2ODk2OGI3Li5iOTk3MmJjOTc2MTFj
ZjEwNTdjMGI3OGQ1M2Y1NWI5ZGQ0YmY0Mzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJzaXRlUG9saWNpZXNEYXRhLmNwcApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIFdlYnNpdGVQb2xp
Y2llc0RhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5OwogICAgIGVuY29kZXIgPDwg
bGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTsKICAgICBlbmNvZGVyIDw8IGFsbG93
Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7CisgICAgZW5jb2RlciA8PCBhbGxvd3NDb250ZW50
SmF2YVNjcmlwdDsKIH0KIAogT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBv
bGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTEzNCw3ICsxMzUs
MTIgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBkZWNvZGVyID4+IGFsbG93Q29udGVu
dENoYW5nZU9ic2VydmVyUXVpcms7CiAgICAgaWYgKCFhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZl
clF1aXJrKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisgICAgT3B0aW9u
YWw8T3B0aW9uYWw8Ym9vbD4+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OworICAgIGRlY29kZXIg
Pj4gYWxsb3dzQ29udGVudEphdmFTY3JpcHQ7CisgICAgaWYgKCFhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7IHsKICAg
ICAgICAgV1RGTW92ZSgqY29udGVudEJsb2NrZXJzRW5hYmxlZCksCiAgICAgICAgIFdURk1vdmUo
KmFsbG93ZWRBdXRvcGxheVF1aXJrcyksCkBAIC0xNTMsNiArMTU5LDcgQEAgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRj
aFBvbGljeSksCiAgICAgICAgIFdURk1vdmUoKmxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQ
b2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCphbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxsb3dzQ29udGVudEphdmFTY3JpcHQpLAogICAgIH0gfTsK
IH0KIApAQCAtMjY0LDYgKzI3MSw3IEBAIHZvaWQgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlU
b0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9sCiAgICAgfQog
CiAgICAgZG9jdW1lbnRMb2FkZXIuc2V0QWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayh3
ZWJzaXRlUG9saWNpZXMuYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayk7CisgICAgZG9j
dW1lbnRMb2FkZXIuc2V0QWxsb3dzU2NyaXB0TWFya3VwKHdlYnNpdGVQb2xpY2llcy5hbGxvd3ND
b250ZW50SmF2YVNjcmlwdCk7CiAKICAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50TG9hZGVyLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xp
Y2llc0RhdGEuaAppbmRleCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2NiMjBmNWY3MzNkMzczYTQyMmY0
Li44NTJiMTNmMWY5MjJiZWQ0YTYyOGQzNWJiYjQxZWFhZjczZTI1ZjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCkBAIC02OCw2ICs2OCw3IEBAIHN0cnVj
dCBXZWJzaXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNE
aXNwYXRjaFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHsgV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBXZWJz
aXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9s
bGluZ1RvdWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xp
Y3k6OkRlZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsg
eyBmYWxzZSB9OworICAgIE9wdGlvbmFsPGJvb2w+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Owog
CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKaW5kZXgg
ZTcxZTNiMzBiOTM1ZGEwYWRjNzY2YzM0YzU3NmMzMTRhMWQxOTZiOS4uN2Y3OGFhYTg4N2IwYTE0
YWNmNWQwMTA0NGExZWE2YWUyNzEyMGEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBXZWJL
aXQ6OldlYnNpdGVQb2xpY2llc0RhdGEgV2Vic2l0ZVBvbGljaWVzOjpkYXRhKCkKICAgICAgICAg
bV9zaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LAogICAgICAgICBtX2xlZ2FjeU92
ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3ksCiAgICAgICAgIG1fYWxsb3dDb250ZW50Q2hhbmdl
T2JzZXJ2ZXJRdWlyaywKKyAgICAgICAgbV9hbGxvd3NDb250ZW50SmF2YVNjcmlwdCwgCiAgICAg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xp
Y2llcy5oCmluZGV4IDk0NjNlNTM5NGY1MWNjNzJkNzYwODkxY2Q4NDQ1MTAxMTk4OWVhNjAuLmMy
NmJlZTI3NTZkZWZiYTg3ZjFhMTRkOTUzY2YwNzlkMDBmMzNkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTExNiw2ICsxMTYs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOyB9CiAgICAg
dm9pZCBzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKGJvb2wgYWxsb3cpIHsgbV9h
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrID0gYWxsb3c7IH0KIAorICAgIE9wdGlvbmFs
PGJvb2w+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3ND
b250ZW50SmF2YVNjcmlwdDsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQo
Ym9vbCBhbGxvd3MpIHsgbV9hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IGFsbG93czsgfQorCiBw
cml2YXRlOgogICAgIFdlYnNpdGVQb2xpY2llcyhib29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVBdXRvcGxheVF1aXJrPiwgV2ViS2l0OjpXZWJzaXRl
QXV0b3BsYXlQb2xpY3ksIFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYsIFZlY3Rv
cjxXZWJDb3JlOjpDdXN0b21IZWFkZXJGaWVsZHM+JiYsIFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9s
aWN5LCBSZWZQdHI8V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlPiYmKTsKIApAQCAtMTQwLDYgKzE0
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FsbG93U2l0ZVNwZWNpZmljUXVpcmtzVG9PdmVy
cmlkZUNvbnRlbnRNb2RlIHsgZmFsc2UgfTsKICAgICBXVEY6OlN0cmluZyBtX2FwcGxpY2F0aW9u
TmFtZUZvckRlc2t0b3BVc2VyQWdlbnQ7CiAgICAgYm9vbCBtX2FsbG93Q29udGVudENoYW5nZU9i
c2VydmVyUXVpcmsgeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPGJvb2w+IG1fYWxsb3dzQ29udGVu
dEphdmFTY3JpcHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJi
MTcyNTgyYTRjMTA1YWFmOTdkYTc0OTQ5ZTA4NWMuLjg5Njg2ZGFlZGNiOWI5MWQ2NTJjYzQxZGRl
ZGYzYzBiZWNmY2Q0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaApAQCAtNDAsMTEgKzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zs
b2F0IG1pbmltdW1Gb250U2l6ZTsKIAotLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5k
aWNhdGluZyB3aGV0aGVyIEphdmFTY3JpcHQgaXMgZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUg
ZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCi0gKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGph
dmFTY3JpcHRFbmFibGVkOwotCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBjYW4gb3BlbgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBh
bmQgWUVTIGluIE9TIFguCkBAIC03MSw3ICs2NiwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJl
Y2F0ZWQpCiAKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgamF2YUVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIkphdmEgaXMgbm8gbG9uZ2VyIHN1cHBv
cnRlZCIsIG1hY29zKDEwLjEwLCAxMC4xNSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
cGx1Z0luc0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBsdWctaW5zIGFyZSBubyBsb25nZXIg
c3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEwLjE1KSk7CisjZW5kaWYKKworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgamF2YVNjcmlwdEVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBX
S1dlYlBhZ2VQcmVmZXJlbmNlcy5hbGxvd3NKYXZhU2NyaXB0TWFya3VwIHRvIGRpc2FibGUgSmF2
YVNjcmlwdCBtYXJrdXAgb24gYSBwZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCBX
S19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDU0MjE4
YTRkOWMwZjlhZGI2MTQyOTJkMmYyYWViYzJiMzUzYWEyODguLjE0MjAxMWZiYjNlMzZlNmJjOWJm
ZjUxODNmNmFmYjU2YzczYzRmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC02NSw5ICs2NSwxMiBAQCArIChCT09MKXN1
cHBvcnRzU2VjdXJlQ29kaW5nCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNv
ZGVyCiB7CiAgICAgW2NvZGVyIGVuY29kZURvdWJsZTpzZWxmLm1pbmltdW1Gb250U2l6ZSBmb3JL
ZXk6QCJtaW5pbXVtRm9udFNpemUiXTsKLSAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFT
Y3JpcHRFbmFibGVkIGZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CiAgICAgW2NvZGVyIGVu
Y29kZUJvb2w6c2VsZi5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IGZvcktl
eTpAImphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmph
dmFTY3JpcHRFbmFibGVkIGZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogI2lmIFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZh
RW5hYmxlZCBmb3JLZXk6QCJqYXZhRW5hYmxlZCJdOwpAQCAtODMsOSArODYsMTIgQEAgLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICByZXR1cm4g
bmlsOwogCiAgICAgc2VsZi5taW5pbXVtRm9udFNpemUgPSBbY29kZXIgZGVjb2RlRG91YmxlRm9y
S2V5OkAibWluaW11bUZvbnRTaXplIl07Ci0gICAgc2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtj
b2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAgICBzZWxmLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBbY29kZXIgZGVjb2RlQm9vbEZv
cktleTpAImphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBzZWxmLmphdmFTY3JpcHRFbmFibGVk
ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOworQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMpCiBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHNlbGYuamF2YUVuYWJsZWQgPSBbY29k
ZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFFbmFibGVkIl07CkBAIC0xMTIsMTYgKzExOCw2IEBA
IC0gKHZvaWQpc2V0TWluaW11bUZvbnRTaXplOihDR0Zsb2F0KW1pbmltdW1Gb250U2l6ZQogICAg
IF9wcmVmZXJlbmNlcy0+c2V0TWluaW11bUZvbnRTaXplKG1pbmltdW1Gb250U2l6ZSk7CiB9CiAK
LS0gKEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5q
YXZhU2NyaXB0RW5hYmxlZCgpOwotfQotCi0tICh2b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihC
T09MKWphdmFTY3JpcHRFbmFibGVkCi17Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0
RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxlZCk7Ci19Ci0KIC0gKHZvaWQpc2V0RnJhdWR1bGVudFdl
YnNpdGVXYXJuaW5nRW5hYmxlZDooQk9PTCllbmFibGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5z
ZXRTYWZlQnJvd3NpbmdFbmFibGVkKGVuYWJsZWQpOwpAQCAtMTQzMiwxMCArMTQyOCwxMSBAQCAt
IChCT09MKV9kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZAogCiBAZW5kCiAKLSNpZiAhVEFS
R0VUX09TX0lQSE9ORQogCiBAaW1wbGVtZW50YXRpb24gV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNh
dGVkKQogCisjaWYgIVRBUkdFVF9PU19JUEhPTkUKKwogLSAoQk9PTClqYXZhRW5hYmxlZAogewog
ICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFFbmFibGVkKCk7CkBAIC0xNDU2LDYgKzE0NTMs
MTcgQEAgLSAodm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClwbHVnSW5zRW5hYmxlZAogICAg
IF9wcmVmZXJlbmNlcy0+c2V0UGx1Z2luc0VuYWJsZWQocGx1Z0luc0VuYWJsZWQpOwogfQogCisj
ZW5kaWYKKworLSAoQk9PTClqYXZhU2NyaXB0RW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmphdmFTY3JpcHRFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEVu
YWJsZWQ6KEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEph
dmFTY3JpcHRFbmFibGVkKGphdmFTY3JpcHRFbmFibGVkKTsKK30KKwogQGVuZAogCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQ
cmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFn
ZVByZWZlcmVuY2VzLmgKaW5kZXggMjc0N2U4MTI4ZjAzZjAyZGJlZWZiNWM1ZmM5NmZjNTc3ZjIx
N2FkNi4uOTFjYTRkZDY4YjQ2Njg0NTgwMWFhNDVhNmUzMGVjZDEyYjk1MzVkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZl
cmVuY2VzLmgKQEAgLTU3LDQgKzU3LDE5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
NSksIGlvcygxMy4wKSkKICAqLwogQHByb3BlcnR5IChub25hdG9taWMpIFdLQ29udGVudE1vZGUg
cHJlZmVycmVkQ29udGVudE1vZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogCisvKiBA
YWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGZy
b20gd2ViIGNvbnRlbnQgaXMgZW5hYmxlZAorQGRpc2N1c3Npb24gSWYgdGhpcyB2YWx1ZSBpcyBz
ZXQgdG8gTk8gdGhlbiBKYXZhU2NyaXB0IHJlZmVyZW5jZWQgYnkgdGhlIHdlYiBjb250ZW50IHdp
bGwgbm90IGV4ZWN1dGUuCitUaGlzIGluY2x1ZGVzIEphdmFTY3JpcHQgZm91bmQgaW4gaW5saW5l
IDxzY3JpcHQ+IGVsZW1lbnRzLCByZWZlcmVuY2VkIGJ5IGV4dGVybmFsIEphdmFTY3JpcHQgcmVz
b3VyY2VzLAorImphdmFzY3JpcHQ6IiBVUkxzLCBhbmQgYWxsIG90aGVyIGZvcm1zLgorCitFdmVu
IGlmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHlvdXIgYXBwbGljYXRpb24gY2FuIHN0aWxsIGV4
ZWN1dGUgSmF2YVNjcmlwdCB1c2luZzoKKy0gW1dLV2ViVmlldyBldmFsdXRlSmF2YVNjcmlwdDpj
b21wbGV0aW9uSGFuZGxlcjpdCistIFtXS1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6aW5Db250
ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XQorLSBbV0tXZWJWaWV3IGNhbGxBc3luY0phdmFT
Y3JpcHQ6YXJndW1lbnRzOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKy0gV0tV
c2VyU2NyaXB0cworCitUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCisqLworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2Vz
Lm1tCmluZGV4IDk5ZjBjMGE4MGE4YmU0NTMyNDM1NmI2Mzk2MTA5ZjM2ZjRjZmRjNzQuLjBhMmE5
NTc3ZmE2NThhMGEyZDE3NTU1NzA1MTcxOGI2MGEyZmVhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0K
QEAgLTMzMSw2ICszMzEsMTcgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1
cm4gKl93ZWJzaXRlUG9saWNpZXM7CiB9CiAKKy0gKHZvaWQpc2V0QWxsb3dzQ29udGVudEphdmFT
Y3JpcHQ6KEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBfd2Vic2l0ZVBvbGlj
aWVzLT5zZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdChhbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7
Cit9CisKKy0gKEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBhdXRvIGFsbG93
cyA9IF93ZWJzaXRlUG9saWNpZXMtPmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KCk7CisgICAgcmV0
dXJuIGFsbG93cyA/ICphbGxvd3MgOiB0cnVlOworfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIAogLSAodm9pZClzZXRQcmVmZXJyZWRDb250ZW50TW9kZTooV0tDb250ZW50TW9kZSljb250
ZW50TW9kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDA1YzczNmVlZTgwZTRjN2IxZTIyMTM3Y2UxN2RkZjRhNzU0OTMxN2YuLjNlNTYyMmJhZmY4
NjA0ZjFmODRhZTcwYmQ2YmU5YTU0ZjUxNGZiOTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMC0wMi0wOCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3ND
b250ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBUZXN0V0tXZWJWaWV3IEFQSSBmb3Igc3luYyBuYXZpZ2F0aW9ucyB3aXRoIGEg
d2VicGFnZSBwcmVmZXJlbmNlcyBvYmplY3QuCisgICAgICAgIAorICAgICAgICBVc2UgaXQgaW4g
dGhlIG5ldyB0ZXN0cy4KKyAgICAgICAgCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAgICAgIChURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bldpdGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90ZXN0X3dhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOl0pOgorICAgICAgICAoLVtUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOnByZWZlcmVuY2VzOl0pOgorCiAyMDIwLTAyLTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFNldmVyYWwgaU9TIEFQSSB0ZXN0cyB0aGF0IGNh
bGwgLW1ha2VLZXlXaW5kb3cgYXNzZXJ0IGFmdGVyIHIyNTU5MDcKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdF
dmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXggZmMwMzM3NTdlNDQ4MWMwNmYxOGZmMTk3NjdlMDNm
ZDIxM2YyMWYwNy4uMTY0YjMzNmNkNzIwMGYzY2RmN2ViYTRlZWUyYzJhYTBjZmU3NTZmYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdF
dmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCisj
aW1wb3J0ICJIVFRQU2VydmVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVENQU2VydmVyLmgiCiAjaW1wb3J0ICJUZXN0LmgiCkBAIC0yNTQsMyArMjU1LDc5IEBA
IFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRJbkF0dGFjaG1lbnRzKQogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBBbGxvd3NDb250
ZW50SmF2YVNjcmlwdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsKKworICAgIF9fYmxvY2sg
Ym9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9v
IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzS2lu
ZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0
IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFJldGFpblB0cjxX
S1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBFQ1RfVFJVRShwcmVmZXJlbmNlcy5nZXQo
KS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dz
Q29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6
cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVY
UEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc2NyaXB0IiwgeyAidmFyIGZvbyA9ICdiYXIn
IiB9IH0KKyAgICB9KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNj
cmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTol
ZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVu
Y2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9UUlVF
KFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisgICAgICAgIEVYUEVD
VF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0pOworICAgICAgICBkb25lID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisg
ICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0
PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNv
bXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBF
WFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0
aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0g
WUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpZnJhbWUg
c3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48L2lmcmFtZT4iIHByZWZlcmVuY2VzOnBy
ZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBdLmZvbyIgY29tcGxldGlvbkhhbmRsZXI6
XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU051bWJlciBj
bGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9OdW1iZXI6QDFd
KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZvbyA9IDEnPjwvaWZyYW1lPiIgcHJlZmVy
ZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5mcmFtZXNbMF0uZm9vIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBkb25lID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
aAppbmRleCAyMjMyMDFiY2JlZjljOWM3N2Q4NWMxZGQxZTg1ODg0MjZiNjJmNWZiLi5iNjQ3MjI5
ZGNiODU5OTc0NjA1YzdmYjMwOWQ4NWQyY2EwMzQ0ZTY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaApAQCAtMzEsNiArMzEsNyBA
QAogQGludGVyZmFjZSBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdh
dGlvbkRlbGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCB2b2lkIChe
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSB2b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyko
V0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF4pKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9u
KShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICosIE5TRXJyb3IgKik7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgdm9pZCAoXmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKShXS1dl
YlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZv
aWQgKF5kaWRDb21taXROYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopOwpA
QCAtNDEsNiArNDIsNyBAQAogCiAtICh2b2lkKXdhaXRGb3JEaWRTdGFydFByb3Zpc2lvbmFsTmF2
aWdhdGlvbjsKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb247CistICh2b2lkKXdh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJl
bmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2
aWdhdGlvbjsKIAogQGVuZApAQCAtNDgsNSArNTAsNiBAQAogQGludGVyZmFjZSBXS1dlYlZpZXcg
KFRlc3RXZWJLaXRBUElFeHRyYXMpCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRTdGFydFByb3Zp
c2lvbmFsTmF2aWdhdGlvbjsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b247CistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVu
Y2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZClfdGVzdF93
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRpb25VcGRhdGU7CiBAZW5k
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUubW0KaW5kZXggMzNlMjExYjQxZjRjN2ZjZGQ1ZmM2ZTRkMmQ4MWIzYjQ1OTVkMGI2NS4uYmRj
NTE3NTdiMzk0YWY2MmNjNDBmNDExMzBiNTUwMmViN2Y3YjI5ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQpAQCAtMzIsMTIg
KzMyLDE2IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlCiAKLS0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSlkZWNpc2lvbkhhbmRs
ZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHBy
ZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJl
bmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKG5h
dmlnYXRpb25BY3Rpb24sIGRlY2lzaW9uSGFuZGxlcik7Ci0gICAgZWxzZQotICAgICAgICBkZWNp
c2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIGlmIChfZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcykKKyAgICAgICAgX2Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMobmF2aWdhdGlvbkFj
dGlvbiwgcHJlZmVyZW5jZXMsIGRlY2lzaW9uSGFuZGxlcik7CisgICAgZWxzZSBpZiAoX2RlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pIHsKKyAgICAgICAgX2RlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgXihXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3kgYWN0aW9uKSB7CisgICAgICAgICAgICBkZWNpc2lvbkhhbmRsZXIoYWN0aW9uLCBwcmVmZXJl
bmNlcyk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBkZWNpc2lvbkhhbmRsZXIo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsKIH0KIAogLSAodm9p
ZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0
aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCkBAIC0xMTIsNiArMTE2LDE5IEBAIC0gKHZv
aWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KICAgICBzZWxmLmRpZEZpbmlzaE5hdmlnYXRp
b24gPSBuaWw7CiB9CiAKKy0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJl
ZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBFWFBF
Q1RfRkFMU0Uoc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVu
Y2VzKTsKKyAgICBFWFBFQ1RfVFJVRSghIXByZWZlcmVuY2VzKTsKKworICAgIHNlbGYuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4oV0tOYXZpZ2F0aW9u
QWN0aW9uICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF5oYW5kbGVyKShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CisgICAg
ICAgIGhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsK
KyAgICB9OworCisgICAgW3NlbGYgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworICAgIHNl
bGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IG5pbDsK
K30KKwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbgogewogICAg
IEVYUEVDVF9GQUxTRShzZWxmLmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pOwpAQCAtMTUy
LDYgKzE2OSwxNyBAQCAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0
aG91dFByZXNlbnRhdGlvblVwZGF0ZQogICAgIHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlID0gbmls
OwogfQogCistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZl
cmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgRVhQRUNU
X0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKKworICAgIGF1dG8gbmF2aWdhdGlvbkRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
KyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsK
KyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFBy
ZWZlcmVuY2VzOnByZWZlcmVuY2VzXTsKKworICAgIHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlID0g
bmlsOworfQorCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCiB7CiAg
ICAgRVhQRUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggZDhlNzVkYzNjMGRjNGI1YTQzNmYyZmZl
Y2I5NjY3NzRlNjhjNTg5Zi4uYzE2MjBjZTRlMGI1YmE4ZTBlYTUwNmE0MGY4MDJkYmY2NGYwMjgz
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTU0LDYg
KzU0LDcgQEAKIC0gKHZvaWQpc3luY2hyb25vdXNseUdvRm9yd2FyZDsKIC0gKHZvaWQpc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWw7CiAtICh2b2lkKXN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIGJhc2VVUkw6KE5TVVJMICopdXJs
OworLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBw
cmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQp
c3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwogLSAodm9p
ZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CiAt
IChCT09MKV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNvbW1h
bmQgYXJndW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQ7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggMjdhMjhhYTk4Y2E2YTlhMGFmOWUyMjc5OGI0NjJh
Mzk2NTNhZjRhNi4uNWNkMmRmNmIyNmU3MTEzYWJlOTk2MTAxZGJkMGEyNzhlZGU3MTZhYyAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTAxLDYgKzEw
MSwxMiBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilo
dG1sCiAgICAgW3NlbGYgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpb
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogfQogCistICh2b2lkKXN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIHByZWZlcmVuY2VzOihXS1dlYnBh
Z2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgW3NlbGYgbG9hZEhUTUxTdHJpbmc6
aHRtbCBiYXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVVSTF0gVVJMQnlBcHBl
bmRpbmdQYXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3Nl
bGYgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6cHJlZmVy
ZW5jZXNdOworfQorCiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNT
dHJpbmcgKilwYWdlTmFtZQogewogICAgIFtzZWxmIGxvYWRUZXN0UGFnZU5hbWVkOnBhZ2VOYW1l
XTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390191</attachid>
            <date>2020-02-08 17:56:21 -0800</date>
            <delta_ts>2020-02-08 21:36:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200208175621.patch</filename>
            <type>text/plain</type>
            <size>30224</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uNzc3YjU3ZDA1NjljYWI0Yzk4ZDRjNjViMDc4Y2Nk
MGUxZGY2M2IzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAyLTA4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphcHBseVBv
bGljaWVzVG9TZXR0aW5ncyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0QWxsb3dzU2NyaXB0TWFya3VwKToK
KwogMjAyMC0wMi0wNyAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6OkZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uQ29y
ZVRleHQ6OmZvbnRSYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmU3NDUyODA0OTM4YTdlYzdmNGQ5Y2YxNGIx
ZDc1MWZjYTVkMTdlZC4uNjkzNDg5NDA4Y2UzMTU1ZjUyM2I5ZDExY2UxZTYzNjVmN2I5MmRjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wMi0wOCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTM0
OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdXRp
aXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTY3JpcHRNYXJrdXBF
bmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGRlcHJlY2F0
ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVuY2UgYXMgaXQgZG9l
c24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBs
eVRvRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRh
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHA6Cisg
ICAgICAgIChBUEk6OldlYnNpdGVQb2xpY2llczo6ZGF0YSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6
CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1b
V0tQcmVmZXJlbmNlcyBqYXZhU2NyaXB0RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIHNldEphdmFTY3JpcHRFbmFibGVkOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVu
Y2VzIHNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyBhbGxvd3NDb250ZW50SmF2YVNjcmlwdF0pOgorCiAyMDIwLTAyLTA3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T046IEFTU0VSVElPTiBGQUlMRUQ6IHJlc2V0UmVzdWx0ID09IDAgb24gcmVncmVzc2lvbiB0ZXN0
cyBpbiBJVFAgY29kZSwgcmVzZXR0aW5nIFNRTGl0ZSBzdGF0ZW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGJjNmI5MGU2M2Q5NmJjNjMyM2Q2ZmI2NWY2
MmJmMDY3MGU3MzQyY2EuLjA2OGI3NjVlMjEwNzk1OTUxODQzZjVkYzhiNTQyOTIzODZkMzEwMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTIyMyw2ICsx
MjIzLDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YXBwbHlQb2xpY2llc1RvU2V0dGluZ3MoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1fYWxsb3dzU2NyaXB0TWFya3VwKQor
ICAgICAgICBtX2ZyYW1lLT5zZXR0aW5ncygpLnNldFNjcmlwdE1hcmt1cEVuYWJsZWQoKm1fYWxs
b3dzU2NyaXB0TWFya3VwKTsKKwogICAgIGlmICghbV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4
IGQ2YTNkMGFjZDI0NmRlNzBjYjQ4NTg4MGEwNGIzODk0MWM4MzJmNjUuLjRiN2UwNTExOWRlMjJk
YjE2Mzk2OWYwMzc4ZmVmOGQyMjhlNzE0YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5oCkBAIC0zMjgsNiArMzI4LDggQEAgcHVibGljOgogICAgIExlZ2FjeU92ZXJmbG93
U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTsgfQog
ICAgIHZvaWQgc2V0TGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeShMZWdhY3lPdmVy
Zmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IHBvbGljeSkgeyBtX2xlZ2FjeU92ZXJmbG93U2Nyb2xs
aW5nVG91Y2hQb2xpY3kgPSBwb2xpY3k7IH0KIAorICAgIHZvaWQgc2V0QWxsb3dzU2NyaXB0TWFy
a3VwKE9wdGlvbmFsPGJvb2w+IGFsbG93c01hcmt1cCkgeyBtX2FsbG93c1NjcmlwdE1hcmt1cCA9
IGFsbG93c01hcmt1cDsgfQorCiAgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJj
ZUxvYWRlciopOwogICAgIHZvaWQgcmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoTG9hZENvbXBsZXRp
b25UeXBlLCBSZXNvdXJjZUxvYWRlciopOwogICAgIHZvaWQgYWRkUGx1Z0luU3RyZWFtTG9hZGVy
KFJlc291cmNlTG9hZGVyJik7CkBAIC02NDUsNiArNjQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV9hbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lIHsgZmFsc2UgfTsKICAgICBib29sIG1f
YWxsb3dzRGF0YVVSTHNGb3JNYWluRnJhbWUgeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPGJvb2w+
IG1fYWxsb3dzU2NyaXB0TWFya3VwOwogICAgIFN0cmluZyBtX2Rvd25sb2FkQXR0cmlidXRlOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAppbmRl
eCA5NDhmMmE1YWJiODJhMTI5ZTQ2MTlkMzI2MjM0YzBmMTA2ODk2OGI3Li5iOTk3MmJjOTc2MTFj
ZjEwNTdjMGI3OGQ1M2Y1NWI5ZGQ0YmY0Mzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJzaXRlUG9saWNpZXNEYXRhLmNwcApAQCAtNTQsNiArNTQsNyBAQCB2b2lkIFdlYnNpdGVQb2xp
Y2llc0RhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2Rl
ciA8PCBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5OwogICAgIGVuY29kZXIgPDwg
bGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTsKICAgICBlbmNvZGVyIDw8IGFsbG93
Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7CisgICAgZW5jb2RlciA8PCBhbGxvd3NDb250ZW50
SmF2YVNjcmlwdDsKIH0KIAogT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBv
bGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTEzNCw3ICsxMzUs
MTIgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBkZWNvZGVyID4+IGFsbG93Q29udGVu
dENoYW5nZU9ic2VydmVyUXVpcms7CiAgICAgaWYgKCFhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZl
clF1aXJrKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisgICAgT3B0aW9u
YWw8T3B0aW9uYWw8Ym9vbD4+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OworICAgIGRlY29kZXIg
Pj4gYWxsb3dzQ29udGVudEphdmFTY3JpcHQ7CisgICAgaWYgKCFhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7IHsKICAg
ICAgICAgV1RGTW92ZSgqY29udGVudEJsb2NrZXJzRW5hYmxlZCksCiAgICAgICAgIFdURk1vdmUo
KmFsbG93ZWRBdXRvcGxheVF1aXJrcyksCkBAIC0xNTMsNiArMTU5LDcgQEAgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRj
aFBvbGljeSksCiAgICAgICAgIFdURk1vdmUoKmxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQ
b2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCphbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
KSwKKyAgICAgICAgV1RGTW92ZSgqYWxsb3dzQ29udGVudEphdmFTY3JpcHQpLAogICAgIH0gfTsK
IH0KIApAQCAtMjY0LDYgKzI3MSw3IEBAIHZvaWQgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlU
b0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9sCiAgICAgfQog
CiAgICAgZG9jdW1lbnRMb2FkZXIuc2V0QWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayh3
ZWJzaXRlUG9saWNpZXMuYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayk7CisgICAgZG9j
dW1lbnRMb2FkZXIuc2V0QWxsb3dzU2NyaXB0TWFya3VwKHdlYnNpdGVQb2xpY2llcy5hbGxvd3ND
b250ZW50SmF2YVNjcmlwdCk7CiAKICAgICBhdXRvKiBmcmFtZSA9IGRvY3VtZW50TG9hZGVyLmZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xp
Y2llc0RhdGEuaAppbmRleCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2NiMjBmNWY3MzNkMzczYTQyMmY0
Li44NTJiMTNmMWY5MjJiZWQ0YTYyOGQzNWJiYjQxZWFhZjczZTI1ZjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCkBAIC02OCw2ICs2OCw3IEBAIHN0cnVj
dCBXZWJzaXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNE
aXNwYXRjaFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHsgV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBXZWJz
aXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9s
bGluZ1RvdWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xp
Y3k6OkRlZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsg
eyBmYWxzZSB9OworICAgIE9wdGlvbmFsPGJvb2w+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Owog
CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKaW5kZXgg
ZTcxZTNiMzBiOTM1ZGEwYWRjNzY2YzM0YzU3NmMzMTRhMWQxOTZiOS4uN2Y3OGFhYTg4N2IwYTE0
YWNmNWQwMTA0NGExZWE2YWUyNzEyMGEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBXZWJL
aXQ6OldlYnNpdGVQb2xpY2llc0RhdGEgV2Vic2l0ZVBvbGljaWVzOjpkYXRhKCkKICAgICAgICAg
bV9zaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LAogICAgICAgICBtX2xlZ2FjeU92
ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3ksCiAgICAgICAgIG1fYWxsb3dDb250ZW50Q2hhbmdl
T2JzZXJ2ZXJRdWlyaywKKyAgICAgICAgbV9hbGxvd3NDb250ZW50SmF2YVNjcmlwdCwgCiAgICAg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xp
Y2llcy5oCmluZGV4IDk0NjNlNTM5NGY1MWNjNzJkNzYwODkxY2Q4NDQ1MTAxMTk4OWVhNjAuLmMy
NmJlZTI3NTZkZWZiYTg3ZjFhMTRkOTUzY2YwNzlkMDBmMzNkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTExNiw2ICsxMTYs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOyB9CiAgICAg
dm9pZCBzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKGJvb2wgYWxsb3cpIHsgbV9h
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrID0gYWxsb3c7IH0KIAorICAgIE9wdGlvbmFs
PGJvb2w+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3ND
b250ZW50SmF2YVNjcmlwdDsgfQorICAgIHZvaWQgc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQo
Ym9vbCBhbGxvd3MpIHsgbV9hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IGFsbG93czsgfQorCiBw
cml2YXRlOgogICAgIFdlYnNpdGVQb2xpY2llcyhib29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVBdXRvcGxheVF1aXJrPiwgV2ViS2l0OjpXZWJzaXRl
QXV0b3BsYXlQb2xpY3ksIFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYsIFZlY3Rv
cjxXZWJDb3JlOjpDdXN0b21IZWFkZXJGaWVsZHM+JiYsIFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9s
aWN5LCBSZWZQdHI8V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlPiYmKTsKIApAQCAtMTQwLDYgKzE0
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FsbG93U2l0ZVNwZWNpZmljUXVpcmtzVG9PdmVy
cmlkZUNvbnRlbnRNb2RlIHsgZmFsc2UgfTsKICAgICBXVEY6OlN0cmluZyBtX2FwcGxpY2F0aW9u
TmFtZUZvckRlc2t0b3BVc2VyQWdlbnQ7CiAgICAgYm9vbCBtX2FsbG93Q29udGVudENoYW5nZU9i
c2VydmVyUXVpcmsgeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPGJvb2w+IG1fYWxsb3dzQ29udGVu
dEphdmFTY3JpcHQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJi
MTcyNTgyYTRjMTA1YWFmOTdkYTc0OTQ5ZTA4NWMuLjg5Njg2ZGFlZGNiOWI5MWQ2NTJjYzQxZGRl
ZGYzYzBiZWNmY2Q0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaApAQCAtNDAsMTEgKzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zs
b2F0IG1pbmltdW1Gb250U2l6ZTsKIAotLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5k
aWNhdGluZyB3aGV0aGVyIEphdmFTY3JpcHQgaXMgZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUg
ZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCi0gKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGph
dmFTY3JpcHRFbmFibGVkOwotCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0
aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBjYW4gb3BlbgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGlu
dGVyYWN0aW9uLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBh
bmQgWUVTIGluIE9TIFguCkBAIC03MSw3ICs2NiwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJl
Y2F0ZWQpCiAKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgamF2YUVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIkphdmEgaXMgbm8gbG9uZ2VyIHN1cHBv
cnRlZCIsIG1hY29zKDEwLjEwLCAxMC4xNSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
cGx1Z0luc0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlBsdWctaW5zIGFyZSBubyBsb25nZXIg
c3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEwLjE1KSk7CisjZW5kaWYKKworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgamF2YVNjcmlwdEVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBX
S1dlYlBhZ2VQcmVmZXJlbmNlcy5hbGxvd3NKYXZhU2NyaXB0TWFya3VwIHRvIGRpc2FibGUgSmF2
YVNjcmlwdCBtYXJrdXAgb24gYSBwZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCBX
S19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDU0MjE4
YTRkOWMwZjlhZGI2MTQyOTJkMmYyYWViYzJiMzUzYWEyODguLjE0MjAxMWZiYjNlMzZlNmJjOWJm
ZjUxODNmNmFmYjU2YzczYzRmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC02NSw5ICs2NSwxMiBAQCArIChCT09MKXN1
cHBvcnRzU2VjdXJlQ29kaW5nCiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNv
ZGVyCiB7CiAgICAgW2NvZGVyIGVuY29kZURvdWJsZTpzZWxmLm1pbmltdW1Gb250U2l6ZSBmb3JL
ZXk6QCJtaW5pbXVtRm9udFNpemUiXTsKLSAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFT
Y3JpcHRFbmFibGVkIGZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CiAgICAgW2NvZGVyIGVu
Y29kZUJvb2w6c2VsZi5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IGZvcktl
eTpAImphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmph
dmFTY3JpcHRFbmFibGVkIGZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CitBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogI2lmIFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZh
RW5hYmxlZCBmb3JLZXk6QCJqYXZhRW5hYmxlZCJdOwpAQCAtODMsOSArODYsMTIgQEAgLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICByZXR1cm4g
bmlsOwogCiAgICAgc2VsZi5taW5pbXVtRm9udFNpemUgPSBbY29kZXIgZGVjb2RlRG91YmxlRm9y
S2V5OkAibWluaW11bUZvbnRTaXplIl07Ci0gICAgc2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtj
b2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAgICBzZWxmLmph
dmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBbY29kZXIgZGVjb2RlQm9vbEZv
cktleTpAImphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBzZWxmLmphdmFTY3JpcHRFbmFibGVk
ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOworQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMpCiBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHNlbGYuamF2YUVuYWJsZWQgPSBbY29k
ZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFFbmFibGVkIl07CkBAIC0xMTIsMTYgKzExOCw2IEBA
IC0gKHZvaWQpc2V0TWluaW11bUZvbnRTaXplOihDR0Zsb2F0KW1pbmltdW1Gb250U2l6ZQogICAg
IF9wcmVmZXJlbmNlcy0+c2V0TWluaW11bUZvbnRTaXplKG1pbmltdW1Gb250U2l6ZSk7CiB9CiAK
LS0gKEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5q
YXZhU2NyaXB0RW5hYmxlZCgpOwotfQotCi0tICh2b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihC
T09MKWphdmFTY3JpcHRFbmFibGVkCi17Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0
RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxlZCk7Ci19Ci0KIC0gKHZvaWQpc2V0RnJhdWR1bGVudFdl
YnNpdGVXYXJuaW5nRW5hYmxlZDooQk9PTCllbmFibGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5z
ZXRTYWZlQnJvd3NpbmdFbmFibGVkKGVuYWJsZWQpOwpAQCAtMTQzMiwxMCArMTQyOCwxMSBAQCAt
IChCT09MKV9kZXZpY2VPcmllbnRhdGlvbkV2ZW50RW5hYmxlZAogCiBAZW5kCiAKLSNpZiAhVEFS
R0VUX09TX0lQSE9ORQogCiBAaW1wbGVtZW50YXRpb24gV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNh
dGVkKQogCisjaWYgIVRBUkdFVF9PU19JUEhPTkUKKwogLSAoQk9PTClqYXZhRW5hYmxlZAogewog
ICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFFbmFibGVkKCk7CkBAIC0xNDU2LDYgKzE0NTMs
MTcgQEAgLSAodm9pZClzZXRQbHVnSW5zRW5hYmxlZDooQk9PTClwbHVnSW5zRW5hYmxlZAogICAg
IF9wcmVmZXJlbmNlcy0+c2V0UGx1Z2luc0VuYWJsZWQocGx1Z0luc0VuYWJsZWQpOwogfQogCisj
ZW5kaWYKKworLSAoQk9PTClqYXZhU2NyaXB0RW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmphdmFTY3JpcHRFbmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEVu
YWJsZWQ6KEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEph
dmFTY3JpcHRFbmFibGVkKGphdmFTY3JpcHRFbmFibGVkKTsKK30KKwogQGVuZAogCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQ
cmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFn
ZVByZWZlcmVuY2VzLmgKaW5kZXggMjc0N2U4MTI4ZjAzZjAyZGJlZWZiNWM1ZmM5NmZjNTc3ZjIx
N2FkNi4uOTFjYTRkZDY4YjQ2Njg0NTgwMWFhNDVhNmUzMGVjZDEyYjk1MzVkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZl
cmVuY2VzLmgKQEAgLTU3LDQgKzU3LDE5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4x
NSksIGlvcygxMy4wKSkKICAqLwogQHByb3BlcnR5IChub25hdG9taWMpIFdLQ29udGVudE1vZGUg
cHJlZmVycmVkQ29udGVudE1vZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogCisvKiBA
YWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGZy
b20gd2ViIGNvbnRlbnQgaXMgZW5hYmxlZAorQGRpc2N1c3Npb24gSWYgdGhpcyB2YWx1ZSBpcyBz
ZXQgdG8gTk8gdGhlbiBKYXZhU2NyaXB0IHJlZmVyZW5jZWQgYnkgdGhlIHdlYiBjb250ZW50IHdp
bGwgbm90IGV4ZWN1dGUuCitUaGlzIGluY2x1ZGVzIEphdmFTY3JpcHQgZm91bmQgaW4gaW5saW5l
IDxzY3JpcHQ+IGVsZW1lbnRzLCByZWZlcmVuY2VkIGJ5IGV4dGVybmFsIEphdmFTY3JpcHQgcmVz
b3VyY2VzLAorImphdmFzY3JpcHQ6IiBVUkxzLCBhbmQgYWxsIG90aGVyIGZvcm1zLgorCitFdmVu
IGlmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHlvdXIgYXBwbGljYXRpb24gY2FuIHN0aWxsIGV4
ZWN1dGUgSmF2YVNjcmlwdCB1c2luZzoKKy0gW1dLV2ViVmlldyBldmFsdXRlSmF2YVNjcmlwdDpj
b21wbGV0aW9uSGFuZGxlcjpdCistIFtXS1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6aW5Db250
ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XQorLSBbV0tXZWJWaWV3IGNhbGxBc3luY0phdmFT
Y3JpcHQ6YXJndW1lbnRzOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKy0gV0tV
c2VyU2NyaXB0cworCitUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCisqLworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2Vz
Lm1tCmluZGV4IDk5ZjBjMGE4MGE4YmU0NTMyNDM1NmI2Mzk2MTA5ZjM2ZjRjZmRjNzQuLjBhMmE5
NTc3ZmE2NThhMGEyZDE3NTU1NzA1MTcxOGI2MGEyZmVhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0K
QEAgLTMzMSw2ICszMzEsMTcgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1
cm4gKl93ZWJzaXRlUG9saWNpZXM7CiB9CiAKKy0gKHZvaWQpc2V0QWxsb3dzQ29udGVudEphdmFT
Y3JpcHQ6KEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBfd2Vic2l0ZVBvbGlj
aWVzLT5zZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdChhbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7
Cit9CisKKy0gKEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBhdXRvIGFsbG93
cyA9IF93ZWJzaXRlUG9saWNpZXMtPmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KCk7CisgICAgcmV0
dXJuIGFsbG93cyA/ICphbGxvd3MgOiB0cnVlOworfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIAogLSAodm9pZClzZXRQcmVmZXJyZWRDb250ZW50TW9kZTooV0tDb250ZW50TW9kZSljb250
ZW50TW9kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDA1YzczNmVlZTgwZTRjN2IxZTIyMTM3Y2UxN2RkZjRhNzU0OTMxN2YuLjNlNTYyMmJhZmY4
NjA0ZjFmODRhZTcwYmQ2YmU5YTU0ZjUxNGZiOTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMC0wMi0wOCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3ND
b250ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBUZXN0V0tXZWJWaWV3IEFQSSBmb3Igc3luYyBuYXZpZ2F0aW9ucyB3aXRoIGEg
d2VicGFnZSBwcmVmZXJlbmNlcyBvYmplY3QuCisgICAgICAgIAorICAgICAgICBVc2UgaXQgaW4g
dGhlIG5ldyB0ZXN0cy4KKyAgICAgICAgCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAgICAgIChURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bldpdGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90ZXN0X3dhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOl0pOgorICAgICAgICAoLVtUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOnByZWZlcmVuY2VzOl0pOgorCiAyMDIwLTAyLTA3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFNldmVyYWwgaU9TIEFQSSB0ZXN0cyB0aGF0IGNh
bGwgLW1ha2VLZXlXaW5kb3cgYXNzZXJ0IGFmdGVyIHIyNTU5MDcKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdF
dmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXggZmMwMzM3NTdlNDQ4MWMwNmYxOGZmMTk3NjdlMDNm
ZDIxM2YyMWYwNy4uMTY0YjMzNmNkNzIwMGYzY2RmN2ViYTRlZWUyYzJhYTBjZmU3NTZmYiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdF
dmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCisj
aW1wb3J0ICJIVFRQU2VydmVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2lt
cG9ydCAiVENQU2VydmVyLmgiCiAjaW1wb3J0ICJUZXN0LmgiCkBAIC0yNTQsMyArMjU1LDc5IEBA
IFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRJbkF0dGFjaG1lbnRzKQogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBBbGxvd3NDb250
ZW50SmF2YVNjcmlwdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsKKworICAgIF9fYmxvY2sg
Ym9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9v
IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzS2lu
ZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0
IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFJldGFpblB0cjxX
S1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBFQ1RfVFJVRShwcmVmZXJlbmNlcy5nZXQo
KS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dz
Q29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6
cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVY
UEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc2NyaXB0IiwgeyAidmFyIGZvbyA9ICdiYXIn
IiB9IH0KKyAgICB9KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNj
cmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTol
ZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVu
Y2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9UUlVF
KFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisgICAgICAgIEVYUEVD
VF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0pOworICAgICAgICBkb25lID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisg
ICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0
PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNv
bXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBF
WFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0
aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0g
WUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpZnJhbWUg
c3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48L2lmcmFtZT4iIHByZWZlcmVuY2VzOnBy
ZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBdLmZvbyIgY29tcGxldGlvbkhhbmRsZXI6
XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU051bWJlciBj
bGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9OdW1iZXI6QDFd
KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
PGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZvbyA9IDEnPjwvaWZyYW1lPiIgcHJlZmVy
ZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5mcmFtZXNbMF0uZm9vIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBkb25lID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRl
UG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNp
dGVQb2xpY2llcy5tbQppbmRleCBkZDc5YzVkZDBjZmNiYjBhOGMwODI5NmZhYzYzNzZlOTdiNzhj
MTk3Li4wOTc2YjM2ZTUxNjVjNGM0NmM3ZDM4NDFjMmIzNWY2NWYwNGY5MDEyIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xp
Y2llcy5tbQpAQCAtMjM5LDE1ICsyMzksMTUgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBoYW5kbGVBdXRvcGxheUV2ZW50OihfV0tBdXRvcGxheUV2ZW50KWV2ZW4KIEBl
bmQKIAogQGludGVyZmFjZSBXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgOiBUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25XaXRoV2Vic2l0ZVBvbGljaWVzKShXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29kaW5nPiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgdm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0
ZVBvbGljaWVzKShXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwg
dm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KSk7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVs
ZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0
aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIHVzZXJJ
bmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNp
c2lvbkhhbmRsZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9u
QWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBh
Z2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBpZiAoX2RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKQotICAgICAgICBfZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMobmF2aWdhdGlvbkFj
dGlvbiwgcHJlZmVyZW5jZXMsIHVzZXJJbmZvLCBkZWNpc2lvbkhhbmRsZXIpOworICAgICAgICBf
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMobmF2aWdh
dGlvbkFjdGlvbiwgcHJlZmVyZW5jZXMsIGRlY2lzaW9uSGFuZGxlcik7CiAgICAgZWxzZQogICAg
ICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIG5pbCk7
CiB9CkBAIC02MTYsNyArNjE2LDcgQEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQ
b2xpY2llc1dpdGhCcmlkZ2luZ0Nhc3QpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tX
ZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKIAogICAgIF9f
YmxvY2sgYm9vbCBkaWRJbnZva2VEZWNpc2lvbkhhbmRsZXIgPSBmYWxzZTsKLSAgICBbZGVsZWdh
dGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6
XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgaWQgPE5TU2Vj
dXJlQ29kaW5nPiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlv
bkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheZGVjaXNpb25IYW5kbGVy
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CiAg
ICAgICAgIGF1dG8gcG9saWNpZXMgPSBhZG9wdFdLKFdLV2Vic2l0ZVBvbGljaWVzQ3JlYXRlKCkp
OwogICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cs
IChfX2JyaWRnZSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXBvbGljaWVzLmdldCgpKTsKICAgICAg
ICAgZGlkSW52b2tlRGVjaXNpb25IYW5kbGVyID0gdHJ1ZTsKQEAgLTYzNSw3ICs2MzUsNyBAQCBU
RVNUKFdlYnBhZ2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzV2l0aFVuZXhwZWN0ZWRUeXBl
KQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlv
bkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZGlkQ2F0Y2hFeGNl
cHRpb24gPSBmYWxzZTsKLSAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29kaW5nPiwgdm9pZCAoXmRlY2lzaW9uSGFu
ZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkg
eworICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdl
YnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNl
cyAqLCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdL
V2VicGFnZVByZWZlcmVuY2VzICopKSB7CiAgICAgICAgIEB0cnkgewogICAgICAgICAgICAgaWQg
ZmFrZVBvbGljaWVzID0gQCJIZWxsbyI7CiAgICAgICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIChXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWZha2VQ
b2xpY2llcyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZS5oCmluZGV4IDIyMzIwMWJjYmVmOWM5Yzc3ZDg1YzFkZDFlODU4ODQyNmI2MmY1
ZmIuLmI2NDcyMjlkY2I4NTk5NzQ2MDVjN2ZiMzA5ZDg1ZDJjYTAzNDRlNjkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0z
MSw2ICszMSw3IEBACiBAaW50ZXJmYWNlIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgOiBOU09iamVj
dCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikoV0tOYXZpZ2F0aW9uQWN0aW9u
ICosIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFBy
ZWZlcmVuY2VzKShXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwg
dm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEZhaWxQcm92aXNpb25h
bE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKiwgTlNFcnJvciAqKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU3RhcnRQcm92aXNpb25hbE5hdmln
YXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgdm9pZCAoXmRpZENvbW1pdE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmln
YXRpb24gKik7CkBAIC00MSw2ICs0Miw3IEBACiAKIC0gKHZvaWQpd2FpdEZvckRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uOwogLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsK
Ky0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJv
dmlzaW9uYWxOYXZpZ2F0aW9uOwogCiBAZW5kCkBAIC00OCw1ICs1MCw2IEBACiBAaW50ZXJmYWNl
IFdLV2ViVmlldyAoVGVzdFdlYktpdEFQSUV4dHJhcykKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRp
ZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbjsKKy0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25X
aXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2
b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aG91dFByZXNlbnRhdGlvblVw
ZGF0ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZS5tbQppbmRleCAzM2UyMTFiNDFmNGM3ZmNkZDVmYzZlNGQyZDgxYjNiNDU5
NWQwYjY1Li5iZGM1MTc1N2IzOTRhZjYyY2M0MGY0MTEzMGI1NTAyZWI3ZjdiMjlmIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
CkBAIC0zMiwxMiArMzIsMTYgQEAKIAogQGltcGxlbWVudGF0aW9uIFRlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUKIAotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rp
b24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRl
Y2lzaW9uSGFuZGxlcgorLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRp
b25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChfZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikKLSAgICAgICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgZGVjaXNpb25IYW5kbGVyKTsKLSAgICBlbHNlCi0g
ICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7Cisg
ICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKQor
ICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyhu
YXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywgZGVjaXNpb25IYW5kbGVyKTsKKyAgICBlbHNl
IGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikgeworICAgICAgICBfZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0aW9uLCBeKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSBhY3Rpb24pIHsKKyAgICAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihhY3Rp
b24sIHByZWZlcmVuY2VzKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIGRlY2lz
aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOwog
fQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNp
b25hbE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KQEAgLTExMiw2ICsxMTYs
MTkgQEAgLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogICAgIHNlbGYuZGlkRmlu
aXNoTmF2aWdhdGlvbiA9IG5pbDsKIH0KIAorLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdh
dGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwor
eworICAgIEVYUEVDVF9GQUxTRShzZWxmLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25X
aXRoUHJlZmVyZW5jZXMpOworICAgIEVYUEVDVF9UUlVFKCEhcHJlZmVyZW5jZXMpOworCisgICAg
c2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzID0gXihX
S05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAo
XmhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpIHsKKyAgICAgICAgaGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJl
ZmVyZW5jZXMpOworICAgIH07CisKKyAgICBbc2VsZiB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bl07CisgICAgc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVu
Y2VzID0gbmlsOworfQorCiAtICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0
aW9uCiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYuZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlv
bik7CkBAIC0xNTIsNiArMTY5LDE3IEBAIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5h
dmlnYXRpb25XaXRob3V0UHJlc2VudGF0aW9uVXBkYXRlCiAgICAgc2VsZi5uYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBuaWw7CiB9CiAKKy0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sK
KyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUpOworCisgICAgYXV0byBu
YXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlID0gbmF2aWdhdGlvbkRlbGVn
YXRlLmdldCgpOworICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25XaXRoUHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNdOworCisgICAgc2VsZi5uYXZpZ2F0aW9u
RGVsZWdhdGUgPSBuaWw7Cit9CisKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb24KIHsKICAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCBkOGU3NWRjM2MwZGM0
YjVhNDM2ZjJmZmVjYjk2Njc3NGU2OGM1ODlmLi5jMTYyMGNlNGUwYjViYThlMGVhNTA2YTQwZjgw
MmRiZjY0ZjAyODNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aApAQCAtNTQsNiArNTQsNyBAQAogLSAodm9pZClzeW5jaHJvbm91c2x5R29Gb3J3YXJkOwogLSAo
dm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbDsKIC0gKHZv
aWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgYmFzZVVSTDoo
TlNVUkwgKil1cmw7CistICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJp
bmcgKilodG1sIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2Vz
OwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVl
c3Q7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilw
YWdlTmFtZTsKIC0gKEJPT0wpX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6KE5TU3Ry
aW5nICopY29tbWFuZCBhcmd1bWVudDooTlNTdHJpbmcgKilhcmd1bWVudDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCAyN2EyOGFhOThjYTZhOWEwYWY5
ZTIyNzk4YjQ2MmEzOTY1M2FmNGE2Li41Y2QyZGY2YjI2ZTcxMTNhYmU5OTYxMDFkYmQwYTI3OGVk
ZTcxNmFjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBA
IC0xMDEsNiArMTAxLDEyIEBAIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihO
U1N0cmluZyAqKWh0bWwKICAgICBbc2VsZiBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6aHRt
bCBiYXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVVSTF0gVVJMQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiB9CiAKKy0gKHZv
aWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgcHJlZmVyZW5j
ZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBbc2VsZiBsb2Fk
SFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlVVJM
XSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XTsKKyAgICBbc2VsZiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJl
bmNlczpwcmVmZXJlbmNlc107Cit9CisKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFn
ZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lCiB7CiAgICAgW3NlbGYgbG9hZFRlc3RQYWdlTmFt
ZWQ6cGFnZU5hbWVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390195</attachid>
            <date>2020-02-08 21:36:31 -0800</date>
            <delta_ts>2020-02-10 22:42:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200208213630.patch</filename>
            <type>text/plain</type>
            <size>32357</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uMDVlMjI3ZTg1OGRjYzk5YjFjZDgyNGE5OWE0NDdk
YTAyYWY3MzkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAyLTA4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphcHBseVBv
bGljaWVzVG9TZXR0aW5ncyk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0U2NyaXB0TWFya3VwUG9saWN5KToK
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVzLmg6CisKIDIwMjAtMDItMDcgIEph
Y2sgTGVlICA8c2hpaGNoaWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgTnVsbHB0ciBjcmFz
aCBpbiBXZWJDb3JlOjpGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0Ojpmb250UmFuZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGJlNzQ1MjgwNDkzOGE3ZWM3ZjRkOWNmMTRiMWQ3NTFmY2E1ZDE3ZWQuLjdj
ZGRiNmMxODNkNzIyOTdmZjI2MjU0NWFlYzZiNWIyNWVjMTU5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjAtMDItMDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEV4cG9zZSAiYWxsb3dzQ29udGVudEphdmFTY3JpcHQiIG9uIFdLV2VicGFnZVBy
ZWZlcmVuY2VzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTUzNDk2Nz4gYW5kIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHV0aWl6ZXMgdGhlIHByZS1leGlz
dGluZyBXZWJDb3JlOjpTZXR0aW5nczo6c2V0U2NyaXB0TWFya3VwRW5hYmxlZCgpIG1lY2hhbmlz
bS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBkZXByZWNhdGVzIHRoZSBnbG9iYWwgImRp
c2FibGUgSmF2YVNjcmlwdCIgV0tQcmVmZXJlbmNlIGFzIGl0IGRvZXNuJ3QgbWFrZSBtdWNoIHNl
bnNlIGFueW1vcmUuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmFwcGx5VG9Eb2N1bWVudExvYWRlcik6CisgICAg
ICAgICogU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaDoKKyAgICAgICAgCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwOgorICAgICAgICAoQVBJOjpXZWJz
aXRlUG9saWNpZXM6OmRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBv
bGljaWVzLmg6CisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJl
bmNlcyBqYXZhU2NyaXB0RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIHNldEph
dmFTY3JpcHRFbmFibGVkOl0pOgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLV2VicGFnZVBy
ZWZlcmVuY2VzIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0XSk6CisKIDIwMjAtMDItMDcgIEthdGUg
Q2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TjogQVNTRVJUSU9OIEZBSUxFRDogcmVzZXRSZXN1bHQgPT0gMCBvbiByZWdyZXNzaW9uIHRlc3Rz
IGluIElUUCBjb2RlLCByZXNldHRpbmcgU1FMaXRlIHN0YXRlbWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggYmM2YjkwZTYzZDk2YmM2MzIzZDZmYjY1ZjYy
YmYwNjcwZTczNDJjYS4uYjdjMDQ2YjljZjM5NTk4OWU3YzVhMWMxODA3ZjAxYmQyMTA3YTNiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xMjIzLDYgKzEy
MjMsOSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjphcHBseVBvbGljaWVzVG9TZXR0aW5ncygpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobV9zY3JpcHRNYXJrdXBQb2xpY3kgIT0g
U2NyaXB0TWFya3VwUG9saWN5OjpEZWZhdWx0KQorICAgICAgICBtX2ZyYW1lLT5zZXR0aW5ncygp
LnNldFNjcmlwdE1hcmt1cEVuYWJsZWQobV9zY3JpcHRNYXJrdXBQb2xpY3kgPT0gU2NyaXB0TWFy
a3VwUG9saWN5OjpFbmFibGUpOworCiAgICAgaWYgKCFtX2ZyYW1lLT5pc01haW5GcmFtZSgpKQog
ICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKaW5k
ZXggZDZhM2QwYWNkMjQ2ZGU3MGNiNDg1ODgwYTA0YjM4OTQxYzgzMmY2NS4uYTM0NDE1ZGIwMjcx
MjdkM2Q2NzNkYTA0ZDE1MGM5YTMyZmU0MzhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmgKQEAgLTMyOCw2ICszMjgsOCBAQCBwdWJsaWM6CiAgICAgTGVnYWN5T3ZlcmZs
b3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5
KCkgY29uc3QgeyByZXR1cm4gbV9sZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5OyB9
CiAgICAgdm9pZCBzZXRMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5KExlZ2FjeU92
ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgcG9saWN5KSB7IG1fbGVnYWN5T3ZlcmZsb3dTY3Jv
bGxpbmdUb3VjaFBvbGljeSA9IHBvbGljeTsgfQogCisgICAgdm9pZCBzZXRTY3JpcHRNYXJrdXBQ
b2xpY3koU2NyaXB0TWFya3VwUG9saWN5IHBvbGljeSkgeyBtX3NjcmlwdE1hcmt1cFBvbGljeSA9
IHBvbGljeTsgfQorCiAgICAgdm9pZCBhZGRTdWJyZXNvdXJjZUxvYWRlcihSZXNvdXJjZUxvYWRl
ciopOwogICAgIHZvaWQgcmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIoTG9hZENvbXBsZXRpb25UeXBl
LCBSZXNvdXJjZUxvYWRlciopOwogICAgIHZvaWQgYWRkUGx1Z0luU3RyZWFtTG9hZGVyKFJlc291
cmNlTG9hZGVyJik7CkBAIC02NDUsNiArNjQ3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9h
bGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dz
RGF0YVVSTHNGb3JNYWluRnJhbWUgeyBmYWxzZSB9OworICAgIFNjcmlwdE1hcmt1cFBvbGljeSBt
X3NjcmlwdE1hcmt1cFBvbGljeSB7IFNjcmlwdE1hcmt1cFBvbGljeTo6RGVmYXVsdCB9OwogICAg
IFN0cmluZyBtX2Rvd25sb2FkQXR0cmlidXRlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlclR5cGVzLmgKaW5kZXggOGQ4NjI4YTc0MjdlMjYwOThlODU3YTBhMmFmMzJlODkz
NmViNDYwNy4uMDNmNTI5NWU1NGE3NjJhNzJhOTQ5OTk4ZGYyNTMwNzdiMWM2ZGFhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC0yMjcsNiArMjI3LDEyIEBA
IGVudW0gY2xhc3MgTG9hZENvbXBsZXRpb25UeXBlIDogdWludDhfdCB7CiAgICAgQ2FuY2VsCiB9
OwogCitlbnVtIGNsYXNzIFNjcmlwdE1hcmt1cFBvbGljeSA6IHVpbnQ4X3QgeworICAgIERlZmF1
bHQsCisgICAgRW5hYmxlLAorICAgIERpc2FibGUsCit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMjY2LDQgKzI3MiwxMyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsK
ICAgICA+OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTY3Jp
cHRNYXJrdXBQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAg
ICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3ksCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdE1h
cmt1cFBvbGljeTo6RGVmYXVsdCwKKyAgICAgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5
OjpFbmFibGUsCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlzYWJsZQor
ICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKaW5kZXggOTQ4ZjJhNWFiYjgyYTEyOWU0NjE5ZDMyNjIz
NGMwZjEwNjg5NjhiNy4uYmY1Yzk1ZGNkNjM1OWYzMDExMTc5YzgwZWM0NzJiMGJlZThmNjQzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAgdm9pZCBXZWJzaXRlUG9saWNpZXNEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2ltdWxhdGVkTW91c2VFdmVudHNEaXNw
YXRjaFBvbGljeTsKICAgICBlbmNvZGVyIDw8IGxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQ
b2xpY3k7CiAgICAgZW5jb2RlciA8PCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOwor
ICAgIGVuY29kZXIgPDwgc2NyaXB0TWFya3VwUG9saWN5OwogfQogCiBPcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKQpAQCAtMTM0LDcgKzEzNSwxMiBAQCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRh
PiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAg
IGRlY29kZXIgPj4gYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyazsKICAgICBpZiAoIWFs
bG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmspCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Ci0gICAgCisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k+IHNj
cmlwdE1hcmt1cFBvbGljeTsKKyAgICBkZWNvZGVyID4+IHNjcmlwdE1hcmt1cFBvbGljeTsKKyAg
ICBpZiAoIXNjcmlwdE1hcmt1cFBvbGljeSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KwogICAgIHJldHVybiB7IHsKICAgICAgICAgV1RGTW92ZSgqY29udGVudEJsb2NrZXJzRW5hYmxl
ZCksCiAgICAgICAgIFdURk1vdmUoKmFsbG93ZWRBdXRvcGxheVF1aXJrcyksCkBAIC0xNTMsNiAr
MTU5LDcgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0
YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgV1RGTW92ZSgqc2ltdWxh
dGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeSksCiAgICAgICAgIFdURk1vdmUoKmxlZ2FjeU92
ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCphbGxvd0NvbnRl
bnRDaGFuZ2VPYnNlcnZlclF1aXJrKSwKKyAgICAgICAgV1RGTW92ZSgqc2NyaXB0TWFya3VwUG9s
aWN5KSwKICAgICB9IH07CiB9CiAKQEAgLTI2NCw2ICsyNzEsNyBAQCB2b2lkIFdlYnNpdGVQb2xp
Y2llc0RhdGE6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYgd2Vi
c2l0ZVBvbAogICAgIH0KIAogICAgIGRvY3VtZW50TG9hZGVyLnNldEFsbG93Q29udGVudENoYW5n
ZU9ic2VydmVyUXVpcmsod2Vic2l0ZVBvbGljaWVzLmFsbG93Q29udGVudENoYW5nZU9ic2VydmVy
UXVpcmspOworICAgIGRvY3VtZW50TG9hZGVyLnNldFNjcmlwdE1hcmt1cFBvbGljeSh3ZWJzaXRl
UG9saWNpZXMuc2NyaXB0TWFya3VwUG9saWN5KTsKIAogICAgIGF1dG8qIGZyYW1lID0gZG9jdW1l
bnRMb2FkZXIuZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2Vic2l0ZVBvbGljaWVzRGF0YS5oCmluZGV4IDk3OTU3M2Q1NWQ3MzI2YjhlMmEzY2IyMGY1Zjcz
M2QzNzNhNDIyZjQuLmRhZmQyNTk1ZGI3YTc5NDc4YzlkMzFlZDEzNWY0OWRmZGQxMzMwZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGlj
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VzdG9tSGVhZGVyRmllbGRzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTY4LDYgKzY5LDcgQEAgc3RydWN0IFdlYnNpdGVQ
b2xpY2llc0RhdGEgewogICAgIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9s
aWN5IHNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kgeyBXZWJzaXRlU2ltdWxhdGVk
TW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTo6RGVmYXVsdCB9OwogICAgIFdlYnNpdGVMZWdhY3lP
dmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IGxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQ
b2xpY3kgeyBXZWJzaXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTo6RGVmYXVs
dCB9OwogICAgIGJvb2wgYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayB7IGZhbHNlIH07
CisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHNjcmlwdE1hcmt1cFBvbGljeSB7IFdl
YkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGVmYXVsdCB9OwogCiAgICAgdm9pZCBlbmNvZGUo
SVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKaW5kZXggZTcxZTNiMzBiOTM1ZGEwYWRj
NzY2YzM0YzU3NmMzMTRhMWQxOTZiOS4uMGFiMmVlZjZiNWE2MDUxN2QxMzEzYTUwMGI0Y2E0NjVk
ZTFkZTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBXZWJLaXQ6OldlYnNpdGVQb2xpY2ll
c0RhdGEgV2Vic2l0ZVBvbGljaWVzOjpkYXRhKCkKICAgICAgICAgbV9zaW11bGF0ZWRNb3VzZUV2
ZW50c0Rpc3BhdGNoUG9saWN5LAogICAgICAgICBtX2xlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91
Y2hQb2xpY3ksCiAgICAgICAgIG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyaywKKyAg
ICAgICAgbV9zY3JpcHRNYXJrdXBQb2xpY3ksIAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAppbmRleCA5NDYzZTUzOTRm
NTFjYzcyZDc2MDg5MWNkODQ0NTEwMTE5ODllYTYwLi43NDNhZDdkOTY1MTA2YmJmZTI5MmEwNjEw
ZjMyY2Y3OTRiOGZiYzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJV2Vic2l0ZVBvbGljaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVQb2xpY2llcy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVNp
bXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0N1
c3RvbUhlYWRlckZpZWxkcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJU
eXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmg+CiAjaW5jbHVkZSA8
d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExNiw2ICsxMTcs
OSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKCkg
Y29uc3QgeyByZXR1cm4gbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOyB9CiAgICAg
dm9pZCBzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKGJvb2wgYWxsb3cpIHsgbV9h
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrID0gYWxsb3c7IH0KIAorICAgIFdlYkNvcmU6
OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3koKSBjb25zdCB7IHJldHVybiBt
X3NjcmlwdE1hcmt1cFBvbGljeTsgfQorICAgIHZvaWQgc2V0U2NyaXB0TWFya3VwUG9saWN5KFdl
YkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBwb2xpY3kpIHsgbV9zY3JpcHRNYXJrdXBQb2xpY3kg
PSBwb2xpY3k7IH0KKwogcHJpdmF0ZToKICAgICBXZWJzaXRlUG9saWNpZXMoYm9vbCBjb250ZW50
QmxvY2tlcnNFbmFibGVkLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlRdWlyaz4s
IFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UG9saWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRl
ckZpZWxkPiYmLCBWZWN0b3I8V2ViQ29yZTo6Q3VzdG9tSGVhZGVyRmllbGRzPiYmLCBXZWJLaXQ6
OldlYnNpdGVQb3BVcFBvbGljeSwgUmVmUHRyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4mJik7
CiAKQEAgLTE0MCw2ICsxNDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbGxvd1NpdGVTcGVj
aWZpY1F1aXJrc1RvT3ZlcnJpZGVDb250ZW50TW9kZSB7IGZhbHNlIH07CiAgICAgV1RGOjpTdHJp
bmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50OwogICAgIGJvb2wgbV9hbGxv
d0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrIHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpTY3Jp
cHRNYXJrdXBQb2xpY3kgbV9zY3JpcHRNYXJrdXBQb2xpY3kgeyBXZWJDb3JlOjpTY3JpcHRNYXJr
dXBQb2xpY3k6OkRlZmF1bHQgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKaW5kZXggNTBh
ODJmN2Q4MmIxNzI1ODJhNGMxMDVhYWY5N2RhNzQ5NDllMDg1Yy4uODk2ODZkYWVkY2I5YjkxZDY1
MmNjNDFkZGVkZjNjMGJlY2ZjZDQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCkBAIC00MCwxMSArNDAsNiBAQCBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKICAqLwogQHByb3BlcnR5IChub25hdG9t
aWMpIENHRmxvYXQgbWluaW11bUZvbnRTaXplOwogCi0vKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2
YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBpcyBlbmFibGVkLgotIEBkaXNjdXNz
aW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KLSAqLwotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgamF2YVNjcmlwdEVuYWJsZWQ7Ci0KIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVl
IGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGNhbiBvcGVuCiAgd2luZG93cyB3aXRob3V0
IHVzZXIgaW50ZXJhY3Rpb24uCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgTk8g
aW4gaU9TIGFuZCBZRVMgaW4gT1MgWC4KQEAgLTcxLDcgKzY2LDExIEBAIFdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5jZXMg
KFdLRGVwcmVjYXRlZCkKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBqYXZhRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSmF2YSBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEwLjE1KSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBwbHVnSW5zRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiUGx1Zy1pbnMgYXJlIG5v
IGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMCwgMTAuMTUpKTsKKyNlbmRpZgorCitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0RW5hYmxlZCBXS19BUElfREVQUkVDQVRF
RCgiVXNlIFdLV2ViUGFnZVByZWZlcmVuY2VzLmFsbG93c0phdmFTY3JpcHRNYXJrdXAgdG8gZGlz
YWJsZSBKYXZhU2NyaXB0IG1hcmt1cCBvbiBhIHBlci1uYXZpZ2F0aW9uIGJhc2lzIiwgbWFjb3Mo
MTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KaW5k
ZXggNTQyMThhNGQ5YzBmOWFkYjYxNDI5MmQyZjJhZWJjMmIzNTNhYTI4OC4uMTQyMDExZmJiM2Uz
NmU2YmM5YmZmNTE4M2Y2YWZiNTZjNzNjNGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTY1LDkgKzY1LDEyIEBAICsg
KEJPT0wpc3VwcG9ydHNTZWN1cmVDb2RpbmcKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0Nv
ZGVyICopY29kZXIKIHsKICAgICBbY29kZXIgZW5jb2RlRG91YmxlOnNlbGYubWluaW11bUZvbnRT
aXplIGZvcktleTpAIm1pbmltdW1Gb250U2l6ZSJdOwotICAgIFtjb2RlciBlbmNvZGVCb29sOnNl
bGYuamF2YVNjcmlwdEVuYWJsZWQgZm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAgICBb
Y29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkgZm9yS2V5OkAiamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSJdOwogCitB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgIFtjb2RlciBlbmNvZGVCb29s
OnNlbGYuamF2YVNjcmlwdEVuYWJsZWQgZm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAjaWYgUExBVEZPUk0oTUFDKQogQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbY29kZXIgZW5jb2RlQm9vbDpz
ZWxmLmphdmFFbmFibGVkIGZvcktleTpAImphdmFFbmFibGVkIl07CkBAIC04Myw5ICs4NiwxMiBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAgICAg
IHJldHVybiBuaWw7CiAKICAgICBzZWxmLm1pbmltdW1Gb250U2l6ZSA9IFtjb2RlciBkZWNvZGVE
b3VibGVGb3JLZXk6QCJtaW5pbXVtRm9udFNpemUiXTsKLSAgICBzZWxmLmphdmFTY3JpcHRFbmFi
bGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOwogICAg
IHNlbGYuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFtjb2RlciBkZWNv
ZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSJdOwog
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgIHNlbGYuamF2YVNjcmlw
dEVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogI2lmIFBMQVRGT1JNKE1BQykK
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc2VsZi5qYXZhRW5hYmxl
ZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YUVuYWJsZWQiXTsKQEAgLTExMiwxNiAr
MTE4LDYgQEAgLSAodm9pZClzZXRNaW5pbXVtRm9udFNpemU6KENHRmxvYXQpbWluaW11bUZvbnRT
aXplCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRNaW5pbXVtRm9udFNpemUobWluaW11bUZvbnRTaXpl
KTsKIH0KIAotLSAoQk9PTClqYXZhU2NyaXB0RW5hYmxlZAotewotICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmphdmFTY3JpcHRFbmFibGVkKCk7Ci19Ci0KLS0gKHZvaWQpc2V0SmF2YVNjcmlwdEVu
YWJsZWQ6KEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKLXsKLSAgICBfcHJlZmVyZW5jZXMtPnNldEph
dmFTY3JpcHRFbmFibGVkKGphdmFTY3JpcHRFbmFibGVkKTsKLX0KLQogLSAodm9pZClzZXRGcmF1
ZHVsZW50V2Vic2l0ZVdhcm5pbmdFbmFibGVkOihCT09MKWVuYWJsZWQKIHsKICAgICBfcHJlZmVy
ZW5jZXMtPnNldFNhZmVCcm93c2luZ0VuYWJsZWQoZW5hYmxlZCk7CkBAIC0xNDMyLDEwICsxNDI4
LDExIEBAIC0gKEJPT0wpX2RldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkCiAKIEBlbmQKIAot
I2lmICFUQVJHRVRfT1NfSVBIT05FCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ByZWZlcmVuY2VzIChX
S0RlcHJlY2F0ZWQpCiAKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQorCiAtIChCT09MKWphdmFFbmFi
bGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+amF2YUVuYWJsZWQoKTsKQEAgLTE0NTYs
NiArMTQ1MywxNyBAQCAtICh2b2lkKXNldFBsdWdJbnNFbmFibGVkOihCT09MKXBsdWdJbnNFbmFi
bGVkCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRQbHVnaW5zRW5hYmxlZChwbHVnSW5zRW5hYmxlZCk7
CiB9CiAKKyNlbmRpZgorCistIChCT09MKWphdmFTY3JpcHRFbmFibGVkCit7CisgICAgcmV0dXJu
IF9wcmVmZXJlbmNlcy0+amF2YVNjcmlwdEVuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRKYXZh
U2NyaXB0RW5hYmxlZDooQk9PTClqYXZhU2NyaXB0RW5hYmxlZAoreworICAgIF9wcmVmZXJlbmNl
cy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOworfQorCiBAZW5kCiAK
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2VicGFnZVByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMuaAppbmRleCAyNzQ3ZTgxMjhmMDNmMDJkYmVlZmI1YzVmYzk2
ZmM1NzdmMjE3YWQ2Li45MWNhNGRkNjhiNDY2ODQ1ODAxYWE0NWE2ZTMwZWNkMTJiOTUzNWQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJl
ZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJw
YWdlUHJlZmVyZW5jZXMuaApAQCAtNTcsNCArNTcsMTkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1KSwgaW9zKDEzLjApKQogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYykgV0tDb250
ZW50TW9kZSBwcmVmZXJyZWRDb250ZW50TW9kZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMy4wKSk7
CiAKKy8qIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEphdmFT
Y3JpcHQgZnJvbSB3ZWIgY29udGVudCBpcyBlbmFibGVkCitAZGlzY3Vzc2lvbiBJZiB0aGlzIHZh
bHVlIGlzIHNldCB0byBOTyB0aGVuIEphdmFTY3JpcHQgcmVmZXJlbmNlZCBieSB0aGUgd2ViIGNv
bnRlbnQgd2lsbCBub3QgZXhlY3V0ZS4KK1RoaXMgaW5jbHVkZXMgSmF2YVNjcmlwdCBmb3VuZCBp
biBpbmxpbmUgPHNjcmlwdD4gZWxlbWVudHMsIHJlZmVyZW5jZWQgYnkgZXh0ZXJuYWwgSmF2YVNj
cmlwdCByZXNvdXJjZXMsCisiamF2YXNjcmlwdDoiIFVSTHMsIGFuZCBhbGwgb3RoZXIgZm9ybXMu
CisKK0V2ZW4gaWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gTk8geW91ciBhcHBsaWNhdGlvbiBjYW4g
c3RpbGwgZXhlY3V0ZSBKYXZhU2NyaXB0IHVzaW5nOgorLSBbV0tXZWJWaWV3IGV2YWx1dGVKYXZh
U2NyaXB0OmNvbXBsZXRpb25IYW5kbGVyOl0KKy0gW1dLV2ViVmlldyBldmFsdXRlSmF2YVNjcmlw
dDppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdCistIFtXS1dlYlZpZXcgY2FsbEFz
eW5jSmF2YVNjcmlwdDphcmd1bWVudHM6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6
XQorLSBXS1VzZXJTY3JpcHRzCisKK1RoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KKyovCitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVy
ZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJl
ZmVyZW5jZXMubW0KaW5kZXggOTlmMGMwYTgwYThiZTQ1MzI0MzU2YjYzOTYxMDlmMzZmNGNmZGM3
NC4uMjhlMjJjMzJjZWFkNjI0Zjg2NzBjYmVmODFkYjEyZjIyYmFmZjM3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJl
bmNlcy5tbQpAQCAtMzMxLDYgKzMzMSwyMiBAQCAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAog
ICAgIHJldHVybiAqX3dlYnNpdGVQb2xpY2llczsKIH0KIAorLSAodm9pZClzZXRBbGxvd3NDb250
ZW50SmF2YVNjcmlwdDooQk9PTClhbGxvd3NDb250ZW50SmF2YVNjcmlwdAoreworICAgIF93ZWJz
aXRlUG9saWNpZXMtPnNldFNjcmlwdE1hcmt1cFBvbGljeShhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCA/IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIDogV2ViQ29yZTo6U2NyaXB0
TWFya3VwUG9saWN5OjpEaXNhYmxlKTsKK30KKworLSAoQk9PTClhbGxvd3NDb250ZW50SmF2YVNj
cmlwdAoreworICAgIHN3aXRjaCAoX3dlYnNpdGVQb2xpY2llcy0+c2NyaXB0TWFya3VwUG9saWN5
KCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGVmYXVsdDoKKyAg
ICBjYXNlIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlOgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBjYXNlIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlzYWJsZToK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAKIC0gKHZvaWQpc2V0UHJlZmVycmVkQ29udGVudE1vZGU6KFdLQ29udGVudE1vZGUpY29u
dGVudE1vZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAwNWM3MzZlZWU4MGU0YzdiMWUyMjEzN2NlMTdkZGY0YTc1NDkzMTdmLi45OWRiNDllMzg5
YmRmYmY4NGExYTVkNDQ5NjhiNGQyN2RiOGI0NGU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMDggIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSAiYWxsb3dz
Q29udGVudEphdmFTY3JpcHQiIG9uIFdLV2VicGFnZVByZWZlcmVuY2VzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81MTUzNDk2Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVh
dGVKYXZhU2NyaXB0Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW06CisgICAgICAgICgtW1dlYnNp
dGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICgtW1dlYnNpdGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmll
dzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVzZXJJbmZvOmRl
Y2lzaW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW06CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2Vz
OmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2Vz
Ol0pOgorICAgICAgICAoLVtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOnByZWZlcmVuY2VzOl0pOgorCiAyMDIwLTAyLTA3
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFNldmVy
YWwgaU9TIEFQSSB0ZXN0cyB0aGF0IGNhbGwgLW1ha2VLZXlXaW5kb3cgYXNzZXJ0IGFmdGVyIHIy
NTU5MDcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXggZmMwMzM3
NTdlNDQ4MWMwNmYxOGZmMTk3NjdlMDNmZDIxM2YyMWYwNy4uMTY0YjMzNmNkNzIwMGYzY2RmN2Vi
YTRlZWUyYzJhYTBjZmU3NTZmYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3Jp
cHQubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCA8V2Vi
S2l0L1dLRm91bmRhdGlvbi5oPgogCisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCiAjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVENQU2VydmVyLmgiCiAjaW1wb3J0ICJUZXN0
LmgiCkBAIC0yNTQsMyArMjU1LDc5IEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRJ
bkF0dGFjaG1lbnRzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAK
K1RFU1QoV2ViS2l0LCBBbGxvd3NDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAgICBSZXRhaW5QdHI8
VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3Nj
cmlwdD4iXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBF
WFBFQ1RfVFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAg
ICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMg
PSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBF
Q1RfVFJVRShwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAg
cHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFy
Jzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9
IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlv
bkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9O
VUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNv
bnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25l
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc2Ny
aXB0IiwgeyAidmFyIGZvbyA9ICdiYXInIiB9IH0KKyAgICB9KTsKKyAgICBwcmVmZXJlbmNlcy5n
ZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0
IHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0
KCldIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVy
Ol4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJv
cik7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcg
Y2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAi
YmFyIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVu
dEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4w
LjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnBy
ZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBF
Q1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQg
dmFyaWFibGU6IGZvbyJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFs
bG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gWUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzpAIjxpZnJhbWUgc3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48
L2lmcmFtZT4iIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBd
LmZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBp
c0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jl
c3VsdCBpc0VxdWFsVG9OdW1iZXI6QDFdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2Vz
LmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZv
byA9IDEnPjwvaWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAg
ZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5m
cmFtZXNbMF0uZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJy
b3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX05VTEwo
ZXJyb3IpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCBkZDc5YzVkZDBjZmNi
YjBhOGMwODI5NmZhYzYzNzZlOTdiNzhjMTk3Li4wOTc2YjM2ZTUxNjVjNGM0NmM3ZDM4NDFjMmIz
NWY2NWYwNGY5MDEyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtMjM5LDE1ICsyMzksMTUgQEAgLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBoYW5kbGVBdXRvcGxheUV2ZW50Oihf
V0tBdXRvcGxheUV2ZW50KWV2ZW4KIEBlbmQKIAogQGludGVyZmFjZSBXZWJzaXRlUG9saWNpZXNO
YXZpZ2F0aW9uRGVsZWdhdGUgOiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGU+Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKShXS05hdmlnYXRp
b25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29kaW5nPiwg
dm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKShXS05hdmlnYXRpb25BY3Rpb24gKiwg
V0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJz
aXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRp
b25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJl
bmNlcyAqKXByZWZlcmVuY2VzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZv
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmln
YXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVm
ZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIK
IHsKICAgICBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBv
bGljaWVzKQotICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJz
aXRlUG9saWNpZXMobmF2aWdhdGlvbkFjdGlvbiwgcHJlZmVyZW5jZXMsIHVzZXJJbmZvLCBkZWNp
c2lvbkhhbmRsZXIpOworICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldp
dGhXZWJzaXRlUG9saWNpZXMobmF2aWdhdGlvbkFjdGlvbiwgcHJlZmVyZW5jZXMsIGRlY2lzaW9u
SGFuZGxlcik7CiAgICAgZWxzZQogICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5QWxsb3csIG5pbCk7CiB9CkBAIC02MTYsNyArNjE2LDcgQEAgVEVTVChXZWJw
YWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1dpdGhCcmlkZ2luZ0Nhc3QpCiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRJbnZva2VEZWNpc2lvbkhhbmRs
ZXIgPSBmYWxzZTsKLSAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdl
UHJlZmVyZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29kaW5nPiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxl
cikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewor
ICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNp
dGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
LCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopKSB7CiAgICAgICAgIGF1dG8gcG9saWNpZXMgPSBhZG9wdFdLKFdL
V2Vic2l0ZVBvbGljaWVzQ3JlYXRlKCkpOwogICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIChfX2JyaWRnZSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KXBvbGljaWVzLmdldCgpKTsKICAgICAgICAgZGlkSW52b2tlRGVjaXNpb25IYW5kbGVyID0gdHJ1
ZTsKQEAgLTYzNSw3ICs2MzUsNyBAQCBURVNUKFdlYnBhZ2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBv
bGljaWVzV2l0aFVuZXhwZWN0ZWRUeXBlKQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
V2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBf
X2Jsb2NrIGJvb2wgZGlkQ2F0Y2hFeGNlcHRpb24gPSBmYWxzZTsKLSAgICBbZGVsZWdhdGUgc2V0
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05h
dmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29k
aW5nPiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlv
biAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CiAgICAgICAg
IEB0cnkgewogICAgICAgICAgICAgaWQgZmFrZVBvbGljaWVzID0gQCJIZWxsbyI7CiAgICAgICAg
ICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIChXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKWZha2VQb2xpY2llcyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCmluZGV4IDIyMzIwMWJjYmVmOWM5
Yzc3ZDg1YzFkZDFlODU4ODQyNmI2MmY1ZmIuLmI2NDcyMjlkY2I4NTk5NzQ2MDVjN2ZiMzA5ZDg1
ZDJjYTAzNDRlNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0zMSw2ICszMSw3IEBACiBAaW50ZXJmYWNlIFRlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbikoV0tOYXZpZ2F0aW9uQWN0aW9uICosIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKShXS05hdmlnYXRpb25BY3Rpb24gKiwg
V0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
dm9pZCAoXmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmln
YXRpb24gKiwgTlNFcnJvciAqKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChe
ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24g
Kik7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZENvbW1pdE5hdmlnYXRp
b24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7CkBAIC00MSw2ICs0Miw3IEBACiAKIC0g
KHZvaWQpd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwogLSAodm9pZCl3YWl0
Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsKKy0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAt
ICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwogCiBAZW5kCkBAIC00
OCw1ICs1MCw2IEBACiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoVGVzdFdlYktpdEFQSUV4dHJhcykK
IC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOwogLSAo
dm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsKKy0gKHZvaWQpX3Rlc3Rfd2Fp
dEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVu
Y2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0
aW9uV2l0aG91dFByZXNlbnRhdGlvblVwZGF0ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQppbmRleCAzM2UyMTFiNDFm
NGM3ZmNkZDVmYzZlNGQyZDgxYjNiNDU5NWQwYjY1Li5iZGM1MTc1N2IzOTRhZjYyY2M0MGY0MTEz
MGI1NTAyZWI3ZjdiMjlmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCkBAIC0zMiwxMiArMzIsMTYgQEAKIAogQGltcGxlbWVu
dGF0aW9uIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUKIAotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2
aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxl
cgogewotICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikKLSAgICAgICAg
X2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgZGVjaXNp
b25IYW5kbGVyKTsKLSAgICBlbHNlCi0gICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvdyk7CisgICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uV2l0aFByZWZlcmVuY2VzKQorICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbldpdGhQcmVmZXJlbmNlcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywgZGVj
aXNpb25IYW5kbGVyKTsKKyAgICBlbHNlIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbikgeworICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0
aW9uQWN0aW9uLCBeKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb24pIHsKKyAgICAgICAg
ICAgIGRlY2lzaW9uSGFuZGxlcihhY3Rpb24sIHByZWZlcmVuY2VzKTsKKyAgICAgICAgfSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lBbGxvdywgcHJlZmVyZW5jZXMpOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5h
dmlnYXRpb24KQEAgLTExMiw2ICsxMTYsMTkgQEAgLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbgogICAgIHNlbGYuZGlkRmluaXNoTmF2aWdhdGlvbiA9IG5pbDsKIH0KIAorLSAodm9p
ZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVYUEVDVF9GQUxTRShzZWxmLmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpOworICAgIEVYUEVDVF9UUlVF
KCEhcHJlZmVyZW5jZXMpOworCisgICAgc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uV2l0aFByZWZlcmVuY2VzID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAgICAgICAgaGFuZGxlcihXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOworICAgIH07CisKKyAgICBbc2VsZiB3
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzID0gbmlsOworfQorCiAtICh2b2lkKXdhaXRGb3JE
aWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uCiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYuZGlk
RmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbik7CkBAIC0xNTIsNiArMTY5LDE3IEBAIC0gKHZvaWQp
X3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRob3V0UHJlc2VudGF0aW9uVXBkYXRl
CiAgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuaWw7CiB9CiAKKy0gKHZvaWQpX3Rlc3Rf
d2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZl
cmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5uYXZpZ2F0aW9u
RGVsZWdhdGUpOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHNlbGYubmF2aWdhdGlvbkRl
bGVnYXRlID0gbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOworICAgIFtuYXZpZ2F0aW9uRGVsZWdh
dGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNd
OworCisgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBuaWw7Cit9CisKIC0gKHZvaWQpX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KIHsKICAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5u
YXZpZ2F0aW9uRGVsZWdhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcuaAppbmRleCBkOGU3NWRjM2MwZGM0YjVhNDM2ZjJmZmVjYjk2Njc3NGU2OGM1ODlmLi5jMTYy
MGNlNGUwYjViYThlMGVhNTA2YTQwZjgwMmRiZjY0ZjAyODNkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNTQsNiArNTQsNyBAQAogLSAodm9pZClzeW5j
aHJvbm91c2x5R29Gb3J3YXJkOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
KE5TU3RyaW5nICopaHRtbDsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihO
U1N0cmluZyAqKWh0bWwgYmFzZVVSTDooTlNVUkwgKil1cmw7CistICh2b2lkKXN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFJlcXVl
c3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsKIC0gKEJPT0wpX3N5bmNocm9ub3VzbHlF
eGVjdXRlRWRpdENvbW1hbmQ6KE5TU3RyaW5nICopY29tbWFuZCBhcmd1bWVudDooTlNTdHJpbmcg
Kilhcmd1bWVudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdL
V2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpp
bmRleCAyN2EyOGFhOThjYTZhOWEwYWY5ZTIyNzk4YjQ2MmEzOTY1M2FmNGE2Li41Y2QyZGY2YjI2
ZTcxMTNhYmU5OTYxMDFkYmQwYTI3OGVkZTcxNmFjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0xMDEsNiArMTAxLDEyIEBAIC0gKHZvaWQpc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwKICAgICBbc2VsZiBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZVVSTF0gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV07CiB9CiAKKy0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihO
U1N0cmluZyAqKWh0bWwgcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVy
ZW5jZXMKK3sKKyAgICBbc2VsZiBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W1tbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gYnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbc2VsZiBfdGVzdF93YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpwcmVmZXJlbmNlc107Cit9CisKIC0gKHZvaWQp
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lCiB7CiAg
ICAgW3NlbGYgbG9hZFRlc3RQYWdlTmFtZWQ6cGFnZU5hbWVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390346</attachid>
            <date>2020-02-10 22:42:34 -0800</date>
            <delta_ts>2020-02-13 10:49:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200210224233.patch</filename>
            <type>text/plain</type>
            <size>36723</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uNjU4MmRhMDAyNjU1NTM4MjBhYTRmYzE3ZjhlNDY5
NjUyN2JkZjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAyLTEwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRNYXJrdXBFbmFibGVkIGNv
bnN0KTogVGFrZSBpbnRvIGFjY291bnQgU2V0dGluZ3MgYW5kIHRoZSBtb3N0IHJlY2VudCBuYXZp
Z2F0aW9uIHBvbGljeSBmb3IKKyAgICAgICAgICBzY3JpcHQgbWFya3VwLgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5oOgorCisgICAgICAgICogZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI6OlNjcmlwdGFi
bGVEb2N1bWVudFBhcnNlcik6IEFzayBEb2N1bWVudCBpbnN0ZWFkIG9mIFNldHRpbmdzIGZvciAi
c2NyaXB0TWFya3VwRW5hYmxlZCIKKyAgICAgICAgICBhcyB0aGF0IGRlY2lzaW9uIG5vdyBoYXMg
bW9yZSBjb21wbGV4IGxvZ2ljLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aDoKKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2Ny
aXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdh
dGlvbik6IEEgbmV3IFBhZ2UtZ2xvYmFsIGZsYWcgdHJhY2tpbmcgdGhlIG1vc3QgcmVjZW50IG5h
dmlnYXRpb24KKyAgICAgICAgICBwb2xpY3kgZm9yIHNjcmlwdCBtYXJrdXAgYmVpbmcgZW5hYmxl
ZC4KKwogMjAyMC0wMi0wNyAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4KIAog
ICAgICAgICBOdWxscHRyIGNyYXNoIGluIFdlYkNvcmU6OkZvbnRGYW1pbHlTcGVjaWZpY2F0aW9u
Q29yZVRleHQ6OmZvbnRSYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmU3NDUyODA0OTM4YTdlYzdmNGQ5Y2Yx
NGIxZDc1MWZjYTVkMTdlZC4uNTFiNzQxMDFhNzY4NzgzMTM4NTI2ZGM4NmMyNGZkN2FmMmEzYjI5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMC0wMi0xMCAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250ZW50SmF2YVNj
cmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUx
NTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQy
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
dXRpaXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTY3JpcHRNYXJr
dXBFbmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIGRlcHJl
Y2F0ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVuY2UgYXMgaXQg
ZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJz
aXRlUG9saWNpZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlUb0Rv
Y3VtZW50TG9hZGVyKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oOgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwOgorICAgICAg
ICAoQVBJOjpXZWJzaXRlUG9saWNpZXM6OmRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
QVBJV2Vic2l0ZVBvbGljaWVzLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2RlV2l0aENvZGVyOl0pOgorICAg
ICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dLUHJl
ZmVyZW5jZXMgamF2YVNjcmlwdEVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBz
ZXRKYXZhU2NyaXB0RW5hYmxlZDpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2VicGFnZVByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1dlYnBhZ2VQcmVmZXJlbmNlcyBz
ZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgYWxsb3dzQ29udGVudEphdmFTY3JpcHRdKToKKwogMjAyMC0wMi0wNyAgS2F0ZSBDaGVu
ZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBB
U1NFUlRJT04gRkFJTEVEOiByZXNldFJlc3VsdCA9PSAwIG9uIHJlZ3Jlc3Npb24gdGVzdHMgaW4g
SVRQIGNvZGUsIHJlc2V0dGluZyBTUUxpdGUgc3RhdGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCAzMzEyNTc3OWJkZjc4OTczNTU1ZGEwMGMxYTYwNjcxYmE5NDAwODM1Li45NGM0ZjRj
MjY5YmQ4MDU2OTJlODI1YzBjOGNmMGVlZTIwODgwMjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTY4MDUsNiArNjgwNSwxNyBAQCBEb2N1bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRl
cigpIGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlcjsKIH0KIAorYm9vbCBEb2N1bWVudDo6c2NyaXB0
TWFya3VwRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgaWYgKCFzZXR0aW5ncygpLnNjcmlwdE1hcmt1
cEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFwYWdlKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBwYWdlKCktPnNjcmlwdE1hcmt1cFBv
bGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpID09IFNjcmlwdE1hcmt1cFBvbGljeTo6RW5h
YmxlOworfQorCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKIAogSW50U2l6ZSBE
b2N1bWVudDo6aW5pdGlhbFZpZXdwb3J0U2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDU2MjAyOTFhYmViM2UwYzk5ZGU5NjU2NWQzMWRhZGMyOTUzNjNjMDAuLmViMjk5ZjhhYWEz
N2Y5ZTE3MDQwYzA1YTg0MDAyNWQyYTAzZWU2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02
NDgsNiArNjQ4LDcgQEAgcHVibGljOgogICAgIGJvb2wgdmlzdWFsbHlPcmRlcmVkKCkgY29uc3Qg
eyByZXR1cm4gbV92aXN1YWxseU9yZGVyZWQ7IH0KICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBE
b2N1bWVudExvYWRlciogbG9hZGVyKCkgY29uc3Q7CisgICAgYm9vbCBzY3JpcHRNYXJrdXBFbmFi
bGVkKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxSZWZQdHI8V2lu
ZG93UHJveHk+PiBvcGVuRm9yQmluZGluZ3MoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdp
bmRvdyYgZmlyc3RET01XaW5kb3csIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBBdG9tU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGZlYXR1cmVzKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25PcjxEb2N1bWVudCY+IG9wZW5Gb3JCaW5kaW5ncyhEb2N1bWVudCogcmVzcG9uc2libGVE
b2N1bWVudCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDk1MDI4YmIyMTYyYmY3
YTdmNmZiY2RlNTc3ODUyMGQzNWU4OWJkYzEuLmQxMGYwMTgyOGMxZmVhY2E5YzE4ZWVmZjliNjc0
YThmNWRjYWRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1l
bnRQYXJzZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjo6
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKERvY3VtZW50JiBkb2N1bWVudCwgUGFyc2VyQ29uCiAg
ICAgaWYgKCFwbHVnaW5Db250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkpCiAg
ICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGljeSA9IGFsbG93UGx1Z2luQ29udGVudChtX3BhcnNl
ckNvbnRlbnRQb2xpY3kpOwogCi0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9w
YXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2V0dGluZ3MoKS5zY3JpcHRNYXJrdXBF
bmFibGVkKCkpCisgICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250
ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2NyaXB0TWFya3VwRW5hYmxlZCgpKQogICAgICAgICBt
X3BhcnNlckNvbnRlbnRQb2xpY3kgPSBkaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQobV9wYXJzZXJD
b250ZW50UG9saWN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVz
LmgKaW5kZXggOGQ4NjI4YTc0MjdlMjYwOThlODU3YTBhMmFmMzJlODkzNmViNDYwNy4uNDlkMjRh
YTc3ZGFhODI0ODFhMmNmMTdjNTFkZDM1MTRjMzE5NTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC0yMjcsNiArMjI3LDExIEBAIGVudW0gY2xhc3MgTG9h
ZENvbXBsZXRpb25UeXBlIDogdWludDhfdCB7CiAgICAgQ2FuY2VsCiB9OwogCitlbnVtIGNsYXNz
IFNjcmlwdE1hcmt1cFBvbGljeSA6IHVpbnQ4X3QgeworICAgIEVuYWJsZSwKKyAgICBEaXNhYmxl
LAorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTI2
Niw0ICsyNzEsMTIgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5PiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5PiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5
LAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkVuYWJsZSwKKyAgICAgICAg
V2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlCisgICAgPjsKK307CisKIH0gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBlMmUzMmNjYWFmYTgxYmVjNWZhODlmODMw
ZGJmN2Y3ZDEwYWVkZjI1Li43NWIwMmIxNjRkMjZjMjA4NDVjMDgzYTFlNTQ4MTc3NWE2OGYyZDI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtNzI3LDYgKzcyNyw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
c2hvdWxkRGlzYWJsZUNvcnNGb3JSZXF1ZXN0VG8oY29uc3QgVVJMJikgY29uc3Q7CiAKKyAgICBT
Y3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5h
dmlnYXRpb247IH0KKyAgICB2b2lkIHNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50
TmF2aWdhdGlvbihTY3JpcHRNYXJrdXBQb2xpY3kgcG9saWN5KSB7IG1fc2NyaXB0TWFya3VwUG9s
aWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uID0gcG9saWN5OyB9CisKIHByaXZhdGU6CiAgICAg
c3RydWN0IE5hdmlnYXRpb24gewogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CkBA
IC0xMDA1LDYgKzEwMDgsOCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxVc2VyQ29udGVudFVSTFBh
dHRlcm4+IG1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAgIE9wdGlvblNldDxUaHJvdHRsaW5n
UmVhc29uPiBtX3Rocm90dGxpbmdSZWFzb25zOwogICAgIE9wdGlvblNldDxUaHJvdHRsaW5nUmVh
c29uPiBtX3Rocm90dGxpbmdSZWFzb25zT3ZlcnJpZGVuRm9yVGVzdGluZzsKKworICAgIFNjcmlw
dE1hcmt1cFBvbGljeSBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlv
biB7IFNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIH07CiB9OwogCiBpbmxpbmUgUGFnZUdyb3Vw
JiBQYWdlOjpncm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
UG9saWNpZXNEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0Rh
dGEuY3BwCmluZGV4IDk0OGYyYTVhYmI4MmExMjllNDYxOWQzMjYyMzRjMGYxMDY4OTY4YjcuLjEw
NmJiYWM3MGQyMzE1N2YzODJmYTM0YjgzMzdlY2E0ZWU5MDRlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQg
V2Vic2l0ZVBvbGljaWVzRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyIDw8IHNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k7CiAgICAg
ZW5jb2RlciA8PCBsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5OwogICAgIGVuY29k
ZXIgPDwgYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyazsKKyAgICBlbmNvZGVyIDw8IHNj
cmlwdE1hcmt1cFBvbGljeTsKIH0KIAogT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vi
c2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTEzNCw3
ICsxMzUsMTIgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVz
RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBkZWNvZGVyID4+IGFsbG93
Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7CiAgICAgaWYgKCFhbGxvd0NvbnRlbnRDaGFuZ2VP
YnNlcnZlclF1aXJrKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisgICAg
T3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5PiBzY3JpcHRNYXJrdXBQb2xpY3k7
CisgICAgZGVjb2RlciA+PiBzY3JpcHRNYXJrdXBQb2xpY3k7CisgICAgaWYgKCFzY3JpcHRNYXJr
dXBQb2xpY3kpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4geyB7
CiAgICAgICAgIFdURk1vdmUoKmNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQpLAogICAgICAgICBXVEZN
b3ZlKCphbGxvd2VkQXV0b3BsYXlRdWlya3MpLApAQCAtMTUzLDYgKzE1OSw3IEBAIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCiAgICAgICAgIFdURk1vdmUoKnNpbXVsYXRlZE1vdXNlRXZlbnRzRGlz
cGF0Y2hQb2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCpsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1Rv
dWNoUG9saWN5KSwKICAgICAgICAgV1RGTW92ZSgqYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJR
dWlyayksCisgICAgICAgIFdURk1vdmUoKnNjcmlwdE1hcmt1cFBvbGljeSksCiAgICAgfSB9Owog
fQogCkBAIC0yNjUsNiArMjcyLDEwIEBAIHZvaWQgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlU
b0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9sCiAKICAgICBk
b2N1bWVudExvYWRlci5zZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKHdlYnNpdGVQ
b2xpY2llcy5hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKTsKIAorICAgIFJFTEVBU0Vf
QVNTRVJUKGRvY3VtZW50TG9hZGVyLmZyYW1lKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGRvY3Vt
ZW50TG9hZGVyLmZyYW1lKCktPnBhZ2UoKSk7CisgICAgZG9jdW1lbnRMb2FkZXIuZnJhbWUoKS0+
cGFnZSgpLT5zZXRTY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24od2Vi
c2l0ZVBvbGljaWVzLnNjcmlwdE1hcmt1cFBvbGljeSk7CisKICAgICBhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50TG9hZGVyLmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCmluZGV4IDk3OTU3M2Q1
NWQ3MzI2YjhlMmEzY2IyMGY1ZjczM2QzNzNhNDIyZjQuLjI5NDcwN2IzZThhYWY1OGExNWU4NjAw
OTFlZDJkOGUyN2MyNjFlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVQb2xpY2llc0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNp
ZXNEYXRhLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJzaXRlU2ltdWxhdGVkTW91
c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VzdG9tSGVhZGVy
RmllbGRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVy
bWlzc2lvblN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAj
aW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTY4LDYgKzY5
LDcgQEAgc3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGEgewogICAgIFdlYnNpdGVTaW11bGF0ZWRN
b3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xp
Y3kgeyBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTo6RGVmYXVsdCB9
OwogICAgIFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IGxlZ2FjeU92
ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgeyBXZWJzaXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxp
bmdUb3VjaFBvbGljeTo6RGVmYXVsdCB9OwogICAgIGJvb2wgYWxsb3dDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJRdWlyayB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHNj
cmlwdE1hcmt1cFBvbGljeSB7IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIH07
CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAppbmRl
eCBlNzFlM2IzMGI5MzVkYTBhZGM3NjZjMzRjNTc2YzMxNGExZDE5NmI5Li4wYWIyZWVmNmI1YTYw
NTE3ZDEzMTNhNTAwYjRjYTQ2NWRlMWRlN2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcApAQCAtMTE3LDYgKzExNyw3IEBAIFdl
YktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSBXZWJzaXRlUG9saWNpZXM6OmRhdGEoKQogICAgICAg
ICBtX3NpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3ksCiAgICAgICAgIG1fbGVnYWN5
T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSwKICAgICAgICAgbV9hbGxvd0NvbnRlbnRDaGFu
Z2VPYnNlcnZlclF1aXJrLAorICAgICAgICBtX3NjcmlwdE1hcmt1cFBvbGljeSwgCiAgICAgfTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQ
b2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2ll
cy5oCmluZGV4IDk0NjNlNTM5NGY1MWNjNzJkNzYwODkxY2Q4NDQ1MTAxMTk4OWVhNjAuLjc2Y2Uz
Zjg3ODUzOWFiN2I1ZTA4M2Y4NDNlOGQzMzkxMDQ1YzU4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlICJXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQ3VzdG9tSGVhZGVyRmllbGRzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVy
RmllbGQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgpAQCAtMTE2LDYgKzExNyw5IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93Q29udGVudENo
YW5nZU9ic2VydmVyUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX2FsbG93Q29udGVudENoYW5nZU9i
c2VydmVyUXVpcms7IH0KICAgICB2b2lkIHNldEFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVp
cmsoYm9vbCBhbGxvdykgeyBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgPSBhbGxv
dzsgfQogCisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHNjcmlwdE1hcmt1cFBvbGlj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyaXB0TWFya3VwUG9saWN5OyB9CisgICAgdm9pZCBzZXRT
Y3JpcHRNYXJrdXBQb2xpY3koV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHBvbGljeSkgeyBt
X3NjcmlwdE1hcmt1cFBvbGljeSA9IHBvbGljeTsgfQorCiBwcml2YXRlOgogICAgIFdlYnNpdGVQ
b2xpY2llcyhib29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVBdXRvcGxheVF1aXJrPiwgV2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlQb2xpY3ksIFZlY3Rv
cjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYsIFZlY3RvcjxXZWJDb3JlOjpDdXN0b21IZWFk
ZXJGaWVsZHM+JiYsIFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9saWN5LCBSZWZQdHI8V2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlPiYmKTsKIApAQCAtMTQwLDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2FsbG93U2l0ZVNwZWNpZmljUXVpcmtzVG9PdmVycmlkZUNvbnRlbnRNb2RlIHsgZmFs
c2UgfTsKICAgICBXVEY6OlN0cmluZyBtX2FwcGxpY2F0aW9uTmFtZUZvckRlc2t0b3BVc2VyQWdl
bnQ7CiAgICAgYm9vbCBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgeyBmYWxzZSB9
OworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBtX3NjcmlwdE1hcmt1cFBvbGljeSB7
IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJiMTcyNTgyYTRjMTA1YWFmOTdkYTc0OTQ5ZTA4NWMu
Ljg5Njg2ZGFlZGNiOWI5MWQ2NTJjYzQxZGRlZGYzYzBiZWNmY2Q0NDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaApAQCAtNDAsMTEg
KzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAgKi8K
IEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IG1pbmltdW1Gb250U2l6ZTsKIAotLyohIEBh
YnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEphdmFTY3JpcHQgaXMg
ZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCi0gKi8KLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVkOwotCiAvKiEgQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBjYW4gb3Bl
bgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgogIEBkaXNjdXNzaW9uIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBhbmQgWUVTIGluIE9TIFguCkBAIC03MSw3ICs2Niwx
MSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIAogQGludGVy
ZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCiAKKyNpZiAhVEFSR0VUX09TX0lQSE9O
RQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YUVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FU
RUQoIkphdmEgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEwLCAxMC4xNSkpOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGx1Z0luc0VuYWJsZWQgV0tfQVBJX0RFUFJFQ0FU
RUQoIlBsdWctaW5zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEwLjE1
KSk7CisjZW5kaWYKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YVNjcmlwdEVuYWJs
ZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBXS1dlYlBhZ2VQcmVmZXJlbmNlcy5hbGxvd3NKYXZh
U2NyaXB0TWFya3VwIHRvIGRpc2FibGUgSmF2YVNjcmlwdCBtYXJrdXAgb24gYSBwZXItbmF2aWdh
dGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RC
QSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZWZlcmVuY2VzLm1tCmluZGV4IDU0MjE4YTRkOWMwZjlhZGI2MTQyOTJkMmYyYWViYzJiMzUz
YWEyODguLjE0MjAxMWZiYjNlMzZlNmJjOWJmZjUxODNmNmFmYjU2YzczYzRmOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBA
IC02NSw5ICs2NSwxMiBAQCArIChCT09MKXN1cHBvcnRzU2VjdXJlQ29kaW5nCiAtICh2b2lkKWVu
Y29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7CiAgICAgW2NvZGVyIGVuY29kZURvdWJs
ZTpzZWxmLm1pbmltdW1Gb250U2l6ZSBmb3JLZXk6QCJtaW5pbXVtRm9udFNpemUiXTsKLSAgICBb
Y29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVkIGZvcktleTpAImphdmFTY3Jp
cHRFbmFibGVkIl07CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5IGZvcktleTpAImphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAg
ICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVkIGZvcktleTpAImphdmFT
Y3JpcHRFbmFibGVkIl07CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogI2lm
IFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
W2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhRW5hYmxlZCBmb3JLZXk6QCJqYXZhRW5hYmxlZCJd
OwpAQCAtODMsOSArODYsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29k
ZXIgKiljb2RlcgogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgc2VsZi5taW5pbXVtRm9udFNp
emUgPSBbY29kZXIgZGVjb2RlRG91YmxlRm9yS2V5OkAibWluaW11bUZvbnRTaXplIl07Ci0gICAg
c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YVNj
cmlwdEVuYWJsZWQiXTsKICAgICBzZWxmLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
KyAgICBzZWxmLmphdmFTY3JpcHRFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJq
YXZhU2NyaXB0RW5hYmxlZCJdOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisK
ICNpZiBQTEFURk9STShNQUMpCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgog
ICAgIHNlbGYuamF2YUVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFFbmFi
bGVkIl07CkBAIC0xMTIsMTYgKzExOCw2IEBAIC0gKHZvaWQpc2V0TWluaW11bUZvbnRTaXplOihD
R0Zsb2F0KW1pbmltdW1Gb250U2l6ZQogICAgIF9wcmVmZXJlbmNlcy0+c2V0TWluaW11bUZvbnRT
aXplKG1pbmltdW1Gb250U2l6ZSk7CiB9CiAKLS0gKEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKLXsK
LSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5hYmxlZCgpOwotfQotCi0tICh2
b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3JpcHRFbmFibGVkCi17Ci0gICAg
X3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxlZCk7Ci19
Ci0KIC0gKHZvaWQpc2V0RnJhdWR1bGVudFdlYnNpdGVXYXJuaW5nRW5hYmxlZDooQk9PTCllbmFi
bGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5zZXRTYWZlQnJvd3NpbmdFbmFibGVkKGVuYWJsZWQp
OwpAQCAtMTQzMiwxMCArMTQyOCwxMSBAQCAtIChCT09MKV9kZXZpY2VPcmllbnRhdGlvbkV2ZW50
RW5hYmxlZAogCiBAZW5kCiAKLSNpZiAhVEFSR0VUX09TX0lQSE9ORQogCiBAaW1wbGVtZW50YXRp
b24gV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQogCisjaWYgIVRBUkdFVF9PU19JUEhPTkUK
KwogLSAoQk9PTClqYXZhRW5hYmxlZAogewogICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFF
bmFibGVkKCk7CkBAIC0xNDU2LDYgKzE0NTMsMTcgQEAgLSAodm9pZClzZXRQbHVnSW5zRW5hYmxl
ZDooQk9PTClwbHVnSW5zRW5hYmxlZAogICAgIF9wcmVmZXJlbmNlcy0+c2V0UGx1Z2luc0VuYWJs
ZWQocGx1Z0luc0VuYWJsZWQpOwogfQogCisjZW5kaWYKKworLSAoQk9PTClqYXZhU2NyaXB0RW5h
YmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFTY3JpcHRFbmFibGVkKCk7Cit9
CisKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEVuYWJsZWQ6KEJPT0wpamF2YVNjcmlwdEVuYWJsZWQK
K3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFibGVkKGphdmFTY3JpcHRFbmFi
bGVkKTsKK30KKwogQGVuZAogCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKaW5kZXggMjc0N2U4MTI4
ZjAzZjAyZGJlZWZiNWM1ZmM5NmZjNTc3ZjIxN2FkNi4uY2FjMTk1NmY0MGU5NWM2MDY2YWZhYzg3
MDBkYTM4MTBhMTQ1MWI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKQEAgLTU3LDQgKzU3LDE5IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSkKICAqLwogQHByb3BlcnR5
IChub25hdG9taWMpIFdLQ29udGVudE1vZGUgcHJlZmVycmVkQ29udGVudE1vZGUgV0tfQVBJX0FW
QUlMQUJMRShpb3MoMTMuMCkpOwogCisvKiBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGlj
YXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGZyb20gd2ViIGNvbnRlbnQgaXMgZW5hYmxlZAorIEBk
aXNjdXNzaW9uIElmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHRoZW4gSmF2YVNjcmlwdCByZWZl
cmVuY2VkIGJ5IHRoZSB3ZWIgY29udGVudCB3aWxsIG5vdCBleGVjdXRlLgorIFRoaXMgaW5jbHVk
ZXMgSmF2YVNjcmlwdCBmb3VuZCBpbiBpbmxpbmUgPHNjcmlwdD4gZWxlbWVudHMsIHJlZmVyZW5j
ZWQgYnkgZXh0ZXJuYWwgSmF2YVNjcmlwdCByZXNvdXJjZXMsCisgImphdmFzY3JpcHQ6IiBVUkxz
LCBhbmQgYWxsIG90aGVyIGZvcm1zLgorCisgRXZlbiBpZiB0aGlzIHZhbHVlIGlzIHNldCB0byBO
TyB5b3VyIGFwcGxpY2F0aW9uIGNhbiBzdGlsbCBleGVjdXRlIEphdmFTY3JpcHQgdXNpbmc6Cisg
LSBbV0tXZWJWaWV3IGV2YWx1dGVKYXZhU2NyaXB0OmNvbXBsZXRpb25IYW5kbGVyOl0KKyAtIFtX
S1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRs
ZXI6XQorIC0gW1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3VtZW50czppbkNvbnRl
bnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdCisgLSBXS1VzZXJTY3JpcHRzCisKKyBUaGUgZGVm
YXVsdCB2YWx1ZSBpcyBZRVMuCisqLworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dz
Q29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmluZGV4IDk5ZjBjMGE4MGE4
YmU0NTMyNDM1NmI2Mzk2MTA5ZjM2ZjRjZmRjNzQuLjQ2YjY2YWI4ZjA5NDZjODI3MDA0ZGEzZjFm
YTdlYWMzODJjZWNjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTMzMSw2ICszMzEsMjEgQEAg
LSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1cm4gKl93ZWJzaXRlUG9saWNpZXM7
CiB9CiAKKy0gKHZvaWQpc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6KEJPT0wpYWxsb3dzQ29u
dGVudEphdmFTY3JpcHQKK3sKKyAgICBfd2Vic2l0ZVBvbGljaWVzLT5zZXRTY3JpcHRNYXJrdXBQ
b2xpY3koYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPyBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xp
Y3k6OkVuYWJsZSA6IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlzYWJsZSk7Cit9CisK
Ky0gKEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBzd2l0Y2ggKF93ZWJzaXRl
UG9saWNpZXMtPnNjcmlwdE1hcmt1cFBvbGljeSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpTY3Jp
cHRNYXJrdXBQb2xpY3k6OkVuYWJsZToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBX
ZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkRpc2FibGU6CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9Cit9CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAtICh2b2lkKXNldFBy
ZWZlcnJlZENvbnRlbnRNb2RlOihXS0NvbnRlbnRNb2RlKWNvbnRlbnRNb2RlCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDVjNzM2ZWVlODBlNGM3
YjFlMjIxMzdjZTE3ZGRmNGE3NTQ5MzE3Zi4uZDVmYWVkODg2NmFmMjUzYzFlMzFjZTNmMzlkOTdm
NDdjOWM5NjljOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAyLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IiBv
biBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE1MzQ5Njc+
IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NDI3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZVBvbGljaWVzLm1tOgorICAgICAgICAoLVtXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9u
RGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVu
Y2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoLVtXZWJz
aXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6XSk6IERl
bGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLm1tOgorICAgICAgICAoLVtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6XSk6
CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25XaXRoUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdGVzdF93YWl0
Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpwcmVmZXJlbmNlczpdKToKKwogMjAyMC0wMi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXZlcmFsIGlPUyBBUEkgdGVzdHMgdGhh
dCBjYWxsIC1tYWtlS2V5V2luZG93IGFzc2VydCBhZnRlciByMjU1OTA3CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2
YVNjcmlwdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCmluZGV4IGZjMDMzNzU3ZTQ0ODFjMDZmMThmZjE5NzY3
ZTAzZmQyMTNmMjFmMDcuLmRlYjg3NmZkMWFiNmEzYzRmMDgyZDZmYzM0YjgzYTQ5Y2VmZjU2MDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4K
IAorI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdC5oIgpAQCAtMzMsNiArMzQsOCBA
QAogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFdv
cmxkLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tFcnJvclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNS
ZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CiAKQEAgLTI1NCwzICsyNTcsMTIyIEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0
ZUphdmFTY3JpcHRJbkF0dGFjaG1lbnRzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBBbGxvd3NDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAg
ICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Cisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9v
ID0gJ2Jhcic8L3NjcmlwdD4iXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Cisg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpe
KGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3Ip
OworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0cmluZzpAImJh
ciJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNlcz4g
cHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRd
KTsKKyAgICBFWFBFQ1RfVFJVRShwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNj
cmlwdCk7CisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBO
TzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZh
ciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOwor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZv
byIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVz
Y3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOwor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAg
ICAgICB7ICIvc2NyaXB0IiwgeyAidmFyIGZvbyA9ICdiYXInIiB9IH0KKyAgICB9KTsKKyAgICBw
cmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IFlFUzsKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIs
IHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBs
ZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBF
Q1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVh
bFRvU3RyaW5nOkAiYmFyIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCku
YWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0n
aHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHBy
ZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpA
IkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVu
Y2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gWUVTOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpZnJhbWUgc3JjPSdqYXZhc2NyaXB0OndpbmRv
dy5mb28gPSAxJz48L2lmcmFtZT4iIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKwor
ICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5k
b3cuZnJhbWVzWzBdLmZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RS
VUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKTsKKyAgICAgICAgRVhQ
RUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9OdW1iZXI6QDFdKTsKKyAgICAgICAgZG9uZSA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAg
IHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3Jp
cHQ6d2luZG93LmZvbyA9IDEnPjwvaWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0
KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAIndpbmRvdy5mcmFtZXNbMF0uZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAg
RVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYktpdCwgU1BJSmF2
YXNjcmlwdE1hcmt1cFZzQVBJQ29udGVudEphdmFTY3JpcHQpCit7CisgICAgUmV0YWluUHRyPFRl
c3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXInPC9zY3Jp
cHQ+Il07CisKKyAgICAvLyBGaXJzdCwgdmVyaWZ5IHRoYXQgbWFya3VwIHNldCBzY3JpcHQgYXMg
ZXhwZWN0ZWQuCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVY
UEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisgICAg
ICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0pOworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworCisgICAgLy8gVGhlbiwgdHJ5IGFnYWluIGJ1dCB3aXRoIHNjcmlwdCBtYXJrdXAgZGlz
YWJsZWQgZHVlIHRvIFdLUHJlZmVyZW5jZXMgU1BJCisgICAgV0tQcmVmZXJlbmNlc1NldEphdmFT
Y3JpcHRNYXJrdXBFbmFibGVkKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKVt3ZWJWaWV3IGNv
bmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLCBmYWxzZSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsK
KworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJm
b28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRl
c2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsK
KyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKworICAgIC8vIEZpbmFsbHksIHRyeSB0byBleHBsaWNpdGx5IGVuYWJsZSBz
Y3JpcHQgbWFya3VwIHVzaW5nIFdLV2VicGFnZVByZWZlcmVuY2VzLCBidXQgdmVyaWZ5IGl0IHNo
b3VsZCBzdGlsbCBmYWlsIGJlY2F1c2UKKyAgICAvLyBvZiB0aGUgYWJvdmUgcHJlZmVyZW5jZS4K
KyAgICBSZXRhaW5QdHI8V0tXZWJwYWdlUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gYWRvcHRO
UyhbW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CisgICAgRVhQRUNUX1RSVUUo
cHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQpOworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXInPC9z
Y3JpcHQ+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0gZmFs
c2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFu
ZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwo
cmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlwdGlvbl0gY29udGFp
bnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAgICAgIGRvbmUgPSB0
cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKK30K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZVBvbGljaWVzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJz
aXRlUG9saWNpZXMubW0KaW5kZXggZGQ3OWM1ZGQwY2ZjYmIwYThjMDgyOTZmYWM2Mzc2ZTk3Yjc4
YzE5Ny4uMDk3NmIzNmU1MTY1YzRjNDZjN2QzODQxYzJiMzVmNjVmMDRmOTAxMiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9s
aWNpZXMubW0KQEAgLTIzOSwxNSArMjM5LDE1IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVuCiBA
ZW5kCiAKIEBpbnRlcmZhY2UgV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIDogVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZSA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPgotQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uV2l0aFdlYnNpdGVQb2xpY2llcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVBy
ZWZlcmVuY2VzICosIGlkIDxOU1NlY3VyZUNvZGluZz4sIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpOworQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNp
dGVQb2xpY2llcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICos
IHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRl
bGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFj
dGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyB1c2Vy
SW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVj
aXNpb25IYW5kbGVyCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlv
bkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgaWYgKF9kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llcykKLSAgICAgICAgX2RlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKG5hdmlnYXRpb25B
Y3Rpb24sIHByZWZlcmVuY2VzLCB1c2VySW5mbywgZGVjaXNpb25IYW5kbGVyKTsKKyAgICAgICAg
X2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKG5hdmln
YXRpb25BY3Rpb24sIHByZWZlcmVuY2VzLCBkZWNpc2lvbkhhbmRsZXIpOwogICAgIGVsc2UKICAg
ICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBuaWwp
OwogfQpAQCAtNjE2LDcgKzYxNiw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRl
UG9saWNpZXNXaXRoQnJpZGdpbmdDYXN0KQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
V2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBf
X2Jsb2NrIGJvb2wgZGlkSW52b2tlRGVjaXNpb25IYW5kbGVyID0gZmFsc2U7Ci0gICAgW2RlbGVn
YXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVz
Ol4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIGlkIDxOU1Nl
Y3VyZUNvZGluZz4sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAgICBbZGVsZWdhdGUgc2V0RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRp
b25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxl
cikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewog
ICAgICAgICBhdXRvIHBvbGljaWVzID0gYWRvcHRXSyhXS1dlYnNpdGVQb2xpY2llc0NyZWF0ZSgp
KTsKICAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93
LCAoX19icmlkZ2UgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwb2xpY2llcy5nZXQoKSk7CiAgICAg
ICAgIGRpZEludm9rZURlY2lzaW9uSGFuZGxlciA9IHRydWU7CkBAIC02MzUsNyArNjM1LDcgQEAg
VEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1dpdGhVbmV4cGVjdGVkVHlw
ZSkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xpY2llc05hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgX19ibG9jayBib29sIGRpZENhdGNoRXhj
ZXB0aW9uID0gZmFsc2U7Ci0gICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2Vi
cGFnZVByZWZlcmVuY2VzICosIGlkIDxOU1NlY3VyZUNvZGluZz4sIHZvaWQgKF5kZWNpc2lvbkhh
bmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikp
IHsKKyAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhX
ZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewogICAgICAgICBAdHJ5IHsKICAgICAgICAgICAgIGlk
IGZha2VQb2xpY2llcyA9IEAiSGVsbG8iOwogICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCAoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilmYWtl
UG9saWNpZXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2
aWdhdGlvbkRlbGVnYXRlLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0
aW9uRGVsZWdhdGUuaAppbmRleCAyMjMyMDFiY2JlZjljOWM3N2Q4NWMxZGQxZTg1ODg0MjZiNjJm
NWZiLi5iNjQ3MjI5ZGNiODU5OTc0NjA1YzdmYjMwOWQ4NWQyY2EwMzQ0ZTY5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaApAQCAt
MzEsNiArMzEsNyBAQAogQGludGVyZmFjZSBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmpl
Y3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
dm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pKFdLTmF2aWdhdGlvbkFjdGlv
biAqLCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQ
cmVmZXJlbmNlcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICos
IHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRGYWlsUHJvdmlzaW9u
YWxOYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICosIE5TRXJyb3IgKik7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZp
Z2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopOwogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIHZvaWQgKF5kaWRDb21taXROYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZp
Z2F0aW9uICopOwpAQCAtNDEsNiArNDIsNyBAQAogCiAtICh2b2lkKXdhaXRGb3JEaWRTdGFydFBy
b3Zpc2lvbmFsTmF2aWdhdGlvbjsKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb247
CistICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFBy
b3Zpc2lvbmFsTmF2aWdhdGlvbjsKIAogQGVuZApAQCAtNDgsNSArNTAsNiBAQAogQGludGVyZmFj
ZSBXS1dlYlZpZXcgKFRlc3RXZWJLaXRBUElFeHRyYXMpCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JE
aWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZp
bmlzaE5hdmlnYXRpb247CistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9u
V2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAo
dm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRpb25V
cGRhdGU7CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RO
YXZpZ2F0aW9uRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUubW0KaW5kZXggMzNlMjExYjQxZjRjN2ZjZGQ1ZmM2ZTRkMmQ4MWIzYjQ1
OTVkMGI2NS4uYmRjNTE3NTdiMzk0YWY2MmNjNDBmNDExMzBiNTUwMmViN2Y3YjI5ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5t
bQpAQCAtMzIsMTIgKzMyLDE2IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0TmF2aWdhdGlvbkRl
bGVnYXRlCiAKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0
aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSlk
ZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0
aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2Vz
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAoX2RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24pCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb24sIGRlY2lzaW9uSGFuZGxlcik7Ci0gICAgZWxzZQot
ICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOwor
ICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcykK
KyAgICAgICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMo
bmF2aWdhdGlvbkFjdGlvbiwgcHJlZmVyZW5jZXMsIGRlY2lzaW9uSGFuZGxlcik7CisgICAgZWxz
ZSBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pIHsKKyAgICAgICAgX2RlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgXihXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3kgYWN0aW9uKSB7CisgICAgICAgICAgICBkZWNpc2lvbkhhbmRsZXIoYWN0
aW9uLCBwcmVmZXJlbmNlcyk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBkZWNp
c2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsK
IH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlz
aW9uYWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCkBAIC0xMTIsNiArMTE2
LDE5IEBAIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KICAgICBzZWxmLmRpZEZp
bmlzaE5hdmlnYXRpb24gPSBuaWw7CiB9CiAKKy0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMK
K3sKKyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
V2l0aFByZWZlcmVuY2VzKTsKKyAgICBFWFBFQ1RfVFJVRSghIXByZWZlcmVuY2VzKTsKKworICAg
IHNlbGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4o
V0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQg
KF5oYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2Vz
ICopKSB7CisgICAgICAgIGhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHBy
ZWZlcmVuY2VzKTsKKyAgICB9OworCisgICAgW3NlbGYgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b25dOworICAgIHNlbGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJl
bmNlcyA9IG5pbDsKK30KKwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdh
dGlvbgogewogICAgIEVYUEVDVF9GQUxTRShzZWxmLmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRp
b24pOwpAQCAtMTUyLDYgKzE2OSwxNyBAQCAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hO
YXZpZ2F0aW9uV2l0aG91dFByZXNlbnRhdGlvblVwZGF0ZQogICAgIHNlbGYubmF2aWdhdGlvbkRl
bGVnYXRlID0gbmlsOwogfQogCistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0
aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7
CisgICAgRVhQRUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKKworICAgIGF1dG8g
bmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5hdmlnYXRpb25EZWxl
Z2F0ZS5nZXQoKTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uV2l0aFByZWZlcmVuY2VzOnByZWZlcmVuY2VzXTsKKworICAgIHNlbGYubmF2aWdhdGlv
bkRlbGVnYXRlID0gbmlsOworfQorCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uCiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggZDhlNzVkYzNjMGRj
NGI1YTQzNmYyZmZlY2I5NjY3NzRlNjhjNTg5Zi4uYzE2MjBjZTRlMGI1YmE4ZTBlYTUwNmE0MGY4
MDJkYmY2NGYwMjgzZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0
V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3
LmgKQEAgLTU0LDYgKzU0LDcgQEAKIC0gKHZvaWQpc3luY2hyb25vdXNseUdvRm9yd2FyZDsKIC0g
KHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWw7CiAtICh2
b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIGJhc2VVUkw6
KE5TVVJMICopdXJsOworLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3Ry
aW5nICopaHRtbCBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNl
czsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1
ZXN0OwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICop
cGFnZU5hbWU7CiAtIChCT09MKV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0
cmluZyAqKWNvbW1hbmQgYXJndW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQ7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggMjdhMjhhYTk4Y2E2YTlhMGFm
OWUyMjc5OGI0NjJhMzk2NTNhZjRhNi4uNWNkMmRmNmIyNmU3MTEzYWJlOTk2MTAxZGJkMGEyNzhl
ZGU3MTZhYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpA
QCAtMTAxLDYgKzEwMSwxMiBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzoo
TlNTdHJpbmcgKilodG1sCiAgICAgW3NlbGYgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmh0
bWwgYmFzZVVSTDpbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5k
aW5nUGF0aENvbXBvbmVudDpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogfQogCistICh2
b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIHByZWZlcmVu
Y2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgW3NlbGYgbG9h
ZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVVS
TF0gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XV07CisgICAgW3NlbGYgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVy
ZW5jZXM6cHJlZmVyZW5jZXNdOworfQorCiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQogewogICAgIFtzZWxmIGxvYWRUZXN0UGFnZU5h
bWVkOnBhZ2VOYW1lXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390669</attachid>
            <date>2020-02-13 10:49:47 -0800</date>
            <delta_ts>2020-02-13 11:46:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200213104947.patch</filename>
            <type>text/plain</type>
            <size>40638</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2IwYTRhNzQwNjk4YjZh
NWFhOTdkNzNhM2FiNWIzYTQ4MTM2NGNlNi4uNWI3MDYyMWUyZTg4M2U2NTBkOWUxNWU1NmYwZmI0
ODc0NDlkYzg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTEzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRNYXJrdXBFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKworICAgICAgICAqIGRvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIpOgorCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oOgorCiAyMDIwLTAyLTA3ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgog
CiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gV2ViQ29yZTo6Rm9udEZhbWlseVNwZWNpZmljYXRp
b25Db3JlVGV4dDo6Zm9udFJhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiZTc0NTI4MDQ5MzhhN2VjN2Y0ZDlj
ZjE0YjFkNzUxZmNhNWQxN2VkLi4zOWEwNTE1ZGZhMzk2ODJjYzBiOGQxNmM2Yzc0YWU3ZGEyZDJk
ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTAyLTEzICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyB1dGlpemVzIHRoZSBwcmUtZXhpc3RpbmcgV2ViQ29yZTo6U2V0dGluZ3M6OnNldFNjcmlwdE1h
cmt1cEVuYWJsZWQoKSBtZWNoYW5pc20uCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gZGVw
cmVjYXRlcyB0aGUgZ2xvYmFsICJkaXNhYmxlIEphdmFTY3JpcHQiIFdLUHJlZmVyZW5jZSBhcyBp
dCBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSBhbnltb3JlLgorCisgICAgICAgICogU2hhcmVkL1dl
YnNpdGVQb2xpY2llc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRh
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmg6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHA6CisgICAgICAgIChB
UEk6OldlYnNpdGVQb2xpY2llczo6ZGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlUG9saWNpZXMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAg
ICgtW1dLUHJlZmVyZW5jZXMgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJl
bmNlcyBqYXZhU2NyaXB0RW5hYmxlZF0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIHNldEph
dmFTY3JpcHRFbmFibGVkOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnBhZ2VQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJw
YWdlUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVuY2VzIHNldEFs
bG93c0NvbnRlbnRKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYnBhZ2VQcmVmZXJlbmNl
cyBhbGxvd3NDb250ZW50SmF2YVNjcmlwdF0pOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50OjpzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmln
YXRpb24gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24pOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVXZWJzaXRlUG9saWNpZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjcmVhdGVEb2N1bWVudExvYWRlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2NyaXB0TWFy
a3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0U2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9u
KToKKwogMjAyMC0wMi0wNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBBU1NFUlRJT04gRkFJTEVEOiByZXNldFJlc3VsdCA9
PSAwIG9uIHJlZ3Jlc3Npb24gdGVzdHMgaW4gSVRQIGNvZGUsIHJlc2V0dGluZyBTUUxpdGUgc3Rh
dGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzMzEyNTc3OWJkZjc4OTczNTU1ZGEw
MGMxYTYwNjcxYmE5NDAwODM1Li5lNzhmMGZlOTY2YWZiYzY4YTliMjcwYzZjZmM5MjFiZjAwYWZk
ODAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTY4MDUsNiArNjgwNSwxNyBAQCBEb2N1
bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRlcigpIGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlcjsK
IH0KIAorYm9vbCBEb2N1bWVudDo6c2NyaXB0TWFya3VwRW5hYmxlZCgpIGNvbnN0Cit7CisgICAg
aWYgKCFzZXR0aW5ncygpLnNjcmlwdE1hcmt1cEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFtX2ZyYW1lIHx8IG1fZnJhbWUtPmRvY3VtZW50KCkgIT0gdGhpcykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpLnNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpID09IFNj
cmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlOworfQorCiAjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURB
UFRBVElPTikKIAogSW50U2l6ZSBEb2N1bWVudDo6aW5pdGlhbFZpZXdwb3J0U2l6ZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDU2MjAyOTFhYmViM2UwYzk5ZGU5NjU2NWQzMWRhZGMy
OTUzNjNjMDAuLmViMjk5ZjhhYWEzN2Y5ZTE3MDQwYzA1YTg0MDAyNWQyYTAzZWU2MWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC02NDgsNiArNjQ4LDcgQEAgcHVibGljOgogICAgIGJvb2wgdmlz
dWFsbHlPcmRlcmVkKCkgY29uc3QgeyByZXR1cm4gbV92aXN1YWxseU9yZGVyZWQ7IH0KICAgICAK
ICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudExvYWRlciogbG9hZGVyKCkgY29uc3Q7CisgICAg
Ym9vbCBzY3JpcHRNYXJrdXBFbmFibGVkKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBF
eGNlcHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBvcGVuRm9yQmluZGluZ3MoRE9NV2luZG93
JiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RET01XaW5kb3csIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGZlYXR1cmVzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxEb2N1bWVudCY+IG9wZW5Gb3JCaW5kaW5ncyhE
b2N1bWVudCogcmVzcG9uc2libGVEb2N1bWVudCwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3Bw
CmluZGV4IDk1MDI4YmIyMTYyYmY3YTdmNmZiY2RlNTc3ODUyMGQzNWU4OWJkYzEuLmQxMGYwMTgy
OGMxZmVhY2E5YzE4ZWVmZjliNjc0YThmNWRjYWRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFNjcmlw
dGFibGVEb2N1bWVudFBhcnNlcjo6U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKERvY3VtZW50JiBk
b2N1bWVudCwgUGFyc2VyQ29uCiAgICAgaWYgKCFwbHVnaW5Db250ZW50SXNBbGxvd2VkKG1fcGFy
c2VyQ29udGVudFBvbGljeSkpCiAgICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGljeSA9IGFsbG93
UGx1Z2luQ29udGVudChtX3BhcnNlckNvbnRlbnRQb2xpY3kpOwogCi0gICAgaWYgKHNjcmlwdGlu
Z0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2V0
dGluZ3MoKS5zY3JpcHRNYXJrdXBFbmFibGVkKCkpCisgICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJ
c0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2NyaXB0TWFya3Vw
RW5hYmxlZCgpKQogICAgICAgICBtX3BhcnNlckNvbnRlbnRQb2xpY3kgPSBkaXNhbGxvd1Njcmlw
dGluZ0NvbnRlbnQobV9wYXJzZXJDb250ZW50UG9saWN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBlOWRlYmUxYjg3ZjVkYTExNjhiM2NmOTY2
NjAwNjU1MWIzYmUzNDU0Li5iNTFlZjdkZTMzNDlhMWYyNmU2YmQ4NWUyY2QwMWMyYjU2NDFjZmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzc1LDYg
KzM3NSw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQog
ICAgIHZpcnR1YWwgYm9vbCBoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpIHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKKworICAgIHZpcnR1YWwgU2NyaXB0TWFya3VwUG9saWN5IHNjcmlw
dE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIFNj
cmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCA4ZDg2MjhhNzQy
N2UyNjA5OGU4NTdhMGEyYWYzMmU4OTM2ZWI0NjA3Li40OWQyNGFhNzdkYWE4MjQ4MWEyY2YxN2M1
MWRkMzUxNGMzMTk1MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVz
LmgKQEAgLTIyNyw2ICsyMjcsMTEgQEAgZW51bSBjbGFzcyBMb2FkQ29tcGxldGlvblR5cGUgOiB1
aW50OF90IHsKICAgICBDYW5jZWwKIH07CiAKK2VudW0gY2xhc3MgU2NyaXB0TWFya3VwUG9saWN5
IDogdWludDhfdCB7CisgICAgRW5hYmxlLAorICAgIERpc2FibGUsCit9OworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMjY2LDQgKzI3MSwxMiBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJD
b3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3ksCisgICAgICAgIFdlYkNvcmU6
OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlLAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRNYXJr
dXBQb2xpY3k6OkRpc2FibGUKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwCmluZGV4IDk0OGYyYTVh
YmI4MmExMjllNDYxOWQzMjYyMzRjMGYxMDY4OTY4YjcuLjUyNzYwMmNmYzA2ZGQ4MTk5NzMyYmVh
ZDhlMGFiNTk1YzQwOTQ3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNp
dGVQb2xpY2llc0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xp
Y2llc0RhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQgV2Vic2l0ZVBvbGljaWVzRGF0YTo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNpbXVs
YXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k7CiAgICAgZW5jb2RlciA8PCBsZWdhY3lPdmVy
Zmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5OwogICAgIGVuY29kZXIgPDwgYWxsb3dDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJRdWlyazsKKyAgICBlbmNvZGVyIDw8IHNjcmlwdE1hcmt1cFBvbGljeTsKIH0K
IAogT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTEzNCw3ICsxMzUsMTIgQEAgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlcikKICAgICBkZWNvZGVyID4+IGFsbG93Q29udGVudENoYW5nZU9ic2VydmVy
UXVpcms7CiAgICAgaWYgKCFhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6U2Ny
aXB0TWFya3VwUG9saWN5PiBzY3JpcHRNYXJrdXBQb2xpY3k7CisgICAgZGVjb2RlciA+PiBzY3Jp
cHRNYXJrdXBQb2xpY3k7CisgICAgaWYgKCFzY3JpcHRNYXJrdXBQb2xpY3kpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4geyB7CiAgICAgICAgIFdURk1vdmUoKmNv
bnRlbnRCbG9ja2Vyc0VuYWJsZWQpLAogICAgICAgICBXVEZNb3ZlKCphbGxvd2VkQXV0b3BsYXlR
dWlya3MpLApAQCAtMTUzLDYgKzE1OSw3IEBAIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAg
ICAgIFdURk1vdmUoKnNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kpLAogICAgICAg
ICBXVEZNb3ZlKCpsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5KSwKICAgICAgICAg
V1RGTW92ZSgqYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayksCisgICAgICAgIFdURk1v
dmUoKnNjcmlwdE1hcmt1cFBvbGljeSksCiAgICAgfSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKaW5kZXggOTc5NTczZDU1ZDczMjZiOGUyYTNjYjIw
ZjVmNzMzZDM3M2E0MjJmNC4uMjk0NzA3YjNlOGFhZjU4YTE1ZTg2MDA5MWVkMmQ4ZTI3YzI2MWVl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNo
UG9saWN5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DdXN0b21IZWFkZXJGaWVsZHMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjgsNiArNjksNyBAQCBzdHJ1Y3QgV2Vi
c2l0ZVBvbGljaWVzRGF0YSB7CiAgICAgV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0
Y2hQb2xpY3kgc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeSB7IFdlYnNpdGVTaW11
bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5OjpEZWZhdWx0IH07CiAgICAgV2Vic2l0ZUxl
Z2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdU
b3VjaFBvbGljeSB7IFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5OjpE
ZWZhdWx0IH07CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrIHsgZmFs
c2UgfTsKKyAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5
IHsgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgfTsKIAogICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwCmluZGV4IGU3MWUzYjMwYjkzNWRh
MGFkYzc2NmMzNGM1NzZjMzE0YTFkMTk2YjkuLjBhYjJlZWY2YjVhNjA1MTdkMTMxM2E1MDBiNGNh
NDY1ZGUxZGU3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlUG9saWNpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElX
ZWJzaXRlUG9saWNpZXMuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAgV2ViS2l0OjpXZWJzaXRlUG9s
aWNpZXNEYXRhIFdlYnNpdGVQb2xpY2llczo6ZGF0YSgpCiAgICAgICAgIG1fc2ltdWxhdGVkTW91
c2VFdmVudHNEaXNwYXRjaFBvbGljeSwKICAgICAgICAgbV9sZWdhY3lPdmVyZmxvd1Njcm9sbGlu
Z1RvdWNoUG9saWN5LAogICAgICAgICBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmss
CisgICAgICAgIG1fc2NyaXB0TWFya3VwUG9saWN5LCAKICAgICB9OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXggOTQ2M2U1
Mzk0ZjUxY2M3MmQ3NjA4OTFjZDg0NDUxMDExOTg5ZWE2MC4uNzZjZTNmODc4NTM5YWI3YjVlMDgz
Zjg0M2U4ZDMzOTEwNDVjNTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElXZWJzaXRlUG9saWNpZXMuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIldlYnNp
dGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9DdXN0b21IZWFkZXJGaWVsZHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9h
ZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5oPgogI2luY2x1
ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xMTYsNiAr
MTE3LDkgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWly
aygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyazsgfQog
ICAgIHZvaWQgc2V0QWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayhib29sIGFsbG93KSB7
IG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayA9IGFsbG93OyB9CiAKKyAgICBXZWJD
b3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5KCkgY29uc3QgeyByZXR1
cm4gbV9zY3JpcHRNYXJrdXBQb2xpY3k7IH0KKyAgICB2b2lkIHNldFNjcmlwdE1hcmt1cFBvbGlj
eShXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgcG9saWN5KSB7IG1fc2NyaXB0TWFya3VwUG9s
aWN5ID0gcG9saWN5OyB9CisKIHByaXZhdGU6CiAgICAgV2Vic2l0ZVBvbGljaWVzKGJvb2wgY29u
dGVudEJsb2NrZXJzRW5hYmxlZCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UXVp
cms+LCBXZWJLaXQ6OldlYnNpdGVBdXRvcGxheVBvbGljeSwgVmVjdG9yPFdlYkNvcmU6OkhUVFBI
ZWFkZXJGaWVsZD4mJiwgVmVjdG9yPFdlYkNvcmU6OkN1c3RvbUhlYWRlckZpZWxkcz4mJiwgV2Vi
S2l0OjpXZWJzaXRlUG9wVXBQb2xpY3ksIFJlZlB0cjxXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU+
JiYpOwogCkBAIC0xNDAsNiArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYWxsb3dTaXRl
U3BlY2lmaWNRdWlya3NUb092ZXJyaWRlQ29udGVudE1vZGUgeyBmYWxzZSB9OwogICAgIFdURjo6
U3RyaW5nIG1fYXBwbGljYXRpb25OYW1lRm9yRGVza3RvcFVzZXJBZ2VudDsKICAgICBib29sIG1f
YWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6
U2NyaXB0TWFya3VwUG9saWN5IG1fc2NyaXB0TWFya3VwUG9saWN5IHsgV2ViQ29yZTo6U2NyaXB0
TWFya3VwUG9saWN5OjpFbmFibGUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKaW5kZXgg
NTBhODJmN2Q4MmIxNzI1ODJhNGMxMDVhYWY5N2RhNzQ5NDllMDg1Yy4uODk2ODZkYWVkY2I5Yjkx
ZDY1MmNjNDFkZGVkZjNjMGJlY2ZjZDQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCkBAIC00MCwxMSArNDAsNiBAQCBXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKICAqLwogQHByb3BlcnR5IChub25h
dG9taWMpIENHRmxvYXQgbWluaW11bUZvbnRTaXplOwogCi0vKiEgQGFic3RyYWN0IEEgQm9vbGVh
biB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBpcyBlbmFibGVkLgotIEBkaXNj
dXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KLSAqLwotQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgamF2YVNjcmlwdEVuYWJsZWQ7Ci0KIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZh
bHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGNhbiBvcGVuCiAgd2luZG93cyB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24uCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMg
Tk8gaW4gaU9TIGFuZCBZRVMgaW4gT1MgWC4KQEAgLTcxLDcgKzY2LDExIEBAIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5j
ZXMgKFdLRGVwcmVjYXRlZCkKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBqYXZhRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiSmF2YSBpcyBubyBs
b25nZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEwLjE1KSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBwbHVnSW5zRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiUGx1Zy1pbnMgYXJl
IG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMCwgMTAuMTUpKTsKKyNlbmRpZgorCitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0RW5hYmxlZCBXS19BUElfREVQUkVD
QVRFRCgiVXNlIFdLV2ViUGFnZVByZWZlcmVuY2VzLmFsbG93c0phdmFTY3JpcHRNYXJrdXAgdG8g
ZGlzYWJsZSBKYXZhU2NyaXB0IG1hcmt1cCBvbiBhIHBlci1uYXZpZ2F0aW9uIGJhc2lzIiwgbWFj
b3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0K
aW5kZXggNTQyMThhNGQ5YzBmOWFkYjYxNDI5MmQyZjJhZWJjMmIzNTNhYTI4OC4uMTQyMDExZmJi
M2UzNmU2YmM5YmZmNTE4M2Y2YWZiNTZjNzNjNGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAgLTY1LDkgKzY1LDEyIEBA
ICsgKEJPT0wpc3VwcG9ydHNTZWN1cmVDb2RpbmcKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihO
U0NvZGVyICopY29kZXIKIHsKICAgICBbY29kZXIgZW5jb2RlRG91YmxlOnNlbGYubWluaW11bUZv
bnRTaXplIGZvcktleTpAIm1pbmltdW1Gb250U2l6ZSJdOwotICAgIFtjb2RlciBlbmNvZGVCb29s
OnNlbGYuamF2YVNjcmlwdEVuYWJsZWQgZm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAg
ICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkgZm9yS2V5OkAiamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSJdOwog
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgIFtjb2RlciBlbmNvZGVC
b29sOnNlbGYuamF2YVNjcmlwdEVuYWJsZWQgZm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAjaWYgUExBVEZPUk0oTUFDKQog
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbY29kZXIgZW5jb2RlQm9v
bDpzZWxmLmphdmFFbmFibGVkIGZvcktleTpAImphdmFFbmFibGVkIl07CkBAIC04Myw5ICs4Niwx
MiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKICAgICBzZWxmLm1pbmltdW1Gb250U2l6ZSA9IFtjb2RlciBkZWNv
ZGVEb3VibGVGb3JLZXk6QCJtaW5pbXVtRm9udFNpemUiXTsKLSAgICBzZWxmLmphdmFTY3JpcHRF
bmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOwog
ICAgIHNlbGYuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IFtjb2RlciBk
ZWNvZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSJd
OwogCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgIHNlbGYuamF2YVNj
cmlwdEVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRFbmFibGVk
Il07CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogI2lmIFBMQVRGT1JNKE1B
QykKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgc2VsZi5qYXZhRW5h
YmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YUVuYWJsZWQiXTsKQEAgLTExMiwx
NiArMTE4LDYgQEAgLSAodm9pZClzZXRNaW5pbXVtRm9udFNpemU6KENHRmxvYXQpbWluaW11bUZv
bnRTaXplCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRNaW5pbXVtRm9udFNpemUobWluaW11bUZvbnRT
aXplKTsKIH0KIAotLSAoQk9PTClqYXZhU2NyaXB0RW5hYmxlZAotewotICAgIHJldHVybiBfcHJl
ZmVyZW5jZXMtPmphdmFTY3JpcHRFbmFibGVkKCk7Ci19Ci0KLS0gKHZvaWQpc2V0SmF2YVNjcmlw
dEVuYWJsZWQ6KEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKLXsKLSAgICBfcHJlZmVyZW5jZXMtPnNl
dEphdmFTY3JpcHRFbmFibGVkKGphdmFTY3JpcHRFbmFibGVkKTsKLX0KLQogLSAodm9pZClzZXRG
cmF1ZHVsZW50V2Vic2l0ZVdhcm5pbmdFbmFibGVkOihCT09MKWVuYWJsZWQKIHsKICAgICBfcHJl
ZmVyZW5jZXMtPnNldFNhZmVCcm93c2luZ0VuYWJsZWQoZW5hYmxlZCk7CkBAIC0xNDMyLDEwICsx
NDI4LDExIEBAIC0gKEJPT0wpX2RldmljZU9yaWVudGF0aW9uRXZlbnRFbmFibGVkCiAKIEBlbmQK
IAotI2lmICFUQVJHRVRfT1NfSVBIT05FCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ByZWZlcmVuY2Vz
IChXS0RlcHJlY2F0ZWQpCiAKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQorCiAtIChCT09MKWphdmFF
bmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+amF2YUVuYWJsZWQoKTsKQEAgLTE0
NTYsNiArMTQ1MywxNyBAQCAtICh2b2lkKXNldFBsdWdJbnNFbmFibGVkOihCT09MKXBsdWdJbnNF
bmFibGVkCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRQbHVnaW5zRW5hYmxlZChwbHVnSW5zRW5hYmxl
ZCk7CiB9CiAKKyNlbmRpZgorCistIChCT09MKWphdmFTY3JpcHRFbmFibGVkCit7CisgICAgcmV0
dXJuIF9wcmVmZXJlbmNlcy0+amF2YVNjcmlwdEVuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRK
YXZhU2NyaXB0RW5hYmxlZDooQk9PTClqYXZhU2NyaXB0RW5hYmxlZAoreworICAgIF9wcmVmZXJl
bmNlcy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOworfQorCiBAZW5k
CiAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAppbmRleCAyNzQ3ZTgxMjhmMDNmMDJkYmVlZmI1YzVm
Yzk2ZmM1NzdmMjE3YWQ2Li5jYWMxOTU2ZjQwZTk1YzYwNjZhZmFjODcwMGRhMzgxMGExNDUxYjdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXMuaApAQCAtNTcsNCArNTcsMTkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKQogICovCiBAcHJvcGVydHkgKG5vbmF0b21pYykgV0tD
b250ZW50TW9kZSBwcmVmZXJyZWRDb250ZW50TW9kZSBXS19BUElfQVZBSUxBQkxFKGlvcygxMy4w
KSk7CiAKKy8qIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEph
dmFTY3JpcHQgZnJvbSB3ZWIgY29udGVudCBpcyBlbmFibGVkCisgQGRpc2N1c3Npb24gSWYgdGhp
cyB2YWx1ZSBpcyBzZXQgdG8gTk8gdGhlbiBKYXZhU2NyaXB0IHJlZmVyZW5jZWQgYnkgdGhlIHdl
YiBjb250ZW50IHdpbGwgbm90IGV4ZWN1dGUuCisgVGhpcyBpbmNsdWRlcyBKYXZhU2NyaXB0IGZv
dW5kIGluIGlubGluZSA8c2NyaXB0PiBlbGVtZW50cywgcmVmZXJlbmNlZCBieSBleHRlcm5hbCBK
YXZhU2NyaXB0IHJlc291cmNlcywKKyAiamF2YXNjcmlwdDoiIFVSTHMsIGFuZCBhbGwgb3RoZXIg
Zm9ybXMuCisKKyBFdmVuIGlmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHlvdXIgYXBwbGljYXRp
b24gY2FuIHN0aWxsIGV4ZWN1dGUgSmF2YVNjcmlwdCB1c2luZzoKKyAtIFtXS1dlYlZpZXcgZXZh
bHV0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhhbmRsZXI6XQorIC0gW1dLV2ViVmlldyBldmFsdXRl
SmF2YVNjcmlwdDppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdCisgLSBbV0tXZWJW
aWV3IGNhbGxBc3luY0phdmFTY3JpcHQ6YXJndW1lbnRzOmluQ29udGVudFdvcmxkOmNvbXBsZXRp
b25IYW5kbGVyOl0KKyAtIFdLVXNlclNjcmlwdHMKKworIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlF
Uy4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NDb250ZW50SmF2YVNjcmlw
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KaW5kZXggOTlmMGMwYTgwYThiZTQ1MzI0MzU2YjYzOTYx
MDlmMzZmNGNmZGM3NC4uYTIwZWExZWI2YTA2OGU1YTZmMzYzNmNhZjk2OWUyMTJlOTFlYTY5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVBy
ZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnBhZ2VQcmVmZXJlbmNlcy5tbQpAQCAtMzMxLDYgKzMzMSwyMSBAQCAtIChBUEk6Ok9iamVjdCYp
X2FwaU9iamVjdAogICAgIHJldHVybiAqX3dlYnNpdGVQb2xpY2llczsKIH0KIAorLSAodm9pZClz
ZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdDooQk9PTClhbGxvd3NDb250ZW50SmF2YVNjcmlwdAor
eworICAgIF93ZWJzaXRlUG9saWNpZXMtPnNldFNjcmlwdE1hcmt1cFBvbGljeShhbGxvd3NDb250
ZW50SmF2YVNjcmlwdCA/IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIDogV2Vi
Q29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlKTsKK30KKworLSAoQk9PTClhbGxvd3ND
b250ZW50SmF2YVNjcmlwdAoreworICAgIHN3aXRjaCAoX3dlYnNpdGVQb2xpY2llcy0+c2NyaXB0
TWFya3VwUG9saWN5KCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6
RW5hYmxlOgorICAgICAgICByZXR1cm4gWUVTOworICAgIGNhc2UgV2ViQ29yZTo6U2NyaXB0TWFy
a3VwUG9saWN5OjpEaXNhYmxlOgorICAgICAgICByZXR1cm4gTk87CisgICAgfQorfQorCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogLSAodm9pZClzZXRQcmVmZXJyZWRDb250ZW50TW9kZToo
V0tDb250ZW50TW9kZSljb250ZW50TW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggZjFiZDcxYTI0NTE3YzQ3OWExM2Y2ZDgyMDlmYzhlOWIxNDk1NGZhNi4uMTUwNTg5NmIz
NzIyNTBkMTQzMDQyZDQ0ZDI0NWRiMjI5OTc2NDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC04OTQsNiArODk0LDEyIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYgd2Vic2l0ZVBvCiAg
ICAgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUod2Vi
c2l0ZVBvbGljaWVzKSwgKmRvY3VtZW50TG9hZGVyKTsKIH0KIAorV2ViQ29yZTo6U2NyaXB0TWFy
a3VwUG9saWN5IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9z
dFJlY2VudE5hdmlnYXRpb24oKSBjb25zdAoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2Zy
YW1lID8gbV9mcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIDogV2Vi
Q29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlOworfQorCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLAogICAg
IEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNpb25N
b2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggOWFhNWEwNTQ5MjQzYTgzOTQwZTVhOTUwZGRiYzgxN2E0NGI1MDk0My4uZmFiMTY5
NjdhMmFjYzlhNGU3NDk5ZGU0NGM0YTFiNDI5NDZjZjk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTYyLDcgKzYyLDkgQEAgcHVibGljOgogICAgIH07CiAgICAgdm9pZCBzZXRI
YXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyhGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lk
ZW50aWZpZXImJik7CiAjZW5kaWYKLSAgICAKKworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBv
bGljeSBzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24oKSBjb25zdCBm
aW5hbDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmluYWw7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRl
eCBmNmM5ODRlMzA1ZWM3ZjdkYWVkOTdmNjg2ZTg5YTI3ZmI5MGJiNDdlLi5hODNlYTZiNzUzZTg1
MGNjMzdjZDBhZmVhOGQ3ODMwYjg0MTE1MmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yNjUsOCArMjY1LDExIEBAIHZvaWQgV2ViRnJh
bWU6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3Jl
OjpQb2xpY3lDaGVjCiAKICAgICBpbnZhbGlkYXRlUG9saWN5TGlzdGVuZXIoKTsKIAotICAgIGlm
IChmb3JOYXZpZ2F0aW9uQWN0aW9uICYmIG1fZnJhbWVMb2FkZXJDbGllbnQgJiYgd2Vic2l0ZVBv
bGljaWVzKQorICAgIGlmIChmb3JOYXZpZ2F0aW9uQWN0aW9uICYmIG1fZnJhbWVMb2FkZXJDbGll
bnQgJiYgd2Vic2l0ZVBvbGljaWVzKSB7CisgICAgICAgIEFTU0VSVChwYWdlKCkpOworICAgICAg
ICBwYWdlKCktPnNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbih3
ZWJzaXRlUG9saWNpZXMtPnNjcmlwdE1hcmt1cFBvbGljeSk7CiAgICAgICAgIG1fZnJhbWVMb2Fk
ZXJDbGllbnQtPmFwcGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKCp3ZWJzaXRlUG9saWNpZXMp
KTsKKyAgICB9CiAKICAgICBtX3BvbGljeURvd25sb2FkSUQgPSBkb3dubG9hZElEOwogICAgIGlm
IChuYXZpZ2F0aW9uSUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggNjZjZjRkOTcwMDVmYjBiZGI4ZmM1MjVhOGFhZDViODFmOGY3MjJmZi4u
MTk2MThjNWJhZjRhZmQyNmE1NWM3ZjgxODdlOTNhZDk5MjgzYmRhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyNDUsNiArNjI0NSw3IEBA
IHZvaWQgV2ViUGFnZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVzKFdlYnNpdGVQb2xpY2llc0RhdGEm
JiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgaWYgKCFkb2N1bWVudExvYWRlcikKICAgICAgICAgcmV0
dXJuOwogCisgICAgbV9zY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24g
PSB3ZWJzaXRlUG9saWNpZXMuc2NyaXB0TWFya3VwUG9saWN5OwogICAgIFdlYnNpdGVQb2xpY2ll
c0RhdGE6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksICpk
b2N1bWVudExvYWRlcik7CiAgICAgCiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtNjMwMCw2ICs2MzAx
LDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBXZWJQYWdlOjpjcmVhdGVEb2N1bWVudExvYWRlcihG
cmFtZSYgZnJhbWUsIGNvbnN0IFJlc291cmNlUmUKICAgICAgICAgfQogCiAgICAgICAgIGlmICht
X3BlbmRpbmdXZWJzaXRlUG9saWNpZXMpIHsKKyAgICAgICAgICAgIG1fc2NyaXB0TWFya3VwUG9s
aWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uID0gbV9wZW5kaW5nV2Vic2l0ZVBvbGljaWVzLT5z
Y3JpcHRNYXJrdXBQb2xpY3k7CiAgICAgICAgICAgICBXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBs
eVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSgqbV9wZW5kaW5nV2Vic2l0ZVBvbGljaWVzKSwgZG9j
dW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgbV9wZW5kaW5nV2Vic2l0ZVBvbGljaWVzID0gV1RG
OjpudWxsb3B0OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggZWEwNzVmODAxNmZmMTVmZTA3NWRhYjgwNDNjZmUwZDRlYzE4Yjk1Zi4u
YzUzMWFhMjliMmM1OWYyYjg4YmU1YTMxYjNmMGVmMjBhNjFmZTBmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI3NCw3ICsxMjc0LDEwIEBAIHB1
YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1l
ZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKLSAgICAKKworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1
cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbjsg
fQorICAgIHZvaWQgc2V0U2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9u
KFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBwb2xpY3kpIHsgbV9zY3JpcHRNYXJrdXBQb2xp
Y3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24gPSBwb2xpY3k7IH0KKwogcHJpdmF0ZToKICAgICBX
ZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiYpOwogCkBAIC0yMDQ3LDYgKzIwNTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBTdHJp
bmcgbV9vdmVycmlkZGVuTWVkaWFUeXBlOworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGlj
eSBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiB7IFdlYkNvcmU6
OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIH07CiAKICNpZiBQTEFURk9STShHVEspCiAgICAg
U3RyaW5nIG1fdGhlbWVOYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDA1YzczNmVlZTgwZTRjN2IxZTIyMTM3Y2UxN2RkZjRhNzU0OTMxN2Yu
LmEyZTA0ZGFiODZmZDg2OTdiNTU2NzlhODdmMThiNjY4Y2ZjYTVmMzYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAy
MC0wMi0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhw
b3NlICJhbGxvd3NDb250ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dl
YlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbToKKyAgICAg
ICAgKC1bV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6XSk6Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKC1bV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVn
YXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVyZW5jZXM6
dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtUZXN0TmF2aWdhdGlv
bkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRo
UHJlZmVyZW5jZXM6XSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmll
dzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6cHJlZmVyZW5jZXM6XSk6CisK
IDIwMjAtMDItMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2V2ZXJhbCBpT1MgQVBJIHRlc3RzIHRoYXQgY2FsbCAtbWFrZUtleVdpbmRvdyBhc3Nl
cnQgYWZ0ZXIgcjI1NTkwNwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQpp
bmRleCBmYzAzMzc1N2U0NDgxYzA2ZjE4ZmYxOTc2N2UwM2ZkMjEzZjIxZjA3Li41Mzc3YmJhM2M3
ZGNmZjNhNjRiMjQ2MDQ2MDQ5MGI1OGU2YTI4MjMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1
YXRlSmF2YVNjcmlwdC5tbQpAQCAtMjYsMTMgKzI2LDE3IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAorI2ltcG9ydCAiSFRUUFNlcnZlci5o
IgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgog
I2ltcG9ydCAiVGVzdC5oIgogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZW50V29ybGQuaD4KICNpbXBv
cnQgPFdlYktpdC9XS0Vycm9yUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZi5oPgogI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
IApAQCAtMjU0LDMgKzI1OCwxMTQgQEAgVEVTVChXZWJLaXQsIEV2YWx1YXRlSmF2YVNjcmlwdElu
QXR0YWNobWVudHMpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAor
VEVTVChXZWJLaXQsIEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KQoreworICAgIFJldGFpblB0cjxU
ZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2Ny
aXB0PiJdOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVY
UEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisgICAg
ICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0pOworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworCisgICAgUmV0YWluUHRyPFdLV2VicGFnZVByZWZlcmVuY2VzPiBwcmVmZXJlbmNlcyA9
IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxvY10gaW5pdF0pOworICAgIEVYUEVD
VF9UUlVFKHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KTsKKyAgICBw
cmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IE5POworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXIn
PC9zY3JpcHQ+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlwdGlvbl0gY29u
dGFpbnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisK
KyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi9zY3Jp
cHQiLCB7ICJ2YXIgZm9vID0gJ2JhciciIH0gfQorICAgIH0pOworICAgIHByZWZlcmVuY2VzLmdl
dCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gWUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQg
c3JjPSdodHRwOi8vMTI3LjAuMC4xOiVkL3NjcmlwdCc+PC9zY3JpcHQ+Iiwgc2VydmVyLnBvcnQo
KV0gcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6
XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9y
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBj
bGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9TdHJpbmc6QCJi
YXIiXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50
SmF2YVNjcmlwdCA9IE5POworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3JpcHQgc3JjPSdodHRwOi8vMTI3LjAu
MC4xOiVkL3NjcmlwdCc+PC9zY3JpcHQ+Iiwgc2VydmVyLnBvcnQoKV0gcHJlZmVyZW5jZXM6cHJl
ZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVD
VF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmluZCB2
YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxs
b3dzQ29udGVudEphdmFTY3JpcHQgPSBZRVM7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZvbyA9IDEnPjwv
aWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5mcmFtZXNbMF0u
Zm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlz
S2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVz
dWx0IGlzRXF1YWxUb051bWJlcjpAMV0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgcHJlZmVyZW5jZXMu
Z2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aWZyYW1lIHNyYz0namF2YXNjcmlwdDp3aW5kb3cuZm9v
ID0gMSc+PC9pZnJhbWU+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmZy
YW1lc1swXS5mb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfTlVMTChl
cnJvcik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViS2l0LCBTUElKYXZhc2NyaXB0TWFya3Vw
VnNBUElDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAgICAvLyBUaGVyZSdzIG5vdCBhIGR5bmFtaWNh
bGx5IGNvbmZpZ3VyYXRpb24gc2V0dGluZyBmb3IgamF2YXNjcmlwdCBtYXJrdXAsCisgICAgLy8g
YnV0IGl0IGNhbiBiZSBjb25maWd1cmVkIGF0IFdLV2ViVmlldyBjcmVhdGlvbiB0aW1lLgorICAg
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgY29uZmlndXJhdGlvbi5f
YWxsb3dzSmF2YVNjcmlwdE1hcmt1cCA9IE5POworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3
PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgZm9sbG93aW5nIEpTIGRvZXMgbm90IGV4ZWN1dGUu
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIg
Zm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwocmVz
dWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlwdGlvbl0gY29udGFpbnNT
dHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAgICAgIGRvbmUgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAv
LyBUcnkgdG8gZXhwbGljaXRseSBlbmFibGUgc2NyaXB0IG1hcmt1cCB1c2luZyBXS1dlYnBhZ2VQ
cmVmZXJlbmNlcywgYnV0IHZlcmlmeSBpdCBzaG91bGQgc3RpbGwgZmFpbCBiZWNhdXNlCisgICAg
Ly8gb2YgdGhlIGFib3ZlIGNvbmZpZ3VyYXRpb24gc2V0dGluZy4KKyAgICBSZXRhaW5QdHI8V0tX
ZWJwYWdlUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dLV2VicGFnZVByZWZl
cmVuY2VzIGFsbG9jXSBpbml0XSk7CisgICAgRVhQRUNUX1RSVUUocHJlZmVyZW5jZXMuZ2V0KCku
YWxsb3dzQ29udGVudEphdmFTY3JpcHQpOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXInPC9zY3JpcHQ+IiBwcmVmZXJlbmNl
czpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlwdGlvbl0gY29udGFpbnNTdHJpbmc6QCJDYW4ndCBm
aW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0KaW5k
ZXggZGQ3OWM1ZGQwY2ZjYmIwYThjMDgyOTZmYWM2Mzc2ZTk3Yjc4YzE5Ny4uMDk3NmIzNmU1MTY1
YzRjNDZjN2QzODQxYzJiMzVmNjVmMDRmOTAxMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMubW0KQEAgLTIzOSwx
NSArMjM5LDE1IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFuZGxl
QXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVuCiBAZW5kCiAKIEBpbnRlcmZhY2Ug
V2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIDogVGVzdE5hdmlnYXRpb25EZWxlZ2F0
ZSA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPgotQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xp
Y2llcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIGlkIDxO
U1NlY3VyZUNvZGluZz4sIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKikpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llcykoV0tOYXZp
Z2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF4pKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpOwogQGVuZAogCiBAaW1w
bGVtZW50YXRpb24gV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlCiAKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczoo
V0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyB1c2VySW5mbzooaWQgPE5TU2VjdXJl
Q29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCistICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNl
czooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikp
ZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uV2l0aFdlYnNpdGVQb2xpY2llcykKLSAgICAgICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKG5hdmlnYXRpb25BY3Rpb24sIHByZWZlcmVuY2Vz
LCB1c2VySW5mbywgZGVjaXNpb25IYW5kbGVyKTsKKyAgICAgICAgX2RlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKG5hdmlnYXRpb25BY3Rpb24sIHByZWZl
cmVuY2VzLCBkZWNpc2lvbkhhbmRsZXIpOwogICAgIGVsc2UKICAgICAgICAgZGVjaXNpb25IYW5k
bGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBuaWwpOwogfQpAQCAtNjE2LDcgKzYx
Niw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNXaXRoQnJpZGdp
bmdDYXN0KQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vic2l0ZVBvbGljaWVzTmF2
aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZGlkSW52
b2tlRGVjaXNpb25IYW5kbGVyID0gZmFsc2U7Ci0gICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0
aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIGlkIDxOU1NlY3VyZUNvZGluZz4sIHZvaWQg
KF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgKikpIHsKKyAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewogICAgICAgICBhdXRvIHBvbGlj
aWVzID0gYWRvcHRXSyhXS1dlYnNpdGVQb2xpY2llc0NyZWF0ZSgpKTsKICAgICAgICAgZGVjaXNp
b25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCAoX19icmlkZ2UgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKilwb2xpY2llcy5nZXQoKSk7CiAgICAgICAgIGRpZEludm9rZURlY2lz
aW9uSGFuZGxlciA9IHRydWU7CkBAIC02MzUsNyArNjM1LDcgQEAgVEVTVChXZWJwYWdlUHJlZmVy
ZW5jZXMsIFdlYnNpdGVQb2xpY2llc1dpdGhVbmV4cGVjdGVkVHlwZSkKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogCiAgICAgX19ibG9jayBib29sIGRpZENhdGNoRXhjZXB0aW9uID0gZmFsc2U7Ci0g
ICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0
ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICos
IGlkIDxOU1NlY3VyZUNvZGluZz4sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAgICBbZGVsZWdhdGUg
c2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihX
S05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmRlY2lz
aW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNl
cyAqKSkgewogICAgICAgICBAdHJ5IHsKICAgICAgICAgICAgIGlkIGZha2VQb2xpY2llcyA9IEAi
SGVsbG8iOwogICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUFsbG93LCAoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilmYWtlUG9saWNpZXMpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaAppbmRl
eCAyMjMyMDFiY2JlZjljOWM3N2Q4NWMxZGQxZTg1ODg0MjZiNjJmNWZiLi5iNjQ3MjI5ZGNiODU5
OTc0NjA1YzdmYjMwOWQ4NWQyY2EwMzQ0ZTY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaApAQCAtMzEsNiArMzEsNyBAQAogQGlu
dGVyZmFjZSBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24pKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCB2b2lkICheKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3kpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
ICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcykoV0tOYXZp
Z2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF4pKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKShXS1dl
YlZpZXcgKiwgV0tOYXZpZ2F0aW9uICosIE5TRXJyb3IgKik7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgdm9pZCAoXmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKShXS1dlYlZpZXcg
KiwgV0tOYXZpZ2F0aW9uICopOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
aWRDb21taXROYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopOwpAQCAtNDEs
NiArNDIsNyBAQAogCiAtICh2b2lkKXdhaXRGb3JEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlv
bjsKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb247CistICh2b2lkKXdhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KXByZWZlcmVuY2VzOwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlv
bjsKIAogQGVuZApAQCAtNDgsNSArNTAsNiBAQAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFRlc3RX
ZWJLaXRBUElFeHRyYXMpCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRTdGFydFByb3Zpc2lvbmFs
TmF2aWdhdGlvbjsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb247Cist
ICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZClfdGVzdF93YWl0Rm9y
RGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRpb25VcGRhdGU7CiBAZW5kCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0K
aW5kZXggMzNlMjExYjQxZjRjN2ZjZGQ1ZmM2ZTRkMmQ4MWIzYjQ1OTVkMGI2NS4uYmRjNTE3NTdi
Mzk0YWY2MmNjNDBmNDExMzBiNTUwMmViN2Y3YjI5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQpAQCAtMzIsMTIgKzMyLDE2
IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlCiAKLS0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIKKy0g
KHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHByZWZlcmVu
Y2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24pCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRp
b25BY3Rpb24sIGRlY2lzaW9uSGFuZGxlcik7Ci0gICAgZWxzZQotICAgICAgICBkZWNpc2lvbkhh
bmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIGlmIChfZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcykKKyAgICAgICAgX2RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMobmF2aWdhdGlvbkFjdGlvbiwg
cHJlZmVyZW5jZXMsIGRlY2lzaW9uSGFuZGxlcik7CisgICAgZWxzZSBpZiAoX2RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24pIHsKKyAgICAgICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgXihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0
aW9uKSB7CisgICAgICAgICAgICBkZWNpc2lvbkhhbmRsZXIoYWN0aW9uLCBwcmVmZXJlbmNlcyk7
CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsKIH0KIAogLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihX
S05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCkBAIC0xMTIsNiArMTE2LDE5IEBAIC0gKHZvaWQpd2Fp
dEZvckRpZEZpbmlzaE5hdmlnYXRpb24KICAgICBzZWxmLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBu
aWw7CiB9CiAKKy0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5j
ZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBFWFBFQ1RfRkFM
U0Uoc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKTsK
KyAgICBFWFBFQ1RfVFJVRSghIXByZWZlcmVuY2VzKTsKKworICAgIHNlbGYuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IF4oV0tOYXZpZ2F0aW9uQWN0aW9u
ICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF5oYW5kbGVyKShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CisgICAgICAgIGhh
bmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2VzKTsKKyAgICB9
OworCisgICAgW3NlbGYgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworICAgIHNlbGYuZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9IG5pbDsKK30KKwog
LSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbgogewogICAgIEVYUEVD
VF9GQUxTRShzZWxmLmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24pOwpAQCAtMTUyLDYgKzE2
OSwxNyBAQCAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aG91dFBy
ZXNlbnRhdGlvblVwZGF0ZQogICAgIHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlID0gbmlsOwogfQog
CistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2Vz
OihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgRVhQRUNUX0ZBTFNF
KHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKKworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBz
ZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBb
bmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVu
Y2VzOnByZWZlcmVuY2VzXTsKKworICAgIHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlID0gbmlsOwor
fQorCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCiB7CiAgICAgRVhQ
RUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggZDhlNzVkYzNjMGRjNGI1YTQzNmYyZmZlY2I5NjY3
NzRlNjhjNTg5Zi4uYzE2MjBjZTRlMGI1YmE4ZTBlYTUwNmE0MGY4MDJkYmY2NGYwMjgzZCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTU0LDYgKzU0LDcg
QEAKIC0gKHZvaWQpc3luY2hyb25vdXNseUdvRm9yd2FyZDsKIC0gKHZvaWQpc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWw7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIGJhc2VVUkw6KE5TVVJMICopdXJsOworLSAo
dm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBwcmVmZXJl
bmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQpc3luY2hy
b25vdXNseUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwogLSAodm9pZClzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7CiAtIChCT09M
KV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihOU1N0cmluZyAqKWNvbW1hbmQgYXJn
dW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQ7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcubW0KaW5kZXggMjdhMjhhYTk4Y2E2YTlhMGFmOWUyMjc5OGI0NjJhMzk2NTNh
ZjRhNi4uNWNkMmRmNmIyNmU3MTEzYWJlOTk2MTAxZGJkMGEyNzhlZGU3MTZhYyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMTAxLDYgKzEwMSwxMiBA
QCAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sCiAg
ICAgW3NlbGYgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogfQogCistICh2b2lkKXN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVm
ZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgW3NlbGYgbG9hZEhUTUxTdHJpbmc6aHRtbCBi
YXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVVSTF0gVVJMQnlBcHBlbmRpbmdQ
YXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3NlbGYgX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNd
OworfQorCiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcg
KilwYWdlTmFtZQogewogICAgIFtzZWxmIGxvYWRUZXN0UGFnZU5hbWVkOnBhZ2VOYW1lXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390673</attachid>
            <date>2020-02-13 11:46:45 -0800</date>
            <delta_ts>2020-02-13 22:50:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200213114644.patch</filename>
            <type>text/plain</type>
            <size>40630</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1MDNhMDczODY0ZGI2
ODE0NjNjNGMxOTk5MGY5YWFlZDczMDE2NC4uZDc3YzgwYTEwNzkwZWJiYzYyM2UyYzM1MmNhZGYw
Mjk4ODUxOWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTEzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRNYXJrdXBFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKworICAgICAgICAqIGRvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIpOgorCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oOgorCiAyMDIwLTAyLTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBMaW5lQnJlYWtlciBzaG91bGQgbm90IGhvbGQgb24gdG8gdGhlIGxh
c3RXcmFwT3Bwb3J0dW5pdHkgaW5saW5lIGl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzE5NjQ3ZjExNDA2MDhi
ZDVlNGRmMDFmNGE5MDljNWU3MzJmN2NiOC4uMmUyODZlN2JlM2NmOGI3NGE2NWMxMjYxYjk0ZGNm
ZmY4MjVlZDY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMC0wMi0xMyAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250
ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgdXRpaXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRT
Y3JpcHRNYXJrdXBFbmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBh
bHNvIGRlcHJlY2F0ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVu
Y2UgYXMgaXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGlj
aWVzRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5o
OgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwOgorICAg
ICAgICAoQVBJOjpXZWJzaXRlUG9saWNpZXM6OmRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZVBvbGljaWVzLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2RlV2l0aENvZGVyOl0pOgor
ICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgamF2YVNjcmlwdEVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBzZXRKYXZhU2NyaXB0RW5hYmxlZDpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1dlYnBhZ2VQcmVmZXJlbmNl
cyBzZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgYWxsb3dzQ29udGVudEphdmFTY3JpcHRdKToKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNl
bnROYXZpZ2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNj
cmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2
aWdhdGlvbik6CisKIDIwMjAtMDItMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gLXVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludDpj
b21wbGV0aW9uSGFuZGxlcjogc2hvdWxkIHdvcmsgd2l0aG91dCByZXF1aXJpbmcgZmxvYXRpbmcg
Y3Vyc29yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1MTQyOTk5MTQ2YmQ5ZTMyYmM3OTE3
MjBjYWFmZmY0NWI2OWFlNGZjLi4xMjk1NjA0YmRiYjllZTAxNGJlNGRmMWU3YmNhMGJkZWFmZTlj
ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTY4MTIsNiArNjgxMiwxNyBAQCBEb2N1
bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRlcigpIGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlcjsK
IH0KIAorYm9vbCBEb2N1bWVudDo6c2NyaXB0TWFya3VwRW5hYmxlZCgpIGNvbnN0Cit7CisgICAg
aWYgKCFzZXR0aW5ncygpLnNjcmlwdE1hcmt1cEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFtX2ZyYW1lIHx8IG1fZnJhbWUtPmRvY3VtZW50KCkgIT0gdGhpcykK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpLnNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpID09IFNj
cmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlOworfQorCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1l
bnRGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNGJlZTJiYjZkMmVlNmNiZGY4Yzc5YmVhMGJhNWFjOTZh
Mjc2ZGU5Zi4uNDFkMDg1NDk0NjBkOGM4MWFmNTZkYzMwYzAzNjY2NWQxNTBlYjJmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTY0OCw2ICs2NDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB2aXN1
YWxseU9yZGVyZWQoKSBjb25zdCB7IHJldHVybiBtX3Zpc3VhbGx5T3JkZXJlZDsgfQogICAgIAog
ICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50TG9hZGVyKiBsb2FkZXIoKSBjb25zdDsKKyAgICBi
b29sIHNjcmlwdE1hcmt1cEVuYWJsZWQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEV4
Y2VwdGlvbk9yPFJlZlB0cjxXaW5kb3dQcm94eT4+IG9wZW5Gb3JCaW5kaW5ncyhET01XaW5kb3cm
IGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdERPTVdpbmRvdywgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZmVhdHVyZXMpOwogICAg
IFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPERvY3VtZW50Jj4gb3BlbkZvckJpbmRpbmdzKERv
Y3VtZW50KiByZXNwb25zaWJsZURvY3VtZW50LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAK
aW5kZXggOTUwMjhiYjIxNjJiZjdhN2Y2ZmJjZGU1Nzc4NTIwZDM1ZTg5YmRjMS4uZDEwZjAxODI4
YzFmZWFjYTljMThlZWZmOWI2NzRhOGY1ZGNhZGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQmIGRv
Y3VtZW50LCBQYXJzZXJDb24KICAgICBpZiAoIXBsdWdpbkNvbnRlbnRJc0FsbG93ZWQobV9wYXJz
ZXJDb250ZW50UG9saWN5KSkKICAgICAgICAgbV9wYXJzZXJDb250ZW50UG9saWN5ID0gYWxsb3dQ
bHVnaW5Db250ZW50KG1fcGFyc2VyQ29udGVudFBvbGljeSk7CiAKLSAgICBpZiAoc2NyaXB0aW5n
Q29udGVudElzQWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpICYmICFkb2N1bWVudC5zZXR0
aW5ncygpLnNjcmlwdE1hcmt1cEVuYWJsZWQoKSkKKyAgICBpZiAoc2NyaXB0aW5nQ29udGVudElz
QWxsb3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpICYmICFkb2N1bWVudC5zY3JpcHRNYXJrdXBF
bmFibGVkKCkpCiAgICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGljeSA9IGRpc2FsbG93U2NyaXB0
aW5nQ29udGVudChtX3BhcnNlckNvbnRlbnRQb2xpY3kpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGU5ZGViZTFiODdmNWRhMTE2OGIzY2Y5NjY2
MDA2NTUxYjNiZTM0NTQuLmI1MWVmN2RlMzM0OWExZjI2ZTZiZDg1ZTJjZDAxYzJiNTY0MWNmYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNzUsNiAr
Mzc1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAg
ICAgdmlydHVhbCBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICNlbmRpZgorCisgICAgdmlydHVhbCBTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0
TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gU2Ny
aXB0TWFya3VwUG9saWN5OjpFbmFibGU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IDhkODYyOGE3NDI3
ZTI2MDk4ZTg1N2EwYTJhZjMyZTg5MzZlYjQ2MDcuLjQ5ZDI0YWE3N2RhYTgyNDgxYTJjZjE3YzUx
ZGQzNTE0YzMxOTUxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMu
aApAQCAtMjI3LDYgKzIyNywxMSBAQCBlbnVtIGNsYXNzIExvYWRDb21wbGV0aW9uVHlwZSA6IHVp
bnQ4X3QgewogICAgIENhbmNlbAogfTsKIAorZW51bSBjbGFzcyBTY3JpcHRNYXJrdXBQb2xpY3kg
OiB1aW50OF90IHsKKyAgICBFbmFibGUsCisgICAgRGlzYWJsZSwKK307CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0yNjYsNCArMjcxLDEyIEBAIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeT4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OlNjcmlwdE1hcmt1cFBvbGljeT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6
U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUsCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1
cFBvbGljeTo6RGlzYWJsZQorICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKaW5kZXggOTQ4ZjJhNWFi
YjgyYTEyOWU0NjE5ZDMyNjIzNGMwZjEwNjg5NjhiNy4uNTI3NjAyY2ZjMDZkZDgxOTk3MzJiZWFk
OGUwYWI1OTVjNDA5NDcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0
ZVBvbGljaWVzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGlj
aWVzRGF0YS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBXZWJzaXRlUG9saWNpZXNEYXRhOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2ltdWxh
dGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTsKICAgICBlbmNvZGVyIDw8IGxlZ2FjeU92ZXJm
bG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k7CiAgICAgZW5jb2RlciA8PCBhbGxvd0NvbnRlbnRDaGFu
Z2VPYnNlcnZlclF1aXJrOworICAgIGVuY29kZXIgPDwgc2NyaXB0TWFya3VwUG9saWN5OwogfQog
CiBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTM0LDcgKzEzNSwxMiBAQCBPcHRpb25hbDxX
ZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyKQogICAgIGRlY29kZXIgPj4gYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJR
dWlyazsKICAgICBpZiAoIWFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmspCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpTY3Jp
cHRNYXJrdXBQb2xpY3k+IHNjcmlwdE1hcmt1cFBvbGljeTsKKyAgICBkZWNvZGVyID4+IHNjcmlw
dE1hcmt1cFBvbGljeTsKKyAgICBpZiAoIXNjcmlwdE1hcmt1cFBvbGljeSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7IHsKICAgICAgICAgV1RGTW92ZSgqY29u
dGVudEJsb2NrZXJzRW5hYmxlZCksCiAgICAgICAgIFdURk1vdmUoKmFsbG93ZWRBdXRvcGxheVF1
aXJrcyksCkBAIC0xNTMsNiArMTU5LDcgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4g
V2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICAg
ICAgV1RGTW92ZSgqc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeSksCiAgICAgICAg
IFdURk1vdmUoKmxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kpLAogICAgICAgICBX
VEZNb3ZlKCphbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKSwKKyAgICAgICAgV1RGTW92
ZSgqc2NyaXB0TWFya3VwUG9saWN5KSwKICAgICB9IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAppbmRleCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2NiMjBm
NWY3MzNkMzczYTQyMmY0Li4yOTQ3MDdiM2U4YWFmNThhMTVlODYwMDkxZWQyZDhlMjdjMjYxZWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQ
b2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0N1c3RvbUhlYWRlckZpZWxkcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25TZXQuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC02OCw2ICs2OSw3IEBAIHN0cnVjdCBXZWJz
aXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRj
aFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHsgV2Vic2l0ZVNpbXVs
YXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBXZWJzaXRlTGVn
YWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1Rv
dWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k6OkRl
ZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgeyBmYWxz
ZSB9OworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3kg
eyBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkVuYWJsZSB9OwogCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKaW5kZXggZTcxZTNiMzBiOTM1ZGEw
YWRjNzY2YzM0YzU3NmMzMTRhMWQxOTZiOS4uMGFiMmVlZjZiNWE2MDUxN2QxMzEzYTUwMGI0Y2E0
NjVkZTFkZTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVQb2xpY2llcy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBXZWJLaXQ6OldlYnNpdGVQb2xp
Y2llc0RhdGEgV2Vic2l0ZVBvbGljaWVzOjpkYXRhKCkKICAgICAgICAgbV9zaW11bGF0ZWRNb3Vz
ZUV2ZW50c0Rpc3BhdGNoUG9saWN5LAogICAgICAgICBtX2xlZ2FjeU92ZXJmbG93U2Nyb2xsaW5n
VG91Y2hQb2xpY3ksCiAgICAgICAgIG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyaywK
KyAgICAgICAgbV9zY3JpcHRNYXJrdXBQb2xpY3ksIAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAppbmRleCA5NDYzZTUz
OTRmNTFjYzcyZDc2MDg5MWNkODQ0NTEwMTE5ODllYTYwLi43NmNlM2Y4Nzg1MzlhYjdiNWUwODNm
ODQzZThkMzM5MTA0NWM1ODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVdlYnNpdGVQb2xpY2llcy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0
ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0N1c3RvbUhlYWRlckZpZWxkcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmg+CiAjaW5jbHVk
ZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExNiw2ICsx
MTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJr
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOyB9CiAg
ICAgdm9pZCBzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKGJvb2wgYWxsb3cpIHsg
bV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrID0gYWxsb3c7IH0KIAorICAgIFdlYkNv
cmU6OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3koKSBjb25zdCB7IHJldHVy
biBtX3NjcmlwdE1hcmt1cFBvbGljeTsgfQorICAgIHZvaWQgc2V0U2NyaXB0TWFya3VwUG9saWN5
KFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBwb2xpY3kpIHsgbV9zY3JpcHRNYXJrdXBQb2xp
Y3kgPSBwb2xpY3k7IH0KKwogcHJpdmF0ZToKICAgICBXZWJzaXRlUG9saWNpZXMoYm9vbCBjb250
ZW50QmxvY2tlcnNFbmFibGVkLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlRdWly
az4sIFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UG9saWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhl
YWRlckZpZWxkPiYmLCBWZWN0b3I8V2ViQ29yZTo6Q3VzdG9tSGVhZGVyRmllbGRzPiYmLCBXZWJL
aXQ6OldlYnNpdGVQb3BVcFBvbGljeSwgUmVmUHRyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZT4m
Jik7CiAKQEAgLTE0MCw2ICsxNDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbGxvd1NpdGVT
cGVjaWZpY1F1aXJrc1RvT3ZlcnJpZGVDb250ZW50TW9kZSB7IGZhbHNlIH07CiAgICAgV1RGOjpT
dHJpbmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50OwogICAgIGJvb2wgbV9h
bGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrIHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpT
Y3JpcHRNYXJrdXBQb2xpY3kgbV9zY3JpcHRNYXJrdXBQb2xpY3kgeyBXZWJDb3JlOjpTY3JpcHRN
YXJrdXBQb2xpY3k6OkVuYWJsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAppbmRleCA1
MGE4MmY3ZDgyYjE3MjU4MmE0YzEwNWFhZjk3ZGE3NDk0OWUwODVjLi44OTY4NmRhZWRjYjliOTFk
NjUyY2M0MWRkZWRmM2MwYmVjZmNkNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKQEAgLTQwLDExICs0MCw2IEBAIFdLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogICovCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQ0dGbG9hdCBtaW5pbXVtRm9udFNpemU7CiAKLS8qISBAYWJzdHJhY3QgQSBCb29sZWFu
IHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGlzIGVuYWJsZWQuCi0gQGRpc2N1
c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTLgotICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBqYXZhU2NyaXB0RW5hYmxlZDsKLQogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFs
dWUgaW5kaWNhdGluZyB3aGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4KICB3aW5kb3dzIHdpdGhv
dXQgdXNlciBpbnRlcmFjdGlvbi4KICBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBO
TyBpbiBpT1MgYW5kIFlFUyBpbiBPUyBYLgpAQCAtNzEsNyArNjYsMTEgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAKIEBpbnRlcmZhY2UgV0tQcmVmZXJlbmNl
cyAoV0tEZXByZWNhdGVkKQogCisjaWYgIVRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGphdmFFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJKYXZhIGlzIG5vIGxv
bmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMCwgMTAuMTUpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHBsdWdJbnNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJQbHVnLWlucyBhcmUg
bm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEwLCAxMC4xNSkpOworI2VuZGlmCisKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVkIFdLX0FQSV9ERVBSRUNB
VEVEKCJVc2UgV0tXZWJQYWdlUHJlZmVyZW5jZXMuYWxsb3dzSmF2YVNjcmlwdE1hcmt1cCB0byBk
aXNhYmxlIEphdmFTY3JpcHQgbWFya3VwIG9uIGEgcGVyLW5hdmlnYXRpb24gYmFzaXMiLCBtYWNv
cygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpp
bmRleCA1NDIxOGE0ZDljMGY5YWRiNjE0MjkyZDJmMmFlYmMyYjM1M2FhMjg4Li4xNDIwMTFmYmIz
ZTM2ZTZiYzliZmY1MTgzZjZhZmI1NmM3M2M0ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtNjUsOSArNjUsMTIgQEAg
KyAoQk9PTClzdXBwb3J0c1NlY3VyZUNvZGluZwogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5T
Q29kZXIgKiljb2RlcgogewogICAgIFtjb2RlciBlbmNvZGVEb3VibGU6c2VsZi5taW5pbXVtRm9u
dFNpemUgZm9yS2V5OkAibWluaW11bUZvbnRTaXplIl07Ci0gICAgW2NvZGVyIGVuY29kZUJvb2w6
c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCBmb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOwogICAg
IFtjb2RlciBlbmNvZGVCb29sOnNlbGYuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseSBmb3JLZXk6QCJqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5Il07CiAK
K0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgW2NvZGVyIGVuY29kZUJv
b2w6c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCBmb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOwor
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMpCiBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtjb2RlciBlbmNvZGVCb29s
OnNlbGYuamF2YUVuYWJsZWQgZm9yS2V5OkAiamF2YUVuYWJsZWQiXTsKQEAgLTgzLDkgKzg2LDEy
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKICAgICAg
ICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYubWluaW11bUZvbnRTaXplID0gW2NvZGVyIGRlY29k
ZURvdWJsZUZvcktleTpAIm1pbmltdW1Gb250U2l6ZSJdOwotICAgIHNlbGYuamF2YVNjcmlwdEVu
YWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CiAg
ICAgc2VsZi5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gW2NvZGVyIGRl
Y29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5Il07
CiAKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgc2VsZi5qYXZhU2Ny
aXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdEVuYWJsZWQi
XTsKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAjaWYgUExBVEZPUk0oTUFD
KQogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzZWxmLmphdmFFbmFi
bGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhRW5hYmxlZCJdOwpAQCAtMTEyLDE2
ICsxMTgsNiBAQCAtICh2b2lkKXNldE1pbmltdW1Gb250U2l6ZTooQ0dGbG9hdCltaW5pbXVtRm9u
dFNpemUKICAgICBfcHJlZmVyZW5jZXMtPnNldE1pbmltdW1Gb250U2l6ZShtaW5pbXVtRm9udFNp
emUpOwogfQogCi0tIChCT09MKWphdmFTY3JpcHRFbmFibGVkCi17Ci0gICAgcmV0dXJuIF9wcmVm
ZXJlbmNlcy0+amF2YVNjcmlwdEVuYWJsZWQoKTsKLX0KLQotLSAodm9pZClzZXRKYXZhU2NyaXB0
RW5hYmxlZDooQk9PTClqYXZhU2NyaXB0RW5hYmxlZAotewotICAgIF9wcmVmZXJlbmNlcy0+c2V0
SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOwotfQotCiAtICh2b2lkKXNldEZy
YXVkdWxlbnRXZWJzaXRlV2FybmluZ0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAogewogICAgIF9wcmVm
ZXJlbmNlcy0+c2V0U2FmZUJyb3dzaW5nRW5hYmxlZChlbmFibGVkKTsKQEAgLTE0MzIsMTAgKzE0
MjgsMTEgQEAgLSAoQk9PTClfZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAogQGVuZAog
Ci0jaWYgIVRBUkdFVF9PU19JUEhPTkUKIAogQGltcGxlbWVudGF0aW9uIFdLUHJlZmVyZW5jZXMg
KFdLRGVwcmVjYXRlZCkKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCisKIC0gKEJPT0wpamF2YUVu
YWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhRW5hYmxlZCgpOwpAQCAtMTQ1
Niw2ICsxNDUzLDE3IEBAIC0gKHZvaWQpc2V0UGx1Z0luc0VuYWJsZWQ6KEJPT0wpcGx1Z0luc0Vu
YWJsZWQKICAgICBfcHJlZmVyZW5jZXMtPnNldFBsdWdpbnNFbmFibGVkKHBsdWdJbnNFbmFibGVk
KTsKIH0KIAorI2VuZGlmCisKKy0gKEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKK3sKKyAgICByZXR1
cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5hYmxlZCgpOworfQorCistICh2b2lkKXNldEph
dmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3JpcHRFbmFibGVkCit7CisgICAgX3ByZWZlcmVu
Y2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxlZCk7Cit9CisKIEBlbmQK
IAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCmluZGV4IDI3NDdlODEyOGYwM2YwMmRiZWVmYjVjNWZj
OTZmYzU3N2YyMTdhZDYuLmNhYzE5NTZmNDBlOTVjNjA2NmFmYWM4NzAwZGEzODEwYTE0NTFiN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQ
cmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnBhZ2VQcmVmZXJlbmNlcy5oCkBAIC01Nyw0ICs1NywxOSBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0Nv
bnRlbnRNb2RlIHByZWZlcnJlZENvbnRlbnRNb2RlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjAp
KTsKIAorLyogQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2
YVNjcmlwdCBmcm9tIHdlYiBjb250ZW50IGlzIGVuYWJsZWQKKyBAZGlzY3Vzc2lvbiBJZiB0aGlz
IHZhbHVlIGlzIHNldCB0byBOTyB0aGVuIEphdmFTY3JpcHQgcmVmZXJlbmNlZCBieSB0aGUgd2Vi
IGNvbnRlbnQgd2lsbCBub3QgZXhlY3V0ZS4KKyBUaGlzIGluY2x1ZGVzIEphdmFTY3JpcHQgZm91
bmQgaW4gaW5saW5lIDxzY3JpcHQ+IGVsZW1lbnRzLCByZWZlcmVuY2VkIGJ5IGV4dGVybmFsIEph
dmFTY3JpcHQgcmVzb3VyY2VzLAorICJqYXZhc2NyaXB0OiIgVVJMcywgYW5kIGFsbCBvdGhlciBm
b3Jtcy4KKworIEV2ZW4gaWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gTk8geW91ciBhcHBsaWNhdGlv
biBjYW4gc3RpbGwgZXhlY3V0ZSBKYXZhU2NyaXB0IHVzaW5nOgorIC0gW1dLV2ViVmlldyBldmFs
dXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFuZGxlcjpdCisgLSBbV0tXZWJWaWV3IGV2YWx1dGVK
YXZhU2NyaXB0OmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKyAtIFtXS1dlYlZp
ZXcgY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6aW5Db250ZW50V29ybGQ6Y29tcGxldGlv
bkhhbmRsZXI6XQorIC0gV0tVc2VyU2NyaXB0cworCisgVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVT
LgorKi8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnBhZ2VQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQppbmRleCA5OWYwYzBhODBhOGJlNDUzMjQzNTZiNjM5NjEw
OWYzNmY0Y2ZkYzc0Li5hMjBlYTFlYjZhMDY4ZTVhNmYzNjM2Y2FmOTY5ZTIxMmU5MWVhNjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJl
ZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
cGFnZVByZWZlcmVuY2VzLm1tCkBAIC0zMzEsNiArMzMxLDIxIEBAIC0gKEFQSTo6T2JqZWN0Jilf
YXBpT2JqZWN0CiAgICAgcmV0dXJuICpfd2Vic2l0ZVBvbGljaWVzOwogfQogCistICh2b2lkKXNl
dEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OihCT09MKWFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Cit7
CisgICAgX3dlYnNpdGVQb2xpY2llcy0+c2V0U2NyaXB0TWFya3VwUG9saWN5KGFsbG93c0NvbnRl
bnRKYXZhU2NyaXB0ID8gV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgOiBXZWJD
b3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkRpc2FibGUpOworfQorCistIChCT09MKWFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0Cit7CisgICAgc3dpdGNoIChfd2Vic2l0ZVBvbGljaWVzLT5zY3JpcHRN
YXJrdXBQb2xpY3koKSkgeworICAgIGNhc2UgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpF
bmFibGU6CisgICAgICAgIHJldHVybiBZRVM7CisgICAgY2FzZSBXZWJDb3JlOjpTY3JpcHRNYXJr
dXBQb2xpY3k6OkRpc2FibGU6CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9Cit9CisKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogCiAtICh2b2lkKXNldFByZWZlcnJlZENvbnRlbnRNb2RlOihX
S0NvbnRlbnRNb2RlKWNvbnRlbnRNb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBmMWJkNzFhMjQ1MTdjNDc5YTEzZjZkODIwOWZjOGU5YjE0OTU0ZmE2Li4xNTA1ODk2YjM3
MjI1MGQxNDMwNDJkNDRkMjQ1ZGIyMjk5NzY0MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKQEAgLTg5NCw2ICs4OTQsMTIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG8KICAg
ICBXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBseVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSh3ZWJz
aXRlUG9saWNpZXMpLCAqZG9jdW1lbnRMb2FkZXIpOwogfQogCitXZWJDb3JlOjpTY3JpcHRNYXJr
dXBQb2xpY3kgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0
UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0Cit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJh
bWUgPyBtX2ZyYW1lLT5wYWdlKCkgOiBudWxscHRyOworICAgIHJldHVybiB3ZWJQYWdlID8gd2Vi
UGFnZS0+c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgOiBXZWJD
b3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkRpc2FibGU7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAg
Rm9ybVN0YXRlKiBmb3JtU3RhdGUsIFBvbGljeURlY2lzaW9uTW9kZSBwb2xpY3lEZWNpc2lvbk1v
ZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgRnJh
bWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA5YWE1YTA1NDkyNDNhODM5NDBlNWE5NTBkZGJjODE3YTQ0YjUwOTQzLi5mYWIxNjk2
N2EyYWNjOWE0ZTc0OTlkZTQ0YzRhMWI0Mjk0NmNmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtNjIsNyArNjIsOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2b2lkIHNldEhh
c0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKEZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzSWRl
bnRpZmllciYmKTsKICNlbmRpZgotICAgIAorCisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9s
aWN5IHNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0IGZp
bmFsOworCiBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4
IGY2Yzk4NGUzMDVlYzdmN2RhZWQ5N2Y2ODZlODlhMjdmYjkwYmI0N2UuLmE4M2VhNmI3NTNlODUw
Y2MzN2NkMGFmZWE4ZDc4MzBiODQxMTUyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTI2NSw4ICsyNjUsMTEgQEAgdm9pZCBXZWJGcmFt
ZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6
OlBvbGljeUNoZWMKIAogICAgIGludmFsaWRhdGVQb2xpY3lMaXN0ZW5lcigpOwogCi0gICAgaWYg
KGZvck5hdmlnYXRpb25BY3Rpb24gJiYgbV9mcmFtZUxvYWRlckNsaWVudCAmJiB3ZWJzaXRlUG9s
aWNpZXMpCisgICAgaWYgKGZvck5hdmlnYXRpb25BY3Rpb24gJiYgbV9mcmFtZUxvYWRlckNsaWVu
dCAmJiB3ZWJzaXRlUG9saWNpZXMpIHsKKyAgICAgICAgQVNTRVJUKHBhZ2UoKSk7CisgICAgICAg
IHBhZ2UoKS0+c2V0U2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKHdl
YnNpdGVQb2xpY2llcy0+c2NyaXB0TWFya3VwUG9saWN5KTsKICAgICAgICAgbV9mcmFtZUxvYWRl
ckNsaWVudC0+YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUoKndlYnNpdGVQb2xpY2llcykp
OworICAgIH0KIAogICAgIG1fcG9saWN5RG93bmxvYWRJRCA9IGRvd25sb2FkSUQ7CiAgICAgaWYg
KG5hdmlnYXRpb25JRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBlMDI4NGE4MTgyNDFkNzEzMGNhZDI3NTNkZGI4ODAwMDhmYTk5NTVhLi45
YmY5MDFlNzZiZWM1NTliYzM0MTc3ZDhlNTM3ZjFjOWE2OTMxZmUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjI2MCw2ICs2MjYwLDcgQEAg
dm9pZCBXZWJQYWdlOjp1cGRhdGVXZWJzaXRlUG9saWNpZXMoV2Vic2l0ZVBvbGljaWVzRGF0YSYm
IHdlYnNpdGVQb2xpY2llcykKICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQogICAgICAgICByZXR1
cm47CiAKKyAgICBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiA9
IHdlYnNpdGVQb2xpY2llcy5zY3JpcHRNYXJrdXBQb2xpY3k7CiAgICAgV2Vic2l0ZVBvbGljaWVz
RGF0YTo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgKmRv
Y3VtZW50TG9hZGVyKTsKICAgICAKICNpZiBFTkFCTEUoVklERU8pCkBAIC02MzE1LDYgKzYzMTYs
NyBAQCBSZWY8RG9jdW1lbnRMb2FkZXI+IFdlYlBhZ2U6OmNyZWF0ZURvY3VtZW50TG9hZGVyKEZy
YW1lJiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZQogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1f
cGVuZGluZ1dlYnNpdGVQb2xpY2llcykgeworICAgICAgICAgICAgbV9zY3JpcHRNYXJrdXBQb2xp
Y3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24gPSBtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMtPnNj
cmlwdE1hcmt1cFBvbGljeTsKICAgICAgICAgICAgIFdlYnNpdGVQb2xpY2llc0RhdGE6OmFwcGx5
VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKCptX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMpLCBkb2N1
bWVudExvYWRlcik7CiAgICAgICAgICAgICBtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMgPSBXVEY6
Om51bGxvcHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBiZGFiODFiMjljZmYyMDFlYWExM2JmM2Q2NGQ5MjM0ZTAzYTgxYzVjLi5h
OWE1ZjAxMWMwNDhkYzgzNzdkZGFkZjU1MDM5ZmViM2Q2MzBjNGEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjc1LDcgKzEyNzUsMTAgQEAgcHVi
bGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVk
aWFUeXBlKGNvbnN0IFN0cmluZyYpOwotICAgIAorCisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3Vw
UG9saWN5IHNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fc2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uOyB9
CisgICAgdm9pZCBzZXRTY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24o
V2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHBvbGljeSkgeyBtX3NjcmlwdE1hcmt1cFBvbGlj
eUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiA9IHBvbGljeTsgfQorCiBwcml2YXRlOgogICAgIFdl
YlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
Jik7CiAKQEAgLTIwNDgsNiArMjA1MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFN0cmlu
ZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5
IG1fc2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uIHsgV2ViQ29yZTo6
U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgfTsKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBT
dHJpbmcgbV90aGVtZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggYjk5YTJiNDk5ZjhjNWI0YjcxNTEwNzU2OTBiZjcxOGQ3ZTZmYWM3OS4u
OGJiZTVlZDJiZjE4ZTVjNzhiNTkxMGNmOGY4NTYwOGI2MGY0NDQ0YiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIw
LTAyLTEzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBv
c2UgImFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vi
Vmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tOgorICAgICAg
ICAoLVtXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAoLVtXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdh
dGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczp1
c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpw
cmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQ
cmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpwcmVmZXJlbmNlczpdKToKKwog
MjAyMC0wMi0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgVGVzdFdlYktpdEFQSTogUmUtYmFzZWxpbmUgRG9jdW1lbnRFZGl0aW5nQ29udGV4dCBmb3Ig
Q2F0YWx5c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXggZmMw
MzM3NTdlNDQ4MWMwNmYxOGZmMTk3NjdlMDNmZDIxM2YyMWYwNy4uNTM3N2JiYTNjN2RjZmYzYTY0
YjI0NjA0NjA0OTBiNThlNmEyODIzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFT
Y3JpcHQubW0KQEAgLTI2LDEzICsyNiwxNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUQ1BTZXJ2ZXIuaCIKICNpbXBvcnQg
IlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRl
c3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFdvcmxkLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tFcnJvclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTI1
NCwzICsyNTgsMTE0IEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRJbkF0dGFjaG1l
bnRzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoV2Vi
S2l0LCBBbGxvd3NDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2Vi
Vmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsK
KworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAq
ZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJV
RShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAgICAgICBFWFBF
Q1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKwor
ICAgIFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMgPSBhZG9wdE5T
KFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBFQ1RfVFJVRShw
cmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAgcHJlZmVyZW5j
ZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0
PiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6
XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3Vs
dCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3Ry
aW5nOkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsK
KyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgVGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc2NyaXB0IiwgeyAi
dmFyIGZvbyA9ICdiYXInIiB9IH0KKyAgICB9KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxv
d3NDb250ZW50SmF2YVNjcmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0
cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZl
cmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVz
dWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAg
ICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7
CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0pOwor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3Jp
cHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9z
Y3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVuY2Vz
LmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShb
W2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6
IGZvbyJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRl
bnRKYXZhU2NyaXB0ID0gWUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIjxpZnJhbWUgc3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48L2lmcmFtZT4i
IHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBdLmZvbyIgY29t
cGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVY
UEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNs
YXNzOltOU051bWJlciBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0Vx
dWFsVG9OdW1iZXI6QDFdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFs
bG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZvbyA9IDEnPjwv
aWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5mcmFtZXNbMF0u
Zm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworfQorCitURVNUKFdlYktpdCwgU1BJSmF2YXNjcmlwdE1hcmt1cFZzQVBJQ29u
dGVudEphdmFTY3JpcHQpCit7CisgICAgLy8gVGhlcmUncyBub3QgYSBkeW5hbWljYWxseSBjb25m
aWd1cmF0aW9uIHNldHRpbmcgZm9yIGphdmFzY3JpcHQgbWFya3VwLAorICAgIC8vIGJ1dCBpdCBj
YW4gYmUgY29uZmlndXJlZCBhdCBXS1dlYlZpZXcgY3JlYXRpb24gdGltZS4KKyAgICBXS1dlYlZp
ZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1tbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIGNvbmZpZ3VyYXRpb24uX2FsbG93c0ph
dmFTY3JpcHRNYXJrdXAgPSBOTzsKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworCisgICAg
Ly8gVmVyaWZ5IHRoYXQgdGhlIGZvbGxvd2luZyBKUyBkb2VzIG5vdCBleGVjdXRlLgorICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdi
YXInPC9zY3JpcHQ+Il07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAi
Q2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gVHJ5IHRv
IGV4cGxpY2l0bHkgZW5hYmxlIHNjcmlwdCBtYXJrdXAgdXNpbmcgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMsIGJ1dCB2ZXJpZnkgaXQgc2hvdWxkIHN0aWxsIGZhaWwgYmVjYXVzZQorICAgIC8vIG9mIHRo
ZSBhYm92ZSBjb25maWd1cmF0aW9uIHNldHRpbmcuCisgICAgUmV0YWluUHRyPFdLV2VicGFnZVBy
ZWZlcmVuY2VzPiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBh
bGxvY10gaW5pdF0pOworICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6cHJlZmVy
ZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9U
UlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmluZCB2YXJp
YWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IGRkNzlj
NWRkMGNmY2JiMGE4YzA4Mjk2ZmFjNjM3NmU5N2I3OGMxOTcuLjA5NzZiMzZlNTE2NWM0YzQ2Yzdk
Mzg0MWMyYjM1ZjY1ZjA0ZjkwMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCkBAIC0yMzksMTUgKzIzOSwx
NSBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9wbGF5
RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbgogQGVuZAogCiBAaW50ZXJmYWNlIFdlYnNpdGVQ
b2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSA6IFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
ICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMpKFdL
TmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1cmVD
b2Rpbmc+LCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZl
cmVuY2VzICopKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMpKFdLTmF2aWdhdGlvbkFj
dGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYnNpdGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdL
TmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2VicGFn
ZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4p
dXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9u
SGFuZGxlcgogewogICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhX
ZWJzaXRlUG9saWNpZXMpCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
V2l0aFdlYnNpdGVQb2xpY2llcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywgdXNlcklu
Zm8sIGRlY2lzaW9uSGFuZGxlcik7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywg
ZGVjaXNpb25IYW5kbGVyKTsKICAgICBlbHNlCiAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgbmlsKTsKIH0KQEAgLTYxNiw3ICs2MTYsNyBAQCBU
RVNUKFdlYnBhZ2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzV2l0aEJyaWRnaW5nQ2FzdCkK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xpY2llc05hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgX19ibG9jayBib29sIGRpZEludm9rZURlY2lz
aW9uSGFuZGxlciA9IGZhbHNlOwotICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1cmVDb2Rpbmc+LCB2b2lkICheZGVjaXNp
b25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2Vz
ICopKSB7CisgICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25X
aXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZl
cmVuY2VzICosIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKICAgICAgICAgYXV0byBwb2xpY2llcyA9IGFk
b3B0V0soV0tXZWJzaXRlUG9saWNpZXNDcmVhdGUoKSk7CiAgICAgICAgIGRlY2lzaW9uSGFuZGxl
cihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgKF9fYnJpZGdlIFdLV2VicGFnZVByZWZl
cmVuY2VzICopcG9saWNpZXMuZ2V0KCkpOwogICAgICAgICBkaWRJbnZva2VEZWNpc2lvbkhhbmRs
ZXIgPSB0cnVlOwpAQCAtNjM1LDcgKzYzNSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBX
ZWJzaXRlUG9saWNpZXNXaXRoVW5leHBlY3RlZFR5cGUpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
IAogICAgIF9fYmxvY2sgYm9vbCBkaWRDYXRjaEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIFtkZWxl
Z2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2ll
czpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNT
ZWN1cmVDb2Rpbmc+LCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CisgICAgW2RlbGVnYXRlIHNldERlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0
aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF5kZWNpc2lvbkhhbmRs
ZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsK
ICAgICAgICAgQHRyeSB7CiAgICAgICAgICAgICBpZCBmYWtlUG9saWNpZXMgPSBAIkhlbGxvIjsK
ICAgICAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxv
dywgKFdLV2VicGFnZVByZWZlcmVuY2VzICopZmFrZVBvbGljaWVzKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKaW5kZXggMjIzMjAx
YmNiZWY5YzljNzdkODVjMWRkMWU4NTg4NDI2YjYyZjVmYi4uYjY0NzIyOWRjYjg1OTk3NDYwNWM3
ZmIzMDlkODVkMmNhMDM0NGU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTMxLDYgKzMxLDcgQEAKIEBpbnRlcmZhY2Ug
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4K
IAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKShXS05hdmlnYXRpb25BY3Rpb24gKiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpKFdLTmF2aWdhdGlvbkFj
dGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSB2b2lkICheZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tXZWJWaWV3ICos
IFdLTmF2aWdhdGlvbiAqLCBOU0Vycm9yICopOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IHZvaWQgKF5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdLTmF2
aWdhdGlvbiAqKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkQ29tbWl0
TmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKTsKQEAgLTQxLDYgKzQyLDcg
QEAKIAogLSAodm9pZCl3YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb247CiAtICh2
b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNo
TmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJl
bmNlczsKIC0gKHZvaWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb247CiAKIEBl
bmQKQEAgLTQ4LDUgKzUwLDYgQEAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChUZXN0V2ViS2l0QVBJ
RXh0cmFzKQogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRp
b247CiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9pZClf
dGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdl
UHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlz
aE5hdmlnYXRpb25XaXRob3V0UHJlc2VudGF0aW9uVXBkYXRlOwogQGVuZApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCmluZGV4IDMz
ZTIxMWI0MWY0YzdmY2RkNWZjNmU0ZDJkODFiM2I0NTk1ZDBiNjUuLmJkYzUxNzU3YjM5NGFmNjJj
YzQwZjQxMTMwYjU1MDJlYjdmN2IyOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KQEAgLTMyLDEyICszMiwxNiBAQAogCiBA
aW1wbGVtZW50YXRpb24gVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZQogCi0tICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tO
YXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKXdl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4p
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNp
b25IYW5kbGVyCiB7Ci0gICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKQot
ICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0aW9u
LCBkZWNpc2lvbkhhbmRsZXIpOwotICAgIGVsc2UKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICBpZiAoX2RlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpCisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKG5hdmlnYXRpb25BY3Rpb24sIHByZWZlcmVu
Y2VzLCBkZWNpc2lvbkhhbmRsZXIpOworICAgIGVsc2UgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKSB7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KG5hdmlnYXRpb25BY3Rpb24sIF4oV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvbikgewor
ICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyKGFjdGlvbiwgcHJlZmVyZW5jZXMpOworICAgICAg
ICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0
aW9uICopbmF2aWdhdGlvbgpAQCAtMTEyLDYgKzExNiwxOSBAQCAtICh2b2lkKXdhaXRGb3JEaWRG
aW5pc2hOYXZpZ2F0aW9uCiAgICAgc2VsZi5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gbmlsOwogfQog
CistICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgRVhQRUNUX0ZBTFNFKHNlbGYu
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyk7CisgICAgRVhQ
RUNUX1RSVUUoISFwcmVmZXJlbmNlcyk7CisKKyAgICBzZWxmLmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9u
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheaGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgICAgICBoYW5kbGVyKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CisgICAgfTsKKworICAg
IFtzZWxmIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBzZWxmLmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBuaWw7Cit9CisKIC0gKHZvaWQp
d2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24KIHsKICAgICBFWFBFQ1RfRkFMU0Uo
c2VsZi5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKTsKQEAgLTE1Miw2ICsxNjksMTcgQEAg
LSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRp
b25VcGRhdGUKICAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKIH0KIAorLSAodm9p
ZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVYUEVDVF9GQUxTRShzZWxmLm5h
dmlnYXRpb25EZWxlZ2F0ZSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgc2VsZi5uYXZp
Z2F0aW9uRGVsZWdhdGUgPSBuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgW25hdmlnYXRp
b25EZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpwcmVm
ZXJlbmNlc107CisKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKK30KKwogLSAo
dm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogewogICAgIEVYUEVDVF9GQUxT
RShzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5oCmluZGV4IGQ4ZTc1ZGMzYzBkYzRiNWE0MzZmMmZmZWNiOTY2Nzc0ZTY4YzU4
OWYuLmMxNjIwY2U0ZTBiNWJhOGUwZWE1MDZhNDBmODAyZGJmNjRmMDI4M2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01NCw2ICs1NCw3IEBACiAtICh2
b2lkKXN5bmNocm9ub3VzbHlHb0ZvcndhcmQ7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzooTlNTdHJpbmcgKilodG1sOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6KE5TU3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVybDsKKy0gKHZvaWQpc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgcHJlZmVyZW5jZXM6KFdL
V2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlM
b2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIC0gKHZvaWQpc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwogLSAoQk9PTClfc3luY2hy
b25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21tYW5kIGFyZ3VtZW50OihO
U1N0cmluZyAqKWFyZ3VtZW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3Lm1tCmluZGV4IGNhYmIyYzM3M2UyYTQzZTJiOWE1MjNlMzkxZGY5YjhiNjgxZTgxOGUuLjM1
NjAwYjcxNWVlZTBlMzk4ZDczYjViZDFjZmI1ZDhkOTUzZDc1YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTEyMiw2ICsxMjIsMTIgQEAgLSAodm9p
ZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbAogICAgIFtzZWxm
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W1tbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdXTsKIH0KIAorLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6KE5TU3RyaW5nICopaHRtbCBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KilwcmVmZXJlbmNlcworeworICAgIFtzZWxmIGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpb
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtzZWxmIF90ZXN0X3dhaXRG
b3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOnByZWZlcmVuY2VzXTsKK30KKwog
LSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5h
bWUKIHsKICAgICBbc2VsZiBsb2FkVGVzdFBhZ2VOYW1lZDpwYWdlTmFtZV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390731</attachid>
            <date>2020-02-13 22:50:59 -0800</date>
            <delta_ts>2020-02-14 07:53:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200213225058.patch</filename>
            <type>text/plain</type>
            <size>42014</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1MDNhMDczODY0ZGI2
ODE0NjNjNGMxOTk5MGY5YWFlZDczMDE2NC4uZDc3YzgwYTEwNzkwZWJiYzYyM2UyYzM1MmNhZGYw
Mjk4ODUxOWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTEzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRNYXJrdXBFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKworICAgICAgICAqIGRvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIpOgorCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oOgorCiAyMDIwLTAyLTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBMaW5lQnJlYWtlciBzaG91bGQgbm90IGhvbGQgb24gdG8gdGhlIGxh
c3RXcmFwT3Bwb3J0dW5pdHkgaW5saW5lIGl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzE5NjQ3ZjExNDA2MDhi
ZDVlNGRmMDFmNGE5MDljNWU3MzJmN2NiOC4uMmUyODZlN2JlM2NmOGI3NGE2NWMxMjYxYjk0ZGNm
ZmY4MjVlZDY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMC0wMi0xMyAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250
ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgdXRpaXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRT
Y3JpcHRNYXJrdXBFbmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBh
bHNvIGRlcHJlY2F0ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVu
Y2UgYXMgaXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGlj
aWVzRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5o
OgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwOgorICAg
ICAgICAoQVBJOjpXZWJzaXRlUG9saWNpZXM6OmRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZVBvbGljaWVzLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2RlV2l0aENvZGVyOl0pOgor
ICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgamF2YVNjcmlwdEVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBzZXRKYXZhU2NyaXB0RW5hYmxlZDpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1dlYnBhZ2VQcmVmZXJlbmNl
cyBzZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgYWxsb3dzQ29udGVudEphdmFTY3JpcHRdKToKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNl
bnROYXZpZ2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNj
cmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2
aWdhdGlvbik6CisKIDIwMjAtMDItMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gLXVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludDpj
b21wbGV0aW9uSGFuZGxlcjogc2hvdWxkIHdvcmsgd2l0aG91dCByZXF1aXJpbmcgZmxvYXRpbmcg
Y3Vyc29yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1MTQyOTk5MTQ2YmQ5ZTMyYmM3OTE3
MjBjYWFmZmY0NWI2OWFlNGZjLi43NjU4ZmFmNDdkZTQ4N2I3OGJhMGUxMmY5YWQ4YTQ2YmQxZjE4
MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTY4MTIsNiArNjgxMiwyMSBAQCBEb2N1
bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRlcigpIGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlcjsK
IH0KIAorYm9vbCBEb2N1bWVudDo6c2NyaXB0TWFya3VwRW5hYmxlZCgpIGNvbnN0Cit7CisgICAg
aWYgKCFzZXR0aW5ncygpLnNjcmlwdE1hcmt1cEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFtX2ZyYW1lIHx8IG1fZnJhbWUtPmRvY3VtZW50KCkgIT0gdGhpcykg
eworICAgICAgICBpZiAobV9zY3JpcHRNYXJrdXBQb2xpY3lPdmVycmlkZUZyb21DcmVhdG9yKQor
ICAgICAgICAgICAgcmV0dXJuICptX3NjcmlwdE1hcmt1cFBvbGljeU92ZXJyaWRlRnJvbUNyZWF0
b3IgPT0gU2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGU7CisKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5zY3JpcHRN
YXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24oKSA9PSBTY3JpcHRNYXJrdXBQb2xp
Y3k6OkVuYWJsZTsKK30KKwogRWxlbWVudCogZXZlbnRUYXJnZXRFbGVtZW50Rm9yRG9jdW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIGlmICghZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDRiZWUyYmI2ZDJlZTZjYmRmOGM3OWJlYTBiYTVhYzk2YTI3NmRlOWYuLmM2MzM2
OGFlNzBmZTNmZDY0YWE1MTQ3MzgyNWE2NWUxYjA5NmYyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0xNTUxLDYgKzE1NTEsOSBAQCBwdWJsaWM6CiAgICAgSGlnaGxpZ2h0TWFwJiBoaWdobGln
aHRNYXAoKTsKICAgICB2b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCisgICAgYm9v
bCBzY3JpcHRNYXJrdXBFbmFibGVkKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTY3JpcHRNYXJrdXBQ
b2xpY3lPdmVycmlkZUZyb21DcmVhdG9yKFNjcmlwdE1hcmt1cFBvbGljeSBwb2xpY3kpIHsgbV9z
Y3JpcHRNYXJrdXBQb2xpY3lPdmVycmlkZUZyb21DcmVhdG9yID0gcG9saWN5OyB9CisKIHByb3Rl
Y3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25S
ZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25z
dCBVUkwmLCB1bnNpZ25lZCA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1
Y3Rpb25GbGFncyA9IDApOwpAQCAtMjA4Miw2ICsyMDg1LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI+IG1fdGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI7CiAKICAgICBIYXNoTWFwPEVsZW1lbnQqLCBFbGVtZW50SWRlbnRpZmllcj4g
bV9pZGVudGlmaWVkRWxlbWVudHNNYXA7CisKKyAgICBPcHRpb25hbDxTY3JpcHRNYXJrdXBQb2xp
Y3k+IG1fc2NyaXB0TWFya3VwUG9saWN5T3ZlcnJpZGVGcm9tQ3JlYXRvcjsKIH07CiAKIEVsZW1l
bnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDk1MDI4YmIy
MTYyYmY3YTdmNmZiY2RlNTc3ODUyMGQzNWU4OWJkYzEuLmQxMGYwMTgyOGMxZmVhY2E5YzE4ZWVm
ZjliNjc0YThmNWRjYWRlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFNjcmlwdGFibGVEb2N1bWVudFBh
cnNlcjo6U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKERvY3VtZW50JiBkb2N1bWVudCwgUGFyc2Vy
Q29uCiAgICAgaWYgKCFwbHVnaW5Db250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVudFBvbGlj
eSkpCiAgICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGljeSA9IGFsbG93UGx1Z2luQ29udGVudCht
X3BhcnNlckNvbnRlbnRQb2xpY3kpOwogCi0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93
ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2V0dGluZ3MoKS5zY3JpcHRN
YXJrdXBFbmFibGVkKCkpCisgICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJz
ZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2NyaXB0TWFya3VwRW5hYmxlZCgpKQogICAg
ICAgICBtX3BhcnNlckNvbnRlbnRQb2xpY3kgPSBkaXNhbGxvd1NjcmlwdGluZ0NvbnRlbnQobV9w
YXJzZXJDb250ZW50UG9saWN5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaAppbmRleCBlOWRlYmUxYjg3ZjVkYTExNjhiM2NmOTY2NjAwNjU1MWIzYmUzNDU0
Li5iNTFlZjdkZTMzNDlhMWYyNmU2YmQ4NWUyY2QwMWMyYjU2NDFjZmFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzc1LDYgKzM3NSw4IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIHZpcnR1YWwgYm9v
bCBoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKKworICAgIHZpcnR1YWwgU2NyaXB0TWFya3VwUG9saWN5IHNjcmlwdE1hcmt1cFBvbGljeUZy
b21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIFNjcmlwdE1hcmt1cFBvbGlj
eTo6RW5hYmxlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCA4ZDg2MjhhNzQyN2UyNjA5OGU4NTdhMGEy
YWYzMmU4OTM2ZWI0NjA3Li40OWQyNGFhNzdkYWE4MjQ4MWEyY2YxN2M1MWRkMzUxNGMzMTk1MTA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTIyNyw2ICsy
MjcsMTEgQEAgZW51bSBjbGFzcyBMb2FkQ29tcGxldGlvblR5cGUgOiB1aW50OF90IHsKICAgICBD
YW5jZWwKIH07CiAKK2VudW0gY2xhc3MgU2NyaXB0TWFya3VwUG9saWN5IDogdWludDhfdCB7Cisg
ICAgRW5hYmxlLAorICAgIERpc2FibGUsCit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
IG5hbWVzcGFjZSBXVEYgewpAQCAtMjY2LDQgKzI3MSwxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBF
bnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k+IHsKICAgICA+
OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTY3JpcHRNYXJr
dXBQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpTY3JpcHRNYXJrdXBQb2xpY3ksCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBv
bGljeTo6RW5hYmxlLAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkRpc2Fi
bGUKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAppbmRleCAzOWQ4Y2E1OTI1OGQ2MTYyZDRmOGI5OTVjZDNjOTkwOWU5NWZl
ZDg1Li4wOTlmZTRiZTcyMzU1MmU4OTlhNWRjMjQ0OTM5MTkwM2NmNzhiYTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE4OCw2ICsxODgsNyBAQCBFeGNlcHRpb25P
cjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpCiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gWE1MRG9jdW1lbnQ6OmNy
ZWF0ZShudWxscHRyLCBtX3Jlc3BvbnNlLnVybCgpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VE
b2N1bWVudC0+b3ZlcnJpZGVMYXN0TW9kaWZpZWQobV9yZXNwb25zZS5sYXN0TW9kaWZpZWQoKSk7
CisgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldFNjcmlwdE1hcmt1cFBvbGljeU92
ZXJyaWRlRnJvbUNyZWF0b3IoY29udGV4dC5zY3JpcHRNYXJrdXBFbmFibGVkKCkgPyBTY3JpcHRN
YXJrdXBQb2xpY3k6OkVuYWJsZSA6IFNjcmlwdE1hcmt1cFBvbGljeTo6RGlzYWJsZSk7CiAgICAg
ICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3Vt
ZW50LT5zZXRDb250ZXh0RG9jdW1lbnQoY29udGV4dCk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNl
RG9jdW1lbnQtPnNldFNlY3VyaXR5T3JpZ2luUG9saWN5KGNvbnRleHQuc2VjdXJpdHlPcmlnaW5Q
b2xpY3koKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNp
ZXNEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3Bw
CmluZGV4IDk0OGYyYTVhYmI4MmExMjllNDYxOWQzMjYyMzRjMGYxMDY4OTY4YjcuLjUyNzYwMmNm
YzA2ZGQ4MTk5NzMyYmVhZDhlMGFiNTk1YzQwOTQ3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQgV2Vic2l0
ZVBvbGljaWVzRGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBl
bmNvZGVyIDw8IHNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k7CiAgICAgZW5jb2Rl
ciA8PCBsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5OwogICAgIGVuY29kZXIgPDwg
YWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyazsKKyAgICBlbmNvZGVyIDw8IHNjcmlwdE1h
cmt1cFBvbGljeTsKIH0KIAogT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBv
bGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTEzNCw3ICsxMzUs
MTIgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICBkZWNvZGVyID4+IGFsbG93Q29udGVu
dENoYW5nZU9ic2VydmVyUXVpcms7CiAgICAgaWYgKCFhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZl
clF1aXJrKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5PiBzY3JpcHRNYXJrdXBQb2xpY3k7CisgICAg
ZGVjb2RlciA+PiBzY3JpcHRNYXJrdXBQb2xpY3k7CisgICAgaWYgKCFzY3JpcHRNYXJrdXBQb2xp
Y3kpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4geyB7CiAgICAg
ICAgIFdURk1vdmUoKmNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQpLAogICAgICAgICBXVEZNb3ZlKCph
bGxvd2VkQXV0b3BsYXlRdWlya3MpLApAQCAtMTUzLDYgKzE1OSw3IEBAIE9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiAgICAgICAgIFdURk1vdmUoKnNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQ
b2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCpsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9s
aWN5KSwKICAgICAgICAgV1RGTW92ZSgqYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayks
CisgICAgICAgIFdURk1vdmUoKnNjcmlwdE1hcmt1cFBvbGljeSksCiAgICAgfSB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKaW5kZXggOTc5NTczZDU1
ZDczMjZiOGUyYTNjYjIwZjVmNzMzZDM3M2E0MjJmNC4uMjk0NzA3YjNlOGFhZjU4YTE1ZTg2MDA5
MWVkMmQ4ZTI3YzI2MWVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0
ZVBvbGljaWVzRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2ll
c0RhdGEuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYnNpdGVTaW11bGF0ZWRNb3Vz
ZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DdXN0b21IZWFkZXJG
aWVsZHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjgsNiArNjks
NyBAQCBzdHJ1Y3QgV2Vic2l0ZVBvbGljaWVzRGF0YSB7CiAgICAgV2Vic2l0ZVNpbXVsYXRlZE1v
dXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kgc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGlj
eSB7IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5OjpEZWZhdWx0IH07
CiAgICAgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgbGVnYWN5T3Zl
cmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSB7IFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGlu
Z1RvdWNoUG9saWN5OjpEZWZhdWx0IH07CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNl
cnZlclF1aXJrIHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgc2Ny
aXB0TWFya3VwUG9saWN5IHsgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgfTsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwCmluZGV4
IGU3MWUzYjMwYjkzNWRhMGFkYzc2NmMzNGM1NzZjMzE0YTFkMTk2YjkuLjBhYjJlZWY2YjVhNjA1
MTdkMTMxM2E1MDBiNGNhNDY1ZGUxZGU3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwCkBAIC0xMTcsNiArMTE3LDcgQEAgV2Vi
S2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhIFdlYnNpdGVQb2xpY2llczo6ZGF0YSgpCiAgICAgICAg
IG1fc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeSwKICAgICAgICAgbV9sZWdhY3lP
dmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5LAogICAgICAgICBtX2FsbG93Q29udGVudENoYW5n
ZU9ic2VydmVyUXVpcmssCisgICAgICAgIG1fc2NyaXB0TWFya3VwUG9saWN5LCAKICAgICB9Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBv
bGljaWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVz
LmgKaW5kZXggOTQ2M2U1Mzk0ZjUxY2M3MmQ3NjA4OTFjZDg0NDUxMDExOTg5ZWE2MC4uNzZjZTNm
ODc4NTM5YWI3YjVlMDgzZjg0M2U4ZDMzOTEwNDVjNTg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIldlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DdXN0b21IZWFkZXJGaWVsZHMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJG
aWVsZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CkBAIC0xMTYsNiArMTE3LDkgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXJRdWlyazsgfQogICAgIHZvaWQgc2V0QWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWly
ayhib29sIGFsbG93KSB7IG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayA9IGFsbG93
OyB9CiAKKyAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRNYXJrdXBQb2xpY3k7IH0KKyAgICB2b2lkIHNldFNj
cmlwdE1hcmt1cFBvbGljeShXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgcG9saWN5KSB7IG1f
c2NyaXB0TWFya3VwUG9saWN5ID0gcG9saWN5OyB9CisKIHByaXZhdGU6CiAgICAgV2Vic2l0ZVBv
bGljaWVzKGJvb2wgY29udGVudEJsb2NrZXJzRW5hYmxlZCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
c2l0ZUF1dG9wbGF5UXVpcms+LCBXZWJLaXQ6OldlYnNpdGVBdXRvcGxheVBvbGljeSwgVmVjdG9y
PFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVsZD4mJiwgVmVjdG9yPFdlYkNvcmU6OkN1c3RvbUhlYWRl
ckZpZWxkcz4mJiwgV2ViS2l0OjpXZWJzaXRlUG9wVXBQb2xpY3ksIFJlZlB0cjxXZWJLaXQ6Oldl
YnNpdGVEYXRhU3RvcmU+JiYpOwogCkBAIC0xNDAsNiArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fYWxsb3dTaXRlU3BlY2lmaWNRdWlya3NUb092ZXJyaWRlQ29udGVudE1vZGUgeyBmYWxz
ZSB9OwogICAgIFdURjo6U3RyaW5nIG1fYXBwbGljYXRpb25OYW1lRm9yRGVza3RvcFVzZXJBZ2Vu
dDsKICAgICBib29sIG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayB7IGZhbHNlIH07
CisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IG1fc2NyaXB0TWFya3VwUG9saWN5IHsg
V2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLmgKaW5kZXggNTBhODJmN2Q4MmIxNzI1ODJhNGMxMDVhYWY5N2RhNzQ5NDllMDg1Yy4u
ODk2ODZkYWVkY2I5YjkxZDY1MmNjNDFkZGVkZjNjMGJlY2ZjZDQ0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCkBAIC00MCwxMSAr
NDAsNiBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKICAqLwog
QHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgbWluaW11bUZvbnRTaXplOwogCi0vKiEgQGFi
c3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2YVNjcmlwdCBpcyBl
bmFibGVkLgotIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KLSAqLwotQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YVNjcmlwdEVuYWJsZWQ7Ci0KIC8qISBAYWJzdHJh
Y3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGNhbiBvcGVu
CiAgd2luZG93cyB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24uCiAgQGRpc2N1c3Npb24gVGhlIGRl
ZmF1bHQgdmFsdWUgaXMgTk8gaW4gaU9TIGFuZCBZRVMgaW4gT1MgWC4KQEAgLTcxLDcgKzY2LDEx
IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogCiBAaW50ZXJm
YWNlIFdLUHJlZmVyZW5jZXMgKFdLRGVwcmVjYXRlZCkKIAorI2lmICFUQVJHRVRfT1NfSVBIT05F
CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhRW5hYmxlZCBXS19BUElfREVQUkVDQVRF
RCgiSmF2YSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3MoMTAuMTAsIDEwLjE1KSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwbHVnSW5zRW5hYmxlZCBXS19BUElfREVQUkVDQVRF
RCgiUGx1Zy1pbnMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMCwgMTAuMTUp
KTsKKyNlbmRpZgorCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0RW5hYmxl
ZCBXS19BUElfREVQUkVDQVRFRCgiVXNlIFdLV2ViUGFnZVByZWZlcmVuY2VzLmFsbG93c0phdmFT
Y3JpcHRNYXJrdXAgdG8gZGlzYWJsZSBKYXZhU2NyaXB0IG1hcmt1cCBvbiBhIHBlci1uYXZpZ2F0
aW9uIGJhc2lzIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJB
KSk7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMubW0KaW5kZXggNTQyMThhNGQ5YzBmOWFkYjYxNDI5MmQyZjJhZWJjMmIzNTNh
YTI4OC4uMTQyMDExZmJiM2UzNmU2YmM5YmZmNTE4M2Y2YWZiNTZjNzNjNGY5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KQEAg
LTY1LDkgKzY1LDEyIEBAICsgKEJPT0wpc3VwcG9ydHNTZWN1cmVDb2RpbmcKIC0gKHZvaWQpZW5j
b2RlV2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKIHsKICAgICBbY29kZXIgZW5jb2RlRG91Ymxl
OnNlbGYubWluaW11bUZvbnRTaXplIGZvcktleTpAIm1pbmltdW1Gb250U2l6ZSJdOwotICAgIFtj
b2RlciBlbmNvZGVCb29sOnNlbGYuamF2YVNjcmlwdEVuYWJsZWQgZm9yS2V5OkAiamF2YVNjcmlw
dEVuYWJsZWQiXTsKICAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkgZm9yS2V5OkAiamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseSJdOwogCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAg
IFtjb2RlciBlbmNvZGVCb29sOnNlbGYuamF2YVNjcmlwdEVuYWJsZWQgZm9yS2V5OkAiamF2YVNj
cmlwdEVuYWJsZWQiXTsKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAjaWYg
UExBVEZPUk0oTUFDKQogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBb
Y29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFFbmFibGVkIGZvcktleTpAImphdmFFbmFibGVkIl07
CkBAIC04Myw5ICs4NiwxMiBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2Rl
ciAqKWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBzZWxmLm1pbmltdW1Gb250U2l6
ZSA9IFtjb2RlciBkZWNvZGVEb3VibGVGb3JLZXk6QCJtaW5pbXVtRm9udFNpemUiXTsKLSAgICBz
ZWxmLmphdmFTY3JpcHRFbmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2Ny
aXB0RW5hYmxlZCJdOwogICAgIHNlbGYuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseSA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSJdOwogCitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgor
ICAgIHNlbGYuamF2YVNjcmlwdEVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImph
dmFTY3JpcHRFbmFibGVkIl07CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwog
I2lmIFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgc2VsZi5qYXZhRW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YUVuYWJs
ZWQiXTsKQEAgLTExMiwxNiArMTE4LDYgQEAgLSAodm9pZClzZXRNaW5pbXVtRm9udFNpemU6KENH
RmxvYXQpbWluaW11bUZvbnRTaXplCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRNaW5pbXVtRm9udFNp
emUobWluaW11bUZvbnRTaXplKTsKIH0KIAotLSAoQk9PTClqYXZhU2NyaXB0RW5hYmxlZAotewot
ICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFTY3JpcHRFbmFibGVkKCk7Ci19Ci0KLS0gKHZv
aWQpc2V0SmF2YVNjcmlwdEVuYWJsZWQ6KEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKLXsKLSAgICBf
cHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFibGVkKGphdmFTY3JpcHRFbmFibGVkKTsKLX0K
LQogLSAodm9pZClzZXRGcmF1ZHVsZW50V2Vic2l0ZVdhcm5pbmdFbmFibGVkOihCT09MKWVuYWJs
ZWQKIHsKICAgICBfcHJlZmVyZW5jZXMtPnNldFNhZmVCcm93c2luZ0VuYWJsZWQoZW5hYmxlZCk7
CkBAIC0xNDMyLDEwICsxNDI4LDExIEBAIC0gKEJPT0wpX2RldmljZU9yaWVudGF0aW9uRXZlbnRF
bmFibGVkCiAKIEBlbmQKIAotI2lmICFUQVJHRVRfT1NfSVBIT05FCiAKIEBpbXBsZW1lbnRhdGlv
biBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCiAKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQor
CiAtIChCT09MKWphdmFFbmFibGVkCiB7CiAgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+amF2YUVu
YWJsZWQoKTsKQEAgLTE0NTYsNiArMTQ1MywxNyBAQCAtICh2b2lkKXNldFBsdWdJbnNFbmFibGVk
OihCT09MKXBsdWdJbnNFbmFibGVkCiAgICAgX3ByZWZlcmVuY2VzLT5zZXRQbHVnaW5zRW5hYmxl
ZChwbHVnSW5zRW5hYmxlZCk7CiB9CiAKKyNlbmRpZgorCistIChCT09MKWphdmFTY3JpcHRFbmFi
bGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+amF2YVNjcmlwdEVuYWJsZWQoKTsKK30K
KworLSAodm9pZClzZXRKYXZhU2NyaXB0RW5hYmxlZDooQk9PTClqYXZhU2NyaXB0RW5hYmxlZAor
eworICAgIF9wcmVmZXJlbmNlcy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJs
ZWQpOworfQorCiBAZW5kCiAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAppbmRleCAyNzQ3ZTgxMjhm
MDNmMDJkYmVlZmI1YzVmYzk2ZmM1NzdmMjE3YWQ2Li5jYWMxOTU2ZjQwZTk1YzYwNjZhZmFjODcw
MGRhMzgxMGExNDUxYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaApAQCAtNTcsNCArNTcsMTkgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKQogICovCiBAcHJvcGVydHkg
KG5vbmF0b21pYykgV0tDb250ZW50TW9kZSBwcmVmZXJyZWRDb250ZW50TW9kZSBXS19BUElfQVZB
SUxBQkxFKGlvcygxMy4wKSk7CiAKKy8qIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNh
dGluZyB3aGV0aGVyIEphdmFTY3JpcHQgZnJvbSB3ZWIgY29udGVudCBpcyBlbmFibGVkCisgQGRp
c2N1c3Npb24gSWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gTk8gdGhlbiBKYXZhU2NyaXB0IHJlZmVy
ZW5jZWQgYnkgdGhlIHdlYiBjb250ZW50IHdpbGwgbm90IGV4ZWN1dGUuCisgVGhpcyBpbmNsdWRl
cyBKYXZhU2NyaXB0IGZvdW5kIGluIGlubGluZSA8c2NyaXB0PiBlbGVtZW50cywgcmVmZXJlbmNl
ZCBieSBleHRlcm5hbCBKYXZhU2NyaXB0IHJlc291cmNlcywKKyAiamF2YXNjcmlwdDoiIFVSTHMs
IGFuZCBhbGwgb3RoZXIgZm9ybXMuCisKKyBFdmVuIGlmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5P
IHlvdXIgYXBwbGljYXRpb24gY2FuIHN0aWxsIGV4ZWN1dGUgSmF2YVNjcmlwdCB1c2luZzoKKyAt
IFtXS1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhhbmRsZXI6XQorIC0gW1dL
V2ViVmlldyBldmFsdXRlSmF2YVNjcmlwdDppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxl
cjpdCisgLSBbV0tXZWJWaWV3IGNhbGxBc3luY0phdmFTY3JpcHQ6YXJndW1lbnRzOmluQ29udGVu
dFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKyAtIFdLVXNlclNjcmlwdHMKKworIFRoZSBkZWZh
dWx0IHZhbHVlIGlzIFlFUy4KKyovCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3ND
b250ZW50SmF2YVNjcmlwdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KaW5kZXggOTlmMGMwYTgwYThi
ZTQ1MzI0MzU2YjYzOTYxMDlmMzZmNGNmZGM3NC4uYTIwZWExZWI2YTA2OGU1YTZmMzYzNmNhZjk2
OWUyMTJlOTFlYTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQpAQCAtMzMxLDYgKzMzMSwyMSBAQCAt
IChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAogICAgIHJldHVybiAqX3dlYnNpdGVQb2xpY2llczsK
IH0KIAorLSAodm9pZClzZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdDooQk9PTClhbGxvd3NDb250
ZW50SmF2YVNjcmlwdAoreworICAgIF93ZWJzaXRlUG9saWNpZXMtPnNldFNjcmlwdE1hcmt1cFBv
bGljeShhbGxvd3NDb250ZW50SmF2YVNjcmlwdCA/IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGlj
eTo6RW5hYmxlIDogV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlKTsKK30KKwor
LSAoQk9PTClhbGxvd3NDb250ZW50SmF2YVNjcmlwdAoreworICAgIHN3aXRjaCAoX3dlYnNpdGVQ
b2xpY2llcy0+c2NyaXB0TWFya3VwUG9saWN5KCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNjcmlw
dE1hcmt1cFBvbGljeTo6RW5hYmxlOgorICAgICAgICByZXR1cm4gWUVTOworICAgIGNhc2UgV2Vi
Q29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlOgorICAgICAgICByZXR1cm4gTk87Cisg
ICAgfQorfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogLSAodm9pZClzZXRQcmVmZXJy
ZWRDb250ZW50TW9kZTooV0tDb250ZW50TW9kZSljb250ZW50TW9kZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggZjFiZDcxYTI0NTE3YzQ3OWExM2Y2ZDgyMDlmYzhlOWIxNDk1
NGZhNi4uMTUwNTg5NmIzNzIyNTBkMTQzMDQyZDQ0ZDI0NWRiMjI5OTc2NDJkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04OTQsNiArODk0LDEyIEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRh
JiYgd2Vic2l0ZVBvCiAgICAgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50TG9h
ZGVyKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwgKmRvY3VtZW50TG9hZGVyKTsKIH0KIAorV2Vi
Q29yZTo6U2NyaXB0TWFya3VwUG9saWN5IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzY3JpcHRNYXJr
dXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24oKSBjb25zdAoreworICAgIFdlYlBhZ2Uq
IHdlYlBhZ2UgPSBtX2ZyYW1lID8gbV9mcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKKyAgICByZXR1
cm4gd2ViUGFnZSA/IHdlYlBhZ2UtPnNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2
aWdhdGlvbigpIDogV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlOworfQorCiB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlLAogICAgIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lEZWNpc2lvbk1vZGUg
cG9saWN5RGVjaXNpb25Nb2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcmVxdWVz
dElkZW50aWZpZXIsIEZyYW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggOWFhNWEwNTQ5MjQzYTgzOTQwZTVhOTUwZGRiYzgxN2E0
NGI1MDk0My4uZmFiMTY5NjdhMmFjYzlhNGU3NDk5ZGU0NGM0YTFiNDI5NDZjZjk4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTYyLDcgKzYyLDkgQEAgcHVibGljOgogICAgIH07
CiAgICAgdm9pZCBzZXRIYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyhGcmFtZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc0lkZW50aWZpZXImJik7CiAjZW5kaWYKLSAgICAKKworICAgIFdlYkNvcmU6
OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmln
YXRpb24oKSBjb25zdCBmaW5hbDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGZyYW1lTG9hZGVyRGVz
dHJveWVkKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcAppbmRleCBmNmM5ODRlMzA1ZWM3ZjdkYWVkOTdmNjg2ZTg5YTI3ZmI5MGJiNDdl
Li5hODNlYTZiNzUzZTg1MGNjMzdjZDBhZmVhOGQ3ODMwYjg0MTE1MmNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yNjUsOCArMjY1LDEx
IEBAIHZvaWQgV2ViRnJhbWU6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBsaXN0
ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVjCiAKICAgICBpbnZhbGlkYXRlUG9saWN5TGlzdGVu
ZXIoKTsKIAotICAgIGlmIChmb3JOYXZpZ2F0aW9uQWN0aW9uICYmIG1fZnJhbWVMb2FkZXJDbGll
bnQgJiYgd2Vic2l0ZVBvbGljaWVzKQorICAgIGlmIChmb3JOYXZpZ2F0aW9uQWN0aW9uICYmIG1f
ZnJhbWVMb2FkZXJDbGllbnQgJiYgd2Vic2l0ZVBvbGljaWVzKSB7CisgICAgICAgIEFTU0VSVChw
YWdlKCkpOworICAgICAgICBwYWdlKCktPnNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVj
ZW50TmF2aWdhdGlvbih3ZWJzaXRlUG9saWNpZXMtPnNjcmlwdE1hcmt1cFBvbGljeSk7CiAgICAg
ICAgIG1fZnJhbWVMb2FkZXJDbGllbnQtPmFwcGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKCp3
ZWJzaXRlUG9saWNpZXMpKTsKKyAgICB9CiAKICAgICBtX3BvbGljeURvd25sb2FkSUQgPSBkb3du
bG9hZElEOwogICAgIGlmIChuYXZpZ2F0aW9uSUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTAyODRhODE4MjQxZDcxMzBjYWQyNzUzZGRi
ODgwMDA4ZmE5OTU1YS4uOWJmOTAxZTc2YmVjNTU5YmMzNDE3N2Q4ZTUzN2YxYzlhNjkzMWZlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYy
NjAsNiArNjI2MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVzKFdlYnNp
dGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgaWYgKCFkb2N1bWVudExvYWRl
cikKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9zY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJl
Y2VudE5hdmlnYXRpb24gPSB3ZWJzaXRlUG9saWNpZXMuc2NyaXB0TWFya3VwUG9saWN5OwogICAg
IFdlYnNpdGVQb2xpY2llc0RhdGE6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKHdlYnNp
dGVQb2xpY2llcyksICpkb2N1bWVudExvYWRlcik7CiAgICAgCiAjaWYgRU5BQkxFKFZJREVPKQpA
QCAtNjMxNSw2ICs2MzE2LDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBXZWJQYWdlOjpjcmVhdGVE
b2N1bWVudExvYWRlcihGcmFtZSYgZnJhbWUsIGNvbnN0IFJlc291cmNlUmUKICAgICAgICAgfQog
CiAgICAgICAgIGlmIChtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMpIHsKKyAgICAgICAgICAgIG1f
c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uID0gbV9wZW5kaW5nV2Vi
c2l0ZVBvbGljaWVzLT5zY3JpcHRNYXJrdXBQb2xpY3k7CiAgICAgICAgICAgICBXZWJzaXRlUG9s
aWNpZXNEYXRhOjphcHBseVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSgqbV9wZW5kaW5nV2Vic2l0
ZVBvbGljaWVzKSwgZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgbV9wZW5kaW5nV2Vic2l0
ZVBvbGljaWVzID0gV1RGOjpudWxsb3B0OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYmRhYjgxYjI5Y2ZmMjAxZWFhMTNiZjNkNjRk
OTIzNGUwM2E4MWM1Yy4uYTlhNWYwMTFjMDQ4ZGM4Mzc3ZGRhZGY1NTAzOWZlYjNkNjMwYzRhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTI3NSw3
ICsxMjc1LDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlh
VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQg
c2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKLSAgICAKKworICAgIFdlYkNv
cmU6OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5h
dmlnYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVj
ZW50TmF2aWdhdGlvbjsgfQorICAgIHZvaWQgc2V0U2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RS
ZWNlbnROYXZpZ2F0aW9uKFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBwb2xpY3kpIHsgbV9z
Y3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24gPSBwb2xpY3k7IH0KKwog
cHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYpOwogCkBAIC0yMDQ4LDYgKzIwNTEsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFUeXBlOworICAgIFdlYkNvcmU6OlNj
cmlwdE1hcmt1cFBvbGljeSBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdh
dGlvbiB7IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIH07CiAKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgU3RyaW5nIG1fdGhlbWVOYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI5OWEyYjQ5OWY4YzViNGI3MTUxMDc1Njkw
YmY3MThkN2U2ZmFjNzkuLjhiYmU1ZWQyYmYxOGU1Yzc4YjU5MTBjZjhmODU2MDhiNjBmNDQ0NGIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0wMi0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdl
UHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAgICAgIChURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xp
Y2llcy5tbToKKyAgICAgICAgKC1bV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIHdl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lv
bkhhbmRsZXI6XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKC1bV2Vic2l0ZVBvbGljaWVz
TmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246cHJlZmVyZW5jZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAo
LVtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFBy
ZWZlcmVuY2VzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlz
aE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9u
SGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6cHJl
ZmVyZW5jZXM6XSk6CisKIDIwMjAtMDItMTMgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBw
bGUuY29tPgogCiAgICAgICAgIFRlc3RXZWJLaXRBUEk6IFJlLWJhc2VsaW5lIERvY3VtZW50RWRp
dGluZ0NvbnRleHQgZm9yIENhdGFseXN0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tCmluZGV4IGZjMDMzNzU3ZTQ0ODFjMDZmMThmZjE5NzY3ZTAzZmQyMTNmMjFmMDcuLjUz
NzdiYmEzYzdkY2ZmM2E2NGIyNDYwNDYwNDkwYjU4ZTZhMjgyMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2Ny
aXB0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCkBAIC0yNiwxMyArMjYsMTcgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCisjaW1wb3J0ICJIVFRQ
U2VydmVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVENQU2Vy
dmVyLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRl
LmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRXb3JsZC5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLRXJyb3JQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCkBAIC0yNTQsMyArMjU4LDExNCBAQCBURVNUKFdlYktpdCwgRXZhbHVhdGVKYXZh
U2NyaXB0SW5BdHRhY2htZW50cykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OwogfQogCitURVNUKFdlYktpdCwgQWxsb3dzQ29udGVudEphdmFTY3JpcHQpCit7CisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdi
YXInPC9zY3JpcHQ+Il07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9TdHJpbmc6QCJiYXIiXSk7
CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisKKyAgICBSZXRhaW5QdHI8V0tXZWJwYWdlUHJlZmVyZW5jZXM+IHByZWZl
cmVuY2VzID0gYWRvcHROUyhbW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7Cisg
ICAgRVhQRUNUX1RSVUUocHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQp
OworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87Cisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9v
ID0gJ2Jhcic8L3NjcmlwdD4iIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNv
bXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBF
WFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0
aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAg
eyAiL3NjcmlwdCIsIHsgInZhciBmb28gPSAnYmFyJyIgfSB9CisgICAgfSk7CisgICAgcHJlZmVy
ZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBZRVM7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
PHNjcmlwdCBzcmM9J2h0dHA6Ly8xMjcuMC4wLjE6JWQvc2NyaXB0Jz48L3NjcmlwdD4iLCBzZXJ2
ZXIucG9ydCgpXSBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0
cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93
c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPHNjcmlwdCBzcmM9J2h0dHA6
Ly8xMjcuMC4wLjE6JWQvc2NyaXB0Jz48L3NjcmlwdD4iLCBzZXJ2ZXIucG9ydCgpXSBwcmVmZXJl
bmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAg
ICAgRVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlwdGlvbl0gY29udGFpbnNTdHJpbmc6QCJDYW4n
dCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBwcmVmZXJlbmNlcy5n
ZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aWZyYW1lIHNyYz0namF2YXNjcmlwdDp3aW5kb3cuZm9v
ID0gMSc+PC9pZnJhbWU+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmZy
YW1lc1swXS5mb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9UUlVFKFty
ZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9U
UlVFKFtyZXN1bHQgaXNFcXVhbFRvTnVtYmVyOkAxXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBwcmVm
ZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IE5POworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxpZnJhbWUgc3JjPSdqYXZhc2NyaXB0Ondp
bmRvdy5mb28gPSAxJz48L2lmcmFtZT4iIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsK
KworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3
aW5kb3cuZnJhbWVzWzBdLmZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKworVEVTVChXZWJLaXQsIFNQSUphdmFzY3Jp
cHRNYXJrdXBWc0FQSUNvbnRlbnRKYXZhU2NyaXB0KQoreworICAgIC8vIFRoZXJlJ3Mgbm90IGEg
ZHluYW1pY2FsbHkgY29uZmlndXJhdGlvbiBzZXR0aW5nIGZvciBqYXZhc2NyaXB0IG1hcmt1cCwK
KyAgICAvLyBidXQgaXQgY2FuIGJlIGNvbmZpZ3VyZWQgYXQgV0tXZWJWaWV3IGNyZWF0aW9uIHRp
bWUuCisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IFtbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICBjb25maWd1
cmF0aW9uLl9hbGxvd3NKYXZhU2NyaXB0TWFya3VwID0gTk87CisgICAgUmV0YWluUHRyPFRlc3RX
S1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKKworICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBmb2xsb3dpbmcgSlMgZG9lcyBub3Qg
ZXhlY3V0ZS4KKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2Ny
aXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiJdOworCisgICAgX19ibG9jayBib29sIGRvbmUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRp
b25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1Rf
TlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0aW9uXSBj
b250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAgICAgZG9u
ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KworICAgIC8vIFRyeSB0byBleHBsaWNpdGx5IGVuYWJsZSBzY3JpcHQgbWFya3VwIHVzaW5nIFdL
V2VicGFnZVByZWZlcmVuY2VzLCBidXQgdmVyaWZ5IGl0IHNob3VsZCBzdGlsbCBmYWlsIGJlY2F1
c2UKKyAgICAvLyBvZiB0aGUgYWJvdmUgY29uZmlndXJhdGlvbiBzZXR0aW5nLgorICAgIFJldGFp
blB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJw
YWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBFQ1RfVFJVRShwcmVmZXJlbmNl
cy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iIHBy
ZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpA
IkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNpZXMu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2ll
cy5tbQppbmRleCBkZDc5YzVkZDBjZmNiYjBhOGMwODI5NmZhYzYzNzZlOTdiNzhjMTk3Li4wOTc2
YjM2ZTUxNjVjNGM0NmM3ZDM4NDFjMmIzNWY2NWYwNGY5MDEyIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQpA
QCAtMjM5LDE1ICsyMzksMTUgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBoYW5kbGVBdXRvcGxheUV2ZW50OihfV0tBdXRvcGxheUV2ZW50KWV2ZW4KIEBlbmQKIAogQGlu
dGVyZmFjZSBXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgOiBUZXN0TmF2aWdhdGlv
bkRlbGVnYXRlIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgdm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vi
c2l0ZVBvbGljaWVzKShXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KiwgaWQgPE5TU2VjdXJlQ29kaW5nPiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
dm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVz
KShXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXiko
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CiBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUKIAot
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHByZWZl
cmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRs
ZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHBy
ZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJl
bmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKQotICAgICAgICBfZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMobmF2aWdhdGlvbkFjdGlvbiwgcHJl
ZmVyZW5jZXMsIHVzZXJJbmZvLCBkZWNpc2lvbkhhbmRsZXIpOworICAgICAgICBfZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMobmF2aWdhdGlvbkFjdGlv
biwgcHJlZmVyZW5jZXMsIGRlY2lzaW9uSGFuZGxlcik7CiAgICAgZWxzZQogICAgICAgICBkZWNp
c2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIG5pbCk7CiB9CkBAIC02
MTYsNyArNjE2LDcgQEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1dp
dGhCcmlkZ2luZ0Nhc3QpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJzaXRlUG9s
aWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKIAogICAgIF9fYmxvY2sgYm9v
bCBkaWRJbnZva2VEZWNpc2lvbkhhbmRsZXIgPSBmYWxzZTsKLSAgICBbZGVsZWdhdGUgc2V0RGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmln
YXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29kaW5n
Piwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAq
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CiAgICAgICAgIGF1
dG8gcG9saWNpZXMgPSBhZG9wdFdLKFdLV2Vic2l0ZVBvbGljaWVzQ3JlYXRlKCkpOwogICAgICAg
ICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIChfX2JyaWRn
ZSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXBvbGljaWVzLmdldCgpKTsKICAgICAgICAgZGlkSW52
b2tlRGVjaXNpb25IYW5kbGVyID0gdHJ1ZTsKQEAgLTYzNSw3ICs2MzUsNyBAQCBURVNUKFdlYnBh
Z2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzV2l0aFVuZXhwZWN0ZWRUeXBlKQogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZGlkQ2F0Y2hFeGNlcHRpb24gPSBm
YWxzZTsKLSAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldp
dGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgKiwgaWQgPE5TU2VjdXJlQ29kaW5nPiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgIFtk
ZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xp
Y2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lk
ICheZGVjaXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopKSB7CiAgICAgICAgIEB0cnkgewogICAgICAgICAgICAgaWQgZmFrZVBvbGlj
aWVzID0gQCJIZWxsbyI7CiAgICAgICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5QWxsb3csIChXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKWZha2VQb2xpY2llcyk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0
ZS5oCmluZGV4IDIyMzIwMWJjYmVmOWM5Yzc3ZDg1YzFkZDFlODU4ODQyNmI2MmY1ZmIuLmI2NDcy
MjlkY2I4NTk5NzQ2MDVjN2ZiMzA5ZDg1ZDJjYTAzNDRlNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oCkBAIC0zMSw2ICszMSw3
IEBACiBAaW50ZXJmYWNlIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZp
Z2F0aW9uRGVsZWdhdGU+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikoV0tOYXZpZ2F0aW9uQWN0aW9uICosIHZvaWQg
KF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2Vz
KShXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXiko
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRp
b24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKiwgTlNFcnJvciAqKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pKFdL
V2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
dm9pZCAoXmRpZENvbW1pdE5hdmlnYXRpb24pKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKik7
CkBAIC00MSw2ICs0Miw3IEBACiAKIC0gKHZvaWQpd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9uYWxO
YXZpZ2F0aW9uOwogLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbjsKKy0gKHZvaWQp
d2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZl
cmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxO
YXZpZ2F0aW9uOwogCiBAZW5kCkBAIC00OCw1ICs1MCw2IEBACiBAaW50ZXJmYWNlIFdLV2ViVmll
dyAoVGVzdFdlYktpdEFQSUV4dHJhcykKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uOwogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdh
dGlvbjsKKy0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVy
ZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKV90ZXN0
X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aG91dFByZXNlbnRhdGlvblVwZGF0ZTsKIEBl
bmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxl
Z2F0ZS5tbQppbmRleCAzM2UyMTFiNDFmNGM3ZmNkZDVmYzZlNGQyZDgxYjNiNDU5NWQwYjY1Li5i
ZGM1MTc1N2IzOTRhZjYyY2M0MGY0MTEzMGI1NTAyZWI3ZjdiMjlmIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCkBAIC0zMiwx
MiArMzIsMTYgQEAKIAogQGltcGxlbWVudGF0aW9uIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUKIAot
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKWRlY2lzaW9uSGFu
ZGxlcgorLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24g
cHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZl
cmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgogewotICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbikKLSAgICAgICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
bmF2aWdhdGlvbkFjdGlvbiwgZGVjaXNpb25IYW5kbGVyKTsKLSAgICBlbHNlCi0gICAgICAgIGRl
Y2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7CisgICAgaWYgKF9k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKQorICAgICAgICBf
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyhuYXZpZ2F0aW9u
QWN0aW9uLCBwcmVmZXJlbmNlcywgZGVjaXNpb25IYW5kbGVyKTsKKyAgICBlbHNlIGlmIChfZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbikgeworICAgICAgICBfZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0aW9uLCBeKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSBhY3Rpb24pIHsKKyAgICAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihhY3Rpb24sIHByZWZl
cmVuY2VzKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlCisgICAgICAgIGRlY2lzaW9uSGFuZGxl
cihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOwogfQogCiAtICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmln
YXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KQEAgLTExMiw2ICsxMTYsMTkgQEAgLSAo
dm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogICAgIHNlbGYuZGlkRmluaXNoTmF2aWdh
dGlvbiA9IG5pbDsKIH0KIAorLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQ
cmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVY
UEVDVF9GQUxTRShzZWxmLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVy
ZW5jZXMpOworICAgIEVYUEVDVF9UUlVFKCEhcHJlZmVyZW5jZXMpOworCisgICAgc2VsZi5kZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzID0gXihXS05hdmlnYXRp
b25BY3Rpb24gKmFjdGlvbiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmhhbmRsZXIp
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAg
ICAgICAgaGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMp
OworICAgIH07CisKKyAgICBbc2VsZiB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAg
c2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzID0gbmls
OworfQorCiAtICh2b2lkKXdhaXRGb3JEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uCiB7CiAg
ICAgRVhQRUNUX0ZBTFNFKHNlbGYuZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbik7CkBAIC0x
NTIsNiArMTY5LDE3IEBAIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25X
aXRob3V0UHJlc2VudGF0aW9uVXBkYXRlCiAgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUgPSBu
aWw7CiB9CiAKKy0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJl
ZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBFWFBF
Q1RfRkFMU0Uoc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUpOworCisgICAgYXV0byBuYXZpZ2F0aW9u
RGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlID0gbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgp
OworICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRo
UHJlZmVyZW5jZXM6cHJlZmVyZW5jZXNdOworCisgICAgc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUg
PSBuaWw7Cit9CisKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KIHsK
ICAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5uYXZpZ2F0aW9uRGVsZWdhdGUpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCBkOGU3NWRjM2MwZGM0YjVhNDM2ZjJm
ZmVjYjk2Njc3NGU2OGM1ODlmLi5jMTYyMGNlNGUwYjViYThlMGVhNTA2YTQwZjgwMmRiZjY0ZjAy
ODNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtNTQs
NiArNTQsNyBAQAogLSAodm9pZClzeW5jaHJvbm91c2x5R29Gb3J3YXJkOwogLSAodm9pZClzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbDsKIC0gKHZvaWQpc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgYmFzZVVSTDooTlNVUkwgKil1
cmw7CistICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1s
IHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9p
ZClzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAtICh2
b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZTsK
IC0gKEJPT0wpX3N5bmNocm9ub3VzbHlFeGVjdXRlRWRpdENvbW1hbmQ6KE5TU3RyaW5nICopY29t
bWFuZCBhcmd1bWVudDooTlNTdHJpbmcgKilhcmd1bWVudDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCBjYWJiMmMzNzNlMmE0M2UyYjlhNTIzZTM5MWRm
OWI4YjY4MWU4MThlLi4zNTYwMGI3MTVlZWUwZTM5OGQ3M2I1YmQxY2ZiNWQ4ZDk1M2Q3NWFlIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0xMjIsNiAr
MTIyLDEyIEBAIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAq
KWh0bWwKICAgICBbc2VsZiBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJM
OltbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVVSTF0gVVJMQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiB9CiAKKy0gKHZvaWQpc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgcHJlZmVyZW5jZXM6KFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKK3sKKyAgICBbc2VsZiBsb2FkSFRNTFN0cmlu
ZzpodG1sIGJhc2VVUkw6W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlVVJMXSBVUkxCeUFw
cGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBb
c2VsZiBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpwcmVm
ZXJlbmNlc107Cit9CisKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOihO
U1N0cmluZyAqKXBhZ2VOYW1lCiB7CiAgICAgW3NlbGYgbG9hZFRlc3RQYWdlTmFtZWQ6cGFnZU5h
bWVdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390768</attachid>
            <date>2020-02-14 07:53:33 -0800</date>
            <delta_ts>2020-02-14 10:23:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200214075332.patch</filename>
            <type>text/plain</type>
            <size>41830</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1MDNhMDczODY0ZGI2
ODE0NjNjNGMxOTk5MGY5YWFlZDczMDE2NC4uZDc3YzgwYTEwNzkwZWJiYzYyM2UyYzM1MmNhZGYw
Mjk4ODUxOWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTEzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRNYXJrdXBFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKworICAgICAgICAqIGRvbS9TY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIpOgorCisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oOgorCiAyMDIwLTAyLTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBMaW5lQnJlYWtlciBzaG91bGQgbm90IGhvbGQgb24gdG8gdGhlIGxh
c3RXcmFwT3Bwb3J0dW5pdHkgaW5saW5lIGl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzE5NjQ3ZjExNDA2MDhi
ZDVlNGRmMDFmNGE5MDljNWU3MzJmN2NiOC4uMmUyODZlN2JlM2NmOGI3NGE2NWMxMjYxYjk0ZGNm
ZmY4MjVlZDY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAyMC0wMi0xMyAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwb3NlICJhbGxvd3NDb250
ZW50SmF2YVNjcmlwdCIgb24gV0tXZWJwYWdlUHJlZmVyZW5jZXMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUxNTM0OTY3PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNzQyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgdXRpaXplcyB0aGUgcHJlLWV4aXN0aW5nIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRT
Y3JpcHRNYXJrdXBFbmFibGVkKCkgbWVjaGFuaXNtLgorICAgICAgICAKKyAgICAgICAgVGhpcyBh
bHNvIGRlcHJlY2F0ZXMgdGhlIGdsb2JhbCAiZGlzYWJsZSBKYXZhU2NyaXB0IiBXS1ByZWZlcmVu
Y2UgYXMgaXQgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55bW9yZS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZVBvbGlj
aWVzRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5o
OgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwOgorICAg
ICAgICAoQVBJOjpXZWJzaXRlUG9saWNpZXM6OmRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJV2Vic2l0ZVBvbGljaWVzLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgZW5jb2RlV2l0aENvZGVyOl0pOgor
ICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW1dL
UHJlZmVyZW5jZXMgamF2YVNjcmlwdEVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNl
cyBzZXRKYXZhU2NyaXB0RW5hYmxlZDpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1dlYnBhZ2VQcmVmZXJlbmNl
cyBzZXRBbGxvd3NDb250ZW50SmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgYWxsb3dzQ29udGVudEphdmFTY3JpcHRdKToKKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNl
bnROYXZpZ2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNj
cmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNldFNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2
aWdhdGlvbik6CisKIDIwMjAtMDItMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gLXVwZGF0ZVNlbGVjdGlvbldpdGhFeHRlbnRQb2ludDpj
b21wbGV0aW9uSGFuZGxlcjogc2hvdWxkIHdvcmsgd2l0aG91dCByZXF1aXJpbmcgZmxvYXRpbmcg
Y3Vyc29yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1MTQyOTk5MTQ2YmQ5ZTMyYmM3OTE3
MjBjYWFmZmY0NWI2OWFlNGZjLi40YTFhYzk2YTUzYjA2ODQ0MjFmZmM4OGJhMTYyOGJjMTVjZTA5
NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTY4MTIsNiArNjgxMiwyMyBAQCBEb2N1
bWVudExvYWRlciogRG9jdW1lbnQ6OmxvYWRlcigpIGNvbnN0CiAgICAgcmV0dXJuIGxvYWRlcjsK
IH0KIAorYm9vbCBEb2N1bWVudDo6c2NyaXB0TWFya3VwRW5hYmxlZCgpIGNvbnN0Cit7CisgICAg
aWYgKCFzZXR0aW5ncygpLnNjcmlwdE1hcmt1cEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFtX2ZyYW1lIHx8IG1fZnJhbWUtPmRvY3VtZW50KCkgIT0gdGhpcykg
eworICAgICAgICBpZiAobV9jb250ZXh0RG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gbV9j
b250ZXh0RG9jdW1lbnQtPnNjcmlwdE1hcmt1cEVuYWJsZWQoKTsKKworICAgICAgICAvLyBJZiB0
aGlzIERvY3VtZW50IGlzIGZyYW1lbGVzcyBvciBpbiB0aGUgd3JvbmcgZnJhbWUsICphbmQqIGl0
IGhhcyBubyBjb250ZXh0IGRvY3VtZW50LAorICAgICAgICAvLyB0aGVuIGl0IGhhcyBubyBidXNp
bmVzcyBydW5uaW5nIG1hcmt1cCBzY3JpcHQuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuc2NyaXB0TWFya3VwUG9s
aWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgPT0gU2NyaXB0TWFya3VwUG9saWN5OjpFbmFi
bGU7Cit9CisKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA0YmVlMmJiNmQyZWU2Y2JkZjhjNzliZWEwYmE1YWM5NmEyNzZkZTlmLi40NGM0MTk2YTM2M2Vk
YmRhNjUwMmFjMDFjN2Q0ODliN2MyMGMyMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU1
MSw2ICsxNTUxLDggQEAgcHVibGljOgogICAgIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0TWFwKCk7
CiAgICAgdm9pZCB1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKIAorICAgIGJvb2wgc2NyaXB0
TWFya3VwRW5hYmxlZCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rp
b25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwg
MSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0
RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggOTUwMjhi
YjIxNjJiZjdhN2Y2ZmJjZGU1Nzc4NTIwZDM1ZTg5YmRjMS4uZDEwZjAxODI4YzFmZWFjYTljMThl
ZWZmOWI2NzRhOGY1ZGNhZGU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dGFibGVEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFi
bGVEb2N1bWVudFBhcnNlci5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXJz
ZXJDb24KICAgICBpZiAoIXBsdWdpbkNvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9s
aWN5KSkKICAgICAgICAgbV9wYXJzZXJDb250ZW50UG9saWN5ID0gYWxsb3dQbHVnaW5Db250ZW50
KG1fcGFyc2VyQ29udGVudFBvbGljeSk7CiAKLSAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxs
b3dlZChtX3BhcnNlckNvbnRlbnRQb2xpY3kpICYmICFkb2N1bWVudC5zZXR0aW5ncygpLnNjcmlw
dE1hcmt1cEVuYWJsZWQoKSkKKyAgICBpZiAoc2NyaXB0aW5nQ29udGVudElzQWxsb3dlZChtX3Bh
cnNlckNvbnRlbnRQb2xpY3kpICYmICFkb2N1bWVudC5zY3JpcHRNYXJrdXBFbmFibGVkKCkpCiAg
ICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGljeSA9IGRpc2FsbG93U2NyaXB0aW5nQ29udGVudCht
X3BhcnNlckNvbnRlbnRQb2xpY3kpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IGU5ZGViZTFiODdmNWRhMTE2OGIzY2Y5NjY2MDA2NTUxYjNiZTM0
NTQuLmI1MWVmN2RlMzM0OWExZjI2ZTZiZDg1ZTJjZDAxYzJiNTY0MWNmYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNzUsNiArMzc1LDggQEAgcHVi
bGljOgogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgdmlydHVhbCBi
b29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgeyByZXR1cm4gZmFsc2U7IH0KICNl
bmRpZgorCisgICAgdmlydHVhbCBTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5
RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gU2NyaXB0TWFya3VwUG9s
aWN5OjpFbmFibGU7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCmluZGV4IDhkODYyOGE3NDI3ZTI2MDk4ZTg1N2Ew
YTJhZjMyZTg5MzZlYjQ2MDcuLjQ5ZDI0YWE3N2RhYTgyNDgxYTJjZjE3YzUxZGQzNTE0YzMxOTUx
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtMjI3LDYg
KzIyNywxMSBAQCBlbnVtIGNsYXNzIExvYWRDb21wbGV0aW9uVHlwZSA6IHVpbnQ4X3QgewogICAg
IENhbmNlbAogfTsKIAorZW51bSBjbGFzcyBTY3JpcHRNYXJrdXBQb2xpY3kgOiB1aW50OF90IHsK
KyAgICBFbmFibGUsCisgICAgRGlzYWJsZSwKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogbmFtZXNwYWNlIFdURiB7CkBAIC0yNjYsNCArMjcxLDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeT4gewogICAg
ID47CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNjcmlwdE1h
cmt1cFBvbGljeT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdl
YkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U2NyaXB0TWFya3Vw
UG9saWN5OjpFbmFibGUsCisgICAgICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlz
YWJsZQorICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCmluZGV4IDM5ZDhjYTU5MjU4ZDYxNjJkNGY4Yjk5NWNkM2M5OTA5ZTk1
ZmVkODUuLjhhYjNmYzI2ZGM0YjUxYTcyZDQ5Y2RkM2MzYTgwYTg5MDBmODU5ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTg4LDggKzE4OCw5IEBAIEV4Y2VwdGlv
bk9yPERvY3VtZW50Kj4gWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKCkKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSBYTUxEb2N1bWVudDo6
Y3JlYXRlKG51bGxwdHIsIG1fcmVzcG9uc2UudXJsKCkpOwogICAgICAgICAgICAgbV9yZXNwb25z
ZURvY3VtZW50LT5vdmVycmlkZUxhc3RNb2RpZmllZChtX3Jlc3BvbnNlLmxhc3RNb2RpZmllZCgp
KTsKLSAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNl
QnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CisvLyAgICAgICAgICAgIG1fcmVz
cG9uc2VEb2N1bWVudC0+c2V0U2NyaXB0TWFya3VwUG9saWN5T3ZlcnJpZGVGcm9tQ3JlYXRvcihj
b250ZXh0LnNjcmlwdE1hcmt1cEVuYWJsZWQoKSA/IFNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxl
IDogU2NyaXB0TWFya3VwUG9saWN5OjpEaXNhYmxlKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VE
b2N1bWVudC0+c2V0Q29udGV4dERvY3VtZW50KGNvbnRleHQpOworICAgICAgICAgICAgbV9yZXNw
b25zZURvY3VtZW50LT5zZXRDb250ZW50KG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpKTsKICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0U2VjdXJp
dHlPcmlnaW5Qb2xpY3koY29udGV4dC5zZWN1cml0eU9yaWdpblBvbGljeSgpKTsKICAgICAgICAg
ICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+b3ZlcnJpZGVNSU1FVHlwZShtaW1lVHlwZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKaW5kZXggOTQ4ZjJh
NWFiYjgyYTEyOWU0NjE5ZDMyNjIzNGMwZjEwNjg5NjhiNy4uNTI3NjAyY2ZjMDZkZDgxOTk3MzJi
ZWFkOGUwYWI1OTVjNDA5NDcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
c2l0ZVBvbGljaWVzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBv
bGljaWVzRGF0YS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBXZWJzaXRlUG9saWNpZXNEYXRh
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2lt
dWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTsKICAgICBlbmNvZGVyIDw8IGxlZ2FjeU92
ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k7CiAgICAgZW5jb2RlciA8PCBhbGxvd0NvbnRlbnRD
aGFuZ2VPYnNlcnZlclF1aXJrOworICAgIGVuY29kZXIgPDwgc2NyaXB0TWFya3VwUG9saWN5Owog
fQogCiBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQpAQCAtMTM0LDcgKzEzNSwxMiBAQCBPcHRpb25h
bDxXZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQogICAgIGRlY29kZXIgPj4gYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2
ZXJRdWlyazsKICAgICBpZiAoIWFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmspCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCisKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpT
Y3JpcHRNYXJrdXBQb2xpY3k+IHNjcmlwdE1hcmt1cFBvbGljeTsKKyAgICBkZWNvZGVyID4+IHNj
cmlwdE1hcmt1cFBvbGljeTsKKyAgICBpZiAoIXNjcmlwdE1hcmt1cFBvbGljeSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIHJldHVybiB7IHsKICAgICAgICAgV1RGTW92ZSgq
Y29udGVudEJsb2NrZXJzRW5hYmxlZCksCiAgICAgICAgIFdURk1vdmUoKmFsbG93ZWRBdXRvcGxh
eVF1aXJrcyksCkBAIC0xNTMsNiArMTU5LDcgQEAgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4gV2Vic2l0ZVBvbGljaWVzRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAg
ICAgICAgV1RGTW92ZSgqc2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeSksCiAgICAg
ICAgIFdURk1vdmUoKmxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kpLAogICAgICAg
ICBXVEZNb3ZlKCphbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKSwKKyAgICAgICAgV1RG
TW92ZSgqc2NyaXB0TWFya3VwUG9saWN5KSwKICAgICB9IH07CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAppbmRleCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2Ni
MjBmNWY3MzNkMzczYTQyMmY0Li4yOTQ3MDdiM2U4YWFmNThhMTVlODYwMDkxZWQyZDhlMjdjMjYx
ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0
Y2hQb2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0N1c3RvbUhlYWRlckZpZWxkcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC02OCw2ICs2OSw3IEBAIHN0cnVjdCBX
ZWJzaXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNw
YXRjaFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHsgV2Vic2l0ZVNp
bXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBXZWJzaXRl
TGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSBsZWdhY3lPdmVyZmxvd1Njcm9sbGlu
Z1RvdWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k6
OkRlZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgeyBm
YWxzZSB9OworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xp
Y3kgeyBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkVuYWJsZSB9OwogCiAgICAgdm9pZCBl
bmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYnNpdGVQ
b2xpY2llc0RhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKaW5kZXggZTcxZTNiMzBiOTM1
ZGEwYWRjNzY2YzM0YzU3NmMzMTRhMWQxOTZiOS4uMGFiMmVlZjZiNWE2MDUxN2QxMzEzYTUwMGI0
Y2E0NjVkZTFkZTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVdlYnNpdGVQb2xpY2llcy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBXZWJLaXQ6OldlYnNpdGVQ
b2xpY2llc0RhdGEgV2Vic2l0ZVBvbGljaWVzOjpkYXRhKCkKICAgICAgICAgbV9zaW11bGF0ZWRN
b3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LAogICAgICAgICBtX2xlZ2FjeU92ZXJmbG93U2Nyb2xs
aW5nVG91Y2hQb2xpY3ksCiAgICAgICAgIG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWly
aywKKyAgICAgICAgbV9zY3JpcHRNYXJrdXBQb2xpY3ksIAogICAgIH07CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAppbmRleCA5NDYz
ZTUzOTRmNTFjYzcyZDc2MDg5MWNkODQ0NTEwMTE5ODllYTYwLi43NmNlM2Y4Nzg1MzlhYjdiNWUw
ODNmODQzZThkMzM5MTA0NWM1ODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2Vi
c2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0N1c3RvbUhlYWRlckZpZWxkcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVM
b2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUEhlYWRlckZpZWxkLmg+CiAjaW5j
bHVkZSA8d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExNiw2
ICsxMTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1
aXJrKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOyB9
CiAgICAgdm9pZCBzZXRBbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrKGJvb2wgYWxsb3cp
IHsgbV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrID0gYWxsb3c7IH0KIAorICAgIFdl
YkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBzY3JpcHRNYXJrdXBQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3NjcmlwdE1hcmt1cFBvbGljeTsgfQorICAgIHZvaWQgc2V0U2NyaXB0TWFya3VwUG9s
aWN5KFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBwb2xpY3kpIHsgbV9zY3JpcHRNYXJrdXBQ
b2xpY3kgPSBwb2xpY3k7IH0KKwogcHJpdmF0ZToKICAgICBXZWJzaXRlUG9saWNpZXMoYm9vbCBj
b250ZW50QmxvY2tlcnNFbmFibGVkLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlR
dWlyaz4sIFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UG9saWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRU
UEhlYWRlckZpZWxkPiYmLCBWZWN0b3I8V2ViQ29yZTo6Q3VzdG9tSGVhZGVyRmllbGRzPiYmLCBX
ZWJLaXQ6OldlYnNpdGVQb3BVcFBvbGljeSwgUmVmUHRyPFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZT4mJik7CiAKQEAgLTE0MCw2ICsxNDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hbGxvd1Np
dGVTcGVjaWZpY1F1aXJrc1RvT3ZlcnJpZGVDb250ZW50TW9kZSB7IGZhbHNlIH07CiAgICAgV1RG
OjpTdHJpbmcgbV9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50OwogICAgIGJvb2wg
bV9hbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrIHsgZmFsc2UgfTsKKyAgICBXZWJDb3Jl
OjpTY3JpcHRNYXJrdXBQb2xpY3kgbV9zY3JpcHRNYXJrdXBQb2xpY3kgeyBXZWJDb3JlOjpTY3Jp
cHRNYXJrdXBQb2xpY3k6OkVuYWJsZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAppbmRl
eCA1MGE4MmY3ZDgyYjE3MjU4MmE0YzEwNWFhZjk3ZGE3NDk0OWUwODVjLi44OTY4NmRhZWRjYjli
OTFkNjUyY2M0MWRkZWRmM2MwYmVjZmNkNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKQEAgLTQwLDExICs0MCw2IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogICovCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgQ0dGbG9hdCBtaW5pbXVtRm9udFNpemU7CiAKLS8qISBAYWJzdHJhY3QgQSBCb29s
ZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGlzIGVuYWJsZWQuCi0gQGRp
c2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTLgotICovCi1AcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBqYXZhU2NyaXB0RW5hYmxlZDsKLQogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4g
dmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4KICB3aW5kb3dzIHdp
dGhvdXQgdXNlciBpbnRlcmFjdGlvbi4KICBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBp
cyBOTyBpbiBpT1MgYW5kIFlFUyBpbiBPUyBYLgpAQCAtNzEsNyArNjYsMTEgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAKIEBpbnRlcmZhY2UgV0tQcmVmZXJl
bmNlcyAoV0tEZXByZWNhdGVkKQogCisjaWYgIVRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGphdmFFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJKYXZhIGlzIG5v
IGxvbmdlciBzdXBwb3J0ZWQiLCBtYWNvcygxMC4xMCwgMTAuMTUpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIHBsdWdJbnNFbmFibGVkIFdLX0FQSV9ERVBSRUNBVEVEKCJQbHVnLWlucyBh
cmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEwLCAxMC4xNSkpOworI2VuZGlmCisK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVkIFdLX0FQSV9ERVBS
RUNBVEVEKCJVc2UgV0tXZWJQYWdlUHJlZmVyZW5jZXMuYWxsb3dzSmF2YVNjcmlwdE1hcmt1cCB0
byBkaXNhYmxlIEphdmFTY3JpcHQgbWFya3VwIG9uIGEgcGVyLW5hdmlnYXRpb24gYmFzaXMiLCBt
YWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5t
bQppbmRleCA1NDIxOGE0ZDljMGY5YWRiNjE0MjkyZDJmMmFlYmMyYjM1M2FhMjg4Li4xNDIwMTFm
YmIzZTM2ZTZiYzliZmY1MTgzZjZhZmI1NmM3M2M0ZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtNjUsOSArNjUsMTIg
QEAgKyAoQk9PTClzdXBwb3J0c1NlY3VyZUNvZGluZwogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6
KE5TQ29kZXIgKiljb2RlcgogewogICAgIFtjb2RlciBlbmNvZGVEb3VibGU6c2VsZi5taW5pbXVt
Rm9udFNpemUgZm9yS2V5OkAibWluaW11bUZvbnRTaXplIl07Ci0gICAgW2NvZGVyIGVuY29kZUJv
b2w6c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCBmb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOwog
ICAgIFtjb2RlciBlbmNvZGVCb29sOnNlbGYuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSBmb3JLZXk6QCJqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5Il07
CiAKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgW2NvZGVyIGVuY29k
ZUJvb2w6c2VsZi5qYXZhU2NyaXB0RW5hYmxlZCBmb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJd
OworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMp
CiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFtjb2RlciBlbmNvZGVC
b29sOnNlbGYuamF2YUVuYWJsZWQgZm9yS2V5OkAiamF2YUVuYWJsZWQiXTsKQEAgLTgzLDkgKzg2
LDEyIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHNlbGYubWluaW11bUZvbnRTaXplID0gW2NvZGVyIGRl
Y29kZURvdWJsZUZvcktleTpAIm1pbmltdW1Gb250U2l6ZSJdOwotICAgIHNlbGYuamF2YVNjcmlw
dEVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRFbmFibGVkIl07
CiAgICAgc2VsZi5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gW2NvZGVy
IGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
Il07CiAKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgc2VsZi5qYXZh
U2NyaXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9yS2V5OkAiamF2YVNjcmlwdEVuYWJs
ZWQiXTsKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAjaWYgUExBVEZPUk0o
TUFDKQogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBzZWxmLmphdmFF
bmFibGVkID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJqYXZhRW5hYmxlZCJdOwpAQCAtMTEy
LDE2ICsxMTgsNiBAQCAtICh2b2lkKXNldE1pbmltdW1Gb250U2l6ZTooQ0dGbG9hdCltaW5pbXVt
Rm9udFNpemUKICAgICBfcHJlZmVyZW5jZXMtPnNldE1pbmltdW1Gb250U2l6ZShtaW5pbXVtRm9u
dFNpemUpOwogfQogCi0tIChCT09MKWphdmFTY3JpcHRFbmFibGVkCi17Ci0gICAgcmV0dXJuIF9w
cmVmZXJlbmNlcy0+amF2YVNjcmlwdEVuYWJsZWQoKTsKLX0KLQotLSAodm9pZClzZXRKYXZhU2Ny
aXB0RW5hYmxlZDooQk9PTClqYXZhU2NyaXB0RW5hYmxlZAotewotICAgIF9wcmVmZXJlbmNlcy0+
c2V0SmF2YVNjcmlwdEVuYWJsZWQoamF2YVNjcmlwdEVuYWJsZWQpOwotfQotCiAtICh2b2lkKXNl
dEZyYXVkdWxlbnRXZWJzaXRlV2FybmluZ0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAogewogICAgIF9w
cmVmZXJlbmNlcy0+c2V0U2FmZUJyb3dzaW5nRW5hYmxlZChlbmFibGVkKTsKQEAgLTE0MzIsMTAg
KzE0MjgsMTEgQEAgLSAoQk9PTClfZGV2aWNlT3JpZW50YXRpb25FdmVudEVuYWJsZWQKIAogQGVu
ZAogCi0jaWYgIVRBUkdFVF9PU19JUEhPTkUKIAogQGltcGxlbWVudGF0aW9uIFdLUHJlZmVyZW5j
ZXMgKFdLRGVwcmVjYXRlZCkKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCisKIC0gKEJPT0wpamF2
YUVuYWJsZWQKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhRW5hYmxlZCgpOwpAQCAt
MTQ1Niw2ICsxNDUzLDE3IEBAIC0gKHZvaWQpc2V0UGx1Z0luc0VuYWJsZWQ6KEJPT0wpcGx1Z0lu
c0VuYWJsZWQKICAgICBfcHJlZmVyZW5jZXMtPnNldFBsdWdpbnNFbmFibGVkKHBsdWdJbnNFbmFi
bGVkKTsKIH0KIAorI2VuZGlmCisKKy0gKEJPT0wpamF2YVNjcmlwdEVuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5hYmxlZCgpOworfQorCistICh2b2lkKXNl
dEphdmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3JpcHRFbmFibGVkCit7CisgICAgX3ByZWZl
cmVuY2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxlZCk7Cit9CisKIEBl
bmQKIAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oCmluZGV4IDI3NDdlODEyOGYwM2YwMmRiZWVmYjVj
NWZjOTZmYzU3N2YyMTdhZDYuLmNhYzE5NTZmNDBlOTVjNjA2NmFmYWM4NzAwZGEzODEwYTE0NTFi
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnBhZ2VQcmVmZXJlbmNlcy5oCkBAIC01Nyw0ICs1NywxOSBAQCBXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBX
S0NvbnRlbnRNb2RlIHByZWZlcnJlZENvbnRlbnRNb2RlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEz
LjApKTsKIAorLyogQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIg
SmF2YVNjcmlwdCBmcm9tIHdlYiBjb250ZW50IGlzIGVuYWJsZWQKKyBAZGlzY3Vzc2lvbiBJZiB0
aGlzIHZhbHVlIGlzIHNldCB0byBOTyB0aGVuIEphdmFTY3JpcHQgcmVmZXJlbmNlZCBieSB0aGUg
d2ViIGNvbnRlbnQgd2lsbCBub3QgZXhlY3V0ZS4KKyBUaGlzIGluY2x1ZGVzIEphdmFTY3JpcHQg
Zm91bmQgaW4gaW5saW5lIDxzY3JpcHQ+IGVsZW1lbnRzLCByZWZlcmVuY2VkIGJ5IGV4dGVybmFs
IEphdmFTY3JpcHQgcmVzb3VyY2VzLAorICJqYXZhc2NyaXB0OiIgVVJMcywgYW5kIGFsbCBvdGhl
ciBmb3Jtcy4KKworIEV2ZW4gaWYgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gTk8geW91ciBhcHBsaWNh
dGlvbiBjYW4gc3RpbGwgZXhlY3V0ZSBKYXZhU2NyaXB0IHVzaW5nOgorIC0gW1dLV2ViVmlldyBl
dmFsdXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFuZGxlcjpdCisgLSBbV0tXZWJWaWV3IGV2YWx1
dGVKYXZhU2NyaXB0OmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5kbGVyOl0KKyAtIFtXS1dl
YlZpZXcgY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6aW5Db250ZW50V29ybGQ6Y29tcGxl
dGlvbkhhbmRsZXI6XQorIC0gV0tVc2VyU2NyaXB0cworCisgVGhlIGRlZmF1bHQgdmFsdWUgaXMg
WUVTLgorKi8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0NvbnRlbnRKYXZhU2Ny
aXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CisKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnBhZ2VQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQppbmRleCA5OWYwYzBhODBhOGJlNDUzMjQzNTZiNjM5
NjEwOWYzNmY0Y2ZkYzc0Li5hMjBlYTFlYjZhMDY4ZTVhNmYzNjM2Y2FmOTY5ZTIxMmU5MWVhNjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2VicGFnZVByZWZlcmVuY2VzLm1tCkBAIC0zMzEsNiArMzMxLDIxIEBAIC0gKEFQSTo6T2JqZWN0
JilfYXBpT2JqZWN0CiAgICAgcmV0dXJuICpfd2Vic2l0ZVBvbGljaWVzOwogfQogCistICh2b2lk
KXNldEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OihCT09MKWFsbG93c0NvbnRlbnRKYXZhU2NyaXB0
Cit7CisgICAgX3dlYnNpdGVQb2xpY2llcy0+c2V0U2NyaXB0TWFya3VwUG9saWN5KGFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0ID8gV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgOiBX
ZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkRpc2FibGUpOworfQorCistIChCT09MKWFsbG93
c0NvbnRlbnRKYXZhU2NyaXB0Cit7CisgICAgc3dpdGNoIChfd2Vic2l0ZVBvbGljaWVzLT5zY3Jp
cHRNYXJrdXBQb2xpY3koKSkgeworICAgIGNhc2UgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5
OjpFbmFibGU6CisgICAgICAgIHJldHVybiBZRVM7CisgICAgY2FzZSBXZWJDb3JlOjpTY3JpcHRN
YXJrdXBQb2xpY3k6OkRpc2FibGU6CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9Cit9CisKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAtICh2b2lkKXNldFByZWZlcnJlZENvbnRlbnRNb2Rl
OihXS0NvbnRlbnRNb2RlKWNvbnRlbnRNb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCBmMWJkNzFhMjQ1MTdjNDc5YTEzZjZkODIwOWZjOGU5YjE0OTU0ZmE2Li4xNTA1ODk2
YjM3MjI1MGQxNDMwNDJkNDRkMjQ1ZGIyMjk5NzY0MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTg5NCw2ICs4OTQsMTIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG8K
ICAgICBXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBseVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSh3
ZWJzaXRlUG9saWNpZXMpLCAqZG9jdW1lbnRMb2FkZXIpOwogfQogCitXZWJDb3JlOjpTY3JpcHRN
YXJrdXBQb2xpY3kgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNjcmlwdE1hcmt1cFBvbGljeUZyb21N
b3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0Cit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1f
ZnJhbWUgPyBtX2ZyYW1lLT5wYWdlKCkgOiBudWxscHRyOworICAgIHJldHVybiB3ZWJQYWdlID8g
d2ViUGFnZS0+c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgOiBX
ZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkRpc2FibGU7Cit9CisKIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIFBvbGljeURlY2lzaW9uTW9kZSBwb2xpY3lEZWNpc2lv
bk1vZGUsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwg
RnJhbWVQb2xpY3lGdW5jdGlvbiYmIGZ1bmN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCA5YWE1YTA1NDkyNDNhODM5NDBlNWE5NTBkZGJjODE3YTQ0YjUwOTQzLi5mYWIx
Njk2N2EyYWNjOWE0ZTc0OTlkZTQ0YzRhMWI0Mjk0NmNmOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaApAQCAtNjIsNyArNjIsOSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2b2lkIHNl
dEhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKEZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNz
SWRlbnRpZmllciYmKTsKICNlbmRpZgotICAgIAorCisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3Vw
UG9saWN5IHNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0
IGZpbmFsOworCiBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmlu
ZGV4IGY2Yzk4NGUzMDVlYzdmN2RhZWQ5N2Y2ODZlODlhMjdmYjkwYmI0N2UuLmE4M2VhNmI3NTNl
ODUwY2MzN2NkMGFmZWE4ZDc4MzBiODQxMTUyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTI2NSw4ICsyNjUsMTEgQEAgdm9pZCBXZWJG
cmFtZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNv
cmU6OlBvbGljeUNoZWMKIAogICAgIGludmFsaWRhdGVQb2xpY3lMaXN0ZW5lcigpOwogCi0gICAg
aWYgKGZvck5hdmlnYXRpb25BY3Rpb24gJiYgbV9mcmFtZUxvYWRlckNsaWVudCAmJiB3ZWJzaXRl
UG9saWNpZXMpCisgICAgaWYgKGZvck5hdmlnYXRpb25BY3Rpb24gJiYgbV9mcmFtZUxvYWRlckNs
aWVudCAmJiB3ZWJzaXRlUG9saWNpZXMpIHsKKyAgICAgICAgQVNTRVJUKHBhZ2UoKSk7CisgICAg
ICAgIHBhZ2UoKS0+c2V0U2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9u
KHdlYnNpdGVQb2xpY2llcy0+c2NyaXB0TWFya3VwUG9saWN5KTsKICAgICAgICAgbV9mcmFtZUxv
YWRlckNsaWVudC0+YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUoKndlYnNpdGVQb2xpY2ll
cykpOworICAgIH0KIAogICAgIG1fcG9saWN5RG93bmxvYWRJRCA9IGRvd25sb2FkSUQ7CiAgICAg
aWYgKG5hdmlnYXRpb25JRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCBlMDI4NGE4MTgyNDFkNzEzMGNhZDI3NTNkZGI4ODAwMDhmYTk5NTVh
Li45YmY5MDFlNzZiZWM1NTliYzM0MTc3ZDhlNTM3ZjFjOWE2OTMxZmUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjI2MCw2ICs2MjYwLDcg
QEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVXZWJzaXRlUG9saWNpZXMoV2Vic2l0ZVBvbGljaWVzRGF0
YSYmIHdlYnNpdGVQb2xpY2llcykKICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlv
biA9IHdlYnNpdGVQb2xpY2llcy5zY3JpcHRNYXJrdXBQb2xpY3k7CiAgICAgV2Vic2l0ZVBvbGlj
aWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwg
KmRvY3VtZW50TG9hZGVyKTsKICAgICAKICNpZiBFTkFCTEUoVklERU8pCkBAIC02MzE1LDYgKzYz
MTYsNyBAQCBSZWY8RG9jdW1lbnRMb2FkZXI+IFdlYlBhZ2U6OmNyZWF0ZURvY3VtZW50TG9hZGVy
KEZyYW1lJiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZQogICAgICAgICB9CiAKICAgICAgICAgaWYg
KG1fcGVuZGluZ1dlYnNpdGVQb2xpY2llcykgeworICAgICAgICAgICAgbV9zY3JpcHRNYXJrdXBQ
b2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24gPSBtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMt
PnNjcmlwdE1hcmt1cFBvbGljeTsKICAgICAgICAgICAgIFdlYnNpdGVQb2xpY2llc0RhdGE6OmFw
cGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKCptX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMpLCBk
b2N1bWVudExvYWRlcik7CiAgICAgICAgICAgICBtX3BlbmRpbmdXZWJzaXRlUG9saWNpZXMgPSBX
VEY6Om51bGxvcHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCBiZGFiODFiMjljZmYyMDFlYWExM2JmM2Q2NGQ5MjM0ZTAzYTgxYzVj
Li5hOWE1ZjAxMWMwNDhkYzgzNzdkZGFkZjU1MDM5ZmViM2Q2MzBjNGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjc1LDcgKzEyNzUsMTAgQEAg
cHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVu
TWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwotICAgIAorCisgICAgV2ViQ29yZTo6U2NyaXB0TWFy
a3VwUG9saWN5IHNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9u
OyB9CisgICAgdm9pZCBzZXRTY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRp
b24oV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHBvbGljeSkgeyBtX3NjcmlwdE1hcmt1cFBv
bGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiA9IHBvbGljeTsgfQorCiBwcml2YXRlOgogICAg
IFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJik7CiAKQEAgLTIwNDgsNiArMjA1MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFN0
cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9s
aWN5IG1fc2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uIHsgV2ViQ29y
ZTo6U2NyaXB0TWFya3VwUG9saWN5OjpFbmFibGUgfTsKIAogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICBTdHJpbmcgbV90aGVtZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYjk5YTJiNDk5ZjhjNWI0YjcxNTEwNzU2OTBiZjcxOGQ3ZTZmYWM3
OS4uOGJiZTVlZDJiZjE4ZTVjNzhiNTkxMGNmOGY4NTYwOGI2MGY0NDQ0YiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisy
MDIwLTAyLTEzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBF
eHBvc2UgImFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tOgorICAg
ICAgICAoLVtXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAoLVtXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNl
czp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjpwcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0
aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldp
dGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOiBE
ZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpwcmVmZXJlbmNlczpdKToK
KwogMjAyMC0wMi0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGVzdFdlYktpdEFQSTogUmUtYmFzZWxpbmUgRG9jdW1lbnRFZGl0aW5nQ29udGV4dCBm
b3IgQ2F0YWx5c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXgg
ZmMwMzM3NTdlNDQ4MWMwNmYxOGZmMTk3NjdlMDNmZDIxM2YyMWYwNy4uNTM3N2JiYTNjN2RjZmYz
YTY0YjI0NjA0NjA0OTBiNThlNmEyODIzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUph
dmFTY3JpcHQubW0KQEAgLTI2LDEzICsyNiwxNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUQ1BTZXJ2ZXIuaCIKICNpbXBv
cnQgIlRlc3QuaCIKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQg
IlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFdvcmxkLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tFcnJvclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KICNpbXBvcnQgPFdl
YktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAg
LTI1NCwzICsyNTgsMTE0IEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRJbkF0dGFj
aG1lbnRzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1Qo
V2ViS2l0LCBBbGxvd3NDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdL
V2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4i
XTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1Rf
VFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAgICAgICBF
WFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9u
ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KworICAgIFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMgPSBhZG9w
dE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBFQ1RfVFJV
RShwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAgcHJlZmVy
ZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2Ny
aXB0PiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNl
OworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRs
ZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJl
c3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5z
U3RyaW5nOkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1
ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAg
VGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc2NyaXB0Iiwg
eyAidmFyIGZvbyA9ICdiYXInIiB9IH0KKyAgICB9KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5h
bGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0n
aHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHBy
ZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3Nd
XSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0p
OworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFT
Y3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTol
ZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVu
Y2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJV
RShbW2Vycm9yIGRlc2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFi
bGU6IGZvbyJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0ID0gWUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIjxpZnJhbWUgc3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48L2lmcmFt
ZT4iIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBdLmZvbyIg
Y29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAg
IEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRP
ZkNsYXNzOltOU051bWJlciBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBp
c0VxdWFsVG9OdW1iZXI6QDFdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgp
LmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZvbyA9IDEn
PjwvaWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9
IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5mcmFtZXNb
MF0uZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3Ip
OworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYktpdCwgU1BJSmF2YXNjcmlwdE1hcmt1cFZzQVBJ
Q29udGVudEphdmFTY3JpcHQpCit7CisgICAgLy8gVGhlcmUncyBub3QgYSBkeW5hbWljYWxseSBj
b25maWd1cmF0aW9uIHNldHRpbmcgZm9yIGphdmFzY3JpcHQgbWFya3VwLAorICAgIC8vIGJ1dCBp
dCBjYW4gYmUgY29uZmlndXJlZCBhdCBXS1dlYlZpZXcgY3JlYXRpb24gdGltZS4KKyAgICBXS1dl
YlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1tbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIGNvbmZpZ3VyYXRpb24uX2FsbG93
c0phdmFTY3JpcHRNYXJrdXAgPSBOTzsKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworCisg
ICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGZvbGxvd2luZyBKUyBkb2VzIG5vdCBleGVjdXRlLgorICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9
ICdiYXInPC9zY3JpcHQ+Il07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6Xihp
ZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7
CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5n
OkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gVHJ5
IHRvIGV4cGxpY2l0bHkgZW5hYmxlIHNjcmlwdCBtYXJrdXAgdXNpbmcgV0tXZWJwYWdlUHJlZmVy
ZW5jZXMsIGJ1dCB2ZXJpZnkgaXQgc2hvdWxkIHN0aWxsIGZhaWwgYmVjYXVzZQorICAgIC8vIG9m
IHRoZSBhYm92ZSBjb25maWd1cmF0aW9uIHNldHRpbmcuCisgICAgUmV0YWluUHRyPFdLV2VicGFn
ZVByZWZlcmVuY2VzPiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNl
cyBhbGxvY10gaW5pdF0pOworICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLmdldCgpLmFsbG93
c0NvbnRlbnRKYXZhU2NyaXB0KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6cHJl
ZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVD
VF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmluZCB2
YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IGRk
NzljNWRkMGNmY2JiMGE4YzA4Mjk2ZmFjNjM3NmU5N2I3OGMxOTcuLjA5NzZiMzZlNTE2NWM0YzQ2
YzdkMzg0MWMyYjM1ZjY1ZjA0ZjkwMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCkBAIC0yMzksMTUgKzIz
OSwxNSBAQCAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9w
bGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbgogQGVuZAogCiBAaW50ZXJmYWNlIFdlYnNp
dGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSA6IFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgPFdL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMp
KFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1
cmVDb2Rpbmc+LCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMpKFdLTmF2aWdhdGlv
bkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdlYnNpdGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGlu
Zz4pdXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdL
V2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lz
aW9uSGFuZGxlcgogewogICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldp
dGhXZWJzaXRlUG9saWNpZXMpCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uV2l0aFdlYnNpdGVQb2xpY2llcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywgdXNl
ckluZm8sIGRlY2lzaW9uSGFuZGxlcik7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNl
cywgZGVjaXNpb25IYW5kbGVyKTsKICAgICBlbHNlCiAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgbmlsKTsKIH0KQEAgLTYxNiw3ICs2MTYsNyBA
QCBURVNUKFdlYnBhZ2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzV2l0aEJyaWRnaW5nQ2Fz
dCkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xpY2llc05hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgX19ibG9jayBib29sIGRpZEludm9rZURl
Y2lzaW9uSGFuZGxlciA9IGZhbHNlOwotICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAq
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1cmVDb2Rpbmc+LCB2b2lkICheZGVj
aXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVu
Y2VzICopKSB7CisgICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVBy
ZWZlcmVuY2VzICosIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKICAgICAgICAgYXV0byBwb2xpY2llcyA9
IGFkb3B0V0soV0tXZWJzaXRlUG9saWNpZXNDcmVhdGUoKSk7CiAgICAgICAgIGRlY2lzaW9uSGFu
ZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgKF9fYnJpZGdlIFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopcG9saWNpZXMuZ2V0KCkpOwogICAgICAgICBkaWRJbnZva2VEZWNpc2lvbkhh
bmRsZXIgPSB0cnVlOwpAQCAtNjM1LDcgKzYzNSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2Vz
LCBXZWJzaXRlUG9saWNpZXNXaXRoVW5leHBlY3RlZFR5cGUpCiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRDYXRjaEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIFtk
ZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xp
Y2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8
TlNTZWN1cmVDb2Rpbmc+LCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7CisgICAgW2RlbGVnYXRlIHNldERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZp
Z2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF5kZWNpc2lvbkhh
bmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikp
IHsKICAgICAgICAgQHRyeSB7CiAgICAgICAgICAgICBpZCBmYWtlUG9saWNpZXMgPSBAIkhlbGxv
IjsKICAgICAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lB
bGxvdywgKFdLV2VicGFnZVByZWZlcmVuY2VzICopZmFrZVBvbGljaWVzKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKaW5kZXggMjIz
MjAxYmNiZWY5YzljNzdkODVjMWRkMWU4NTg4NDI2YjYyZjVmYi4uYjY0NzIyOWRjYjg1OTk3NDYw
NWM3ZmIzMDlkODVkMmNhMDM0NGU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTMxLDYgKzMxLDcgQEAKIEBpbnRlcmZh
Y2UgVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0
ZT4KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKShXS05hdmlnYXRpb25BY3Rpb24gKiwgdm9pZCAoXikoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpKFdLTmF2aWdhdGlv
bkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSB2b2lkICheZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tXZWJWaWV3
ICosIFdLTmF2aWdhdGlvbiAqLCBOU0Vycm9yICopOwogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHkpIHZvaWQgKF5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdL
TmF2aWdhdGlvbiAqKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkQ29t
bWl0TmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKTsKQEAgLTQxLDYgKzQy
LDcgQEAKIAogLSAodm9pZCl3YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb247CiAt
ICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9pZCl3YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVm
ZXJlbmNlczsKIC0gKHZvaWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb247CiAK
IEBlbmQKQEAgLTQ4LDUgKzUwLDYgQEAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChUZXN0V2ViS2l0
QVBJRXh0cmFzKQogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmln
YXRpb247CiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9p
ZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZp
bmlzaE5hdmlnYXRpb25XaXRob3V0UHJlc2VudGF0aW9uVXBkYXRlOwogQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCmluZGV4
IDMzZTIxMWI0MWY0YzdmY2RkNWZjNmU0ZDJkODFiM2I0NTk1ZDBiNjUuLmJkYzUxNzU3YjM5NGFm
NjJjYzQwZjQxMTMwYjU1MDJlYjdmN2IyOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KQEAgLTMyLDEyICszMiwxNiBAQAog
CiBAaW1wbGVtZW50YXRpb24gVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZQogCi0tICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjoo
V0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5kbGVyCistICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczoo
V0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVj
aXNpb25IYW5kbGVyCiB7Ci0gICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KQotICAgICAgICBfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0
aW9uLCBkZWNpc2lvbkhhbmRsZXIpOwotICAgIGVsc2UKLSAgICAgICAgZGVjaXNpb25IYW5kbGVy
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICBpZiAoX2RlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpCisgICAgICAgIF9kZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKG5hdmlnYXRpb25BY3Rpb24sIHByZWZl
cmVuY2VzLCBkZWNpc2lvbkhhbmRsZXIpOworICAgIGVsc2UgaWYgKF9kZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKSB7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKG5hdmlnYXRpb25BY3Rpb24sIF4oV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvbikg
eworICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyKGFjdGlvbiwgcHJlZmVyZW5jZXMpOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZp
Z2F0aW9uICopbmF2aWdhdGlvbgpAQCAtMTEyLDYgKzExNiwxOSBAQCAtICh2b2lkKXdhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uCiAgICAgc2VsZi5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gbmlsOwog
fQogCistICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgRVhQRUNUX0ZBTFNFKHNl
bGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyk7CisgICAg
RVhQRUNUX1RSVUUoISFwcmVmZXJlbmNlcyk7CisKKyAgICBzZWxmLmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0
aW9uLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheaGFuZGxlcikoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgICAgICBoYW5kbGVy
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CisgICAgfTsKKwor
ICAgIFtzZWxmIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBzZWxmLmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBuaWw7Cit9CisKIC0gKHZv
aWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24KIHsKICAgICBFWFBFQ1RfRkFM
U0Uoc2VsZi5kaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKTsKQEAgLTE1Miw2ICsxNjksMTcg
QEAgLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50
YXRpb25VcGRhdGUKICAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKIH0KIAorLSAo
dm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVYUEVDVF9GQUxTRShzZWxm
Lm5hdmlnYXRpb25EZWxlZ2F0ZSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgc2VsZi5u
YXZpZ2F0aW9uRGVsZWdhdGUgPSBuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgW25hdmln
YXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpw
cmVmZXJlbmNlc107CisKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKK30KKwog
LSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogewogICAgIEVYUEVDVF9G
QUxTRShzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5oCmluZGV4IGQ4ZTc1ZGMzYzBkYzRiNWE0MzZmMmZmZWNiOTY2Nzc0ZTY4
YzU4OWYuLmMxNjIwY2U0ZTBiNWJhOGUwZWE1MDZhNDBmODAyZGJmNjRmMDI4M2QgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01NCw2ICs1NCw3IEBACiAt
ICh2b2lkKXN5bmNocm9ub3VzbHlHb0ZvcndhcmQ7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVybDsKKy0gKHZvaWQp
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgcHJlZmVyZW5jZXM6
KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKXN5bmNocm9ub3Vz
bHlMb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIC0gKHZvaWQpc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwogLSAoQk9PTClfc3lu
Y2hyb25vdXNseUV4ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21tYW5kIGFyZ3VtZW50
OihOU1N0cmluZyAqKWFyZ3VtZW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tCmluZGV4IGNhYmIyYzM3M2UyYTQzZTJiOWE1MjNlMzkxZGY5YjhiNjgxZTgxOGUu
LjM1NjAwYjcxNWVlZTBlMzk4ZDczYjViZDFjZmI1ZDhkOTUzZDc1YWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTEyMiw2ICsxMjIsMTIgQEAgLSAo
dm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbAogICAgIFtz
ZWxmIHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W1tbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gYnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKIH0KIAorLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbCBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKilwcmVmZXJlbmNlcworeworICAgIFtzZWxmIGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVS
TDpbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtzZWxmIF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOnByZWZlcmVuY2VzXTsKK30K
KwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFn
ZU5hbWUKIHsKICAgICBbc2VsZiBsb2FkVGVzdFBhZ2VOYW1lZDpwYWdlTmFtZV07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390784</attachid>
            <date>2020-02-14 10:23:15 -0800</date>
            <delta_ts>2020-02-14 22:37:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200214102314.patch</filename>
            <type>text/plain</type>
            <size>41799</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1MDNhMDczODY0ZGI2
ODE0NjNjNGMxOTk5MGY5YWFlZDczMDE2NC4uMzM3YzQwY2YwODU1NzYzMDA0MTRlY2E1MWZiZDQ4
NmE5Y2ZlYmUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAyLTE0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRNYXJrdXBFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgCisgICAgICAgICogZG9t
L1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXI6OlNjcmlwdGFibGVEb2N1bWVudFBhcnNlcik6CisgICAgICAgIAor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlclR5cGVzLmg6CisgICAgICAgIAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dC5jcHA6IE1ha2Ugc3VyZSB0aGUgY29udGV4dCBkb2N1bWVudCBpcyBzZXQgQkVGT1JFIHdlIHBh
cnNlIHRoZSBkb2N1bWVudCBjb250ZW50cy4KKwogMjAyMC0wMi0xMyAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZUJyZWFrZXIgc2hvdWxk
IG5vdCBob2xkIG9uIHRvIHRoZSBsYXN0V3JhcE9wcG9ydHVuaXR5IGlubGluZSBpdGVtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDcxOTY0N2YxMTQwNjA4YmQ1ZTRkZjAxZjRhOTA5YzVlNzMyZjdjYjguLjM4Y2E0ZjE2
ZmY1MjdjNjdmOTJmNzM2OTNjY2E1N2EyZTdlNDQ2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkg
QEAKKzIwMjAtMDItMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEV4cG9zZSAiYWxsb3dzQ29udGVudEphdmFTY3JpcHQiIG9uIFdLV2VicGFnZVByZWZlcmVu
Y2VzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTUzNDk2Nz4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHV0aWl6ZXMgdGhlIHByZS1leGlzdGluZyBX
ZWJDb3JlOjpTZXR0aW5nczo6c2V0U2NyaXB0TWFya3VwRW5hYmxlZCgpIG1lY2hhbmlzbS4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBkZXByZWNhdGVzIHRoZSBnbG9iYWwgImRpc2FibGUg
SmF2YVNjcmlwdCIgV0tQcmVmZXJlbmNlIGFzIGl0IGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIGFu
eW1vcmUuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYnNpdGVQb2xpY2llc0RhdGEuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vi
c2l0ZVBvbGljaWVzLmNwcDoKKyAgICAgICAgKEFQSTo6V2Vic2l0ZVBvbGljaWVzOjpkYXRhKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2Vz
IGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpbml0V2l0aENv
ZGVyOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGphdmFTY3JpcHRFbmFibGVkXSk6Cisg
ICAgICAgICgtW1dLUHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlwdEVuYWJsZWQ6XSk6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbToKKyAgICAgICAg
KC1bV0tXZWJwYWdlUHJlZmVyZW5jZXMgc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6XSk6Cisg
ICAgICAgICgtW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0XSk6
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNjcmlwdE1h
cmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWU6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVdl
YnNpdGVQb2xpY2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0ZURvY3VtZW50
TG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9zdFJlY2VudE5hdmln
YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRTY3JpcHRNYXJrdXBQ
b2xpY3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24pOgorCiAyMDIwLTAyLTEzICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIC11cGRhdGVTZWxl
Y3Rpb25XaXRoRXh0ZW50UG9pbnQ6Y29tcGxldGlvbkhhbmRsZXI6IHNob3VsZCB3b3JrIHdpdGhv
dXQgcmVxdWlyaW5nIGZsb2F0aW5nIGN1cnNvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NTE0Mjk5OTE0NmJkOWUzMmJjNzkxNzIwY2FhZmZmNDViNjlhZTRmYy4uNGExYWM5NmE1M2IwNjg0
NDIxZmZjODhiYTE2MjhiYzE1Y2UwOTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02
ODEyLDYgKzY4MTIsMjMgQEAgRG9jdW1lbnRMb2FkZXIqIERvY3VtZW50Ojpsb2FkZXIoKSBjb25z
dAogICAgIHJldHVybiBsb2FkZXI7CiB9CiAKK2Jvb2wgRG9jdW1lbnQ6OnNjcmlwdE1hcmt1cEVu
YWJsZWQoKSBjb25zdAoreworICAgIGlmICghc2V0dGluZ3MoKS5zY3JpcHRNYXJrdXBFbmFibGVk
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV9mcmFtZSB8fCBtX2ZyYW1l
LT5kb2N1bWVudCgpICE9IHRoaXMpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dERvY3VtZW50KQor
ICAgICAgICAgICAgcmV0dXJuIG1fY29udGV4dERvY3VtZW50LT5zY3JpcHRNYXJrdXBFbmFibGVk
KCk7CisKKyAgICAgICAgLy8gSWYgdGhpcyBEb2N1bWVudCBpcyBmcmFtZWxlc3Mgb3IgaW4gdGhl
IHdyb25nIGZyYW1lLCAqYW5kKiBpdCBoYXMgbm8gY29udGV4dCBkb2N1bWVudCwKKyAgICAgICAg
Ly8gdGhlbiBpdCBoYXMgbm8gYnVzaW5lc3MgcnVubmluZyBtYXJrdXAgc2NyaXB0LgorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIG1fZnJhbWUtPmxvYWRlcigpLmNs
aWVudCgpLnNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpID09IFNj
cmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlOworfQorCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1l
bnRGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNGJlZTJiYjZkMmVlNmNiZGY4Yzc5YmVhMGJhNWFjOTZh
Mjc2ZGU5Zi4uNDRjNDE5NmEzNjNlZGJkYTY1MDJhYzAxYzdkNDg5YjdjMjBjMjIxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTE1NTEsNiArMTU1MSw4IEBAIHB1YmxpYzoKICAgICBIaWdobGln
aHRNYXAmIGhpZ2hsaWdodE1hcCgpOwogICAgIHZvaWQgdXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25z
KCk7CiAKKyAgICBib29sIHNjcmlwdE1hcmt1cEVuYWJsZWQoKSBjb25zdDsKKwogcHJvdGVjdGVk
OgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRl
cmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IFVS
TCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVjdGlv
bkZsYWdzID0gMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IDk1MDI4YmIyMTYyYmY3YTdmNmZiY2RlNTc3ODUyMGQzNWU4OWJkYzEu
LmQxMGYwMTgyOGMxZmVhY2E5YzE4ZWVmZjliNjc0YThmNWRjYWRlNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjo6U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKERv
Y3VtZW50JiBkb2N1bWVudCwgUGFyc2VyQ29uCiAgICAgaWYgKCFwbHVnaW5Db250ZW50SXNBbGxv
d2VkKG1fcGFyc2VyQ29udGVudFBvbGljeSkpCiAgICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGlj
eSA9IGFsbG93UGx1Z2luQ29udGVudChtX3BhcnNlckNvbnRlbnRQb2xpY3kpOwogCi0gICAgaWYg
KHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9j
dW1lbnQuc2V0dGluZ3MoKS5zY3JpcHRNYXJrdXBFbmFibGVkKCkpCisgICAgaWYgKHNjcmlwdGlu
Z0NvbnRlbnRJc0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2Ny
aXB0TWFya3VwRW5hYmxlZCgpKQogICAgICAgICBtX3BhcnNlckNvbnRlbnRQb2xpY3kgPSBkaXNh
bGxvd1NjcmlwdGluZ0NvbnRlbnQobV9wYXJzZXJDb250ZW50UG9saWN5KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBlOWRlYmUxYjg3ZjVkYTEx
NjhiM2NmOTY2NjAwNjU1MWIzYmUzNDU0Li5iNTFlZjdkZTMzNDlhMWYyNmU2YmQ4NWUyY2QwMWMy
YjU2NDFjZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMzc1LDYgKzM3NSw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQogICAgIHZpcnR1YWwgYm9vbCBoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzcygp
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKworICAgIHZpcnR1YWwgU2NyaXB0TWFya3VwUG9s
aWN5IHNjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIFNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJU
eXBlcy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCA4
ZDg2MjhhNzQyN2UyNjA5OGU4NTdhMGEyYWYzMmU4OTM2ZWI0NjA3Li40OWQyNGFhNzdkYWE4MjQ4
MWEyY2YxN2M1MWRkMzUxNGMzMTk1MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlclR5cGVzLmgKQEAgLTIyNyw2ICsyMjcsMTEgQEAgZW51bSBjbGFzcyBMb2FkQ29tcGxldGlv
blR5cGUgOiB1aW50OF90IHsKICAgICBDYW5jZWwKIH07CiAKK2VudW0gY2xhc3MgU2NyaXB0TWFy
a3VwUG9saWN5IDogdWludDhfdCB7CisgICAgRW5hYmxlLAorICAgIERpc2FibGUsCit9OworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMjY2LDQgKzI3MSwx
MiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3ksCisgICAgICAg
IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlLAorICAgICAgICBXZWJDb3JlOjpT
Y3JpcHRNYXJrdXBQb2xpY3k6OkRpc2FibGUKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAzOWQ4Y2E1OTI1OGQ2
MTYyZDRmOGI5OTVjZDNjOTkwOWU5NWZlZDg1Li5jYzIzMmJjNTdjMGM2ODIwYmUwYTcwZjAwMzA1
MzlkMTRkYmE1NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTE4
OCw4ICsxODgsOCBAQCBFeGNlcHRpb25PcjxEb2N1bWVudCo+IFhNTEh0dHBSZXF1ZXN0OjpyZXNw
b25zZVhNTCgpCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9yZXNwb25zZURv
Y3VtZW50ID0gWE1MRG9jdW1lbnQ6OmNyZWF0ZShudWxscHRyLCBtX3Jlc3BvbnNlLnVybCgpKTsK
ICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+b3ZlcnJpZGVMYXN0TW9kaWZpZWQobV9y
ZXNwb25zZS5sYXN0TW9kaWZpZWQoKSk7Ci0gICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQt
PnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkp
OwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRDb250ZXh0RG9jdW1lbnQoY29u
dGV4dCk7CisgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQobV9yZXNw
b25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwogICAgICAgICAgICAgbV9y
ZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBvbGljeShjb250ZXh0LnNlY3VyaXR5
T3JpZ2luUG9saWN5KCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5vdmVycmlk
ZU1JTUVUeXBlKG1pbWVUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9s
aWNpZXNEYXRhLmNwcAppbmRleCA5NDhmMmE1YWJiODJhMTI5ZTQ2MTlkMzI2MjM0YzBmMTA2ODk2
OGI3Li41Mjc2MDJjZmMwNmRkODE5OTczMmJlYWQ4ZTBhYjU5NWM0MDk0NzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcApAQCAtNTQsNiArNTQsNyBA
QCB2b2lkIFdlYnNpdGVQb2xpY2llc0RhdGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgZW5jb2RlciA8PCBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5
OwogICAgIGVuY29kZXIgPDwgbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTsKICAg
ICBlbmNvZGVyIDw8IGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7CisgICAgZW5jb2Rl
ciA8PCBzY3JpcHRNYXJrdXBQb2xpY3k7CiB9CiAKIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBA
IC0xMzQsNyArMTM1LDEyIEBAIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQ
b2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgZGVjb2RlciA+
PiBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrOwogICAgIGlmICghYWxsb3dDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJRdWlyaykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAK
KworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeT4gc2NyaXB0TWFya3Vw
UG9saWN5OworICAgIGRlY29kZXIgPj4gc2NyaXB0TWFya3VwUG9saWN5OworICAgIGlmICghc2Ny
aXB0TWFya3VwUG9saWN5KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgcmV0
dXJuIHsgewogICAgICAgICBXVEZNb3ZlKCpjb250ZW50QmxvY2tlcnNFbmFibGVkKSwKICAgICAg
ICAgV1RGTW92ZSgqYWxsb3dlZEF1dG9wbGF5UXVpcmtzKSwKQEAgLTE1Myw2ICsxNTksNyBAQCBP
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRhOjpkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBXVEZNb3ZlKCpzaW11bGF0ZWRNb3VzZUV2
ZW50c0Rpc3BhdGNoUG9saWN5KSwKICAgICAgICAgV1RGTW92ZSgqbGVnYWN5T3ZlcmZsb3dTY3Jv
bGxpbmdUb3VjaFBvbGljeSksCiAgICAgICAgIFdURk1vdmUoKmFsbG93Q29udGVudENoYW5nZU9i
c2VydmVyUXVpcmspLAorICAgICAgICBXVEZNb3ZlKCpzY3JpcHRNYXJrdXBQb2xpY3kpLAogICAg
IH0gfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGlj
aWVzRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5oCmlu
ZGV4IDk3OTU3M2Q1NWQ3MzI2YjhlMmEzY2IyMGY1ZjczM2QzNzNhNDIyZjQuLjI5NDcwN2IzZThh
YWY1OGExNWU4NjAwOTFlZDJkOGUyN2MyNjFlZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJzaXRlUG9saWNpZXNEYXRhLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJzaXRl
U2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q3VzdG9tSGVhZGVyRmllbGRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
clR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgSVBDIHsK
QEAgLTY4LDYgKzY5LDcgQEAgc3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGEgewogICAgIFdlYnNp
dGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5IHNpbXVsYXRlZE1vdXNlRXZlbnRz
RGlzcGF0Y2hQb2xpY3kgeyBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGlj
eTo6RGVmYXVsdCB9OwogICAgIFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9s
aWN5IGxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kgeyBXZWJzaXRlTGVnYWN5T3Zl
cmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeTo6RGVmYXVsdCB9OwogICAgIGJvb2wgYWxsb3dDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyayB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6U2NyaXB0TWFy
a3VwUG9saWN5IHNjcmlwdE1hcmt1cFBvbGljeSB7IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGlj
eTo6RW5hYmxlIH07CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAg
ICBzdGF0aWMgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4gZGVjb2RlKElQQzo6RGVjb2Rl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQ
b2xpY2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGlj
aWVzLmNwcAppbmRleCBlNzFlM2IzMGI5MzVkYTBhZGM3NjZjMzRjNTc2YzMxNGExZDE5NmI5Li4w
YWIyZWVmNmI1YTYwNTE3ZDEzMTNhNTAwYjRjYTQ2NWRlMWRlN2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcApAQCAtMTE3LDYg
KzExNyw3IEBAIFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSBXZWJzaXRlUG9saWNpZXM6OmRh
dGEoKQogICAgICAgICBtX3NpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3ksCiAgICAg
ICAgIG1fbGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeSwKICAgICAgICAgbV9hbGxv
d0NvbnRlbnRDaGFuZ2VPYnNlcnZlclF1aXJrLAorICAgICAgICBtX3NjcmlwdE1hcmt1cFBvbGlj
eSwgCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVdlYnNpdGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVQb2xpY2llcy5oCmluZGV4IDk0NjNlNTM5NGY1MWNjNzJkNzYwODkxY2Q4NDQ1MTAxMTk4
OWVhNjAuLjc2Y2UzZjg3ODUzOWFiN2I1ZTA4M2Y4NDNlOGQzMzkxMDQ1YzU4NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRj
aFBvbGljeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VzdG9tSGVhZGVyRmllbGRzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQSGVhZGVyRmllbGQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTE2LDYgKzExNyw5IEBAIHB1YmxpYzoKICAgICBib29sIGFs
bG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX2FsbG93Q29u
dGVudENoYW5nZU9ic2VydmVyUXVpcms7IH0KICAgICB2b2lkIHNldEFsbG93Q29udGVudENoYW5n
ZU9ic2VydmVyUXVpcmsoYm9vbCBhbGxvdykgeyBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVy
UXVpcmsgPSBhbGxvdzsgfQogCisgICAgV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5IHNjcmlw
dE1hcmt1cFBvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyaXB0TWFya3VwUG9saWN5OyB9Cisg
ICAgdm9pZCBzZXRTY3JpcHRNYXJrdXBQb2xpY3koV2ViQ29yZTo6U2NyaXB0TWFya3VwUG9saWN5
IHBvbGljeSkgeyBtX3NjcmlwdE1hcmt1cFBvbGljeSA9IHBvbGljeTsgfQorCiBwcml2YXRlOgog
ICAgIFdlYnNpdGVQb2xpY2llcyhib29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVBdXRvcGxheVF1aXJrPiwgV2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlQ
b2xpY3ksIFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYsIFZlY3RvcjxXZWJDb3Jl
OjpDdXN0b21IZWFkZXJGaWVsZHM+JiYsIFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9saWN5LCBSZWZQ
dHI8V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlPiYmKTsKIApAQCAtMTQwLDYgKzE0NCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2FsbG93U2l0ZVNwZWNpZmljUXVpcmtzVG9PdmVycmlkZUNvbnRl
bnRNb2RlIHsgZmFsc2UgfTsKICAgICBXVEY6OlN0cmluZyBtX2FwcGxpY2F0aW9uTmFtZUZvckRl
c2t0b3BVc2VyQWdlbnQ7CiAgICAgYm9vbCBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVp
cmsgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBtX3NjcmlwdE1h
cmt1cFBvbGljeSB7IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RW5hYmxlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJiMTcyNTgyYTRjMTA1YWFmOTdk
YTc0OTQ5ZTA4NWMuLjg5Njg2ZGFlZGNiOWI5MWQ2NTJjYzQxZGRlZGYzYzBiZWNmY2Q0NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
aApAQCAtNDAsMTEgKzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9z
KDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IG1pbmltdW1Gb250U2l6
ZTsKIAotLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEph
dmFTY3JpcHQgaXMgZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZ
RVMuCi0gKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVkOwot
CiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2YVNj
cmlwdCBjYW4gb3BlbgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgogIEBkaXNj
dXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBhbmQgWUVTIGluIE9TIFguCkBA
IC03MSw3ICs2NiwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCiAKKyNpZiAhVEFS
R0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YUVuYWJsZWQgV0tf
QVBJX0RFUFJFQ0FURUQoIkphdmEgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEw
LCAxMC4xNSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGx1Z0luc0VuYWJsZWQgV0tf
QVBJX0RFUFJFQ0FURUQoIlBsdWctaW5zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3Mo
MTAuMTAsIDEwLjE1KSk7CisjZW5kaWYKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2
YVNjcmlwdEVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBXS1dlYlBhZ2VQcmVmZXJlbmNl
cy5hbGxvd3NKYXZhU2NyaXB0TWFya3VwIHRvIGRpc2FibGUgSmF2YVNjcmlwdCBtYXJrdXAgb24g
YSBwZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDU0MjE4YTRkOWMwZjlhZGI2MTQyOTJk
MmYyYWViYzJiMzUzYWEyODguLjE0MjAxMWZiYjNlMzZlNmJjOWJmZjUxODNmNmFmYjU2YzczYzRm
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tCkBAIC02NSw5ICs2NSwxMiBAQCArIChCT09MKXN1cHBvcnRzU2VjdXJlQ29kaW5n
CiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7CiAgICAgW2NvZGVy
IGVuY29kZURvdWJsZTpzZWxmLm1pbmltdW1Gb250U2l6ZSBmb3JLZXk6QCJtaW5pbXVtRm9udFNp
emUiXTsKLSAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVkIGZvcktl
eTpAImphdmFTY3JpcHRFbmFibGVkIl07CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IGZvcktleTpAImphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KKyAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVkIGZv
cktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKKwogI2lmIFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhRW5hYmxlZCBmb3JLZXk6QCJq
YXZhRW5hYmxlZCJdOwpAQCAtODMsOSArODYsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
Q29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgc2VsZi5t
aW5pbXVtRm9udFNpemUgPSBbY29kZXIgZGVjb2RlRG91YmxlRm9yS2V5OkAibWluaW11bUZvbnRT
aXplIl07Ci0gICAgc2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9y
S2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAgICBzZWxmLmphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KKyAgICBzZWxmLmphdmFTY3JpcHRFbmFibGVkID0gW2NvZGVyIGRlY29kZUJv
b2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMpCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHNlbGYuamF2YUVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktl
eTpAImphdmFFbmFibGVkIl07CkBAIC0xMTIsMTYgKzExOCw2IEBAIC0gKHZvaWQpc2V0TWluaW11
bUZvbnRTaXplOihDR0Zsb2F0KW1pbmltdW1Gb250U2l6ZQogICAgIF9wcmVmZXJlbmNlcy0+c2V0
TWluaW11bUZvbnRTaXplKG1pbmltdW1Gb250U2l6ZSk7CiB9CiAKLS0gKEJPT0wpamF2YVNjcmlw
dEVuYWJsZWQKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5hYmxlZCgp
OwotfQotCi0tICh2b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3JpcHRFbmFi
bGVkCi17Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0
RW5hYmxlZCk7Ci19Ci0KIC0gKHZvaWQpc2V0RnJhdWR1bGVudFdlYnNpdGVXYXJuaW5nRW5hYmxl
ZDooQk9PTCllbmFibGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5zZXRTYWZlQnJvd3NpbmdFbmFi
bGVkKGVuYWJsZWQpOwpAQCAtMTQzMiwxMCArMTQyOCwxMSBAQCAtIChCT09MKV9kZXZpY2VPcmll
bnRhdGlvbkV2ZW50RW5hYmxlZAogCiBAZW5kCiAKLSNpZiAhVEFSR0VUX09TX0lQSE9ORQogCiBA
aW1wbGVtZW50YXRpb24gV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQogCisjaWYgIVRBUkdF
VF9PU19JUEhPTkUKKwogLSAoQk9PTClqYXZhRW5hYmxlZAogewogICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmphdmFFbmFibGVkKCk7CkBAIC0xNDU2LDYgKzE0NTMsMTcgQEAgLSAodm9pZClzZXRQ
bHVnSW5zRW5hYmxlZDooQk9PTClwbHVnSW5zRW5hYmxlZAogICAgIF9wcmVmZXJlbmNlcy0+c2V0
UGx1Z2luc0VuYWJsZWQocGx1Z0luc0VuYWJsZWQpOwogfQogCisjZW5kaWYKKworLSAoQk9PTClq
YXZhU2NyaXB0RW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFTY3JpcHRF
bmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEVuYWJsZWQ6KEJPT0wpamF2YVNj
cmlwdEVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFibGVkKGph
dmFTY3JpcHRFbmFibGVkKTsKK30KKwogQGVuZAogCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKaW5k
ZXggMjc0N2U4MTI4ZjAzZjAyZGJlZWZiNWM1ZmM5NmZjNTc3ZjIxN2FkNi4uY2FjMTk1NmY0MGU5
NWM2MDY2YWZhYzg3MDBkYTM4MTBhMTQ1MWI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKQEAgLTU3LDQg
KzU3LDE5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSkKICAq
LwogQHByb3BlcnR5IChub25hdG9taWMpIFdLQ29udGVudE1vZGUgcHJlZmVycmVkQ29udGVudE1v
ZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogCisvKiBAYWJzdHJhY3QgQSBCb29sZWFu
IHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGZyb20gd2ViIGNvbnRlbnQgaXMg
ZW5hYmxlZAorIEBkaXNjdXNzaW9uIElmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHRoZW4gSmF2
YVNjcmlwdCByZWZlcmVuY2VkIGJ5IHRoZSB3ZWIgY29udGVudCB3aWxsIG5vdCBleGVjdXRlLgor
IFRoaXMgaW5jbHVkZXMgSmF2YVNjcmlwdCBmb3VuZCBpbiBpbmxpbmUgPHNjcmlwdD4gZWxlbWVu
dHMsIHJlZmVyZW5jZWQgYnkgZXh0ZXJuYWwgSmF2YVNjcmlwdCByZXNvdXJjZXMsCisgImphdmFz
Y3JpcHQ6IiBVUkxzLCBhbmQgYWxsIG90aGVyIGZvcm1zLgorCisgRXZlbiBpZiB0aGlzIHZhbHVl
IGlzIHNldCB0byBOTyB5b3VyIGFwcGxpY2F0aW9uIGNhbiBzdGlsbCBleGVjdXRlIEphdmFTY3Jp
cHQgdXNpbmc6CisgLSBbV0tXZWJWaWV3IGV2YWx1dGVKYXZhU2NyaXB0OmNvbXBsZXRpb25IYW5k
bGVyOl0KKyAtIFtXS1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29t
cGxldGlvbkhhbmRsZXI6XQorIC0gW1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3Vt
ZW50czppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdCisgLSBXS1VzZXJTY3JpcHRz
CisKKyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCisqLworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmluZGV4
IDk5ZjBjMGE4MGE4YmU0NTMyNDM1NmI2Mzk2MTA5ZjM2ZjRjZmRjNzQuLmEyMGVhMWViNmEwNjhl
NWE2ZjM2MzZjYWY5NjllMjEyZTkxZWE2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTMzMSw2
ICszMzEsMjEgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1cm4gKl93ZWJz
aXRlUG9saWNpZXM7CiB9CiAKKy0gKHZvaWQpc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6KEJP
T0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBfd2Vic2l0ZVBvbGljaWVzLT5zZXRT
Y3JpcHRNYXJrdXBQb2xpY3koYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPyBXZWJDb3JlOjpTY3Jp
cHRNYXJrdXBQb2xpY3k6OkVuYWJsZSA6IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlz
YWJsZSk7Cit9CisKKy0gKEJPT0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBzd2l0
Y2ggKF93ZWJzaXRlUG9saWNpZXMtPnNjcmlwdE1hcmt1cFBvbGljeSgpKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkVuYWJsZToKKyAgICAgICAgcmV0dXJuIFlFUzsK
KyAgICBjYXNlIFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlzYWJsZToKKyAgICAgICAg
cmV0dXJuIE5POworICAgIH0KK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIC0gKHZv
aWQpc2V0UHJlZmVycmVkQ29udGVudE1vZGU6KFdLQ29udGVudE1vZGUpY29udGVudE1vZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGYxYmQ3MWEyNDUxN2M0NzlhMTNmNmQ4
MjA5ZmM4ZTliMTQ5NTRmYTYuLjE1MDU4OTZiMzcyMjUwZDE0MzA0MmQ0NGQyNDVkYjIyOTk3NjQy
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODk0LDYgKzg5NCwxMiBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjphcHBseVRvRG9jdW1lbnRMb2FkZXIoV2Vic2l0
ZVBvbGljaWVzRGF0YSYmIHdlYnNpdGVQbwogICAgIFdlYnNpdGVQb2xpY2llc0RhdGE6OmFwcGx5
VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyksICpkb2N1bWVudExvYWRl
cik7CiB9CiAKK1dlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeSBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6c2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QKK3sK
KyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZSA/IG1fZnJhbWUtPnBhZ2UoKSA6IG51bGxw
dHI7CisgICAgcmV0dXJuIHdlYlBhZ2UgPyB3ZWJQYWdlLT5zY3JpcHRNYXJrdXBQb2xpY3lGcm9t
TW9zdFJlY2VudE5hdmlnYXRpb24oKSA6IFdlYkNvcmU6OlNjcmlwdE1hcmt1cFBvbGljeTo6RGlz
YWJsZTsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25B
Y3Rpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgUG9saWN5
RGVjaXNpb25Nb2RlIHBvbGljeURlY2lzaW9uTW9kZSwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBGcmFtZVBvbGljeUZ1bmN0aW9uJiYgZnVuY3Rpb24p
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDlhYTVhMDU0OTI0M2E4Mzk0MGU1
YTk1MGRkYmM4MTdhNDRiNTA5NDMuLmZhYjE2OTY3YTJhY2M5YTRlNzQ5OWRlNDRjNGExYjQyOTQ2
Y2Y5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02Miw3ICs2Miw5IEBAIHB1
YmxpYzoKICAgICB9OwogICAgIHZvaWQgc2V0SGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3Mo
RnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyJiYpOwogI2VuZGlmCi0gICAgCisK
KyAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5RnJvbU1v
c3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgdm9pZCBm
cmFtZUxvYWRlckRlc3Ryb3llZCgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggZjZjOTg0ZTMwNWVjN2Y3ZGFlZDk3ZjY4NmU4
OWEyN2ZiOTBiYjQ3ZS4uYTgzZWE2Yjc1M2U4NTBjYzM3Y2QwYWZlYThkNzgzMGI4NDExNTJjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAt
MjY1LDggKzI2NSwxMSBAQCB2b2lkIFdlYkZyYW1lOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24o
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlYwogCiAgICAgaW52YWxpZGF0
ZVBvbGljeUxpc3RlbmVyKCk7CiAKLSAgICBpZiAoZm9yTmF2aWdhdGlvbkFjdGlvbiAmJiBtX2Zy
YW1lTG9hZGVyQ2xpZW50ICYmIHdlYnNpdGVQb2xpY2llcykKKyAgICBpZiAoZm9yTmF2aWdhdGlv
bkFjdGlvbiAmJiBtX2ZyYW1lTG9hZGVyQ2xpZW50ICYmIHdlYnNpdGVQb2xpY2llcykgeworICAg
ICAgICBBU1NFUlQocGFnZSgpKTsKKyAgICAgICAgcGFnZSgpLT5zZXRTY3JpcHRNYXJrdXBQb2xp
Y3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24od2Vic2l0ZVBvbGljaWVzLT5zY3JpcHRNYXJrdXBQ
b2xpY3kpOwogICAgICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5hcHBseVRvRG9jdW1lbnRMb2Fk
ZXIoV1RGTW92ZSgqd2Vic2l0ZVBvbGljaWVzKSk7CisgICAgfQogCiAgICAgbV9wb2xpY3lEb3du
bG9hZElEID0gZG93bmxvYWRJRDsKICAgICBpZiAobmF2aWdhdGlvbklEKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGUwMjg0YTgxODI0MWQ3
MTMwY2FkMjc1M2RkYjg4MDAwOGZhOTk1NWEuLjliZjkwMWU3NmJlYzU1OWJjMzQxNzdkOGU1Mzdm
MWM5YTY5MzFmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC02MjYwLDYgKzYyNjAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVdlYnNpdGVQ
b2xpY2llcyhXZWJzaXRlUG9saWNpZXNEYXRhJiYgd2Vic2l0ZVBvbGljaWVzKQogICAgIGlmICgh
ZG9jdW1lbnRMb2FkZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fc2NyaXB0TWFya3VwUG9s
aWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uID0gd2Vic2l0ZVBvbGljaWVzLnNjcmlwdE1hcmt1
cFBvbGljeTsKICAgICBXZWJzaXRlUG9saWNpZXNEYXRhOjphcHBseVRvRG9jdW1lbnRMb2FkZXIo
V1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCAqZG9jdW1lbnRMb2FkZXIpOwogICAgIAogI2lmIEVO
QUJMRShWSURFTykKQEAgLTYzMTUsNiArNjMxNiw3IEBAIFJlZjxEb2N1bWVudExvYWRlcj4gV2Vi
UGFnZTo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIoRnJhbWUmIGZyYW1lLCBjb25zdCBSZXNvdXJjZVJl
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9wZW5kaW5nV2Vic2l0ZVBvbGljaWVzKSB7Cisg
ICAgICAgICAgICBtX3NjcmlwdE1hcmt1cFBvbGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiA9
IG1fcGVuZGluZ1dlYnNpdGVQb2xpY2llcy0+c2NyaXB0TWFya3VwUG9saWN5OwogICAgICAgICAg
ICAgV2Vic2l0ZVBvbGljaWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUoKm1f
cGVuZGluZ1dlYnNpdGVQb2xpY2llcyksIGRvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIG1f
cGVuZGluZ1dlYnNpdGVQb2xpY2llcyA9IFdURjo6bnVsbG9wdDsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGJkYWI4MWIyOWNmZjIw
MWVhYTEzYmYzZDY0ZDkyMzRlMDNhODFjNWMuLmE5YTVmMDExYzA0OGRjODM3N2RkYWRmNTUwMzlm
ZWIzZDYzMGM0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTEyNzUsNyArMTI3NSwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIG92
ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7
IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7Ci0gICAg
CisKKyAgICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgc2NyaXB0TWFya3VwUG9saWN5RnJv
bU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRNYXJrdXBQb2xp
Y3lGcm9tTW9zdFJlY2VudE5hdmlnYXRpb247IH0KKyAgICB2b2lkIHNldFNjcmlwdE1hcmt1cFBv
bGljeUZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbihXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kg
cG9saWN5KSB7IG1fc2NyaXB0TWFya3VwUG9saWN5RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uID0g
cG9saWN5OyB9CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApAQCAtMjA0OCw2ICsyMDUxLDcgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKyAg
ICBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3kgbV9zY3JpcHRNYXJrdXBQb2xpY3lGcm9tTW9z
dFJlY2VudE5hdmlnYXRpb24geyBXZWJDb3JlOjpTY3JpcHRNYXJrdXBQb2xpY3k6OkVuYWJsZSB9
OwogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFN0cmluZyBtX3RoZW1lTmFtZTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiOTlhMmI0OTlmOGM1
YjRiNzE1MTA3NTY5MGJmNzE4ZDdlNmZhYzc5Li4wMGU0NzNkNWFiNGExMmVmNTRiNDM1NDZiMzUw
ODNmMTZlNDU3Yzc4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSAiYWxsb3dzQ29udGVudEphdmFTY3JpcHQi
IG9uIFdLV2VicGFnZVByZWZlcmVuY2VzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTUzNDk2
Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc0MjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJzaXRlUG9saWNpZXMubW06CisgICAgICAgICgtW1dlYnNpdGVQb2xpY2llc05hdmlnYXRp
b25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVy
ZW5jZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICgtW1dl
YnNpdGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUubW06CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbldpdGhQcmVmZXJlbmNlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOl0pOgorICAgICAgICAoLVtU
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOnByZWZlcmVuY2VzOl0pOgorCiAyMDIwLTAyLTEzICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0V2ViS2l0QVBJOiBSZS1iYXNlbGlu
ZSBEb2N1bWVudEVkaXRpbmdDb250ZXh0IGZvciBDYXRhbHlzdApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3Jp
cHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2
YWx1YXRlSmF2YVNjcmlwdC5tbQppbmRleCBmYzAzMzc1N2U0NDgxYzA2ZjE4ZmYxOTc2N2UwM2Zk
MjEzZjIxZjA3Li41Mzc3YmJhM2M3ZGNmZjNhNjRiMjQ2MDQ2MDQ5MGI1OGU2YTI4MjMwIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2
YWx1YXRlSmF2YVNjcmlwdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQpAQCAtMjYsMTMgKzI2LDE3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAor
I2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNp
bXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9ydCAiVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tD
b250ZW50V29ybGQuaD4KICNpbXBvcnQgPFdlYktpdC9XS0Vycm9yUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQcmVm
ZXJlbmNlc1JlZi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtMjU0LDMgKzI1OCwxMTQgQEAgVEVTVChXZWJLaXQs
IEV2YWx1YXRlSmF2YVNjcmlwdEluQXR0YWNobWVudHMpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKIH0KIAorVEVTVChXZWJLaXQsIEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0
KQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0
PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiJdOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25I
YW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNT
dHJpbmcgY2xhc3NdXSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3Ry
aW5nOkAiYmFyIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgUmV0YWluUHRyPFdLV2VicGFnZVByZWZl
cmVuY2VzPiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxv
Y10gaW5pdF0pOworICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRl
bnRKYXZhU2NyaXB0KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNj
cmlwdCA9IE5POworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxz
Y3JpcHQ+dmFyIGZvbyA9ICdiYXInPC9zY3JpcHQ+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5n
ZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tl
cnJvciBkZXNjcmlwdGlvbl0gY29udGFpbnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBm
b28iXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZl
cih7CisgICAgICAgIHsgIi9zY3JpcHQiLCB7ICJ2YXIgZm9vID0gJ2JhciciIH0gfQorICAgIH0p
OworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0ID0gWUVTOwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAIjxzY3JpcHQgc3JjPSdodHRwOi8vMTI3LjAuMC4xOiVkL3NjcmlwdCc+PC9z
Y3JpcHQ+Iiwgc2VydmVyLnBvcnQoKV0gcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOwor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZv
byIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tp
bmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3Vs
dCBpc0VxdWFsVG9TdHJpbmc6QCJiYXIiXSk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBwcmVmZXJlbmNl
cy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCA9IE5POworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxzY3Jp
cHQgc3JjPSdodHRwOi8vMTI3LjAuMC4xOiVkL3NjcmlwdCc+PC9zY3JpcHQ+Iiwgc2VydmVyLnBv
cnQoKV0gcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNl
OworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRs
ZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJl
c3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5z
U3RyaW5nOkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1
ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAg
cHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBZRVM7CisgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3Jp
cHQ6d2luZG93LmZvbyA9IDEnPjwvaWZyYW1lPiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0
KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAIndpbmRvdy5mcmFtZXNbMF0uZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBF
WFBFQ1RfVFJVRShbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNzXV0pOworICAg
ICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0IGlzRXF1YWxUb051bWJlcjpAMV0pOworICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aWZyYW1lIHNyYz0n
amF2YXNjcmlwdDp3aW5kb3cuZm9vID0gMSc+PC9pZnJhbWU+IiBwcmVmZXJlbmNlczpwcmVmZXJl
bmNlcy5nZXQoKV07CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAid2luZG93LmZyYW1lc1swXS5mb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOwor
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViS2l0
LCBTUElKYXZhc2NyaXB0TWFya3VwVnNBUElDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAgICAvLyBU
aGVyZSdzIG5vdCBhIGR5bmFtaWNhbGx5IGNvbmZpZ3VyYXRpb24gc2V0dGluZyBmb3IgamF2YXNj
cmlwdCBtYXJrdXAsCisgICAgLy8gYnV0IGl0IGNhbiBiZSBjb25maWd1cmVkIGF0IFdLV2ViVmll
dyBjcmVhdGlvbiB0aW1lLgorICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRp
b24gPSBbW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07
CisgICAgY29uZmlndXJhdGlvbi5fYWxsb3dzSmF2YVNjcmlwdE1hcmt1cCA9IE5POworICAgIFJl
dGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgZm9sbG93aW5n
IEpTIGRvZXMgbm90IGV4ZWN1dGUuCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsKKworICAgIF9fYmxv
Y2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
Zm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBk
ZXNjcmlwdGlvbl0gY29udGFpbnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7
CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisKKyAgICAvLyBUcnkgdG8gZXhwbGljaXRseSBlbmFibGUgc2NyaXB0IG1h
cmt1cCB1c2luZyBXS1dlYnBhZ2VQcmVmZXJlbmNlcywgYnV0IHZlcmlmeSBpdCBzaG91bGQgc3Rp
bGwgZmFpbCBiZWNhdXNlCisgICAgLy8gb2YgdGhlIGFib3ZlIGNvbmZpZ3VyYXRpb24gc2V0dGlu
Zy4KKyAgICBSZXRhaW5QdHI8V0tXZWJwYWdlUHJlZmVyZW5jZXM+IHByZWZlcmVuY2VzID0gYWRv
cHROUyhbW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CisgICAgRVhQRUNUX1RS
VUUocHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQpOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXIn
PC9zY3JpcHQ+IiBwcmVmZXJlbmNlczpwcmVmZXJlbmNlcy5nZXQoKV07CisKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9vIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tlcnJvciBkZXNjcmlwdGlvbl0gY29u
dGFpbnNTdHJpbmc6QCJDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iXSk7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
c2l0ZVBvbGljaWVzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
ZWJzaXRlUG9saWNpZXMubW0KaW5kZXggZGQ3OWM1ZGQwY2ZjYmIwYThjMDgyOTZmYWM2Mzc2ZTk3
Yjc4YzE5Ny4uMDk3NmIzNmU1MTY1YzRjNDZjN2QzODQxYzJiMzVmNjVmMDRmOTAxMiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9saWNp
ZXMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRl
UG9saWNpZXMubW0KQEAgLTIzOSwxNSArMjM5LDE1IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaGFuZGxlQXV0b3BsYXlFdmVudDooX1dLQXV0b3BsYXlFdmVudClldmVu
CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIDog
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPgotQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFn
ZVByZWZlcmVuY2VzICosIGlkIDxOU1NlY3VyZUNvZGluZz4sIHZvaWQgKF4pKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpOworQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdl
YnNpdGVQb2xpY2llcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2Vz
ICosIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKikpOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlv
bkRlbGVnYXRlCiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlv
bkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyB1
c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikp
ZGVjaXNpb25IYW5kbGVyCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdh
dGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNl
cyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgaWYgKF9kZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llcykKLSAgICAgICAgX2Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKG5hdmlnYXRp
b25BY3Rpb24sIHByZWZlcmVuY2VzLCB1c2VySW5mbywgZGVjaXNpb25IYW5kbGVyKTsKKyAgICAg
ICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzKG5h
dmlnYXRpb25BY3Rpb24sIHByZWZlcmVuY2VzLCBkZWNpc2lvbkhhbmRsZXIpOwogICAgIGVsc2UK
ICAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBu
aWwpOwogfQpAQCAtNjE2LDcgKzYxNiw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJz
aXRlUG9saWNpZXNXaXRoQnJpZGdpbmdDYXN0KQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbV2Vic2l0ZVBvbGljaWVzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAKICAg
ICBfX2Jsb2NrIGJvb2wgZGlkSW52b2tlRGVjaXNpb25IYW5kbGVyID0gZmFsc2U7Ci0gICAgW2Rl
bGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGlj
aWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIGlkIDxO
U1NlY3VyZUNvZGluZz4sIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKKyAgICBbZGVsZWdhdGUgc2V0RGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmln
YXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmRlY2lzaW9uSGFu
ZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkg
ewogICAgICAgICBhdXRvIHBvbGljaWVzID0gYWRvcHRXSyhXS1dlYnNpdGVQb2xpY2llc0NyZWF0
ZSgpKTsKICAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFs
bG93LCAoX19icmlkZ2UgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwb2xpY2llcy5nZXQoKSk7CiAg
ICAgICAgIGRpZEludm9rZURlY2lzaW9uSGFuZGxlciA9IHRydWU7CkBAIC02MzUsNyArNjM1LDcg
QEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc1dpdGhVbmV4cGVjdGVk
VHlwZSkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xpY2llc05hdmln
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogCiAgICAgX19ibG9jayBib29sIGRpZENhdGNo
RXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdL
V2VicGFnZVByZWZlcmVuY2VzICosIGlkIDxOU1NlY3VyZUNvZGluZz4sIHZvaWQgKF5kZWNpc2lv
bkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpIHsKKyAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldp
dGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rpb24gKiwgV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgKiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewogICAgICAgICBAdHJ5IHsKICAgICAgICAgICAg
IGlkIGZha2VQb2xpY2llcyA9IEAiSGVsbG8iOwogICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVy
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCAoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilm
YWtlUG9saWNpZXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0
TmF2aWdhdGlvbkRlbGVnYXRlLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZp
Z2F0aW9uRGVsZWdhdGUuaAppbmRleCAyMjMyMDFiY2JlZjljOWM3N2Q4NWMxZGQxZTg1ODg0MjZi
NjJmNWZiLi5iNjQ3MjI5ZGNiODU5OTc0NjA1YzdmYjMwOWQ4NWQyY2EwMzQ0ZTY5IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaApA
QCAtMzEsNiArMzEsNyBAQAogQGludGVyZmFjZSBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNP
YmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pKFdLTmF2aWdhdGlvbkFj
dGlvbiAqLCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldp
dGhQcmVmZXJlbmNlcykoV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2Vz
ICosIHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRGYWlsUHJvdmlz
aW9uYWxOYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICosIE5TRXJyb3IgKik7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFN0YXJ0UHJvdmlzaW9uYWxO
YXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopOwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5kaWRDb21taXROYXZpZ2F0aW9uKShXS1dlYlZpZXcgKiwgV0tO
YXZpZ2F0aW9uICopOwpAQCAtNDEsNiArNDIsNyBAQAogCiAtICh2b2lkKXdhaXRGb3JEaWRTdGFy
dFByb3Zpc2lvbmFsTmF2aWdhdGlvbjsKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b247CistICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZCl3YWl0Rm9yRGlkRmFp
bFByb3Zpc2lvbmFsTmF2aWdhdGlvbjsKIAogQGVuZApAQCAtNDgsNSArNTAsNiBAQAogQGludGVy
ZmFjZSBXS1dlYlZpZXcgKFRlc3RXZWJLaXRBUElFeHRyYXMpCiAtICh2b2lkKV90ZXN0X3dhaXRG
b3JEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRp
ZEZpbmlzaE5hdmlnYXRpb247CistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0
aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwog
LSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRp
b25VcGRhdGU7CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RO
YXZpZ2F0aW9uRGVsZWdhdGUubW0KaW5kZXggMzNlMjExYjQxZjRjN2ZjZGQ1ZmM2ZTRkMmQ4MWIz
YjQ1OTVkMGI2NS4uYmRjNTE3NTdiMzk0YWY2MmNjNDBmNDExMzBiNTUwMmViN2Y3YjI5ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRl
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0
ZS5tbQpAQCAtMzIsMTIgKzMyLDE2IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0TmF2aWdhdGlv
bkRlbGVnYXRlCiAKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9u
QWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
KSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZp
Z2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVu
Y2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKLSAgICBpZiAoX2RlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb24sIGRlY2lzaW9uSGFuZGxlcik7Ci0gICAgZWxz
ZQotICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cp
OworICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNl
cykKKyAgICAgICAgX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5j
ZXMobmF2aWdhdGlvbkFjdGlvbiwgcHJlZmVyZW5jZXMsIGRlY2lzaW9uSGFuZGxlcik7CisgICAg
ZWxzZSBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pIHsKKyAgICAgICAgX2Rl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24obmF2aWdhdGlvbkFjdGlvbiwgXihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3kgYWN0aW9uKSB7CisgICAgICAgICAgICBkZWNpc2lvbkhhbmRsZXIo
YWN0aW9uLCBwcmVmZXJlbmNlcyk7CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBk
ZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csIHByZWZlcmVuY2Vz
KTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCkBAIC0xMTIsNiAr
MTE2LDE5IEBAIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KICAgICBzZWxmLmRp
ZEZpbmlzaE5hdmlnYXRpb24gPSBuaWw7CiB9CiAKKy0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5h
dmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5j
ZXMKK3sKKyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uV2l0aFByZWZlcmVuY2VzKTsKKyAgICBFWFBFQ1RfVFJVRSghIXByZWZlcmVuY2VzKTsKKwor
ICAgIHNlbGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyA9
IF4oV0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rpb24sIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZv
aWQgKF5oYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVu
Y2VzICopKSB7CisgICAgICAgIGhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cs
IHByZWZlcmVuY2VzKTsKKyAgICB9OworCisgICAgW3NlbGYgd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25dOworICAgIHNlbGYuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVm
ZXJlbmNlcyA9IG5pbDsKK30KKwogLSAodm9pZCl3YWl0Rm9yRGlkRmFpbFByb3Zpc2lvbmFsTmF2
aWdhdGlvbgogewogICAgIEVYUEVDVF9GQUxTRShzZWxmLmRpZEZhaWxQcm92aXNpb25hbE5hdmln
YXRpb24pOwpAQCAtMTUyLDYgKzE2OSwxNyBAQCAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5p
c2hOYXZpZ2F0aW9uV2l0aG91dFByZXNlbnRhdGlvblVwZGF0ZQogICAgIHNlbGYubmF2aWdhdGlv
bkRlbGVnYXRlID0gbmlsOwogfQogCistICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2Vz
Cit7CisgICAgRVhQRUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKKworICAgIGF1
dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5hdmlnYXRpb25E
ZWxlZ2F0ZS5nZXQoKTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hO
YXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOnByZWZlcmVuY2VzXTsKKworICAgIHNlbGYubmF2aWdh
dGlvbkRlbGVnYXRlID0gbmlsOworfQorCiAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hO
YXZpZ2F0aW9uCiB7CiAgICAgRVhQRUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggZDhlNzVkYzNj
MGRjNGI1YTQzNmYyZmZlY2I5NjY3NzRlNjhjNTg5Zi4uYzE2MjBjZTRlMGI1YmE4ZTBlYTUwNmE0
MGY4MDJkYmY2NGYwMjgzZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3LmgKQEAgLTU0LDYgKzU0LDcgQEAKIC0gKHZvaWQpc3luY2hyb25vdXNseUdvRm9yd2FyZDsK
IC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWw7CiAt
ICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIGJhc2VV
Ukw6KE5TVVJMICopdXJsOworLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5T
U3RyaW5nICopaHRtbCBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJl
bmNlczsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKily
ZXF1ZXN0OwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5n
ICopcGFnZU5hbWU7CiAtIChCT09MKV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kOihO
U1N0cmluZyAqKWNvbW1hbmQgYXJndW1lbnQ6KE5TU3RyaW5nICopYXJndW1lbnQ7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggY2FiYjJjMzczZTJhNDNl
MmI5YTUyM2UzOTFkZjliOGI2ODFlODE4ZS4uMzU2MDBiNzE1ZWVlMGUzOThkNzNiNWJkMWNmYjVk
OGQ5NTNkNzVhZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5t
bQpAQCAtMTIyLDYgKzEyMiwxMiBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzooTlNTdHJpbmcgKilodG1sCiAgICAgW3NlbGYgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
Omh0bWwgYmFzZVVSTDpbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBw
ZW5kaW5nUGF0aENvbXBvbmVudDpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogfQogCist
ICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzooTlNTdHJpbmcgKilodG1sIHByZWZl
cmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgW3NlbGYg
bG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRs
ZVVSTF0gVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV07CisgICAgW3NlbGYgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJl
ZmVyZW5jZXM6cHJlZmVyZW5jZXNdOworfQorCiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDooTlNTdHJpbmcgKilwYWdlTmFtZQogewogICAgIFtzZWxmIGxvYWRUZXN0UGFn
ZU5hbWVkOnBhZ2VOYW1lXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390855</attachid>
            <date>2020-02-14 22:37:48 -0800</date>
            <delta_ts>2020-02-16 17:35:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207427-20200214223747.patch</filename>
            <type>text/plain</type>
            <size>42958</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1MDNhMDczODY0ZGI2
ODE0NjNjNGMxOTk5MGY5YWFlZDczMDE2NC4uZGU4MDE0ZTkwODQxOTYxNWZlZmVjMTE5NjUwODVh
NzJmMzQ4Mjg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAyLTE0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3RzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphbGxvd3NDb250ZW50SmF2YVNjcmlwdCBj
b25zdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIAorICAgICAgICAqIGRv
bS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyOjpTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAK
KyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
RnJhbWVMb2FkZXJUeXBlcy5oOgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlh
bWw6CisgICAgICAgIAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6IE1ha2Ugc3Vy
ZSB0aGUgY29udGV4dCBkb2N1bWVudCBpcyBzZXQgQkVGT1JFIHdlIHBhcnNlIHRoZSBkb2N1bWVu
dCBjb250ZW50cy4KKwogMjAyMC0wMi0xMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZUJyZWFrZXIgc2hvdWxkIG5vdCBob2xkIG9uIHRv
IHRoZSBsYXN0V3JhcE9wcG9ydHVuaXR5IGlubGluZSBpdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxOTY0N2Yx
MTQwNjA4YmQ1ZTRkZjAxZjRhOTA5YzVlNzMyZjdjYjguLjk2NTQ3OTM4NDI1NjZhM2JlNjNjOTZk
MzQwZjEwNzRmODM1M2VlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMjAtMDItMTQg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSAiYWxs
b3dzQ29udGVudEphdmFTY3JpcHQiIG9uIFdLV2VicGFnZVByZWZlcmVuY2VzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81MTUzNDk2Nz4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDc0MjcKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBUaGlzIHV0aWl6ZXMgdGhlIHByZS1leGlzdGluZyBXZWJDb3JlOjpTZXR0aW5nczo6
c2V0U2NyaXB0TWFya3VwRW5hYmxlZCgpIG1lY2hhbmlzbS4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgYWxzbyBkZXByZWNhdGVzIHRoZSBnbG9iYWwgImRpc2FibGUgSmF2YVNjcmlwdCIgV0tQcmVm
ZXJlbmNlIGFzIGl0IGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIGFueW1vcmUuCisKKyAgICAgICAg
KiBTaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVQb2xpY2llc0RhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVQ
b2xpY2llc0RhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYnNpdGVQb2xpY2llc0Rh
dGEuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmNwcDoK
KyAgICAgICAgKEFQSTo6V2Vic2l0ZVBvbGljaWVzOjpkYXRhKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIGVuY29kZVdpdGhDb2Rlcjpd
KToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAo
LVtXS1ByZWZlcmVuY2VzIGphdmFTY3JpcHRFbmFibGVkXSk6CisgICAgICAgICgtW1dLUHJlZmVy
ZW5jZXMgc2V0SmF2YVNjcmlwdEVuYWJsZWQ6XSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLV2VicGFn
ZVByZWZlcmVuY2VzIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0XSk6CisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJv
bU1vc3RSZWNlbnROYXZpZ2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZGlkUmVj
ZWl2ZVBvbGljeURlY2lzaW9uKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0QWxsb3dzQ29udGVudEphdmFTY3Jp
cHRGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24pOgorCiAyMDIwLTAyLTEzICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIC11cGRhdGVTZWxlY3Rp
b25XaXRoRXh0ZW50UG9pbnQ6Y29tcGxldGlvbkhhbmRsZXI6IHNob3VsZCB3b3JrIHdpdGhvdXQg
cmVxdWlyaW5nIGZsb2F0aW5nIGN1cnNvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTE0
Mjk5OTE0NmJkOWUzMmJjNzkxNzIwY2FhZmZmNDViNjlhZTRmYy4uMDJhNjUzNDdhYzQ5ZWYwMTJi
MTliMzg2N2U5Mzk1MDc5NmVkOGJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02ODEy
LDYgKzY4MTIsMjEgQEAgRG9jdW1lbnRMb2FkZXIqIERvY3VtZW50Ojpsb2FkZXIoKSBjb25zdAog
ICAgIHJldHVybiBsb2FkZXI7CiB9CiAKK2Jvb2wgRG9jdW1lbnQ6OmFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogR2V0IGFsbCBTUEkgY2xpZW50cyBvZmYg
b2YgdGhpcyBwb3RlbnRpYWxseSBkYW5nZXJvdXMgU2V0dGluZy4KKyAgICBpZiAoIXNldHRpbmdz
KCkuc2NyaXB0TWFya3VwRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIW1fZnJhbWUgfHwgbV9mcmFtZS0+ZG9jdW1lbnQoKSAhPSB0aGlzKSB7CisgICAgICAgIC8v
IElmIHRoaXMgRG9jdW1lbnQgaXMgZnJhbWVsZXNzIG9yIGluIHRoZSB3cm9uZyBmcmFtZSwgaXRz
IGNvbnRleHQgZG9jdW1lbnQKKyAgICAgICAgLy8gbXVzdCBhbGxvdyBmb3IgaXQgdG8gcnVuIGNv
bnRlbnQgSmF2YVNjcmlwdC4KKyAgICAgICAgcmV0dXJuIG1fY29udGV4dERvY3VtZW50ICYmIG1f
Y29udGV4dERvY3VtZW50LT5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCgpOworICAgIH0KKworICAg
IHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlw
dEZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpID09IEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OjpZ
ZXM7Cit9CisKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCA0YmVlMmJiNmQyZWU2Y2JkZjhjNzliZWEwYmE1YWM5NmEyNzZkZTlmLi42ZjFmMTQ1MWQ3NzU3
NDcyYmEyOWRiYTlkMTdlNTkyZmY4YTk5NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU1
MSw2ICsxNTUxLDggQEAgcHVibGljOgogICAgIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0TWFwKCk7
CiAgICAgdm9pZCB1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKIAorICAgIGJvb2wgYWxsb3dz
Q29udGVudEphdmFTY3JpcHQoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3Ry
dWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAx
IDw8IDEgfTsKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVm
YXVsdERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDk1
MDI4YmIyMTYyYmY3YTdmNmZiY2RlNTc3ODUyMGQzNWU4OWJkYzEuLjA2NTM5ZGQ2Yjk5ODQ4ZmRl
ZDUzZThjYzNlNWQzMGNkYWVjYzU4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFNjcmlwdGFibGVEb2N1
bWVudFBhcnNlcjo6U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKERvY3VtZW50JiBkb2N1bWVudCwg
UGFyc2VyQ29uCiAgICAgaWYgKCFwbHVnaW5Db250ZW50SXNBbGxvd2VkKG1fcGFyc2VyQ29udGVu
dFBvbGljeSkpCiAgICAgICAgIG1fcGFyc2VyQ29udGVudFBvbGljeSA9IGFsbG93UGx1Z2luQ29u
dGVudChtX3BhcnNlckNvbnRlbnRQb2xpY3kpOwogCi0gICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJ
c0FsbG93ZWQobV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuc2V0dGluZ3MoKS5z
Y3JpcHRNYXJrdXBFbmFibGVkKCkpCisgICAgaWYgKHNjcmlwdGluZ0NvbnRlbnRJc0FsbG93ZWQo
bV9wYXJzZXJDb250ZW50UG9saWN5KSAmJiAhZG9jdW1lbnQuYWxsb3dzQ29udGVudEphdmFTY3Jp
cHQoKSkKICAgICAgICAgbV9wYXJzZXJDb250ZW50UG9saWN5ID0gZGlzYWxsb3dTY3JpcHRpbmdD
b250ZW50KG1fcGFyc2VyQ29udGVudFBvbGljeSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZTlkZWJlMWI4N2Y1ZGExMTY4YjNjZjk2NjYwMDY1
NTFiM2JlMzQ1NC4uYjE0MWM5MGI3NTI0ZjBkNjMzNGNkOTdlMmZiMzM4NWE1Yzc5ZmUzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM3NSw2ICszNzUs
OCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICB2
aXJ0dWFsIGJvb2wgaGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoKSB7IHJldHVybiBmYWxz
ZTsgfQogI2VuZGlmCisKKyAgICB2aXJ0dWFsIEFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IGFsbG93
c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKCkgY29uc3QgeyByZXR1
cm4gQWxsb3dzQ29udGVudEphdmFTY3JpcHQ6OlllczsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlw
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggOGQ4
NjI4YTc0MjdlMjYwOThlODU3YTBhMmFmMzJlODkzNmViNDYwNy4uNDFlNmQzMzhmYmZmMzg3NmQ5
MTU0ZDVmNTBlODEwYWUyZTI3NmI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJUeXBlcy5oCkBAIC0yMjcsNiArMjI3LDExIEBAIGVudW0gY2xhc3MgTG9hZENvbXBsZXRpb25U
eXBlIDogdWludDhfdCB7CiAgICAgQ2FuY2VsCiB9OwogCitlbnVtIGNsYXNzIEFsbG93c0NvbnRl
bnRKYXZhU2NyaXB0IDogdWludDhfdCB7CisgICAgWWVzLAorICAgIE5vLAorfTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTI2Niw0ICsyNzEsMTIgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5PiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBF
bnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlwdCwKKyAg
ICAgICAgV2ViQ29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6OlllcywKKyAgICAgICAgV2Vi
Q29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6Ok5vCisgICAgPjsKK307CisKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDRjZTkyZTI0YTAxZTMx
NzdiZDRkOTY5OWQyOGY2Y2QxZjkyZTZlOTQuLjhjYTJiMjBhZGY3M2UxMDMyMWJhN2VlNDcyYmFl
M2FkZjZkMDVhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTE5Nyw4ICsxOTcs
NiBAQCBmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzOgogICBpbml0aWFsOiBmYWxzZQogZGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UKLXNjcmlwdE1hcmt1cEVuYWJsZWQ6
Ci0gIGluaXRpYWw6IHRydWUKIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOgogICBpbml0aWFsOiBm
YWxzZQogICBpbnNwZWN0b3JPdmVycmlkZTogdHJ1ZQpAQCAtOTQ3LDMgKzk0NSw3IEBAIG1lZGlh
Q2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbjoKIAogc2hvdWxkVXNlU2VydmljZVdvcmtl
clNob3J0VGltZW91dDoKICAgaW5pdGlhbDogZmFsc2UKKworIyBDbGllbnRzIHNob3VsZCB1c2Ug
cGVyLW5hdmlnYXRpb24gImFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IiBwb2xpY2llcyBpbnN0ZWFk
CitzY3JpcHRNYXJrdXBFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDM5ZDhjYTU5MjU4ZDYxNjJkNGY4Yjk5NWNkM2M5OTA5
ZTk1ZmVkODUuLjI0NmE0ZmM3MDMyMzEwYzQzZDg3ZGQyMTk5ODlkZmRlODMyMTZkMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTg4LDEwICsxODgsMTAgQEAgRXhj
ZXB0aW9uT3I8RG9jdW1lbnQqPiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IFhNTERvY3Vt
ZW50OjpjcmVhdGUobnVsbHB0ciwgbV9yZXNwb25zZS51cmwoKSk7CiAgICAgICAgICAgICBtX3Jl
c3BvbnNlRG9jdW1lbnQtPm92ZXJyaWRlTGFzdE1vZGlmaWVkKG1fcmVzcG9uc2UubGFzdE1vZGlm
aWVkKCkpOwotICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRDb250ZW50KG1fcmVz
cG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKICAgICAgICAgICAgIG1f
cmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGV4dERvY3VtZW50KGNvbnRleHQpOwogICAgICAgICAg
ICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpblBvbGljeShjb250ZXh0LnNl
Y3VyaXR5T3JpZ2luUG9saWN5KCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5v
dmVycmlkZU1JTUVUeXBlKG1pbWVUeXBlKTsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVu
dC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSk7CiAKICAgICAgICAgICAgIGlmICghbV9yZXNwb25zZURvY3VtZW50LT53ZWxsRm9ybWVkKCkp
CiAgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAKaW5kZXggOTQ4ZjJhNWFiYjgy
YTEyOWU0NjE5ZDMyNjIzNGMwZjEwNjg5NjhiNy4uYmQ2NGFjY2RlOTAyMTQzNTQxNzU0OWNjODc5
YzFkMzc5NTdlZDhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBv
bGljaWVzRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVz
RGF0YS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBXZWJzaXRlUG9saWNpZXNEYXRhOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2ltdWxhdGVk
TW91c2VFdmVudHNEaXNwYXRjaFBvbGljeTsKICAgICBlbmNvZGVyIDw8IGxlZ2FjeU92ZXJmbG93
U2Nyb2xsaW5nVG91Y2hQb2xpY3k7CiAgICAgZW5jb2RlciA8PCBhbGxvd0NvbnRlbnRDaGFuZ2VP
YnNlcnZlclF1aXJrOworICAgIGVuY29kZXIgPDwgYWxsb3dzQ29udGVudEphdmFTY3JpcHQ7CiB9
CiAKIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCkBAIC0xMzQsNyArMTM1LDEyIEBAIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCiAgICAgZGVjb2RlciA+PiBhbGxvd0NvbnRlbnRDaGFuZ2VPYnNlcnZl
clF1aXJrOwogICAgIGlmICghYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyaykKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKKworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkFs
bG93c0NvbnRlbnRKYXZhU2NyaXB0PiBhbGxvd3NDb250ZW50SmF2YVNjcmlwdDsKKyAgICBkZWNv
ZGVyID4+IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OworICAgIGlmICghYWxsb3dzQ29udGVudEph
dmFTY3JpcHQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICAgICByZXR1cm4geyB7
CiAgICAgICAgIFdURk1vdmUoKmNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQpLAogICAgICAgICBXVEZN
b3ZlKCphbGxvd2VkQXV0b3BsYXlRdWlya3MpLApAQCAtMTUzLDYgKzE1OSw3IEBAIE9wdGlvbmFs
PFdlYnNpdGVQb2xpY2llc0RhdGE+IFdlYnNpdGVQb2xpY2llc0RhdGE6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCiAgICAgICAgIFdURk1vdmUoKnNpbXVsYXRlZE1vdXNlRXZlbnRzRGlz
cGF0Y2hQb2xpY3kpLAogICAgICAgICBXVEZNb3ZlKCpsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1Rv
dWNoUG9saWN5KSwKICAgICAgICAgV1RGTW92ZSgqYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJR
dWlyayksCisgICAgICAgIFdURk1vdmUoKmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0KSwKICAgICB9
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2ll
c0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAppbmRl
eCA5Nzk1NzNkNTVkNzMyNmI4ZTJhM2NiMjBmNWY3MzNkMzczYTQyMmY0Li4wODY5Yzg0ZjczMmM1
MjMzODcxYjY4MDVlNTYxZDhmZTE0ODliMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
c2l0ZVBvbGljaWVzRGF0YS5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVNp
bXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0N1
c3RvbUhlYWRlckZpZWxkcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJU
eXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBA
IC02OCw2ICs2OSw3IEBAIHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhIHsKICAgICBXZWJzaXRl
U2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeSBzaW11bGF0ZWRNb3VzZUV2ZW50c0Rp
c3BhdGNoUG9saWN5IHsgV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3k6
OkRlZmF1bHQgfTsKICAgICBXZWJzaXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGlj
eSBsZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5IHsgV2Vic2l0ZUxlZ2FjeU92ZXJm
bG93U2Nyb2xsaW5nVG91Y2hQb2xpY3k6OkRlZmF1bHQgfTsKICAgICBib29sIGFsbG93Q29udGVu
dENoYW5nZU9ic2VydmVyUXVpcmsgeyBmYWxzZSB9OworICAgIFdlYkNvcmU6OkFsbG93c0NvbnRl
bnRKYXZhU2NyaXB0IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IHsgV2ViQ29yZTo6QWxsb3dzQ29u
dGVudEphdmFTY3JpcHQ6OlllcyB9OwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IGRlY29kZShJ
UEM6OkRlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJzaXRlUG9saWNpZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdl
YnNpdGVQb2xpY2llcy5jcHAKaW5kZXggZTcxZTNiMzBiOTM1ZGEwYWRjNzY2YzM0YzU3NmMzMTRh
MWQxOTZiOS4uN2Y3OGFhYTg4N2IwYTE0YWNmNWQwMTA0NGExZWE2YWUyNzEyMGEzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAK
QEAgLTExNyw2ICsxMTcsNyBAQCBXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGEgV2Vic2l0ZVBv
bGljaWVzOjpkYXRhKCkKICAgICAgICAgbV9zaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9s
aWN5LAogICAgICAgICBtX2xlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3ksCiAgICAg
ICAgIG1fYWxsb3dDb250ZW50Q2hhbmdlT2JzZXJ2ZXJRdWlyaywKKyAgICAgICAgbV9hbGxvd3ND
b250ZW50SmF2YVNjcmlwdCwgCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCmluZGV4IDk0NjNlNTM5NGY1MWNjNzJkNzYw
ODkxY2Q4NDQ1MTAxMTk4OWVhNjAuLjE4YjI0MzU3NGZlMTU4MTA2ZDE5MjMzYWFmYTg5MzY5OWU0
MGQyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRl
UG9saWNpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBv
bGljaWVzLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJXZWJzaXRlU2ltdWxhdGVkTW91
c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VzdG9tSGVhZGVy
RmllbGRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVy
bWlzc2lvblN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyRmllbGQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTE2LDYgKzExNyw5IEBAIHB1Ymxp
YzoKICAgICBib29sIGFsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcms7IH0KICAgICB2b2lkIHNldEFs
bG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsoYm9vbCBhbGxvdykgeyBtX2FsbG93Q29udGVu
dENoYW5nZU9ic2VydmVyUXVpcmsgPSBhbGxvdzsgfQogCisgICAgV2ViQ29yZTo6QWxsb3dzQ29u
dGVudEphdmFTY3JpcHQgYWxsb3dzQ29udGVudEphdmFTY3JpcHQoKSBjb25zdCB7IHJldHVybiBt
X2FsbG93c0NvbnRlbnRKYXZhU2NyaXB0OyB9CisgICAgdm9pZCBzZXRBbGxvd3NDb250ZW50SmF2
YVNjcmlwdChXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlwdCBhbGxvd3MpIHsgbV9hbGxv
d3NDb250ZW50SmF2YVNjcmlwdCA9IGFsbG93czsgfQorCiBwcml2YXRlOgogICAgIFdlYnNpdGVQ
b2xpY2llcyhib29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQsIE9wdGlvblNldDxXZWJLaXQ6Oldl
YnNpdGVBdXRvcGxheVF1aXJrPiwgV2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlQb2xpY3ksIFZlY3Rv
cjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYsIFZlY3RvcjxXZWJDb3JlOjpDdXN0b21IZWFk
ZXJGaWVsZHM+JiYsIFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9saWN5LCBSZWZQdHI8V2ViS2l0OjpX
ZWJzaXRlRGF0YVN0b3JlPiYmKTsKIApAQCAtMTQwLDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2FsbG93U2l0ZVNwZWNpZmljUXVpcmtzVG9PdmVycmlkZUNvbnRlbnRNb2RlIHsgZmFs
c2UgfTsKICAgICBXVEY6OlN0cmluZyBtX2FwcGxpY2F0aW9uTmFtZUZvckRlc2t0b3BVc2VyQWdl
bnQ7CiAgICAgYm9vbCBtX2FsbG93Q29udGVudENoYW5nZU9ic2VydmVyUXVpcmsgeyBmYWxzZSB9
OworICAgIFdlYkNvcmU6OkFsbG93c0NvbnRlbnRKYXZhU2NyaXB0IG1fYWxsb3dzQ29udGVudEph
dmFTY3JpcHQgeyBXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlwdDo6WWVzIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDUwYTgyZjdkODJiMTcyNTgyYTRjMTA1YWFmOTdk
YTc0OTQ5ZTA4NWMuLjg5Njg2ZGFlZGNiOWI5MWQ2NTJjYzQxZGRlZGYzYzBiZWNmY2Q0NDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
aApAQCAtNDAsMTEgKzQwLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9z
KDguMCkpCiAgKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IG1pbmltdW1Gb250U2l6
ZTsKIAotLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEph
dmFTY3JpcHQgaXMgZW5hYmxlZC4KLSBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZ
RVMuCi0gKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGphdmFTY3JpcHRFbmFibGVkOwot
CiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSmF2YVNj
cmlwdCBjYW4gb3BlbgogIHdpbmRvd3Mgd2l0aG91dCB1c2VyIGludGVyYWN0aW9uLgogIEBkaXNj
dXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIE5PIGluIGlPUyBhbmQgWUVTIGluIE9TIFguCkBA
IC03MSw3ICs2NiwxMSBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKIAogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIChXS0RlcHJlY2F0ZWQpCiAKKyNpZiAhVEFS
R0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2YUVuYWJsZWQgV0tf
QVBJX0RFUFJFQ0FURUQoIkphdmEgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEw
LCAxMC4xNSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGx1Z0luc0VuYWJsZWQgV0tf
QVBJX0RFUFJFQ0FURUQoIlBsdWctaW5zIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwgbWFjb3Mo
MTAuMTAsIDEwLjE1KSk7CisjZW5kaWYKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgamF2
YVNjcmlwdEVuYWJsZWQgV0tfQVBJX0RFUFJFQ0FURUQoIlVzZSBXS1dlYlBhZ2VQcmVmZXJlbmNl
cy5hbGxvd3NKYXZhU2NyaXB0TWFya3VwIHRvIGRpc2FibGUgSmF2YVNjcmlwdCBtYXJrdXAgb24g
YSBwZXItbmF2aWdhdGlvbiBiYXNpcyIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDU0MjE4YTRkOWMwZjlhZGI2MTQyOTJk
MmYyYWViYzJiMzUzYWEyODguLjE0MjAxMWZiYjNlMzZlNmJjOWJmZjUxODNmNmFmYjU2YzczYzRm
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tCkBAIC02NSw5ICs2NSwxMiBAQCArIChCT09MKXN1cHBvcnRzU2VjdXJlQ29kaW5n
CiAtICh2b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7CiAgICAgW2NvZGVy
IGVuY29kZURvdWJsZTpzZWxmLm1pbmltdW1Gb250U2l6ZSBmb3JLZXk6QCJtaW5pbXVtRm9udFNp
emUiXTsKLSAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVkIGZvcktl
eTpAImphdmFTY3JpcHRFbmFibGVkIl07CiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IGZvcktleTpAImphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KKyAgICBbY29kZXIgZW5jb2RlQm9vbDpzZWxmLmphdmFTY3JpcHRFbmFibGVkIGZv
cktleTpAImphdmFTY3JpcHRFbmFibGVkIl07CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKKwogI2lmIFBMQVRGT1JNKE1BQykKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgW2NvZGVyIGVuY29kZUJvb2w6c2VsZi5qYXZhRW5hYmxlZCBmb3JLZXk6QCJq
YXZhRW5hYmxlZCJdOwpAQCAtODMsOSArODYsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
Q29kZXI6KE5TQ29kZXIgKiljb2RlcgogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgc2VsZi5t
aW5pbXVtRm9udFNpemUgPSBbY29kZXIgZGVjb2RlRG91YmxlRm9yS2V5OkAibWluaW11bUZvbnRT
aXplIl07Ci0gICAgc2VsZi5qYXZhU2NyaXB0RW5hYmxlZCA9IFtjb2RlciBkZWNvZGVCb29sRm9y
S2V5OkAiamF2YVNjcmlwdEVuYWJsZWQiXTsKICAgICBzZWxmLmphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktleTpAImphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkiXTsKIAorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KKyAgICBzZWxmLmphdmFTY3JpcHRFbmFibGVkID0gW2NvZGVyIGRlY29kZUJv
b2xGb3JLZXk6QCJqYXZhU2NyaXB0RW5hYmxlZCJdOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECisKICNpZiBQTEFURk9STShNQUMpCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgogICAgIHNlbGYuamF2YUVuYWJsZWQgPSBbY29kZXIgZGVjb2RlQm9vbEZvcktl
eTpAImphdmFFbmFibGVkIl07CkBAIC0xMTIsMTYgKzExOCw2IEBAIC0gKHZvaWQpc2V0TWluaW11
bUZvbnRTaXplOihDR0Zsb2F0KW1pbmltdW1Gb250U2l6ZQogICAgIF9wcmVmZXJlbmNlcy0+c2V0
TWluaW11bUZvbnRTaXplKG1pbmltdW1Gb250U2l6ZSk7CiB9CiAKLS0gKEJPT0wpamF2YVNjcmlw
dEVuYWJsZWQKLXsKLSAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5qYXZhU2NyaXB0RW5hYmxlZCgp
OwotfQotCi0tICh2b2lkKXNldEphdmFTY3JpcHRFbmFibGVkOihCT09MKWphdmFTY3JpcHRFbmFi
bGVkCi17Ci0gICAgX3ByZWZlcmVuY2VzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0
RW5hYmxlZCk7Ci19Ci0KIC0gKHZvaWQpc2V0RnJhdWR1bGVudFdlYnNpdGVXYXJuaW5nRW5hYmxl
ZDooQk9PTCllbmFibGVkCiB7CiAgICAgX3ByZWZlcmVuY2VzLT5zZXRTYWZlQnJvd3NpbmdFbmFi
bGVkKGVuYWJsZWQpOwpAQCAtMTQzMiwxMCArMTQyOCwxMSBAQCAtIChCT09MKV9kZXZpY2VPcmll
bnRhdGlvbkV2ZW50RW5hYmxlZAogCiBAZW5kCiAKLSNpZiAhVEFSR0VUX09TX0lQSE9ORQogCiBA
aW1wbGVtZW50YXRpb24gV0tQcmVmZXJlbmNlcyAoV0tEZXByZWNhdGVkKQogCisjaWYgIVRBUkdF
VF9PU19JUEhPTkUKKwogLSAoQk9PTClqYXZhRW5hYmxlZAogewogICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmphdmFFbmFibGVkKCk7CkBAIC0xNDU2LDYgKzE0NTMsMTcgQEAgLSAodm9pZClzZXRQ
bHVnSW5zRW5hYmxlZDooQk9PTClwbHVnSW5zRW5hYmxlZAogICAgIF9wcmVmZXJlbmNlcy0+c2V0
UGx1Z2luc0VuYWJsZWQocGx1Z0luc0VuYWJsZWQpOwogfQogCisjZW5kaWYKKworLSAoQk9PTClq
YXZhU2NyaXB0RW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmphdmFTY3JpcHRF
bmFibGVkKCk7Cit9CisKKy0gKHZvaWQpc2V0SmF2YVNjcmlwdEVuYWJsZWQ6KEJPT0wpamF2YVNj
cmlwdEVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEphdmFTY3JpcHRFbmFibGVkKGph
dmFTY3JpcHRFbmFibGVkKTsKK30KKwogQGVuZAogCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKaW5k
ZXggMjc0N2U4MTI4ZjAzZjAyZGJlZWZiNWM1ZmM5NmZjNTc3ZjIxN2FkNi4uY2FjMTk1NmY0MGU5
NWM2MDY2YWZhYzg3MDBkYTM4MTBhMTQ1MWI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLmgKQEAgLTU3LDQg
KzU3LDE5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSkKICAq
LwogQHByb3BlcnR5IChub25hdG9taWMpIFdLQ29udGVudE1vZGUgcHJlZmVycmVkQ29udGVudE1v
ZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogCisvKiBAYWJzdHJhY3QgQSBCb29sZWFu
IHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBKYXZhU2NyaXB0IGZyb20gd2ViIGNvbnRlbnQgaXMg
ZW5hYmxlZAorIEBkaXNjdXNzaW9uIElmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIE5PIHRoZW4gSmF2
YVNjcmlwdCByZWZlcmVuY2VkIGJ5IHRoZSB3ZWIgY29udGVudCB3aWxsIG5vdCBleGVjdXRlLgor
IFRoaXMgaW5jbHVkZXMgSmF2YVNjcmlwdCBmb3VuZCBpbiBpbmxpbmUgPHNjcmlwdD4gZWxlbWVu
dHMsIHJlZmVyZW5jZWQgYnkgZXh0ZXJuYWwgSmF2YVNjcmlwdCByZXNvdXJjZXMsCisgImphdmFz
Y3JpcHQ6IiBVUkxzLCBhbmQgYWxsIG90aGVyIGZvcm1zLgorCisgRXZlbiBpZiB0aGlzIHZhbHVl
IGlzIHNldCB0byBOTyB5b3VyIGFwcGxpY2F0aW9uIGNhbiBzdGlsbCBleGVjdXRlIEphdmFTY3Jp
cHQgdXNpbmc6CisgLSBbV0tXZWJWaWV3IGV2YWx1dGVKYXZhU2NyaXB0OmNvbXBsZXRpb25IYW5k
bGVyOl0KKyAtIFtXS1dlYlZpZXcgZXZhbHV0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29t
cGxldGlvbkhhbmRsZXI6XQorIC0gW1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3Vt
ZW50czppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdCisgLSBXS1VzZXJTY3JpcHRz
CisKKyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCisqLworQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgYWxsb3dzQ29udGVudEphdmFTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmluZGV4
IDk5ZjBjMGE4MGE4YmU0NTMyNDM1NmI2Mzk2MTA5ZjM2ZjRjZmRjNzQuLjAzZjM2NzEwNjM5MGNj
OWQ5OTdiYzk4MDlkYjk3ODRmNDk1MjQ1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTMzMSw2
ICszMzEsMjEgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1cm4gKl93ZWJz
aXRlUG9saWNpZXM7CiB9CiAKKy0gKHZvaWQpc2V0QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6KEJP
T0wpYWxsb3dzQ29udGVudEphdmFTY3JpcHQKK3sKKyAgICBfd2Vic2l0ZVBvbGljaWVzLT5zZXRB
bGxvd3NDb250ZW50SmF2YVNjcmlwdChhbGxvd3NDb250ZW50SmF2YVNjcmlwdCA/IFdlYkNvcmU6
OkFsbG93c0NvbnRlbnRKYXZhU2NyaXB0OjpZZXMgOiBXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2
YVNjcmlwdDo6Tm8pOworfQorCistIChCT09MKWFsbG93c0NvbnRlbnRKYXZhU2NyaXB0Cit7Cisg
ICAgc3dpdGNoIChfd2Vic2l0ZVBvbGljaWVzLT5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCgpKSB7
CisgICAgY2FzZSBXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlwdDo6WWVzOgorICAgICAg
ICByZXR1cm4gWUVTOworICAgIGNhc2UgV2ViQ29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6
Ok5vOgorICAgICAgICByZXR1cm4gTk87CisgICAgfQorfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIAogLSAodm9pZClzZXRQcmVmZXJyZWRDb250ZW50TW9kZTooV0tDb250ZW50TW9kZSlj
b250ZW50TW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZjFiZDcxYTI0
NTE3YzQ3OWExM2Y2ZDgyMDlmYzhlOWIxNDk1NGZhNi4uYzVkYzA1MGZhNjE3MDZhMmViOWQ2NTg4
OWI1YTIxNjg4ZDFiMWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04
OTQsNiArODk0LDEyIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFwcGx5VG9Eb2N1bWVu
dExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYgd2Vic2l0ZVBvCiAgICAgV2Vic2l0ZVBvbGlj
aWVzRGF0YTo6YXBwbHlUb0RvY3VtZW50TG9hZGVyKFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSwg
KmRvY3VtZW50TG9hZGVyKTsKIH0KIAorV2ViQ29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNl
bnROYXZpZ2F0aW9uKCkgY29uc3QKK3sKKyAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZSA/
IG1fZnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdlYlBhZ2UgPyB3ZWJQYWdl
LT5hbGxvd3NDb250ZW50SmF2YVNjcmlwdEZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIDogV2Vi
Q29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQ6Ok5vOworfQorCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLAogICAg
IEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBQb2xpY3lEZWNpc2lvbk1vZGUgcG9saWN5RGVjaXNpb25N
b2RlLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIEZy
YW1lUG9saWN5RnVuY3Rpb24mJiBmdW5jdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggOWFhNWEwNTQ5MjQzYTgzOTQwZTVhOTUwZGRiYzgxN2E0NGI1MDk0My4uZTMwZTRm
OTdlMTg0NTc0MzI5ZWJhMDNlYTUzNTE5OTBlZDViM2ZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTYyLDcgKzYyLDkgQEAgcHVibGljOgogICAgIH07CiAgICAgdm9pZCBzZXRI
YXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyhGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lk
ZW50aWZpZXImJik7CiAjZW5kaWYKLSAgICAKKworICAgIFdlYkNvcmU6OkFsbG93c0NvbnRlbnRK
YXZhU2NyaXB0IGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9u
KCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3ll
ZCgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKaW5kZXggZjZjOTg0ZTMwNWVjN2Y3ZGFlZDk3ZjY4NmU4OWEyN2ZiOTBiYjQ3ZS4uMmUw
YTQwNTY1ODllMjQ5MGE1ODVkZjNmYWE4ZDNjNmVmNDExOTJmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMjY1LDggKzI2NSwxMiBAQCB2
b2lkIFdlYkZyYW1lOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgbGlzdGVuZXJJ
RCwgV2ViQ29yZTo6UG9saWN5Q2hlYwogCiAgICAgaW52YWxpZGF0ZVBvbGljeUxpc3RlbmVyKCk7
CiAKLSAgICBpZiAoZm9yTmF2aWdhdGlvbkFjdGlvbiAmJiBtX2ZyYW1lTG9hZGVyQ2xpZW50ICYm
IHdlYnNpdGVQb2xpY2llcykKKyAgICBpZiAoZm9yTmF2aWdhdGlvbkFjdGlvbiAmJiBtX2ZyYW1l
TG9hZGVyQ2xpZW50ICYmIHdlYnNpdGVQb2xpY2llcykgeworICAgICAgICBBU1NFUlQocGFnZSgp
KTsKKyAgICAgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UoKS0+c2V0QWxsb3dzQ29u
dGVudEphdmFTY3JpcHRGcm9tTW9zdFJlY2VudE5hdmlnYXRpb24od2Vic2l0ZVBvbGljaWVzLT5h
bGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CiAgICAgICAgIG1fZnJhbWVMb2FkZXJDbGllbnQtPmFw
cGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKCp3ZWJzaXRlUG9saWNpZXMpKTsKKyAgICB9CiAK
ICAgICBtX3BvbGljeURvd25sb2FkSUQgPSBkb3dubG9hZElEOwogICAgIGlmIChuYXZpZ2F0aW9u
SUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggZTAyODRhODE4MjQxZDcxMzBjYWQyNzUzZGRiODgwMDA4ZmE5OTU1YS4uMjg1YjQyNDRiY2Q3
OGI1MTBjYmRkYWVmNWY4NzU3MzQ1NDNiMDM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyNjAsNiArNjI2MCw3IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlV2Vic2l0ZVBvbGljaWVzKFdlYnNpdGVQb2xpY2llc0RhdGEmJiB3ZWJzaXRlUG9s
aWNpZXMpCiAgICAgaWYgKCFkb2N1bWVudExvYWRlcikKICAgICAgICAgcmV0dXJuOwogCisgICAg
bV9hbGxvd3NDb250ZW50SmF2YVNjcmlwdEZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiA9IHdlYnNp
dGVQb2xpY2llcy5hbGxvd3NDb250ZW50SmF2YVNjcmlwdDsKICAgICBXZWJzaXRlUG9saWNpZXNE
YXRhOjphcHBseVRvRG9jdW1lbnRMb2FkZXIoV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpLCAqZG9j
dW1lbnRMb2FkZXIpOwogICAgIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTYzMTUsNiArNjMxNiw3
IEBAIFJlZjxEb2N1bWVudExvYWRlcj4gV2ViUGFnZTo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIoRnJh
bWUmIGZyYW1lLCBjb25zdCBSZXNvdXJjZVJlCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9w
ZW5kaW5nV2Vic2l0ZVBvbGljaWVzKSB7CisgICAgICAgICAgICBtX2FsbG93c0NvbnRlbnRKYXZh
U2NyaXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uID0gbV9wZW5kaW5nV2Vic2l0ZVBvbGljaWVz
LT5hbGxvd3NDb250ZW50SmF2YVNjcmlwdDsKICAgICAgICAgICAgIFdlYnNpdGVQb2xpY2llc0Rh
dGE6OmFwcGx5VG9Eb2N1bWVudExvYWRlcihXVEZNb3ZlKCptX3BlbmRpbmdXZWJzaXRlUG9saWNp
ZXMpLCBkb2N1bWVudExvYWRlcik7CiAgICAgICAgICAgICBtX3BlbmRpbmdXZWJzaXRlUG9saWNp
ZXMgPSBXVEY6Om51bGxvcHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiZGFiODFiMjljZmYyMDFlYWExM2JmM2Q2NGQ5MjM0ZTAz
YTgxYzVjLi5jZjU5MzNiM2ZlNjJhYTM0N2MwYzRjYWU4YmYyN2RjNzdmNTNiOWM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjc1LDcgKzEyNzUs
MTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9pZCBzZXRPdmVy
cmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwotICAgIAorCisgICAgV2ViQ29yZTo6QWxs
b3dzQ29udGVudEphdmFTY3JpcHQgYWxsb3dzQ29udGVudEphdmFTY3JpcHRGcm9tTW9zdFJlY2Vu
dE5hdmlnYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJv
bU1vc3RSZWNlbnROYXZpZ2F0aW9uOyB9CisgICAgdm9pZCBzZXRBbGxvd3NDb250ZW50SmF2YVNj
cmlwdEZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbihXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNj
cmlwdCBhbGxvd3MpIHsgbV9hbGxvd3NDb250ZW50SmF2YVNjcmlwdEZyb21Nb3N0UmVjZW50TmF2
aWdhdGlvbiA9IGFsbG93czsgfQorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKQEAgLTIwNDgsNiAr
MjA1MSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRp
YVR5cGU7CisgICAgV2ViQ29yZTo6QWxsb3dzQ29udGVudEphdmFTY3JpcHQgbV9hbGxvd3NDb250
ZW50SmF2YVNjcmlwdEZyb21Nb3N0UmVjZW50TmF2aWdhdGlvbiB7IFdlYkNvcmU6OkFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0OjpZZXMgfTsKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBTdHJpbmcg
bV90aGVtZU5hbWU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYjk5YTJiNDk5ZjhjNWI0YjcxNTEwNzU2OTBiZjcxOGQ3ZTZmYWM3OS4uYjEyMmRk
ZjU0YTc3MjViMmNlYzljNDcxY2ZkNTU1OGJhMWNiMzljMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAyLTE0
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgImFs
bG93c0NvbnRlbnRKYXZhU2NyaXB0IiBvbiBXS1dlYnBhZ2VQcmVmZXJlbmNlcworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTE1MzQ5Njc+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA3NDI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1
YXRlSmF2YVNjcmlwdC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tOgorICAgICAgICAoLVtXZWJz
aXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFRF
U1QpOgorICAgICAgICAoLVtXZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZp
ZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczp1c2VySW5mbzpk
ZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtUZXN0TmF2aWdhdGlvbkRl
bGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNl
czpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUg
d2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNl
czpdKToKKyAgICAgICAgKC1bVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpwcmVmZXJlbmNlczpdKToKKwogMjAyMC0wMi0x
MyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdFdl
YktpdEFQSTogUmUtYmFzZWxpbmUgRG9jdW1lbnRFZGl0aW5nQ29udGV4dCBmb3IgQ2F0YWx5c3QK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXggZmMwMzM3NTdlNDQ4
MWMwNmYxOGZmMTk3NjdlMDNmZDIxM2YyMWYwNy4uNTM3N2JiYTNjN2RjZmYzYTY0YjI0NjA0NjA0
OTBiNThlNmEyODIzMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0K
QEAgLTI2LDEzICsyNiwxNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CiAKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUQ1BTZXJ2ZXIuaCIKICNpbXBvcnQgIlRlc3QuaCIK
ICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZp
ZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFdvcmxkLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tFcnJv
clByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTI1NCwzICsyNTgs
MTE0IEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRJbkF0dGFjaG1lbnRzKQogICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK1RFU1QoV2ViS2l0LCBBbGxv
d3NDb250ZW50SmF2YVNjcmlwdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiPHNjcmlwdD52YXIgZm9vID0gJ2Jhcic8L3NjcmlwdD4iXTsKKworICAgIF9f
YmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
OkAiZm9vIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0
IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworICAgICAgICBFWFBFQ1RfVFJVRShb
cmVzdWx0IGlzRXF1YWxUb1N0cmluZzpAImJhciJdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFJldGFp
blB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJw
YWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKKyAgICBFWFBFQ1RfVFJVRShwcmVmZXJlbmNl
cy5nZXQoKS5hbGxvd3NDb250ZW50SmF2YVNjcmlwdCk7CisgICAgcHJlZmVyZW5jZXMuZ2V0KCku
YWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVy
ZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1
bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAg
ICAgIEVYUEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2Fu
J3QgZmluZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgVGVzdFdlYktpdEFQ
STo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvc2NyaXB0IiwgeyAidmFyIGZvbyA9
ICdiYXInIiB9IH0KKyAgICB9KTsKKyAgICBwcmVmZXJlbmNlcy5nZXQoKS5hbGxvd3NDb250ZW50
SmF2YVNjcmlwdCA9IFlFUzsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4w
LjAuMTolZC9zY3JpcHQnPjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnBy
ZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJmb28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVD
VF9UUlVFKFtyZXN1bHQgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisgICAgICAg
IEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiYmFyIl0pOworICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworCisgICAgcHJlZmVyZW5jZXMuZ2V0KCkuYWxsb3dzQ29udGVudEphdmFTY3JpcHQgPSBOTzsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCI8c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9zY3JpcHQnPjwv
c2NyaXB0PiIsIHNlcnZlci5wb3J0KCldIHByZWZlcmVuY2VzOnByZWZlcmVuY2VzLmdldCgpXTsK
KworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJm
b28iIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOworICAgICAgICBFWFBFQ1RfVFJVRShbW2Vycm9yIGRl
c2NyaXB0aW9uXSBjb250YWluc1N0cmluZzpAIkNhbid0IGZpbmQgdmFyaWFibGU6IGZvbyJdKTsK
KyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZhU2Ny
aXB0ID0gWUVTOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxp
ZnJhbWUgc3JjPSdqYXZhc2NyaXB0OndpbmRvdy5mb28gPSAxJz48L2lmcmFtZT4iIHByZWZlcmVu
Y2VzOnByZWZlcmVuY2VzLmdldCgpXTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZnJhbWVzWzBdLmZvbyIgY29tcGxldGlvbkhh
bmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU051
bWJlciBjbGFzc11dKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsVG9OdW1i
ZXI6QDFdKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRl
bnRKYXZhU2NyaXB0ID0gTk87CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiPGlmcmFtZSBzcmM9J2phdmFzY3JpcHQ6d2luZG93LmZvbyA9IDEnPjwvaWZyYW1lPiIg
cHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5mcmFtZXNbMF0uZm9vIiBjb21w
bGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX05VTEwocmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworfQorCitURVNUKFdlYktpdCwgU1BJSmF2YXNjcmlwdE1hcmt1cFZzQVBJQ29udGVudEphdmFT
Y3JpcHQpCit7CisgICAgLy8gVGhlcmUncyBub3QgYSBkeW5hbWljYWxseSBjb25maWd1cmF0aW9u
IHNldHRpbmcgZm9yIGphdmFzY3JpcHQgbWFya3VwLAorICAgIC8vIGJ1dCBpdCBjYW4gYmUgY29u
ZmlndXJlZCBhdCBXS1dlYlZpZXcgY3JlYXRpb24gdGltZS4KKyAgICBXS1dlYlZpZXdDb25maWd1
cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1tbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0gYXV0b3JlbGVhc2VdOworICAgIGNvbmZpZ3VyYXRpb24uX2FsbG93c0phdmFTY3JpcHRN
YXJrdXAgPSBOTzsKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworCisgICAgLy8gVmVyaWZ5
IHRoYXQgdGhlIGZvbGxvd2luZyBKUyBkb2VzIG5vdCBleGVjdXRlLgorICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+dmFyIGZvbyA9ICdiYXInPC9zY3Jp
cHQ+Il07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2
YWx1YXRlSmF2YVNjcmlwdDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVY
UEVDVF9UUlVFKFtbZXJyb3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmlu
ZCB2YXJpYWJsZTogZm9vIl0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgLy8gVHJ5IHRvIGV4cGxpY2l0
bHkgZW5hYmxlIHNjcmlwdCBtYXJrdXAgdXNpbmcgV0tXZWJwYWdlUHJlZmVyZW5jZXMsIGJ1dCB2
ZXJpZnkgaXQgc2hvdWxkIHN0aWxsIGZhaWwgYmVjYXVzZQorICAgIC8vIG9mIHRoZSBhYm92ZSBj
b25maWd1cmF0aW9uIHNldHRpbmcuCisgICAgUmV0YWluUHRyPFdLV2VicGFnZVByZWZlcmVuY2Vz
PiBwcmVmZXJlbmNlcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxvY10gaW5p
dF0pOworICAgIEVYUEVDVF9UUlVFKHByZWZlcmVuY2VzLmdldCgpLmFsbG93c0NvbnRlbnRKYXZh
U2NyaXB0KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8c2Ny
aXB0PnZhciBmb28gPSAnYmFyJzwvc2NyaXB0PiIgcHJlZmVyZW5jZXM6cHJlZmVyZW5jZXMuZ2V0
KCldOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAImZvbyIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CisgICAgICAgIEVYUEVDVF9OVUxMKHJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFtbZXJy
b3IgZGVzY3JpcHRpb25dIGNvbnRhaW5zU3RyaW5nOkAiQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9v
Il0pOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IGRkNzljNWRkMGNmY2Ji
MGE4YzA4Mjk2ZmFjNjM3NmU5N2I3OGMxOTcuLjA5NzZiMzZlNTE2NWM0YzQ2YzdkMzg0MWMyYjM1
ZjY1ZjA0ZjkwMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCkBAIC0yMzksMTUgKzIzOSwxNSBAQCAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9wbGF5RXZlbnQ6KF9X
S0F1dG9wbGF5RXZlbnQpZXZlbgogQGVuZAogCiBAaW50ZXJmYWNlIFdlYnNpdGVQb2xpY2llc05h
dmlnYXRpb25EZWxlZ2F0ZSA6IFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlUHJpdmF0ZT4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMpKFdLTmF2aWdhdGlv
bkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1cmVDb2Rpbmc+LCB2
b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICop
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXMpKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ks
IFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYnNp
dGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVu
Y2VzICopcHJlZmVyZW5jZXMgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8g
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdh
dGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZl
cmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgog
ewogICAgIGlmIChfZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9s
aWNpZXMpCi0gICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNp
dGVQb2xpY2llcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywgdXNlckluZm8sIGRlY2lz
aW9uSGFuZGxlcik7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0
aFdlYnNpdGVQb2xpY2llcyhuYXZpZ2F0aW9uQWN0aW9uLCBwcmVmZXJlbmNlcywgZGVjaXNpb25I
YW5kbGVyKTsKICAgICBlbHNlCiAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3lBbGxvdywgbmlsKTsKIH0KQEAgLTYxNiw3ICs2MTYsNyBAQCBURVNUKFdlYnBh
Z2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzV2l0aEJyaWRnaW5nQ2FzdCkKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xpY2llc05hdmlnYXRpb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwogCiAgICAgX19ibG9jayBib29sIGRpZEludm9rZURlY2lzaW9uSGFuZGxl
ciA9IGZhbHNlOwotICAgIFtkZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1cmVDb2Rpbmc+LCB2b2lkICheZGVjaXNpb25IYW5kbGVy
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKSB7Cisg
ICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0
ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICos
IHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJw
YWdlUHJlZmVyZW5jZXMgKikpIHsKICAgICAgICAgYXV0byBwb2xpY2llcyA9IGFkb3B0V0soV0tX
ZWJzaXRlUG9saWNpZXNDcmVhdGUoKSk7CiAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgKF9fYnJpZGdlIFdLV2VicGFnZVByZWZlcmVuY2VzICop
cG9saWNpZXMuZ2V0KCkpOwogICAgICAgICBkaWRJbnZva2VEZWNpc2lvbkhhbmRsZXIgPSB0cnVl
OwpAQCAtNjM1LDcgKzYzNSw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9s
aWNpZXNXaXRoVW5leHBlY3RlZFR5cGUpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tX
ZWJzaXRlUG9saWNpZXNOYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKIAogICAgIF9f
YmxvY2sgYm9vbCBkaWRDYXRjaEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIFtkZWxlZ2F0ZSBzZXRE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFdlYnNpdGVQb2xpY2llczpeKFdLTmF2
aWdhdGlvbkFjdGlvbiAqLCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCBpZCA8TlNTZWN1cmVDb2Rp
bmc+LCB2b2lkICheZGVjaXNpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdL
V2VicGFnZVByZWZlcmVuY2VzICopKSB7CisgICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0aW9u
ICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKICAgICAgICAg
QHRyeSB7CiAgICAgICAgICAgICBpZCBmYWtlUG9saWNpZXMgPSBAIkhlbGxvIjsKICAgICAgICAg
ICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgKFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopZmFrZVBvbGljaWVzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKaW5kZXggMjIzMjAxYmNiZWY5Yzlj
NzdkODVjMWRkMWU4NTg4NDI2YjYyZjVmYi4uYjY0NzIyOWRjYjg1OTk3NDYwNWM3ZmIzMDlkODVk
MmNhMDM0NGU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2
aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2
aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTMxLDYgKzMxLDcgQEAKIEBpbnRlcmZhY2UgVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KIAogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKShXS05hdmlnYXRpb25BY3Rpb24gKiwgdm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMpKFdLTmF2aWdhdGlvbkFjdGlvbiAqLCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqLCB2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ks
IFdLV2VicGFnZVByZWZlcmVuY2VzICopKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdLTmF2aWdh
dGlvbiAqLCBOU0Vycm9yICopOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5k
aWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbikoV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAq
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkQ29tbWl0TmF2aWdhdGlv
bikoV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKTsKQEAgLTQxLDYgKzQyLDcgQEAKIAogLSAo
dm9pZCl3YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb247CiAtICh2b2lkKXdhaXRG
b3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIC0g
KHZvaWQpd2FpdEZvckRpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb247CiAKIEBlbmQKQEAgLTQ4
LDUgKzUwLDYgQEAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChUZXN0V2ViS2l0QVBJRXh0cmFzKQog
LSAodm9pZClfdGVzdF93YWl0Rm9yRGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb247CiAtICh2
b2lkKV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uOworLSAodm9pZClfdGVzdF93YWl0
Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKilwcmVmZXJlbmNlczsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRp
b25XaXRob3V0UHJlc2VudGF0aW9uVXBkYXRlOwogQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCmluZGV4IDMzZTIxMWI0MWY0
YzdmY2RkNWZjNmU0ZDJkODFiM2I0NTk1ZDBiNjUuLmJkYzUxNzU3YjM5NGFmNjJjYzQwZjQxMTMw
YjU1MDJlYjdmN2IyOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KQEAgLTMyLDEyICszMiwxNiBAQAogCiBAaW1wbGVtZW50
YXRpb24gVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZQogCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9u
QWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZp
Z2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgKilwcmVmZXJlbmNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVy
CiB7Ci0gICAgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKQotICAgICAgICBf
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0aW9uLCBkZWNpc2lv
bkhhbmRsZXIpOwotICAgIGVsc2UKLSAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeUFsbG93KTsKKyAgICBpZiAoX2RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25XaXRoUHJlZmVyZW5jZXMpCisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uV2l0aFByZWZlcmVuY2VzKG5hdmlnYXRpb25BY3Rpb24sIHByZWZlcmVuY2VzLCBkZWNp
c2lvbkhhbmRsZXIpOworICAgIGVsc2UgaWYgKF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKSB7CisgICAgICAgIF9kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRp
b25BY3Rpb24sIF4oV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvbikgeworICAgICAgICAg
ICAgZGVjaXNpb25IYW5kbGVyKGFjdGlvbiwgcHJlZmVyZW5jZXMpOworICAgICAgICB9KTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUFsbG93LCBwcmVmZXJlbmNlcyk7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2
aWdhdGlvbgpAQCAtMTEyLDYgKzExNiwxOSBAQCAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uCiAgICAgc2VsZi5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gbmlsOwogfQogCistICh2b2lk
KXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVm
ZXJlbmNlcyAqKXByZWZlcmVuY2VzCit7CisgICAgRVhQRUNUX0ZBTFNFKHNlbGYuZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlcyk7CisgICAgRVhQRUNUX1RSVUUo
ISFwcmVmZXJlbmNlcyk7CisKKyAgICBzZWxmLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25XaXRoUHJlZmVyZW5jZXMgPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9uLCBXS1dlYnBh
Z2VQcmVmZXJlbmNlcyAqLCB2b2lkICheaGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgeworICAgICAgICBoYW5kbGVyKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7CisgICAgfTsKKworICAgIFtzZWxmIHdh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBzZWxmLmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXMgPSBuaWw7Cit9CisKIC0gKHZvaWQpd2FpdEZvckRp
ZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb24KIHsKICAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5kaWRG
YWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKTsKQEAgLTE1Miw2ICsxNjksMTcgQEAgLSAodm9pZClf
dGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRpb25VcGRhdGUK
ICAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKIH0KIAorLSAodm9pZClfdGVzdF93
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVy
ZW5jZXMgKilwcmVmZXJlbmNlcworeworICAgIEVYUEVDVF9GQUxTRShzZWxmLm5hdmlnYXRpb25E
ZWxlZ2F0ZSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgc2VsZi5uYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgW25hdmlnYXRpb25EZWxlZ2F0
ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldpdGhQcmVmZXJlbmNlczpwcmVmZXJlbmNlc107
CisKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5pbDsKK30KKwogLSAodm9pZClfdGVz
dF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogewogICAgIEVYUEVDVF9GQUxTRShzZWxmLm5h
dmlnYXRpb25EZWxlZ2F0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5oCmluZGV4IGQ4ZTc1ZGMzYzBkYzRiNWE0MzZmMmZmZWNiOTY2Nzc0ZTY4YzU4OWYuLmMxNjIw
Y2U0ZTBiNWJhOGUwZWE1MDZhNDBmODAyZGJmNjRmMDI4M2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5oCkBAIC01NCw2ICs1NCw3IEBACiAtICh2b2lkKXN5bmNo
cm9ub3VzbHlHb0ZvcndhcmQ7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzoo
TlNTdHJpbmcgKilodG1sOwogLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5T
U3RyaW5nICopaHRtbCBiYXNlVVJMOihOU1VSTCAqKXVybDsKKy0gKHZvaWQpc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOihOU1N0cmluZyAqKWh0bWwgcHJlZmVyZW5jZXM6KFdLV2VicGFnZVBy
ZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkUmVxdWVz
dDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRUZXN0
UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwogLSAoQk9PTClfc3luY2hyb25vdXNseUV4
ZWN1dGVFZGl0Q29tbWFuZDooTlNTdHJpbmcgKiljb21tYW5kIGFyZ3VtZW50OihOU1N0cmluZyAq
KWFyZ3VtZW50OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmlu
ZGV4IGNhYmIyYzM3M2UyYTQzZTJiOWE1MjNlMzkxZGY5YjhiNjgxZTgxOGUuLjM1NjAwYjcxNWVl
ZTBlMzk4ZDczYjViZDFjZmI1ZDhkOTUzZDc1YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTEyMiw2ICsxMjIsMTIgQEAgLSAodm9pZClzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmc6KE5TU3RyaW5nICopaHRtbAogICAgIFtzZWxmIHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXTsKIH0KIAorLSAodm9pZClzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6KE5T
U3RyaW5nICopaHRtbCBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJl
bmNlcworeworICAgIFtzZWxmIGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpbW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFtzZWxmIF90ZXN0X3dhaXRGb3JEaWRGaW5p
c2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOnByZWZlcmVuY2VzXTsKK30KKwogLSAodm9pZClz
eW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWUKIHsKICAg
ICBbc2VsZiBsb2FkVGVzdFBhZ2VOYW1lZDpwYWdlTmFtZV07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>