<?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>211904</bug_id>
          
          <creation_ts>2020-05-14 10:06:01 -0700</creation_ts>
          <short_desc>Add sourceURL to _evaluateJavaScript: so the scripts appear in Web Inspector</short_desc>
          <delta_ts>2020-05-14 16:11:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Local 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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>hi</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1652679</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 10:06:01 -0700</bug_when>
    <thetext>We were missing the URL, using the frame&apos;s document URL instead of the original source URL. This caused two issues, one the error messages were in the wrong location when shown in the console. And the script would not appear in the Sources tab of the Inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652680</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 10:06:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/62074376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652712</commentid>
    <comment_count>2</comment_count>
      <attachid>399383</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 11:28:46 -0700</bug_when>
    <thetext>Created attachment 399383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652724</commentid>
    <comment_count>3</comment_count>
      <attachid>399388</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 11:49:46 -0700</bug_when>
    <thetext>Created attachment 399388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652725</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-05-14 11:50:36 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652726</commentid>
    <comment_count>5</comment_count>
      <attachid>399388</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-05-14 11:55:02 -0700</bug_when>
    <thetext>Comment on attachment 399388
Patch

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

r=me, but I think you missed some cases in GLib code

&gt; Source/WebCore/bindings/js/RunJavaScriptParameters.h:50
&gt; +    RunJavaScriptParameters(const String&amp; source, const URL&amp; sourceURL, bool runAsAsyncFunction, Optional&lt;ArgumentWireBytesMap&gt;&amp;&amp; arguments, bool forceUserGesture)

I feel like we should just always use `URL&amp;&amp;`.

&gt; Source/WebCore/bindings/js/ScriptController.cpp:594
&gt; +    URL sourceURL = parameters.sourceURL;

Do we need to pull this out into a local or can we just inline it?

NIT: `auto`?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:645
&gt; +    URL sourceURL = parameters.sourceURL;
&gt; +    String sourceURLString = sourceURL.string();

NIT: `auto`?

&gt; Source/WebCore/bindings/js/ScriptController.cpp:-645
&gt; -    String sourceURL = jsSourceCode.provider()-&gt;url().string();

I think we can/should keep this logic so that we get the resolved `sourceURL` from the script itself, rather than what was passed in (just in case we add some logic later that mucks with it).
```
    String sourceURLString = jsSourceCode.provider()-&gt;url().string();
```

&gt; Source/WebKit/UIProcess/API/Cocoa/WKUserScript.mm:-39
&gt; -    API::Object::constructInWrapper&lt;API::UserScript&gt;(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), { }, { }, API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::UserContentInjectedFrames::InjectInTopFrameOnly : WebCore::UserContentInjectedFrames::InjectInAllFrames, WebCore::WaitForNotificationBeforeInjecting::No }, API::ContentWorld::pageContentWorld());

I do like these changes, but are they strictly speaking necessary?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:909
&gt; +    URL sourceURL = url;
&gt; +    if (!sourceURL.isValid())
&gt; +        sourceURL = API::UserScript::generateUniqueURL();

Should we only do this if `url` is actually provided?  Otherwise, we&apos;d end up generating a `sourceURL` (which is really only used for Web Inspector) for _every_ evaluation 🤔</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652739</commentid>
    <comment_count>6</comment_count>
      <attachid>399388</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 12:16:57 -0700</bug_when>
    <thetext>Comment on attachment 399388
Patch

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

&gt;&gt; Source/WebCore/bindings/js/RunJavaScriptParameters.h:50
&gt;&gt; +    RunJavaScriptParameters(const String&amp; source, const URL&amp; sourceURL, bool runAsAsyncFunction, Optional&lt;ArgumentWireBytesMap&gt;&amp;&amp; arguments, bool forceUserGesture)
&gt; 
&gt; I feel like we should just always use `URL&amp;&amp;`.

Okay.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:594
&gt;&gt; +    URL sourceURL = parameters.sourceURL;
&gt; 
&gt; Do we need to pull this out into a local or can we just inline it?
&gt; 
&gt; NIT: `auto`?

Will fix.

&gt;&gt; Source/WebCore/bindings/js/ScriptController.cpp:-645
&gt;&gt; -    String sourceURL = jsSourceCode.provider()-&gt;url().string();
&gt; 
&gt; I think we can/should keep this logic so that we get the resolved `sourceURL` from the script itself, rather than what was passed in (just in case we add some logic later that mucks with it).
&gt; ```
&gt;     String sourceURLString = jsSourceCode.provider()-&gt;url().string();
&gt; ```

Okay

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKUserScript.mm:-39
&gt;&gt; -    API::Object::constructInWrapper&lt;API::UserScript&gt;(self, WebCore::UserScript { WTF::String(source), API::UserScript::generateUniqueURL(), { }, { }, API::toWebCoreUserScriptInjectionTime(injectionTime), forMainFrameOnly ? WebCore::UserContentInjectedFrames::InjectInTopFrameOnly : WebCore::UserContentInjectedFrames::InjectInAllFrames, WebCore::WaitForNotificationBeforeInjecting::No }, API::ContentWorld::pageContentWorld());
&gt; 
&gt; I do like these changes, but are they strictly speaking necessary?

I wanted to clean it up, was bothering me.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:909
&gt;&gt; +        sourceURL = API::UserScript::generateUniqueURL();
&gt; 
&gt; Should we only do this if `url` is actually provided?  Otherwise, we&apos;d end up generating a `sourceURL` (which is really only used for Web Inspector) for _every_ evaluation 🤔

Yeah, I&apos;ll drop this. Good call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652742</commentid>
    <comment_count>7</comment_count>
      <attachid>399391</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 12:27:39 -0700</bug_when>
    <thetext>Created attachment 399391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652765</commentid>
    <comment_count>8</comment_count>
      <attachid>399396</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 13:11:14 -0700</bug_when>
    <thetext>Created attachment 399396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652766</commentid>
    <comment_count>9</comment_count>
      <attachid>399397</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 13:14:09 -0700</bug_when>
    <thetext>Created attachment 399397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652767</commentid>
    <comment_count>10</comment_count>
      <attachid>399397</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-05-14 13:25:27 -0700</bug_when>
    <thetext>Comment on attachment 399397
Patch

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

&gt; Source/WebCore/bindings/js/ScriptController.cpp:644
&gt; +    auto sourceURL = parameters.sourceURL;
&gt; +    if (!sourceURL.isValid()) {
&gt; +        // FIXME: This is gross, but when setTimeout() and setInterval() are passed JS strings, the thrown errors should use the frame document URL (according to WPT).
&gt; +        sourceURL = m_frame.document()-&gt;url();
&gt; +    }

I think this needs to be in `ScriptController::executeScriptInWorld` right above the `evaluateInWorld` call, _not_ in `ScriptController::callInWorld` (which was added for `-[WKWebView callAsyncJavaScript:arguments:inContentWorld:completionHandler]`).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652771</commentid>
    <comment_count>11</comment_count>
      <attachid>399400</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-05-14 13:30:37 -0700</bug_when>
    <thetext>Created attachment 399400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652853</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-14 16:11:57 -0700</bug_when>
    <thetext>Committed r261718: &lt;https://trac.webkit.org/changeset/261718&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399400.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399383</attachid>
            <date>2020-05-14 11:28:46 -0700</date>
            <delta_ts>2020-05-14 11:49:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211904-20200514112846.patch</filename>
            <type>text/plain</type>
            <size>27815</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4NjBiNjQ4NTk3YTcx
Y2Y4YWU5MzMwYjY3YWJhMWViMzc0ZGI2Mi4uNWJkYjc3ODkyNWI4OGZlZGY3OTdmNzRhOTk5MjE4
ZjkxMTQzMzE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc291cmNlVVJM
IHRvIF9ldmFsdWF0ZUphdmFTY3JpcHQ6IHNvIHRoZSBzY3JpcHRzIGFwcGVhciBpbiBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExOTA0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzYyMDc0Mzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgc291cmNlVVJMIHRvIFJ1bkph
dmFTY3JpcHRQYXJhbWV0ZXJzLiBVc2UgaXQgaW5zdGVhZCBvZiB0aGUgZnJhbWUncyBkb2N1bWVu
dCBVUkwuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SdW5KYXZhU2NyaXB0UGFyYW1ldGVycy5o
OgorICAgICAgICAoV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnM6OlJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0SW5Xb3Js
ZElnbm9yaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6
OmV4ZWN1dGVTY3JpcHRJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4
ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkKToKKwogMjAyMC0wNS0wNiAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vdy11bm5lZWRlZCBVU0UoR1JB
TU1BUl9DSEVDS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzFlZDQ0OGU0ZjAzNzMzNzRkY2VmYWMwYWFmNGRh
MmE5MzMyNWJhYy4uOGRjOWNmMWRjMWYyZWFiMzRhOTkzZmM3MzMwYjBlYjVkMjAwODYzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0wNS0xNCAgVGltb3RoeSBIYXRjaGVyICA8dGlt
b3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNvdXJjZVVSTCB0byBfZXZhbHVhdGVKYXZh
U2NyaXB0OiBzbyB0aGUgc2NyaXB0cyBhcHBlYXIgaW4gV2ViIEluc3BlY3Rvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTkwNAorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS82MjA3NDM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHNvdXJjZVVSTCB2ZXJzaW9uIG9mIF9ldmFsdWF0ZUphdmFT
Y3JpcHQ6IHRoYXQgcGFzc2VzIHRoZSBzb3VyY2VVUkwgdG8gUnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnMuCisgICAgICAgIElmIHRoZSBzb3VyY2VVUkwgaXMgaW52YWxpZCwgZ2VuZXJhdGUgYSB1bmlx
dWUgdXNlciBzY3JpcHQgVVJMIHNvIHRoZSBzb3VyY2UgY29kZSBlcnJvcnMgYXJlIG5vdCBzaG93
aW5nCisgICAgICAgIHVwIHdpdGggdGhlIGZyYW1lJ3MgZG9jdW1lbnQgVVJMIGFuZCBib2d1cyBs
b2NhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAg
ICAgKFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSk6IHBhc3MgQVBJOjpVc2VyU2NyaXB0
OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpIGZvciB0aGUgc291cmNlVVJMLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tOgorICAgICAgICAoLVtXS1VzZXJTY3JpcHQg
aW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5Ol0pOiBDbGVhbiB1
cCBXZWJDb3JlOjpVc2VyU2NyaXB0IGluaXRpYWxpemVyLgorICAgICAgICAoLVtXS1VzZXJTY3Jp
cHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFpbkZyYW1lT25seTpsZWdhY3lX
aGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OnVzZXJDb250ZW50V29ybGQ6XSk6IERpdHRvLgorICAg
ICAgICAoLVtXS1VzZXJTY3JpcHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFp
bkZyYW1lT25seTpsZWdhY3lXaGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OmFzc29jaWF0ZWRVUkw6
dXNlckNvbnRlbnRXb3JsZDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBfaW5p
dFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRlbGlz
dDpsZWdhY3lCbGFja2xpc3Q6Y29udGVudFdvcmxkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tV
c2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6
bGVnYWN5V2hpdGVsaXN0OmxlZ2FjeUJsYWNrbGlzdDphc3NvY2lhdGVkVVJMOmNvbnRlbnRXb3Js
ZDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBfaW5pdFdpdGhTb3VyY2U6aW5q
ZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRlbGlzdDpsZWdhY3lCbGFja2xp
c3Q6YXNzb2NpYXRlZFVSTDpjb250ZW50V29ybGQ6ZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b246XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdDphc0FzeW5jRnVuY3Rp
b246d2l0aEFyZ3VtZW50czpmb3JjZVVzZXJHZXN0dXJlOmluRnJhbWU6aW5Xb3JsZDpjb21wbGV0
aW9uSGFuZGxlcjpdKTogUmVuYW1lZCB0byBhZGQgc291cmNlVVJMLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdDphc0FzeW5jRnVuY3Rpb246d2l0aFNvdXJjZVVSTDp3
aXRoQXJndW1lbnRzOmZvcmNlVXNlckdlc3R1cmU6aW5GcmFtZTppbldvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBBZGRlZCBzb3VyY2VVUkwuCisgICAgICAgICgtW1dLV2ViVmlldyBfZXZhbHVh
dGVKYXZhU2NyaXB0OndpdGhTb3VyY2VVUkw6aW5GcmFtZTppbkNvbnRlbnRXb3JsZDpjb21wbGV0
aW9uSGFuZGxlcjpdKTogQWRkZWQuIFBhc3Mgc291cmNlVVJMIHRocm91Z2guCisgICAgICAgICgt
W1dLV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwg
bmV3IG1ldGhvZCB3aXRoIHNvdXJjZVVSTCBhcyBuaWwuCisgICAgICAgICgtW1dLV2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERp
dHRvLgorICAgICAgICAoLVtXS1dlYlZpZXcgY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6
aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERpdHRvLgorICAgICAgICAoLVtX
S1dlYlZpZXcgX2NhbGxBc3luY0phdmFTY3JpcHQ6YXJndW1lbnRzOmluRnJhbWU6aW5Db250ZW50
V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2V2YWx1YXRlSmF2YVNjcmlwdDppbkZyYW1lOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5k
bGVyOl0pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKwogMjAyMC0wNS0wNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRWxpbWluYXRlIGNoZWNrcyBvZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykg
aW4gQ29jb2Etc3BlY2lmaWMgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1J1bkphdmFTY3JpcHRQYXJhbWV0ZXJzLmgKaW5kZXggNDdhM2ZmYjA1Mzc3NWNhMTRhM2Nh
OGYxODliNGQ3NmZhODE3ZTdiYS4uMWY0ZTI3NDlmNzczYjE0MjdkNmQwMTdjODlmNDFkNTdkOWVk
M2M4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SdW5KYXZhU2Ny
aXB0UGFyYW1ldGVycy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzcsMjQgKzM4
LDI3IEBAIGVudW0gY2xhc3MgRm9yY2VVc2VyR2VzdHVyZSA6IGJvb2wgeyBObywgWWVzIH07CiB1
c2luZyBBcmd1bWVudFdpcmVCeXRlc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8dWludDhf
dD4+OwogCiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgewotICAgIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1bkFzQXN5
bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1lbnRzLCBG
b3JjZVVzZXJHZXN0dXJlIGZvcmNlVXNlckdlc3R1cmUpCisgICAgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMoU3RyaW5nJiYgc291cmNlLCBVUkwmJiBzb3VyY2VVUkwsIFJ1bkFzQXN5bmNGdW5jdGlv
biBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFy
Z3VtZW50cywgRm9yY2VVc2VyR2VzdHVyZSBmb3JjZVVzZXJHZXN0dXJlKQogICAgICAgICA6IHNv
dXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUoc291cmNl
VVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0aW9uKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlKQogICAgIHsKICAgICB9CiAKLSAgICBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVu
Y3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlKQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24s
IE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlKQogICAgICAgICA6IHNvdXJjZShzb3VyY2UpCisgICAgICAgICwgc291cmNlVVJM
KHNvdXJjZVVSTCkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0
aW9uID8gUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXMgOiBSdW5Bc0FzeW5jRnVuY3Rpb246Ok5vKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlID8gRm9yY2VVc2VyR2VzdHVyZTo6WWVzIDogRm9y
Y2VVc2VyR2VzdHVyZTo6Tm8pCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3JpcHRQYXJh
bWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgVVJMJiYgc291
cmNlVVJMLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0
ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291
cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VV
UkwpKQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24gPyBS
dW5Bc0FzeW5jRnVuY3Rpb246OlllcyA6IFJ1bkFzQXN5bmNGdW5jdGlvbjo6Tm8pCiAgICAgICAg
ICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJHZXN0
dXJlKGZvcmNlVXNlckdlc3R1cmUgPyBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgOiBGb3JjZVVzZXJH
ZXN0dXJlOjpObykKQEAgLTYyLDEzICs2NiwxNCBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMgewogICAgIH0KIAogICAgIFN0cmluZyBzb3VyY2U7CisgICAgVVJMIHNvdXJjZVVSTDsK
ICAgICBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1bmN0aW9uOwogICAgIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiBhcmd1bWVudHM7CiAgICAgRm9yY2VVc2VyR2VzdHVyZSBm
b3JjZVVzZXJHZXN0dXJlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c291cmNlIDw8IHJ1bkFzQXN5bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2Vz
dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBzb3VyY2UgPDwgc291cmNlVVJMIDw8IHJ1bkFzQXN5
bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2VzdHVyZTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzcsNiArODIsMTAgQEAg
c3RydWN0IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzb3VyY2UpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgICAg
ICBVUkwgc291cmNlVVJMOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZVVSTCkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgICAgIFJ1bkFzQXN5bmNG
dW5jdGlvbiBydW5Bc0FzeW5jRnVuY3Rpb247CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cnVuQXNBc3luY0Z1bmN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBA
IC04OSw3ICs5OCw3IEBAIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7CiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZm9yY2VVc2VyR2VzdHVyZSkpCiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3JpcHRQYXJhbWV0
ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBydW5Bc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1l
bnRzKSwgZm9yY2VVc2VyR2VzdHVyZSB9IH07CisgICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHJ1bkFz
QXN5bmNGdW5jdGlvbiwgV1RGTW92ZShhcmd1bWVudHMpLCBmb3JjZVVzZXJHZXN0dXJlIH0gfTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFlMjg4NWMwMzNiZTRhYzhkYzAyYzgxMjI0NzhhYzdjNzQzOTBjMGIu
LjRlYTYzNjdiZDZiOTZkMDExOWVmNWU5YzZlMTY1M2I4Mzc4YWI5MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01NzMsNyArNTcz
LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJZ25vcmlu
Z0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIHNjcmkKIAogSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24oRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxkLCBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxk
LCB7IHNjcmlwdCwgVVJMIHsgfSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9KTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0LnZhbHVlKCkgOiBKU0M6OkpTVmFsdWUg
eyB9OwogfQogCkBAIC01OTEsOSArNTkxLDExIEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwKICAg
ICBpZiAoIWNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBpc1BhdXNl
ZCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGV0YWlscyB7ICJD
YW5ub3QgZXhlY3V0ZSBKYXZhU2NyaXB0IGluIHRoaXMgZG9jdW1lbnQiX3MgfSk7CiAKKyAgICBV
Ukwgc291cmNlVVJMID0gcGFyYW1ldGVycy5zb3VyY2VVUkw7CisKICAgICBzd2l0Y2ggKHBhcmFt
ZXRlcnMucnVuQXNBc3luY0Z1bmN0aW9uKSB7CiAgICAgY2FzZSBSdW5Bc0FzeW5jRnVuY3Rpb246
Ok5vOiB7Ci0gICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShwYXJhbWV0ZXJzLnNv
dXJjZSwgVVJMKG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBUZXh0UG9zaXRpb24oKSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkpOworICAgICAgICBTY3JpcHRT
b3VyY2VDb2RlIHNvdXJjZUNvZGUocGFyYW1ldGVycy5zb3VyY2UsIFdURk1vdmUoc291cmNlVVJM
KSwgVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFt
LCBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0
KCkpKTsKICAgICAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCB3b3JsZCk7
CiAgICAgfQogICAgIGNhc2UgUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXM6CkBAIC02MzksMTYgKzY0
MSwxOCBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmNhbGxJbldvcmxkKFJ1
bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogCiAgICAgZnVuY3Rpb25TdHJpbmdCdWls
ZGVyLmFwcGVuZCgiKXsiLCBwYXJhbWV0ZXJzLnNvdXJjZSwgIn0pIik7CiAKLSAgICBhdXRvIHNv
dXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCksIFVSTChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpKSwgVGV4dFBvc2l0aW9uKCksIEpT
Qzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3JpcHRGZXRjaGVy
OjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH07CisgICAgVVJMIHNvdXJj
ZVVSTCA9IHBhcmFtZXRlcnMuc291cmNlVVJMOworICAgIFN0cmluZyBzb3VyY2VVUkxTdHJpbmcg
PSBzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3Vy
Y2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIFdURk1vdmUoc291cmNl
VVJMKSwgVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9n
cmFtLCBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFy
c2V0KCkpIH07CiAgICAgY29uc3QgYXV0byYganNTb3VyY2VDb2RlID0gc291cmNlQ29kZS5qc1Nv
dXJjZUNvZGUoKTsKIAotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlk
ZXIoKS0+dXJsKCkuc3RyaW5nKCk7CiAgICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9
IG1fc291cmNlVVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKKyAgICBtX3NvdXJj
ZVVSTCA9ICZzb3VyY2VVUkxTdHJpbmc7CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2Zy
YW1lKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0
KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5z
dGFydENvbHVtbigpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0
ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkxTdHJpbmcsIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCks
IHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlv
bj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBv
cHRpb25hbERldGFpbHM7CkBAIC02OTcsNyArNzAxLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENv
bnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24o
RE8KIH0KIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVVzZXJBZ2Vu
dFNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3Jp
cHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKIHsKLSAgICByZXR1cm4gZXhlY3V0ZVVzZXJBZ2Vu
dFNjcmlwdEluV29ybGRJbnRlcm5hbCh3b3JsZCwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxv
cHQsIGZvcmNlVXNlckdlc3R1cmUgfSk7CisgICAgcmV0dXJuIGV4ZWN1dGVVc2VyQWdlbnRTY3Jp
cHRJbldvcmxkSW50ZXJuYWwod29ybGQsIHsgc2NyaXB0LCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpu
dWxsb3B0LCBmb3JjZVVzZXJHZXN0dXJlIH0pOwogfQogCiBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlw
dENvbnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSW50ZXJuYWwoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYjY4ZTY0NmM3OGRh
Yjc4NzUzOGVmZTZiZmUzMTQzYjNkYTdjZGVjNC4uNDQ5YjcxZGYwMzhiNTAyNzM0NWRkMzEyZGMy
NzYxNTNlMGIwMGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CkBAIC0yNDk1LDcgKzI0OTUsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1Bh
Z2VSZWYgcGFnZSwgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpCiAKIHZvaWQgV0tQYWdl
UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBz
Y3JpcHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBjYWxs
YmFjaykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7
IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZSB9
LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiByZXR1cm5W
YWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4sIENhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpIHsKKyAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZSh7IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgVVJMIHsgfSwgZmFsc2UsIFdURjo6
bnVsbG9wdCwgdHJ1ZSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKiByZXR1cm5WYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4s
IENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgY2FsbGJhY2sodG9BUEkocmV0
dXJuVmFsdWUpLCAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgPyB0b0FQSShB
UEk6OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiAwLCBjb250ZXh0KTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCmlu
ZGV4IDhlMTBlZmZlYmU3NWFmMmU2ZWFiNWE3MTlhMzZmZGNjMTBjOGJmMWYuLmVkZjNiOTY5YzAw
NDlhYzdmODVhYzVkNWMwNzBhODI5ODZmZTJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbQpAQCAtMzYsNyArMzYsNyBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRp
bWU6KFdLVXNlclNjcmlwdEluagogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxB
UEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmluZyhz
b3VyY2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIHsgfSwgeyB9LCBB
UEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JN
YWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0
SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmpl
Y3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGlu
Zzo6Tm8gfSwgQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKSk7CisgICAgQVBJ
OjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNv
cmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVV
UkwoKSwgeyB9LCB7IH0sIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5q
ZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0
aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRX
b3JsZCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtODUsNyArODUsNyBAQCAtIChpbnN0
YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1l
OihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6
OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmluZyhzb3Vy
Y2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIG1ha2VWZWN0b3I8U3Ry
aW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0
KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwg
Zm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdv
cmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlw
dD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0Ojpn
ZW5lcmF0ZVVuaXF1ZVVSTCgpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwg
bWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNj
cmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJD
b3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdl
YkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJD
b3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KQEAgLTk1LDcgKzk1LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZToo
TlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6
T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3Jl
OjpVc2VyU2NyaXB0IHsgV1RGOjpTdHJpbmcoc291cmNlKSwgVVJMKGFzc29jaWF0ZWRVUkwpLCBt
YWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxl
Z2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5q
ZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0
aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3Js
ZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxB
UEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIGFzc29j
aWF0ZWRVUkwsIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9y
PFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJD
b250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRG
b3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5f
Y29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
MTExLDcgKzExMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5n
ICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6
Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNj
cmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlx
dWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8
U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rp
b25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2Vy
Q29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZv
ck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRXb3JsZC0+X2NvbnRl
bnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJT
Y3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlw
dDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlz
dCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8g
V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkg
OiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywg
V2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTEyMSw3
ICsxMjEsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNv
dXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0
cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQg
eyBXVEY6OlN0cmluZyhzb3VyY2UpLCBVUkwoYXNzb2NpYXRlZFVSTCksIG1ha2VWZWN0b3I8U3Ry
aW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0
KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwg
Zm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOworICAgIEFQSTo6T2Jq
ZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpV
c2VyU2NyaXB0IHsgc291cmNlLCBhc3NvY2lhdGVkVVJMLCBtYWtlVmVjdG9yPFN0cmluZz4obGVn
YWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6
dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5G
cmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRv
cEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdElu
QWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpO
byB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwog
fQpAQCAtMTMxLDcgKzEzMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9i
amVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6
VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIFVSTChhc3NvY2lhdGVkVVJMKSwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdh
Y3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVj
dGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpZZXMgOiBX
ZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVu
dFdvcmxkLT5fY29udGVudFdvcmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFw
cGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwg
YXNzb2NpYXRlZFVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VW
ZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5u
aW5nVW50aWxOb3RpZmljYXRpb24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3Jl
SW5qZWN0aW5nOjpZZXMgOiBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0
aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggZTY2NGI2NTFkNTRkNDE0MWQ0MDA1ZDFhYzdjNGI3MjVlNWMwMGI4MC4uNjBiYzY1
ZmQzNzU0MDYyYmYzNGQzMzI1OWNiZTA0OWNlOGFjZmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04MTYsMTcgKzgxNiwxNyBAQCBz
dGF0aWMgV0tFcnJvckNvZGUgY2FsbGJhY2tFcnJvckNvZGUoV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yIGVycm9yKQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilq
YXZhU2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2
YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VV
c2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29y
bGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFs
dWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNv
dXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFt
ZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6
Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNT
dHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAq
KWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikp
Y29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFT
Y3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNl
ckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25I
YW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0
OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhTb3VyY2VVUkw6bmlsIHdp
dGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAog
LSAodm9pZCljYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcg
YXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGluQ29u
dGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlcgogewotICAg
IFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rp
b246WUVTIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJh
bWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25I
YW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcg
YXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRoQXJndW1lbnRzOmFyZ3Vt
ZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOm5pbCBpbldvcmxkOmNvbnRlbnRXb3Js
ZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIHN0YXRpYyBib29s
IHZhbGlkYXRlQXJndW1lbnQoaWQgYXJndW1lbnQpCkBAIC04NjMsNyArODYzLDcgQEAgc3RhdGlj
IGJvb2wgdmFsaWRhdGVBcmd1bWVudChpZCBhcmd1bWVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLS0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3Ry
aW5nIGFzQXN5bmNGdW5jdGlvbjooQk9PTClhc0FzeW5jRnVuY3Rpb24gd2l0aEFyZ3VtZW50czoo
TlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJl
OihCT09MKWZvcmNlVXNlckdlc3R1cmUgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbldv
cmxkOihXS0NvbnRlbnRXb3JsZCAqKXdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShp
ZCwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClfZXZhbHVhdGVKYXZhU2Ny
aXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOihCT09MKWFz
QXN5bmNGdW5jdGlvbiB3aXRoU291cmNlVVJMOihOU1VSTCAqKXVybCB3aXRoQXJndW1lbnRzOihO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6
KEJPT0wpZm9yY2VVc2VyR2VzdHVyZSBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluV29y
bGQ6KFdLQ29udGVudFdvcmxkICopd29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlk
LCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgYXV0byBoYW5kbGVyID0gYWRv
cHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pOwogCkBAIC05MDQsNyArOTA0LDExIEBAIC0g
KHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGFz
QXN5bmNGdW5jdGlvbjooQk9PTClhCiAgICAgICAgICAgICBmcmFtZUlEID0gbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllcik7CiAgICAg
fQogCi0gICAgX3BhZ2UtPnJ1bkphdmFTY3JpcHRJbkZyYW1lSW5TY3JpcHRXb3JsZChXZWJDb3Jl
OjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7IGphdmFTY3JpcHRTdHJpbmcsICEhYXNBc3luY0Z1
bmN0aW9uLCBXVEZNb3ZlKGFyZ3VtZW50c01hcCksICEhZm9yY2VVc2VyR2VzdHVyZSB9LCBmcmFt
ZUlELCAqd29ybGQtPl9jb250ZW50V29ybGQuZ2V0KCksIFtoYW5kbGVyXShBUEk6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBPcHRpb25hbDxXZWJDb3JlOjpF
eGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OlNjcmlwdFZhbHVlQ2FsbGJhY2s6OkVy
cm9yIGVycm9yQ29kZSkgeworICAgIFVSTCBzb3VyY2VVUkwgPSB1cmw7CisgICAgaWYgKCFzb3Vy
Y2VVUkwuaXNWYWxpZCgpKQorICAgICAgICBzb3VyY2VVUkwgPSBBUEk6OlVzZXJTY3JpcHQ6Omdl
bmVyYXRlVW5pcXVlVVJMKCk7CisKKyAgICBfcGFnZS0+cnVuSmF2YVNjcmlwdEluRnJhbWVJblNj
cmlwdFdvcmxkKHsgamF2YVNjcmlwdFN0cmluZywgc291cmNlVVJMLCAhIWFzQXN5bmNGdW5jdGlv
biwgV1RGTW92ZShhcmd1bWVudHNNYXApLCAhIWZvcmNlVXNlckdlc3R1cmUgfSwgZnJhbWVJRCwg
KndvcmxkLT5fY29udGVudFdvcmxkLmdldCgpLCBbaGFuZGxlcl0oQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0
aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBl
cnJvckNvZGUpIHsKICAgICAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0yMjAwLDE3ICsyMjA0LDIyIEBAIC0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9pZCheKShC
T09MKSljb21wbGV0aW9uSGFuZGxlcgogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHRXaXRo
b3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBb
c2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9u
Ok5PIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6Tk8gaW5GcmFtZTpuaWwgaW5X
b3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlv
bkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmlu
ZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwg
Zm9yY2VVc2VyR2VzdHVyZTpOTyBpbkZyYW1lOm5pbCBpbldvcmxkOldLQ29udGVudFdvcmxkLnBh
Z2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZv
aWQpX2NhbGxBc3luY0phdmFTY3JpcHQ6KE5TU3RyaW5nICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50
czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBpbkZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRX
b3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21w
bGV0aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6ZnVuY3Rpb25C
b2R5IGFzQXN5bmNGdW5jdGlvbjpZRVMgd2l0aEFyZ3VtZW50czphcmd1bWVudHMgZm9yY2VVc2Vy
R2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9u
SGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlw
dDpmdW5jdGlvbkJvZHkgYXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRo
QXJndW1lbnRzOmFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGlu
V29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsK
IH0KIAogLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRT
dHJpbmcgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250
ZW50V29ybGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBO
U0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVK
YXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVu
dHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50
V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9l
dmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0
aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5G
cmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0
aW9uSGFuZGxlcl07Cit9CisKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcg
KilqYXZhU2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopdXJsIGluRnJhbWU6KFdL
RnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqZXJyb3IpKWNv
bXBsZXRpb25IYW5kbGVyCit7CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2Ny
aXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoU291cmNlVVJMOnVybCB3aXRoQXJndW1l
bnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6Y29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAodm9p
ZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9s
aWNpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDQ1Mzk1MDZkMDM5MThkNjE0ZmI2ZmU2Njg0M2Q3YWFmMDdjZDE1
MjQuLmVlYjIzODkzNGMyYjcxNWY3N2ZmYzJhMzZjZTY1ZmExMDdmM2UyZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtMjExLDYgKzIxMSw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9ldmFsdWF0
ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmlu
ZyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lk
KV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1l
OihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNv
bnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJv
cikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcg
KilqYXZhU2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIGluRnJh
bWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICop
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqIGVy
cm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJp
bmcgKilmdW5jdGlvbkJvZHkgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+
ICopYXJndW1lbnRzIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6
KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldExheW91dE1vZGU6KSBfV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399388</attachid>
            <date>2020-05-14 11:49:46 -0700</date>
            <delta_ts>2020-05-14 12:27:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211904-20200514114945.patch</filename>
            <type>text/plain</type>
            <size>30797</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4NjBiNjQ4NTk3YTcx
Y2Y4YWU5MzMwYjY3YWJhMWViMzc0ZGI2Mi4uNWJkYjc3ODkyNWI4OGZlZGY3OTdmNzRhOTk5MjE4
ZjkxMTQzMzE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc291cmNlVVJM
IHRvIF9ldmFsdWF0ZUphdmFTY3JpcHQ6IHNvIHRoZSBzY3JpcHRzIGFwcGVhciBpbiBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExOTA0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzYyMDc0Mzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgc291cmNlVVJMIHRvIFJ1bkph
dmFTY3JpcHRQYXJhbWV0ZXJzLiBVc2UgaXQgaW5zdGVhZCBvZiB0aGUgZnJhbWUncyBkb2N1bWVu
dCBVUkwuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SdW5KYXZhU2NyaXB0UGFyYW1ldGVycy5o
OgorICAgICAgICAoV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnM6OlJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0SW5Xb3Js
ZElnbm9yaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6
OmV4ZWN1dGVTY3JpcHRJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4
ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkKToKKwogMjAyMC0wNS0wNiAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vdy11bm5lZWRlZCBVU0UoR1JB
TU1BUl9DSEVDS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzFlZDQ0OGU0ZjAzNzMzNzRkY2VmYWMwYWFmNGRh
MmE5MzMyNWJhYy4uOGRjOWNmMWRjMWYyZWFiMzRhOTkzZmM3MzMwYjBlYjVkMjAwODYzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0wNS0xNCAgVGltb3RoeSBIYXRjaGVyICA8dGlt
b3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNvdXJjZVVSTCB0byBfZXZhbHVhdGVKYXZh
U2NyaXB0OiBzbyB0aGUgc2NyaXB0cyBhcHBlYXIgaW4gV2ViIEluc3BlY3Rvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTkwNAorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS82MjA3NDM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHNvdXJjZVVSTCB2ZXJzaW9uIG9mIF9ldmFsdWF0ZUphdmFT
Y3JpcHQ6IHRoYXQgcGFzc2VzIHRoZSBzb3VyY2VVUkwgdG8gUnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnMuCisgICAgICAgIElmIHRoZSBzb3VyY2VVUkwgaXMgaW52YWxpZCwgZ2VuZXJhdGUgYSB1bmlx
dWUgdXNlciBzY3JpcHQgVVJMIHNvIHRoZSBzb3VyY2UgY29kZSBlcnJvcnMgYXJlIG5vdCBzaG93
aW5nCisgICAgICAgIHVwIHdpdGggdGhlIGZyYW1lJ3MgZG9jdW1lbnQgVVJMIGFuZCBib2d1cyBs
b2NhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAg
ICAgKFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSk6IHBhc3MgQVBJOjpVc2VyU2NyaXB0
OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpIGZvciB0aGUgc291cmNlVVJMLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tOgorICAgICAgICAoLVtXS1VzZXJTY3JpcHQg
aW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5Ol0pOiBDbGVhbiB1
cCBXZWJDb3JlOjpVc2VyU2NyaXB0IGluaXRpYWxpemVyLgorICAgICAgICAoLVtXS1VzZXJTY3Jp
cHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFpbkZyYW1lT25seTpsZWdhY3lX
aGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OnVzZXJDb250ZW50V29ybGQ6XSk6IERpdHRvLgorICAg
ICAgICAoLVtXS1VzZXJTY3JpcHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFp
bkZyYW1lT25seTpsZWdhY3lXaGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OmFzc29jaWF0ZWRVUkw6
dXNlckNvbnRlbnRXb3JsZDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBfaW5p
dFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRlbGlz
dDpsZWdhY3lCbGFja2xpc3Q6Y29udGVudFdvcmxkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tV
c2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6
bGVnYWN5V2hpdGVsaXN0OmxlZ2FjeUJsYWNrbGlzdDphc3NvY2lhdGVkVVJMOmNvbnRlbnRXb3Js
ZDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBfaW5pdFdpdGhTb3VyY2U6aW5q
ZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRlbGlzdDpsZWdhY3lCbGFja2xp
c3Q6YXNzb2NpYXRlZFVSTDpjb250ZW50V29ybGQ6ZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b246XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdDphc0FzeW5jRnVuY3Rp
b246d2l0aEFyZ3VtZW50czpmb3JjZVVzZXJHZXN0dXJlOmluRnJhbWU6aW5Xb3JsZDpjb21wbGV0
aW9uSGFuZGxlcjpdKTogUmVuYW1lZCB0byBhZGQgc291cmNlVVJMLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdDphc0FzeW5jRnVuY3Rpb246d2l0aFNvdXJjZVVSTDp3
aXRoQXJndW1lbnRzOmZvcmNlVXNlckdlc3R1cmU6aW5GcmFtZTppbldvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBBZGRlZCBzb3VyY2VVUkwuCisgICAgICAgICgtW1dLV2ViVmlldyBfZXZhbHVh
dGVKYXZhU2NyaXB0OndpdGhTb3VyY2VVUkw6aW5GcmFtZTppbkNvbnRlbnRXb3JsZDpjb21wbGV0
aW9uSGFuZGxlcjpdKTogQWRkZWQuIFBhc3Mgc291cmNlVVJMIHRocm91Z2guCisgICAgICAgICgt
W1dLV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwg
bmV3IG1ldGhvZCB3aXRoIHNvdXJjZVVSTCBhcyBuaWwuCisgICAgICAgICgtW1dLV2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERp
dHRvLgorICAgICAgICAoLVtXS1dlYlZpZXcgY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6
aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERpdHRvLgorICAgICAgICAoLVtX
S1dlYlZpZXcgX2NhbGxBc3luY0phdmFTY3JpcHQ6YXJndW1lbnRzOmluRnJhbWU6aW5Db250ZW50
V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2V2YWx1YXRlSmF2YVNjcmlwdDppbkZyYW1lOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5k
bGVyOl0pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKwogMjAyMC0wNS0wNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRWxpbWluYXRlIGNoZWNrcyBvZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykg
aW4gQ29jb2Etc3BlY2lmaWMgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1J1bkphdmFTY3JpcHRQYXJhbWV0ZXJzLmgKaW5kZXggNDdhM2ZmYjA1Mzc3NWNhMTRhM2Nh
OGYxODliNGQ3NmZhODE3ZTdiYS4uMWY0ZTI3NDlmNzczYjE0MjdkNmQwMTdjODlmNDFkNTdkOWVk
M2M4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SdW5KYXZhU2Ny
aXB0UGFyYW1ldGVycy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzcsMjQgKzM4
LDI3IEBAIGVudW0gY2xhc3MgRm9yY2VVc2VyR2VzdHVyZSA6IGJvb2wgeyBObywgWWVzIH07CiB1
c2luZyBBcmd1bWVudFdpcmVCeXRlc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8dWludDhf
dD4+OwogCiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgewotICAgIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1bkFzQXN5
bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1lbnRzLCBG
b3JjZVVzZXJHZXN0dXJlIGZvcmNlVXNlckdlc3R1cmUpCisgICAgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMoU3RyaW5nJiYgc291cmNlLCBVUkwmJiBzb3VyY2VVUkwsIFJ1bkFzQXN5bmNGdW5jdGlv
biBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFy
Z3VtZW50cywgRm9yY2VVc2VyR2VzdHVyZSBmb3JjZVVzZXJHZXN0dXJlKQogICAgICAgICA6IHNv
dXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUoc291cmNl
VVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0aW9uKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlKQogICAgIHsKICAgICB9CiAKLSAgICBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVu
Y3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlKQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBjb25zdCBVUkwmIHNvdXJjZVVSTCwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24s
IE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlKQogICAgICAgICA6IHNvdXJjZShzb3VyY2UpCisgICAgICAgICwgc291cmNlVVJM
KHNvdXJjZVVSTCkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0
aW9uID8gUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXMgOiBSdW5Bc0FzeW5jRnVuY3Rpb246Ok5vKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlID8gRm9yY2VVc2VyR2VzdHVyZTo6WWVzIDogRm9y
Y2VVc2VyR2VzdHVyZTo6Tm8pCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3JpcHRQYXJh
bWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgVVJMJiYgc291
cmNlVVJMLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0
ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291
cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VV
UkwpKQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24gPyBS
dW5Bc0FzeW5jRnVuY3Rpb246OlllcyA6IFJ1bkFzQXN5bmNGdW5jdGlvbjo6Tm8pCiAgICAgICAg
ICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJHZXN0
dXJlKGZvcmNlVXNlckdlc3R1cmUgPyBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgOiBGb3JjZVVzZXJH
ZXN0dXJlOjpObykKQEAgLTYyLDEzICs2NiwxNCBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMgewogICAgIH0KIAogICAgIFN0cmluZyBzb3VyY2U7CisgICAgVVJMIHNvdXJjZVVSTDsK
ICAgICBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1bmN0aW9uOwogICAgIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiBhcmd1bWVudHM7CiAgICAgRm9yY2VVc2VyR2VzdHVyZSBm
b3JjZVVzZXJHZXN0dXJlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c291cmNlIDw8IHJ1bkFzQXN5bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2Vz
dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBzb3VyY2UgPDwgc291cmNlVVJMIDw8IHJ1bkFzQXN5
bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2VzdHVyZTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzcsNiArODIsMTAgQEAg
c3RydWN0IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzb3VyY2UpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgICAg
ICBVUkwgc291cmNlVVJMOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZVVSTCkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgICAgIFJ1bkFzQXN5bmNG
dW5jdGlvbiBydW5Bc0FzeW5jRnVuY3Rpb247CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cnVuQXNBc3luY0Z1bmN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBA
IC04OSw3ICs5OCw3IEBAIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7CiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZm9yY2VVc2VyR2VzdHVyZSkpCiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3JpcHRQYXJhbWV0
ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBydW5Bc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1l
bnRzKSwgZm9yY2VVc2VyR2VzdHVyZSB9IH07CisgICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHJ1bkFz
QXN5bmNGdW5jdGlvbiwgV1RGTW92ZShhcmd1bWVudHMpLCBmb3JjZVVzZXJHZXN0dXJlIH0gfTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFlMjg4NWMwMzNiZTRhYzhkYzAyYzgxMjI0NzhhYzdjNzQzOTBjMGIu
LjRlYTYzNjdiZDZiOTZkMDExOWVmNWU5YzZlMTY1M2I4Mzc4YWI5MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01NzMsNyArNTcz
LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJZ25vcmlu
Z0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIHNjcmkKIAogSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24oRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxkLCBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxk
LCB7IHNjcmlwdCwgVVJMIHsgfSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9KTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0LnZhbHVlKCkgOiBKU0M6OkpTVmFsdWUg
eyB9OwogfQogCkBAIC01OTEsOSArNTkxLDExIEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwKICAg
ICBpZiAoIWNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSB8fCBpc1BhdXNl
ZCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGV0YWlscyB7ICJD
YW5ub3QgZXhlY3V0ZSBKYXZhU2NyaXB0IGluIHRoaXMgZG9jdW1lbnQiX3MgfSk7CiAKKyAgICBV
Ukwgc291cmNlVVJMID0gcGFyYW1ldGVycy5zb3VyY2VVUkw7CisKICAgICBzd2l0Y2ggKHBhcmFt
ZXRlcnMucnVuQXNBc3luY0Z1bmN0aW9uKSB7CiAgICAgY2FzZSBSdW5Bc0FzeW5jRnVuY3Rpb246
Ok5vOiB7Ci0gICAgICAgIFNjcmlwdFNvdXJjZUNvZGUgc291cmNlQ29kZShwYXJhbWV0ZXJzLnNv
dXJjZSwgVVJMKG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBUZXh0UG9zaXRpb24oKSwgSlND
OjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hlZFNjcmlwdEZldGNoZXI6
OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkpOworICAgICAgICBTY3JpcHRT
b3VyY2VDb2RlIHNvdXJjZUNvZGUocGFyYW1ldGVycy5zb3VyY2UsIFdURk1vdmUoc291cmNlVVJM
KSwgVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFt
LCBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0
KCkpKTsKICAgICAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCB3b3JsZCk7
CiAgICAgfQogICAgIGNhc2UgUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXM6CkBAIC02MzksMTYgKzY0
MSwxOCBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmNhbGxJbldvcmxkKFJ1
bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogCiAgICAgZnVuY3Rpb25TdHJpbmdCdWls
ZGVyLmFwcGVuZCgiKXsiLCBwYXJhbWV0ZXJzLnNvdXJjZSwgIn0pIik7CiAKLSAgICBhdXRvIHNv
dXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCksIFVSTChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpKSwgVGV4dFBvc2l0aW9uKCksIEpT
Qzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3JpcHRGZXRjaGVy
OjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH07CisgICAgVVJMIHNvdXJj
ZVVSTCA9IHBhcmFtZXRlcnMuc291cmNlVVJMOworICAgIFN0cmluZyBzb3VyY2VVUkxTdHJpbmcg
PSBzb3VyY2VVUkwuc3RyaW5nKCk7CisKKyAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3Vy
Y2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIFdURk1vdmUoc291cmNl
VVJMKSwgVGV4dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9n
cmFtLCBDYWNoZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFy
c2V0KCkpIH07CiAgICAgY29uc3QgYXV0byYganNTb3VyY2VDb2RlID0gc291cmNlQ29kZS5qc1Nv
dXJjZUNvZGUoKTsKIAotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlk
ZXIoKS0+dXJsKCkuc3RyaW5nKCk7CiAgICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJjZVVSTCA9
IG1fc291cmNlVVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKKyAgICBtX3NvdXJj
ZVVSTCA9ICZzb3VyY2VVUkxTdHJpbmc7CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2Zy
YW1lKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlU2NyaXB0
KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNlQ29kZS5z
dGFydENvbHVtbigpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0
ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkxTdHJpbmcsIHNvdXJjZUNvZGUuc3RhcnRMaW5lKCks
IHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlv
bj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBv
cHRpb25hbERldGFpbHM7CkBAIC02OTcsNyArNzAxLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENv
bnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24o
RE8KIH0KIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVVzZXJBZ2Vu
dFNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3Jp
cHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKIHsKLSAgICByZXR1cm4gZXhlY3V0ZVVzZXJBZ2Vu
dFNjcmlwdEluV29ybGRJbnRlcm5hbCh3b3JsZCwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxv
cHQsIGZvcmNlVXNlckdlc3R1cmUgfSk7CisgICAgcmV0dXJuIGV4ZWN1dGVVc2VyQWdlbnRTY3Jp
cHRJbldvcmxkSW50ZXJuYWwod29ybGQsIHsgc2NyaXB0LCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpu
dWxsb3B0LCBmb3JjZVVzZXJHZXN0dXJlIH0pOwogfQogCiBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlw
dENvbnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSW50ZXJuYWwoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYjY4ZTY0NmM3OGRh
Yjc4NzUzOGVmZTZiZmUzMTQzYjNkYTdjZGVjNC4uNDQ5YjcxZGYwMzhiNTAyNzM0NWRkMzEyZGMy
NzYxNTNlMGIwMGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CkBAIC0yNDk1LDcgKzI0OTUsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1Bh
Z2VSZWYgcGFnZSwgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpCiAKIHZvaWQgV0tQYWdl
UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBz
Y3JpcHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBjYWxs
YmFjaykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7
IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZSB9
LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiByZXR1cm5W
YWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4sIENhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpIHsKKyAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZSh7IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgVVJMIHsgfSwgZmFsc2UsIFdURjo6
bnVsbG9wdCwgdHJ1ZSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKiByZXR1cm5WYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4s
IENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgY2FsbGJhY2sodG9BUEkocmV0
dXJuVmFsdWUpLCAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgPyB0b0FQSShB
UEk6OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiAwLCBjb250ZXh0KTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCmlu
ZGV4IDhlMTBlZmZlYmU3NWFmMmU2ZWFiNWE3MTlhMzZmZGNjMTBjOGJmMWYuLmVkZjNiOTY5YzAw
NDlhYzdmODVhYzVkNWMwNzBhODI5ODZmZTJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbQpAQCAtMzYsNyArMzYsNyBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRp
bWU6KFdLVXNlclNjcmlwdEluagogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxB
UEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmluZyhz
b3VyY2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIHsgfSwgeyB9LCBB
UEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JN
YWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0
SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmpl
Y3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGlu
Zzo6Tm8gfSwgQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKSk7CisgICAgQVBJ
OjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNv
cmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVV
UkwoKSwgeyB9LCB7IH0sIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5q
ZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0
aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRX
b3JsZCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtODUsNyArODUsNyBAQCAtIChpbnN0
YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1l
OihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6
OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmluZyhzb3Vy
Y2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIG1ha2VWZWN0b3I8U3Ry
aW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0
KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwg
Zm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdv
cmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlw
dD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0Ojpn
ZW5lcmF0ZVVuaXF1ZVVSTCgpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwg
bWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNj
cmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJD
b3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdl
YkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJD
b3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KQEAgLTk1LDcgKzk1LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZToo
TlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6
T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3Jl
OjpVc2VyU2NyaXB0IHsgV1RGOjpTdHJpbmcoc291cmNlKSwgVVJMKGFzc29jaWF0ZWRVUkwpLCBt
YWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxl
Z2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5q
ZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0
aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3Js
ZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxB
UEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIGFzc29j
aWF0ZWRVUkwsIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9y
PFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJD
b250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRG
b3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5f
Y29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAt
MTExLDcgKzExMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5n
ICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6
Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNj
cmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlx
dWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8
U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rp
b25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2Vy
Q29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZv
ck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRXb3JsZC0+X2NvbnRl
bnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJT
Y3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlw
dDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlz
dCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8g
V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkg
OiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywg
V2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTEyMSw3
ICsxMjEsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNv
dXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0
cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQg
eyBXVEY6OlN0cmluZyhzb3VyY2UpLCBVUkwoYXNzb2NpYXRlZFVSTCksIG1ha2VWZWN0b3I8U3Ry
aW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0
KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwg
Zm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOworICAgIEFQSTo6T2Jq
ZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpV
c2VyU2NyaXB0IHsgc291cmNlLCBhc3NvY2lhdGVkVVJMLCBtYWtlVmVjdG9yPFN0cmluZz4obGVn
YWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6
dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5G
cmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRv
cEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdElu
QWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpO
byB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwog
fQpAQCAtMTMxLDcgKzEzMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9i
amVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6
VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIFVSTChhc3NvY2lhdGVkVVJMKSwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdh
Y3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVj
dGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpZZXMgOiBX
ZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVu
dFdvcmxkLT5fY29udGVudFdvcmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFw
cGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwg
YXNzb2NpYXRlZFVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VW
ZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5u
aW5nVW50aWxOb3RpZmljYXRpb24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3Jl
SW5qZWN0aW5nOjpZZXMgOiBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0
aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggZTY2NGI2NTFkNTRkNDE0MWQ0MDA1ZDFhYzdjNGI3MjVlNWMwMGI4MC4uNjBiYzY1
ZmQzNzU0MDYyYmYzNGQzMzI1OWNiZTA0OWNlOGFjZmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04MTYsMTcgKzgxNiwxNyBAQCBz
dGF0aWMgV0tFcnJvckNvZGUgY2FsbGJhY2tFcnJvckNvZGUoV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yIGVycm9yKQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilq
YXZhU2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAq
KSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2
YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VV
c2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29y
bGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFs
dWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNv
dXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFt
ZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6
Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNT
dHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAq
KWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikp
Y29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFT
Y3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNl
ckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25I
YW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0
OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhTb3VyY2VVUkw6bmlsIHdp
dGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAog
LSAodm9pZCljYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcg
YXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGluQ29u
dGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlcgogewotICAg
IFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rp
b246WUVTIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJh
bWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25I
YW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcg
YXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRoQXJndW1lbnRzOmFyZ3Vt
ZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOm5pbCBpbldvcmxkOmNvbnRlbnRXb3Js
ZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIHN0YXRpYyBib29s
IHZhbGlkYXRlQXJndW1lbnQoaWQgYXJndW1lbnQpCkBAIC04NjMsNyArODYzLDcgQEAgc3RhdGlj
IGJvb2wgdmFsaWRhdGVBcmd1bWVudChpZCBhcmd1bWVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLS0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3Ry
aW5nIGFzQXN5bmNGdW5jdGlvbjooQk9PTClhc0FzeW5jRnVuY3Rpb24gd2l0aEFyZ3VtZW50czoo
TlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJl
OihCT09MKWZvcmNlVXNlckdlc3R1cmUgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbldv
cmxkOihXS0NvbnRlbnRXb3JsZCAqKXdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShp
ZCwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClfZXZhbHVhdGVKYXZhU2Ny
aXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOihCT09MKWFz
QXN5bmNGdW5jdGlvbiB3aXRoU291cmNlVVJMOihOU1VSTCAqKXVybCB3aXRoQXJndW1lbnRzOihO
U0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6
KEJPT0wpZm9yY2VVc2VyR2VzdHVyZSBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluV29y
bGQ6KFdLQ29udGVudFdvcmxkICopd29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlk
LCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgYXV0byBoYW5kbGVyID0gYWRv
cHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pOwogCkBAIC05MDQsNyArOTA0LDExIEBAIC0g
KHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGFz
QXN5bmNGdW5jdGlvbjooQk9PTClhCiAgICAgICAgICAgICBmcmFtZUlEID0gbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllcik7CiAgICAg
fQogCi0gICAgX3BhZ2UtPnJ1bkphdmFTY3JpcHRJbkZyYW1lSW5TY3JpcHRXb3JsZChXZWJDb3Jl
OjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7IGphdmFTY3JpcHRTdHJpbmcsICEhYXNBc3luY0Z1
bmN0aW9uLCBXVEZNb3ZlKGFyZ3VtZW50c01hcCksICEhZm9yY2VVc2VyR2VzdHVyZSB9LCBmcmFt
ZUlELCAqd29ybGQtPl9jb250ZW50V29ybGQuZ2V0KCksIFtoYW5kbGVyXShBUEk6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBPcHRpb25hbDxXZWJDb3JlOjpF
eGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OlNjcmlwdFZhbHVlQ2FsbGJhY2s6OkVy
cm9yIGVycm9yQ29kZSkgeworICAgIFVSTCBzb3VyY2VVUkwgPSB1cmw7CisgICAgaWYgKCFzb3Vy
Y2VVUkwuaXNWYWxpZCgpKQorICAgICAgICBzb3VyY2VVUkwgPSBBUEk6OlVzZXJTY3JpcHQ6Omdl
bmVyYXRlVW5pcXVlVVJMKCk7CisKKyAgICBfcGFnZS0+cnVuSmF2YVNjcmlwdEluRnJhbWVJblNj
cmlwdFdvcmxkKHsgamF2YVNjcmlwdFN0cmluZywgc291cmNlVVJMLCAhIWFzQXN5bmNGdW5jdGlv
biwgV1RGTW92ZShhcmd1bWVudHNNYXApLCAhIWZvcmNlVXNlckdlc3R1cmUgfSwgZnJhbWVJRCwg
KndvcmxkLT5fY29udGVudFdvcmxkLmdldCgpLCBbaGFuZGxlcl0oQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0
aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBl
cnJvckNvZGUpIHsKICAgICAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0yMjAwLDE3ICsyMjA0LDIyIEBAIC0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9pZCheKShC
T09MKSljb21wbGV0aW9uSGFuZGxlcgogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHRXaXRo
b3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBb
c2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9u
Ok5PIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6Tk8gaW5GcmFtZTpuaWwgaW5X
b3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlv
bkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmlu
ZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwg
Zm9yY2VVc2VyR2VzdHVyZTpOTyBpbkZyYW1lOm5pbCBpbldvcmxkOldLQ29udGVudFdvcmxkLnBh
Z2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZv
aWQpX2NhbGxBc3luY0phdmFTY3JpcHQ6KE5TU3RyaW5nICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50
czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBpbkZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRX
b3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21w
bGV0aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6ZnVuY3Rpb25C
b2R5IGFzQXN5bmNGdW5jdGlvbjpZRVMgd2l0aEFyZ3VtZW50czphcmd1bWVudHMgZm9yY2VVc2Vy
R2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9u
SGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlw
dDpmdW5jdGlvbkJvZHkgYXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRo
QXJndW1lbnRzOmFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGlu
V29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsK
IH0KIAogLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRT
dHJpbmcgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250
ZW50V29ybGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBO
U0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVK
YXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVu
dHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50
V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9l
dmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0
aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5G
cmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0
aW9uSGFuZGxlcl07Cit9CisKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcg
KilqYXZhU2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopdXJsIGluRnJhbWU6KFdL
RnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqZXJyb3IpKWNv
bXBsZXRpb25IYW5kbGVyCit7CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2Ny
aXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoU291cmNlVVJMOnVybCB3aXRoQXJndW1l
bnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6Y29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAodm9p
ZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9s
aWNpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDQ1Mzk1MDZkMDM5MThkNjE0ZmI2ZmU2Njg0M2Q3YWFmMDdjZDE1
MjQuLmVlYjIzODkzNGMyYjcxNWY3N2ZmYzJhMzZjZTY1ZmExMDdmM2UyZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtMjExLDYgKzIxMSw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9ldmFsdWF0
ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmlu
ZyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lk
KV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1l
OihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNv
bnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJv
cikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcg
KilqYXZhU2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIGluRnJh
bWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICop
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqIGVy
cm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJp
bmcgKilmdW5jdGlvbkJvZHkgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+
ICopYXJndW1lbnRzIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6
KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldExheW91dE1vZGU6KSBfV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNw
cAppbmRleCA4YzU0YjQyM2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li43NzZjZWEz
YTJhYTY5NGUyYzQ1Yjc1MzQ4ZmM5Zjk2MTg0NDViYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzY4Myw3ICszNjgz
LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcnVuX2phdmFzY3JpcHQoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgY29uc3QgZ2NoYXIqIHNjcmlwdCwKICAgICBnX3JldHVybl9pZl9mYWlsKHNjcmlw
dCk7CiAKICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcod2Vi
VmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIGdldFBhZ2Uod2Vi
VmlldykucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQp
LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oQVBJ
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8
RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7
CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6
OmZyb21VVEY4KHNjcmlwdCksIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIHRydWUgfSwg
W3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFs
aXplZFNjcmlwdFZhbHVlLCBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJL
aXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAgICAgRXhjZXB0aW9uRGV0YWlscyBleGNl
cHRpb25EZXRhaWxzOwogICAgICAgICBpZiAoZGV0YWlscykKICAgICAgICAgICAgIGV4Y2VwdGlv
bkRldGFpbHMgPSAqZGV0YWlsczsKQEAgLTM4MjcsNyArMzgyNyw3IEBAIHN0YXRpYyB2b2lkIHJl
c291cmNlc1N0cmVhbVJlYWRDYWxsYmFjayhHT2JqZWN0KiBvYmplY3QsIEdBc3luY1Jlc3VsdCog
cmVzdWx0LCBnCiAKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVX
KGdfdGFza19nZXRfc291cmNlX29iamVjdCh0YXNrLmdldCgpKSk7CiAgICAgZ3BvaW50ZXIgb3V0
cHV0U3RyZWFtRGF0YSA9IGdfbWVtb3J5X291dHB1dF9zdHJlYW1fZ2V0X2RhdGEoR19NRU1PUllf
T1VUUFVUX1NUUkVBTShvYmplY3QpKTsKLSAgICBnZXRQYWdlKHdlYlZpZXcpLnJ1bkphdmFTY3Jp
cHRJbk1haW5GcmFtZSh7IFN0cmluZzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjb25zdCBn
Y2hhcio+KG91dHB1dFN0cmVhbURhdGEpKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZX0sCisg
ICAgZ2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6OmZy
b21VVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ2NoYXIqPihvdXRwdXRTdHJlYW1EYXRhKSks
IFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIHRydWV9LAogICAgICAgICBbdGFza10oQVBJ
OjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8
RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7
CiAgICAgICAgICAgICBFeGNlcHRpb25EZXRhaWxzIGV4Y2VwdGlvbkRldGFpbHM7CiAgICAgICAg
ICAgICBpZiAoZGV0YWlscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmNwcAppbmRleCBmM2YyOGE0N2UzZGFiZGExYTJjMjgzZTNlZmQ0MGEyMjllNjA1
OGVjLi5jNzE5MGUyOGE3YTJmZTY2NDc0NTJjY2YyMDkxNDQzYjYzYTVmMTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29ja2V0L1JlbW90ZUluc3BlY3Rv
clByb3RvY29sSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwCkBAIC0xMTgsNyAr
MTE4LDcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6Omluc3BlY3QoY29u
c3QgU3RyaW5nJiBob3N0QW5kUG9ydCwgQ29ubmVjdGkKIAogdm9pZCBSZW1vdGVJbnNwZWN0b3JQ
cm90b2NvbEhhbmRsZXI6OnJ1blNjcmlwdChjb25zdCBTdHJpbmcmIHNjcmlwdCkKIHsKLSAgICBt
X3BhZ2UucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgc2NyaXB0LCBmYWxzZSwgV1RGOjpudWxs
b3B0LCBmYWxzZSB9LCAKKyAgICBtX3BhZ2UucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgc2Ny
aXB0LCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxsb3B0LCBmYWxzZSB9LCAKICAgICAgICAgW10o
QVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25E
ZXRhaWxzPiBleGNlcHRpb25EZXRhaWxzLCBDYWxsYmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAg
ICAgICBpZiAoZXhjZXB0aW9uRGV0YWlscykKICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkV4
Y2VwdGlvbiBydW5uaW5nIHNjcmlwdCBcIiVzXCIiLCBleGNlcHRpb25EZXRhaWxzLT5tZXNzYWdl
LnV0ZjgoKS5kYXRhKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399391</attachid>
            <date>2020-05-14 12:27:39 -0700</date>
            <delta_ts>2020-05-14 13:11:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211904-20200514122739.patch</filename>
            <type>text/plain</type>
            <size>31071</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4NjBiNjQ4NTk3YTcx
Y2Y4YWU5MzMwYjY3YWJhMWViMzc0ZGI2Mi4uNWJkYjc3ODkyNWI4OGZlZGY3OTdmNzRhOTk5MjE4
ZjkxMTQzMzE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc291cmNlVVJM
IHRvIF9ldmFsdWF0ZUphdmFTY3JpcHQ6IHNvIHRoZSBzY3JpcHRzIGFwcGVhciBpbiBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExOTA0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzYyMDc0Mzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgc291cmNlVVJMIHRvIFJ1bkph
dmFTY3JpcHRQYXJhbWV0ZXJzLiBVc2UgaXQgaW5zdGVhZCBvZiB0aGUgZnJhbWUncyBkb2N1bWVu
dCBVUkwuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9SdW5KYXZhU2NyaXB0UGFyYW1ldGVycy5o
OgorICAgICAgICAoV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnM6OlJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnM6OmRlY29kZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0SW5Xb3Js
ZElnbm9yaW5nRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6
OmV4ZWN1dGVTY3JpcHRJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xs
ZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV4
ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkKToKKwogMjAyMC0wNS0wNiAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5vdy11bm5lZWRlZCBVU0UoR1JB
TU1BUl9DSEVDS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzFlZDQ0OGU0ZjAzNzMzNzRkY2VmYWMwYWFmNGRh
MmE5MzMyNWJhYy4uOGRjOWNmMWRjMWYyZWFiMzRhOTkzZmM3MzMwYjBlYjVkMjAwODYzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMC0wNS0xNCAgVGltb3RoeSBIYXRjaGVyICA8dGlt
b3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNvdXJjZVVSTCB0byBfZXZhbHVhdGVKYXZh
U2NyaXB0OiBzbyB0aGUgc2NyaXB0cyBhcHBlYXIgaW4gV2ViIEluc3BlY3Rvci4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTkwNAorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS82MjA3NDM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHNvdXJjZVVSTCB2ZXJzaW9uIG9mIF9ldmFsdWF0ZUphdmFT
Y3JpcHQ6IHRoYXQgcGFzc2VzIHRoZSBzb3VyY2VVUkwgdG8gUnVuSmF2YVNjcmlwdFBhcmFtZXRl
cnMuCisgICAgICAgIElmIHRoZSBzb3VyY2VVUkwgaXMgaW52YWxpZCwgZ2VuZXJhdGUgYSB1bmlx
dWUgdXNlciBzY3JpcHQgVVJMIHNvIHRoZSBzb3VyY2UgY29kZSBlcnJvcnMgYXJlIG5vdCBzaG93
aW5nCisgICAgICAgIHVwIHdpdGggdGhlIGZyYW1lJ3MgZG9jdW1lbnQgVVJMIGFuZCBib2d1cyBs
b2NhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAg
ICAgKFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSk6IHBhc3MgQVBJOjpVc2VyU2NyaXB0
OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpIGZvciB0aGUgc291cmNlVVJMLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tOgorICAgICAgICAoLVtXS1VzZXJTY3JpcHQg
aW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5Ol0pOiBDbGVhbiB1
cCBXZWJDb3JlOjpVc2VyU2NyaXB0IGluaXRpYWxpemVyLgorICAgICAgICAoLVtXS1VzZXJTY3Jp
cHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFpbkZyYW1lT25seTpsZWdhY3lX
aGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OnVzZXJDb250ZW50V29ybGQ6XSk6IERpdHRvLgorICAg
ICAgICAoLVtXS1VzZXJTY3JpcHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFp
bkZyYW1lT25seTpsZWdhY3lXaGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OmFzc29jaWF0ZWRVUkw6
dXNlckNvbnRlbnRXb3JsZDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBfaW5p
dFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRlbGlz
dDpsZWdhY3lCbGFja2xpc3Q6Y29udGVudFdvcmxkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tV
c2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6
bGVnYWN5V2hpdGVsaXN0OmxlZ2FjeUJsYWNrbGlzdDphc3NvY2lhdGVkVVJMOmNvbnRlbnRXb3Js
ZDpdKTogRGl0dG8uCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBfaW5pdFdpdGhTb3VyY2U6aW5q
ZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRlbGlzdDpsZWdhY3lCbGFja2xp
c3Q6YXNzb2NpYXRlZFVSTDpjb250ZW50V29ybGQ6ZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b246XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdDphc0FzeW5jRnVuY3Rp
b246d2l0aEFyZ3VtZW50czpmb3JjZVVzZXJHZXN0dXJlOmluRnJhbWU6aW5Xb3JsZDpjb21wbGV0
aW9uSGFuZGxlcjpdKTogUmVuYW1lZCB0byBhZGQgc291cmNlVVJMLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdDphc0FzeW5jRnVuY3Rpb246d2l0aFNvdXJjZVVSTDp3
aXRoQXJndW1lbnRzOmZvcmNlVXNlckdlc3R1cmU6aW5GcmFtZTppbldvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBBZGRlZCBzb3VyY2VVUkwuCisgICAgICAgICgtW1dLV2ViVmlldyBfZXZhbHVh
dGVKYXZhU2NyaXB0OndpdGhTb3VyY2VVUkw6aW5GcmFtZTppbkNvbnRlbnRXb3JsZDpjb21wbGV0
aW9uSGFuZGxlcjpdKTogQWRkZWQuIFBhc3Mgc291cmNlVVJMIHRocm91Z2guCisgICAgICAgICgt
W1dLV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IENhbGwg
bmV3IG1ldGhvZCB3aXRoIHNvdXJjZVVSTCBhcyBuaWwuCisgICAgICAgICgtW1dLV2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERp
dHRvLgorICAgICAgICAoLVtXS1dlYlZpZXcgY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6
aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERpdHRvLgorICAgICAgICAoLVtX
S1dlYlZpZXcgX2NhbGxBc3luY0phdmFTY3JpcHQ6YXJndW1lbnRzOmluRnJhbWU6aW5Db250ZW50
V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2V2YWx1YXRlSmF2YVNjcmlwdDppbkZyYW1lOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25IYW5k
bGVyOl0pOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKwogMjAyMC0wNS0wNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRWxpbWluYXRlIGNoZWNrcyBvZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykg
aW4gQ29jb2Etc3BlY2lmaWMgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1J1bkphdmFTY3JpcHRQYXJhbWV0ZXJzLmgKaW5kZXggNDdhM2ZmYjA1Mzc3NWNhMTRhM2Nh
OGYxODliNGQ3NmZhODE3ZTdiYS4uNmRjYjlkZGVjNTE3MTQ2NmU5Yzk1NTIwZGQ0ZTFjZGM5ZjFk
ZGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SdW5KYXZhU2Ny
aXB0UGFyYW1ldGVycy5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzcsMjQgKzM4
LDI3IEBAIGVudW0gY2xhc3MgRm9yY2VVc2VyR2VzdHVyZSA6IGJvb2wgeyBObywgWWVzIH07CiB1
c2luZyBBcmd1bWVudFdpcmVCeXRlc01hcCA9IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8dWludDhf
dD4+OwogCiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgewotICAgIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1bkFzQXN5
bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1lbnRzLCBG
b3JjZVVzZXJHZXN0dXJlIGZvcmNlVXNlckdlc3R1cmUpCisgICAgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMoU3RyaW5nJiYgc291cmNlLCBVUkwmJiBzb3VyY2VVUkwsIFJ1bkFzQXN5bmNGdW5jdGlv
biBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFy
Z3VtZW50cywgRm9yY2VVc2VyR2VzdHVyZSBmb3JjZVVzZXJHZXN0dXJlKQogICAgICAgICA6IHNv
dXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUoc291cmNl
VVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0aW9uKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlKQogICAgIHsKICAgICB9CiAKLSAgICBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyhjb25zdCBTdHJpbmcmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVu
Y3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlKQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKGNvbnN0IFN0cmlu
ZyYgc291cmNlLCBVUkwmJiBzb3VyY2VVUkwsIGJvb2wgcnVuQXNBc3luY0Z1bmN0aW9uLCBPcHRp
b25hbDxBcmd1bWVudFdpcmVCeXRlc01hcD4mJiBhcmd1bWVudHMsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSkKICAgICAgICAgOiBzb3VyY2Uoc291cmNlKQorICAgICAgICAsIHNvdXJjZVVSTChXVEZN
b3ZlKHNvdXJjZVVSTCkpCiAgICAgICAgICwgcnVuQXNBc3luY0Z1bmN0aW9uKHJ1bkFzQXN5bmNG
dW5jdGlvbiA/IFJ1bkFzQXN5bmNGdW5jdGlvbjo6WWVzIDogUnVuQXNBc3luY0Z1bmN0aW9uOjpO
bykKICAgICAgICAgLCBhcmd1bWVudHMoV1RGTW92ZShhcmd1bWVudHMpKQogICAgICAgICAsIGZv
cmNlVXNlckdlc3R1cmUoZm9yY2VVc2VyR2VzdHVyZSA/IEZvcmNlVXNlckdlc3R1cmU6OlllcyA6
IEZvcmNlVXNlckdlc3R1cmU6Ok5vKQogICAgIHsKICAgICB9CiAKLSAgICBSdW5KYXZhU2NyaXB0
UGFyYW1ldGVycyhTdHJpbmcmJiBzb3VyY2UsIGJvb2wgcnVuQXNBc3luY0Z1bmN0aW9uLCBPcHRp
b25hbDxBcmd1bWVudFdpcmVCeXRlc01hcD4mJiBhcmd1bWVudHMsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSkKKyAgICBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyhTdHJpbmcmJiBzb3VyY2UsIFVSTCYm
IHNvdXJjZVVSTCwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFsPEFyZ3VtZW50V2ly
ZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJlKQogICAgICAgICA6
IHNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUoc291
cmNlVVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0aW9u
ID8gUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXMgOiBSdW5Bc0FzeW5jRnVuY3Rpb246Ok5vKQogICAg
ICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VVc2Vy
R2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlID8gRm9yY2VVc2VyR2VzdHVyZTo6WWVzIDogRm9yY2VV
c2VyR2VzdHVyZTo6Tm8pCkBAIC02MiwxMyArNjYsMTQgQEAgc3RydWN0IFJ1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzIHsKICAgICB9CiAKICAgICBTdHJpbmcgc291cmNlOworICAgIFVSTCBzb3VyY2VV
Ukw7CiAgICAgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1bkFzQXN5bmNGdW5jdGlvbjsKICAgICBPcHRp
b25hbDxBcmd1bWVudFdpcmVCeXRlc01hcD4gYXJndW1lbnRzOwogICAgIEZvcmNlVXNlckdlc3R1
cmUgZm9yY2VVc2VyR2VzdHVyZTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVy
IDw8IHNvdXJjZSA8PCBydW5Bc0FzeW5jRnVuY3Rpb24gPDwgYXJndW1lbnRzIDw8IGZvcmNlVXNl
ckdlc3R1cmU7CisgICAgICAgIGVuY29kZXIgPDwgc291cmNlIDw8IHNvdXJjZVVSTCA8PCBydW5B
c0FzeW5jRnVuY3Rpb24gPDwgYXJndW1lbnRzIDw8IGZvcmNlVXNlckdlc3R1cmU7CiAgICAgfQog
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFJ1bkphdmFT
Y3JpcHRQYXJhbWV0ZXJzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKQEAgLTc3LDYgKzgyLDEw
IEBAIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7CiAgICAgICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc291cmNlKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAg
ICAgICAgVVJMIHNvdXJjZVVSTDsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzb3VyY2VV
UkwpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgICAgICBSdW5Bc0Fz
eW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1bmN0aW9uOwogICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJ1bkFzQXN5bmNGdW5jdGlvbikpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwpAQCAtODksNyArOTgsNyBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgewogICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZvcmNlVXNlckdlc3R1cmUpKQogICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgICAgICByZXR1cm4geyBSdW5KYXZhU2NyaXB0UGFy
YW1ldGVycyB7IFdURk1vdmUoc291cmNlKSwgcnVuQXNBc3luY0Z1bmN0aW9uLCBXVEZNb3ZlKGFy
Z3VtZW50cyksIGZvcmNlVXNlckdlc3R1cmUgfSB9OworICAgICAgICByZXR1cm4geyBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyB7IFdURk1vdmUoc291cmNlKSwgV1RGTW92ZShzb3VyY2VVUkwpLCBy
dW5Bc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1lbnRzKSwgZm9yY2VVc2VyR2VzdHVyZSB9
IH07CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAppbmRleCBhZTI4ODVjMDMzYmU0YWM4ZGMwMmM4MTIyNDc4YWM3Yzc0Mzkw
YzBiLi5jOTJlNjdiMzI1YTU2YmY4NWI5NDkzMjY2ZWQ3YTA1OGYwMTAyODEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTczLDcg
KzU3Myw3IEBAIEpTQzo6SlNWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlU2NyaXB0SWdu
b3JpbmdFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBzY3JpCiAKIEpTQzo6SlNWYWx1ZSBTY3JpcHRD
b250cm9sbGVyOjpleGVjdXRlU2NyaXB0SW5Xb3JsZElnbm9yaW5nRXhjZXB0aW9uKERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1
cmUpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBleGVjdXRlU2NyaXB0SW5Xb3JsZCh3b3JsZCwgUnVu
SmF2YVNjcmlwdFBhcmFtZXRlcnMgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNl
VXNlckdlc3R1cmUgfSk7CisgICAgYXV0byByZXN1bHQgPSBleGVjdXRlU2NyaXB0SW5Xb3JsZCh3
b3JsZCwgeyBzY3JpcHQsIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNlVXNlckdl
c3R1cmUgfSk7CiAgICAgcmV0dXJuIHJlc3VsdCA/IHJlc3VsdC52YWx1ZSgpIDogSlNDOjpKU1Zh
bHVlIHsgfTsKIH0KIApAQCAtNTkyLDEwICs1OTIsOCBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlw
dENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EZXRhaWxzIHsgIkNhbm5v
dCBleGVjdXRlIEphdmFTY3JpcHQgaW4gdGhpcyBkb2N1bWVudCJfcyB9KTsKIAogICAgIHN3aXRj
aCAocGFyYW1ldGVycy5ydW5Bc0FzeW5jRnVuY3Rpb24pIHsKLSAgICBjYXNlIFJ1bkFzQXN5bmNG
dW5jdGlvbjo6Tm86IHsKLSAgICAgICAgU2NyaXB0U291cmNlQ29kZSBzb3VyY2VDb2RlKHBhcmFt
ZXRlcnMuc291cmNlLCBVUkwobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSksIFRleHRQb3NpdGlv
bigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSwgQ2FjaGVkU2NyaXB0
RmV0Y2hlcjo6Y3JlYXRlKG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2hhcnNldCgpKSk7Ci0gICAgICAg
IHJldHVybiBldmFsdWF0ZUluV29ybGQoc291cmNlQ29kZSwgd29ybGQpOwotICAgIH0KKyAgICBj
YXNlIFJ1bkFzQXN5bmNGdW5jdGlvbjo6Tm86CisgICAgICAgIHJldHVybiBldmFsdWF0ZUluV29y
bGQoeyBwYXJhbWV0ZXJzLnNvdXJjZSwgV1RGTW92ZShwYXJhbWV0ZXJzLnNvdXJjZVVSTCksIFRl
eHRQb3NpdGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSwgQ2Fj
aGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2hhcnNldCgpKSB9
LCB3b3JsZCk7CiAgICAgY2FzZSBSdW5Bc0FzeW5jRnVuY3Rpb246OlllczoKICAgICAgICAgcmV0
dXJuIGNhbGxJbldvcmxkKFdURk1vdmUocGFyYW1ldGVycyksIHdvcmxkKTsKICAgICBkZWZhdWx0
OgpAQCAtNjM5LDcgKzYzNyw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6
Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAKICAgICBmdW5j
dGlvblN0cmluZ0J1aWxkZXIuYXBwZW5kKCIpeyIsIHBhcmFtZXRlcnMuc291cmNlLCAifSkiKTsK
IAotICAgIGF1dG8gc291cmNlQ29kZSA9IFNjcmlwdFNvdXJjZUNvZGUgeyBmdW5jdGlvblN0cmlu
Z0J1aWxkZXIudG9TdHJpbmcoKSwgVVJMKG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBUZXh0
UG9zaXRpb24oKSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hl
ZFNjcmlwdEZldGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkgfTsK
KyAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCksIFdURk1vdmUocGFyYW1ldGVycy5zb3VyY2VVUkwpLCBUZXh0UG9z
aXRpb24oKSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hlZFNj
cmlwdEZldGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkgfTsKICAg
ICBjb25zdCBhdXRvJiBqc1NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpOwog
CiAgICAgU3RyaW5nIHNvdXJjZVVSTCA9IGpzU291cmNlQ29kZS5wcm92aWRlcigpLT51cmwoKS5z
dHJpbmcoKTsKQEAgLTY5Nyw3ICs2OTUsNyBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxl
cjo6ZXhlY3V0ZVVzZXJBZ2VudFNjcmlwdEluV29ybGRJZ25vcmluZ0V4Y2VwdGlvbihETwogfQog
VmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlVXNlckFnZW50U2NyaXB0
SW5Xb3JsZChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9v
bCBmb3JjZVVzZXJHZXN0dXJlKQogewotICAgIHJldHVybiBleGVjdXRlVXNlckFnZW50U2NyaXB0
SW5Xb3JsZEludGVybmFsKHdvcmxkLCB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9y
Y2VVc2VyR2VzdHVyZSB9KTsKKyAgICByZXR1cm4gZXhlY3V0ZVVzZXJBZ2VudFNjcmlwdEluV29y
bGRJbnRlcm5hbCh3b3JsZCwgeyBzY3JpcHQsIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQs
IGZvcmNlVXNlckdlc3R1cmUgfSk7CiB9CiAKIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJv
bGxlcjo6ZXhlY3V0ZVVzZXJBZ2VudFNjcmlwdEluV29ybGRJbnRlcm5hbChET01XcmFwcGVyV29y
bGQmIHdvcmxkLCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBiNjhlNjQ2Yzc4ZGFiNzg3NTM4
ZWZlNmJmZTMxNDNiM2RhN2NkZWM0Li40NDliNzFkZjAzOGI1MDI3MzQ1ZGQzMTJkYzI3NjE1M2Uw
YjAwZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI0
OTUsNyArMjQ5NSw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFnZVJlZiBw
YWdlLCBXS1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCkKIAogdm9pZCBXS1BhZ2VSdW5KYXZh
U2NyaXB0SW5NYWluRnJhbWUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHNjcmlwdFJl
Ziwgdm9pZCogY29udGV4dCwgV0tQYWdlUnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGNhbGxiYWNrKQog
ewotICAgIHRvSW1wbChwYWdlUmVmKS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgdG9JbXBs
KHNjcmlwdFJlZiktPnN0cmluZygpLCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sIFtjb250
ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVlLCBP
cHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiwgQ2FsbGJhY2tCYXNlOjpFcnJvciBl
cnJvcikgeworICAgIHRvSW1wbChwYWdlUmVmKS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsg
dG9JbXBsKHNjcmlwdFJlZiktPnN0cmluZygpLCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxsb3B0
LCB0cnVlIH0sIFtjb250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IHJldHVyblZhbHVlLCBPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiwgQ2FsbGJh
Y2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICBjYWxsYmFjayh0b0FQSShyZXR1cm5WYWx1
ZSksIChlcnJvciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSA/IHRvQVBJKEFQSTo6RXJy
b3I6OmNyZWF0ZSgpLnB0cigpKSA6IDAsIGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KaW5kZXggOGUx
MGVmZmViZTc1YWYyZTZlYWI1YTcxOWEzNmZkY2MxMGM4YmYxZi4uZWRmM2I5NjljMDA0OWFjN2Y4
NWFjNWQ1YzA3MGE4Mjk4NmZlMmJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCkBAIC0zNiw3ICszNiw3IEBAIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tV
c2VyU2NyaXB0SW5qCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNl
clNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSks
IEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgeyB9LCB7IH0sIEFQSTo6dG9X
ZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFt
ZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZy
YW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxs
RnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9
LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgpKTsKKyAgICBBUEk6Ok9iamVj
dDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNl
clNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpLCB7
IH0sIHsgfSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25U
aW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZv
cmVJbmplY3Rpbmc6Ok5vIH0sIEFQSTo6Q29udGVudFdvcmxkOjpwYWdlQ29udGVudFdvcmxkKCkp
OwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC04NSw3ICs4NSw3IEBAIC0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNl
clNjcmlwdEluCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVy
biBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNj
cmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQ
STo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxl
Z2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6
OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWlu
RnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5U
b3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJ
bkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6
Tm8gfSwgKnVzZXJDb250ZW50V29ybGQtPl9jb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOwor
ICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxm
LCBXZWJDb3JlOjpVc2VyU2NyaXB0IHsgc291cmNlLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRl
VW5pcXVlVVJMKCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVj
dG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6Oldh
aXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxk
LT5fY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpA
QCAtOTUsNyArOTUsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmlu
ZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6
OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJT
Y3JpcHQgeyBXVEY6OlN0cmluZyhzb3VyY2UpLCBVUkwoYXNzb2NpYXRlZFVSTCksIG1ha2VWZWN0
b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5Qmxh
Y2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25U
aW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZv
cmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNl
clNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgYXNzb2NpYXRlZFVS
TCwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5n
PihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
KGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlm
aWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKnVzZXJDb250ZW50V29ybGQtPl9jb250ZW50
V29ybGQtPl9jb250ZW50V29ybGQpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMTEsNyAr
MTExLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3Vy
Y2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1
Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2VyU2NyaXB0IHsg
V1RGOjpTdHJpbmcoc291cmNlKSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgp
LCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+
KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUo
aW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZp
Y2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxk
KTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4o
c2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5l
cmF0ZVVuaXF1ZVVSTCgpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlw
dEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNv
cmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3Jl
OjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVudFdvcmxk
LT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTIxLDcgKzEyMSw3
IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGlu
amVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5X
cmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURjo6
U3RyaW5nKHNvdXJjZSksIFVSTChhc3NvY2lhdGVkVVJMKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxl
Z2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6
OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWlu
RnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5U
b3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJ
bkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6
Tm8gfSwgKmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNv
bnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3Jp
cHQgeyBzb3VyY2UsIGFzc29jaWF0ZWRVUkwsIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0
ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNv
cmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25s
eSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVP
bmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFt
ZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICpj
b250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0x
MzEsNyArMTMxLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcg
Kilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6T2JqZWN0Ojpj
b25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2VyU2Ny
aXB0IHsgV1RGOjpTdHJpbmcoc291cmNlKSwgVVJMKGFzc29jaWF0ZWRVUkwpLCBtYWtlVmVjdG9y
PFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNr
bGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGlt
ZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
OjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXM6OkluamVjdEluQWxsRnJhbWVzLCBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiA/IFdl
YkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6OlllcyA6IFdlYkNvcmU6
OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICpjb250ZW50V29ybGQt
Pl9jb250ZW50V29ybGQpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJ
OjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2VyU2NyaXB0IHsgc291cmNlLCBhc3NvY2lh
dGVkVVJMLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxT
dHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlv
blRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJD
b250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBkZWZlclJ1bm5pbmdVbnRp
bE5vdGlmaWNhdGlvbiA/IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rp
bmc6OlllcyA6IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5v
IH0sICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRl
eCBlNjY0YjY1MWQ1NGQ0MTQxZDQwMDVkMWFjN2M0YjcyNWU1YzAwYjgwLi5jMjg3ZTE2ZTZkNzU2
ODkwODBjNTI2ZWFlZWY5YjgxMDgzZWIwNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTgxNiwxNyArODE2LDE3IEBAIHN0YXRpYyBX
S0Vycm9yQ29kZSBjYWxsYmFja0Vycm9yQ29kZShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpCiAKIC0gKHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3Jp
cHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyCiB7Ci0gICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0
U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0
dXJlOllFUyBpbkZyYW1lOm5pbCBpbldvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21w
bGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2
YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoU291cmNlVVJM
Om5pbCB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOm5pbCBp
bldvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0
aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAq
KWphdmFTY3JpcHRTdHJpbmcgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqKSljb21wbGV0
aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0
cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVy
ZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6
Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNj
cmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3Vt
ZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpjb250ZW50
V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lk
KWNhbGxBc3luY0phdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBhcmd1bWVu
dHM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5Db250ZW50V29y
bGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgW3NlbGYg
X2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpZRVMg
d2l0aEFyZ3VtZW50czphcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwg
aW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJd
OworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5j
RnVuY3Rpb246WUVTIHdpdGhTb3VyY2VVUkw6bmlsIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZv
cmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogc3RhdGljIGJvb2wgdmFsaWRh
dGVBcmd1bWVudChpZCBhcmd1bWVudCkKQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMgYm9vbCB2
YWxpZGF0ZUFyZ3VtZW50KGlkIGFyZ3VtZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotLSAo
dm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXNB
c3luY0Z1bmN0aW9uOihCT09MKWFzQXN5bmNGdW5jdGlvbiB3aXRoQXJndW1lbnRzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6KEJPT0wp
Zm9yY2VVc2VyR2VzdHVyZSBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluV29ybGQ6KFdL
Q29udGVudFdvcmxkICopd29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vy
cm9yICopKWNvbXBsZXRpb25IYW5kbGVyCistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5T
U3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246KEJPT0wpYXNBc3luY0Z1
bmN0aW9uIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIHdpdGhBcmd1bWVudHM6KE5T
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZToo
Qk9PTClmb3JjZVVzZXJHZXN0dXJlIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Xb3Js
ZDooV0tDb250ZW50V29ybGQgKil3b3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQs
IE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9w
dE5TKFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSk7CiAKQEAgLTkwNCw3ICs5MDQsNyBAQCAtICh2
b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBhc0Fz
eW5jRnVuY3Rpb246KEJPT0wpYQogICAgICAgICAgICAgZnJhbWVJRCA9IG1ha2VPYmplY3RJZGVu
dGlmaWVyPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIpOwogICAgIH0K
IAotICAgIF9wYWdlLT5ydW5KYXZhU2NyaXB0SW5GcmFtZUluU2NyaXB0V29ybGQoV2ViQ29yZTo6
UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMgeyBqYXZhU2NyaXB0U3RyaW5nLCAhIWFzQXN5bmNGdW5j
dGlvbiwgV1RGTW92ZShhcmd1bWVudHNNYXApLCAhIWZvcmNlVXNlckdlc3R1cmUgfSwgZnJhbWVJ
RCwgKndvcmxkLT5fY29udGVudFdvcmxkLmdldCgpLCBbaGFuZGxlcl0oQVBJOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhj
ZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJv
ciBlcnJvckNvZGUpIHsKKyAgICBfcGFnZS0+cnVuSmF2YVNjcmlwdEluRnJhbWVJblNjcmlwdFdv
cmxkKHsgamF2YVNjcmlwdFN0cmluZywgc291cmNlVVJMLCAhIWFzQXN5bmNGdW5jdGlvbiwgV1RG
TW92ZShhcmd1bWVudHNNYXApLCAhIWZvcmNlVXNlckdlc3R1cmUgfSwgZnJhbWVJRCwgKndvcmxk
LT5fY29udGVudFdvcmxkLmdldCgpLCBbaGFuZGxlcl0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0
YWlscz4gZGV0YWlscywgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJvckNv
ZGUpIHsKICAgICAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0y
MjAwLDE3ICsyMjAwLDIyIEBAIC0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9pZCheKShCT09MKSlj
b21wbGV0aW9uSGFuZGxlcgogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0VXNl
ckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBf
ZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdp
dGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6Tk8gaW5GcmFtZTpuaWwgaW5Xb3JsZDpX
S0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRs
ZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0Fz
eW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VV
c2VyR2VzdHVyZTpOTyBpbkZyYW1lOm5pbCBpbldvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3Js
ZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZvaWQpX2Nh
bGxBc3luY0phdmFTY3JpcHQ6KE5TU3RyaW5nICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50czooTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBpbkZyYW1lOihXS0ZyYW1lSW5m
byAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9u
SGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6ZnVuY3Rpb25Cb2R5IGFz
QXN5bmNGdW5jdGlvbjpZRVMgd2l0aEFyZ3VtZW50czphcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVy
ZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxl
cjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpmdW5j
dGlvbkJvZHkgYXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRoQXJndW1l
bnRzOmFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAog
LSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcg
aW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9y
ICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2Ny
aXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVudHM6bmls
IGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50V29ybGQg
Y29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0
ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJj
ZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpm
cmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFu
ZGxlcl07Cit9CisKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZh
U2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopdXJsIGluRnJhbWU6KFdLRnJhbWVJ
bmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxk
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3Ry
aW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoU291cmNlVVJMOnVybCB3aXRoQXJndW1lbnRzOm5p
bCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6Y29udGVudFdvcmxk
IGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAodm9pZClfdXBk
YXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCmluZGV4IDQ1Mzk1MDZkMDM5MThkNjE0ZmI2ZmU2Njg0M2Q3YWFmMDdjZDE1MjQuLmVl
YjIzODkzNGMyYjcxNWY3N2ZmYzJhMzZjZTY1ZmExMDdmM2UyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjEx
LDYgKzIxMSw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFT
Y3JpcHRXaXRob3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV9ldmFs
dWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRX
b3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJvcikpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZh
U2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIGluRnJhbWU6KFdL
RnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqIGVycm9yKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJpbmcgKilm
dW5jdGlvbkJvZHkgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJn
dW1lbnRzIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29u
dGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwg
TlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldExheW91dE1vZGU6KSBfV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRl
eCA4YzU0YjQyM2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li42NGJmNzE5M2JhNWY4
MDc0NmMxNGVjMmFiYzUzNDQ3MDE5MDI4OTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzY4Myw3ICszNjgzLDcgQEAg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfcnVuX2phdmFzY3JpcHQoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgY29uc3QgZ2NoYXIqIHNjcmlwdCwKICAgICBnX3JldHVybl9pZl9mYWlsKHNjcmlwdCk7CiAK
ICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcod2ViVmlldywg
Y2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIGdldFBhZ2Uod2ViVmlldyku
cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBmYWxz
ZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8RXhjZXB0
aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAg
Z2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6OmZyb21V
VEY4KHNjcmlwdCksIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIHRydWUgfSwgW3Rhc2sg
PSBXVEZNb3ZlKHRhc2spXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNj
cmlwdFZhbHVlLCBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAgICAgRXhjZXB0aW9uRGV0YWlscyBleGNlcHRpb25E
ZXRhaWxzOwogICAgICAgICBpZiAoZGV0YWlscykKICAgICAgICAgICAgIGV4Y2VwdGlvbkRldGFp
bHMgPSAqZGV0YWlsczsKQEAgLTM3ODUsNyArMzc4NSw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3
X3J1bl9qYXZhc2NyaXB0X2luX3dvcmxkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdj
aGFyCiAKICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcod2Vi
VmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwogICAgIGF1dG8gd29ybGQg
PSBBUEk6OkNvbnRlbnRXb3JsZDo6c2hhcmVkV29ybGRXaXRoTmFtZShTdHJpbmc6OmZyb21VVEY4
KHdvcmxkTmFtZSkpOwotICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluRnJhbWVJ
blNjcmlwdFdvcmxkKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBmYWxzZSwgV1RGOjpudWxs
b3B0LCB0cnVlIH0sIFdURjo6bnVsbG9wdCwgd29ybGQuZ2V0KCksIFt0YXNrID0gV1RGTW92ZSh0
YXNrKV0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwg
T3B0aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yKSB7CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5GcmFtZUluU2Ny
aXB0V29ybGQoeyBTdHJpbmc6OmZyb21VVEY4KHNjcmlwdCksIFVSTCB7IH0sIGZhbHNlLCBXVEY6
Om51bGxvcHQsIHRydWUgfSwgV1RGOjpudWxsb3B0LCB3b3JsZC5nZXQoKSwgW3Rhc2sgPSBXVEZN
b3ZlKHRhc2spXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZh
bHVlLCBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IpIHsKICAgICAgICAgRXhjZXB0aW9uRGV0YWlscyBleGNlcHRpb25EZXRhaWxz
OwogICAgICAgICBpZiAoZGV0YWlscykKICAgICAgICAgICAgIGV4Y2VwdGlvbkRldGFpbHMgPSAq
ZGV0YWlsczsKQEAgLTM4MjcsNyArMzgyNyw3IEBAIHN0YXRpYyB2b2lkIHJlc291cmNlc1N0cmVh
bVJlYWRDYWxsYmFjayhHT2JqZWN0KiBvYmplY3QsIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBnCiAK
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKGdfdGFza19nZXRf
c291cmNlX29iamVjdCh0YXNrLmdldCgpKSk7CiAgICAgZ3BvaW50ZXIgb3V0cHV0U3RyZWFtRGF0
YSA9IGdfbWVtb3J5X291dHB1dF9zdHJlYW1fZ2V0X2RhdGEoR19NRU1PUllfT1VUUFVUX1NUUkVB
TShvYmplY3QpKTsKLSAgICBnZXRQYWdlKHdlYlZpZXcpLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFt
ZSh7IFN0cmluZzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjb25zdCBnY2hhcio+KG91dHB1
dFN0cmVhbURhdGEpKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZX0sCisgICAgZ2V0UGFnZSh3
ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6OmZyb21VVEY4KHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgZ2NoYXIqPihvdXRwdXRTdHJlYW1EYXRhKSksIFVSTCB7IH0sIGZh
bHNlLCBXVEY6Om51bGxvcHQsIHRydWUgfSwKICAgICAgICAgW3Rhc2tdKEFQSTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFsPEV4Y2VwdGlvbkRl
dGFpbHM+IGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICAg
ICAgRXhjZXB0aW9uRGV0YWlscyBleGNlcHRpb25EZXRhaWxzOwogICAgICAgICAgICAgaWYgKGRl
dGFpbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29j
a2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3Ivc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5j
cHAKaW5kZXggZjNmMjhhNDdlM2RhYmRhMWEyYzI4M2UzZWZkNDBhMjI5ZTYwNThlYy4uYzcxOTBl
MjhhN2EyZmU2NjQ3NDUyY2NmMjA5MTQ0M2I2M2E1ZjE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhh
bmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQv
UmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHZv
aWQgUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjppbnNwZWN0KGNvbnN0IFN0cmluZyYg
aG9zdEFuZFBvcnQsIENvbm5lY3RpCiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5k
bGVyOjpydW5TY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7Ci0gICAgbV9wYWdlLnJ1bkph
dmFTY3JpcHRJbk1haW5GcmFtZSh7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZmFsc2Ug
fSwgCisgICAgbV9wYWdlLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7IHNjcmlwdCwgVVJMIHsg
fSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZmFsc2UgfSwgCiAgICAgICAgIFtdKEFQSTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlKiwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZXhj
ZXB0aW9uRGV0YWlscywgQ2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICAgICAgaWYgKGV4
Y2VwdGlvbkRldGFpbHMpCiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJFeGNlcHRpb24gcnVu
bmluZyBzY3JpcHQgXCIlc1wiIiwgZXhjZXB0aW9uRGV0YWlscy0+bWVzc2FnZS51dGY4KCkuZGF0
YSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399396</attachid>
            <date>2020-05-14 13:11:14 -0700</date>
            <delta_ts>2020-05-14 13:14:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211904-20200514131113.patch</filename>
            <type>text/plain</type>
            <size>31360</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4NjBiNjQ4NTk3YTcx
Y2Y4YWU5MzMwYjY3YWJhMWViMzc0ZGI2Mi4uYTE2OTEyZWQ3OGY2OGI2NDFkNTE2MDcyZTQ2Yzgw
OGJkMmIyZDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc291cmNlVVJM
IHRvIF9ldmFsdWF0ZUphdmFTY3JpcHQ6IHNvIHRoZSBzY3JpcHRzIGFwcGVhciBpbiBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExOTA0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzYyMDc0Mzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkZGVkIHNvdXJjZVVSTCB0byBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycy4gVXNlIGl0IGluc3RlYWQgb2YgdGhlIGZyYW1lJ3MgZG9jdW1lbnQg
VVJMLgorCisgICAgICAgICogYmluZGluZ3MvanMvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzOjpSdW5KYXZhU2NyaXB0
UGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGRJ
Z25vcmluZ0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpl
eGVjdXRlU2NyaXB0SW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpjYWxsSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVj
dXRlVXNlckFnZW50U2NyaXB0SW5Xb3JsZCk6CisKIDIwMjAtMDUtMDYgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBub3ctdW5uZWVkZWQgVVNFKEdSQU1N
QVJfQ0hFQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxZWQ0NDhlNGYwMzczMzc0ZGNlZmFjMGFhZjRkYTJh
OTMzMjViYWMuLmM5MGNlYjZlN2YxNzhlZWY2YmYyZTg4YjBiOTAyOTE4MmYxNmU1NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTQgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90
aHlAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb3VyY2VVUkwgdG8gX2V2YWx1YXRlSmF2YVNj
cmlwdDogc28gdGhlIHNjcmlwdHMgYXBwZWFyIGluIFdlYiBJbnNwZWN0b3IuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5MDQKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vNjIwNzQzNzYKKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28u
CisKKyAgICAgICAgQWRkZWQgc291cmNlVVJMIHZlcnNpb24gb2YgX2V2YWx1YXRlSmF2YVNjcmlw
dDogdGhhdCBwYXNzZXMgdGhlIHNvdXJjZVVSTCB0byBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycy4K
KyAgICAgICAgSWYgdGhlIHNvdXJjZVVSTCBpcyBpbnZhbGlkLCBnZW5lcmF0ZSBhIHVuaXF1ZSB1
c2VyIHNjcmlwdCBVUkwgc28gdGhlIHNvdXJjZSBjb2RlIGVycm9ycyBhcmUgbm90IHNob3dpbmcK
KyAgICAgICAgdXAgd2l0aCB0aGUgZnJhbWUncyBkb2N1bWVudCBVUkwgYW5kIGJvZ3VzIGxvY2F0
aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKTogcGFzcyBBUEk6OlVzZXJTY3JpcHQ6Omdl
bmVyYXRlVW5pcXVlVVJMKCkgZm9yIHRoZSBzb3VyY2VVUkwuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW06CisgICAgICAgICgtW1dLVXNlclNjcmlwdCBpbml0
V2l0aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6XSk6IENsZWFuIHVwIFdl
YkNvcmU6OlVzZXJTY3JpcHQgaW5pdGlhbGl6ZXIuCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBf
aW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRl
bGlzdDpsZWdhY3lCbGFja2xpc3Q6dXNlckNvbnRlbnRXb3JsZDpdKTogRGl0dG8uCisgICAgICAg
ICgtW1dLVXNlclNjcmlwdCBfaW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJh
bWVPbmx5OmxlZ2FjeVdoaXRlbGlzdDpsZWdhY3lCbGFja2xpc3Q6YXNzb2NpYXRlZFVSTDp1c2Vy
Q29udGVudFdvcmxkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0
aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6bGVnYWN5V2hpdGVsaXN0Omxl
Z2FjeUJsYWNrbGlzdDpjb250ZW50V29ybGQ6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1VzZXJT
Y3JpcHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFpbkZyYW1lT25seTpsZWdh
Y3lXaGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OmFzc29jaWF0ZWRVUkw6Y29udGVudFdvcmxkOl0p
OiBEaXR0by4KKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rp
b25UaW1lOmZvck1haW5GcmFtZU9ubHk6bGVnYWN5V2hpdGVsaXN0OmxlZ2FjeUJsYWNrbGlzdDph
c3NvY2lhdGVkVVJMOmNvbnRlbnRXb3JsZDpkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpd
KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZXZhbHVhdGVKYXZhU2NyaXB0OmFzQXN5bmNGdW5jdGlvbjp3
aXRoQXJndW1lbnRzOmZvcmNlVXNlckdlc3R1cmU6aW5GcmFtZTppbldvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBSZW5hbWVkIHRvIGFkZCBzb3VyY2VVUkwuCisgICAgICAgICgtW1dLV2ViVmll
dyBfZXZhbHVhdGVKYXZhU2NyaXB0OmFzQXN5bmNGdW5jdGlvbjp3aXRoU291cmNlVVJMOndpdGhB
cmd1bWVudHM6Zm9yY2VVc2VyR2VzdHVyZTppbkZyYW1lOmluV29ybGQ6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6IEFkZGVkIHNvdXJjZVVSTC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ldmFsdWF0ZUph
dmFTY3JpcHQ6d2l0aFNvdXJjZVVSTDppbkZyYW1lOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBBZGRlZC4gUGFzcyBzb3VyY2VVUkwgdGhyb3VnaC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFuZGxlcjpdKTogQ2FsbCBuZXcg
bWV0aG9kIHdpdGggc291cmNlVVJMIGFzIG5pbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8u
CisgICAgICAgICgtW1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3VtZW50czppbkNv
bnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dLV2Vi
VmlldyBfY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6aW5GcmFtZTppbkNvbnRlbnRXb3Js
ZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dLV2ViVmlldyBfZXZh
bHVhdGVKYXZhU2NyaXB0OmluRnJhbWU6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6
XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oOgorCiAyMDIwLTA1LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbGltaW5hdGUgY2hlY2tzIG9mIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKSBpbiBD
b2NvYS1zcGVjaWZpYyBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SdW5KYXZhU2NyaXB0UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaAppbmRleCA0N2EzZmZiMDUzNzc1Y2ExNGEzY2E4ZjE4
OWI0ZDc2ZmE4MTdlN2JhLi42ZGNiOWRkZWM1MTcxNDY2ZTljOTU1MjBkZDRlMWNkYzlmMWRkYzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SdW5KYXZhU2NyaXB0UGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1J1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zNywyNCArMzgsMjcg
QEAgZW51bSBjbGFzcyBGb3JjZVVzZXJHZXN0dXJlIDogYm9vbCB7IE5vLCBZZXMgfTsKIHVzaW5n
IEFyZ3VtZW50V2lyZUJ5dGVzTWFwID0gSGFzaE1hcDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj47
CiAKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7Ci0gICAgUnVuSmF2YVNjcmlwdFBh
cmFtZXRlcnMoU3RyaW5nJiYgc291cmNlLCBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1
bmN0aW9uLCBPcHRpb25hbDxBcmd1bWVudFdpcmVCeXRlc01hcD4mJiBhcmd1bWVudHMsIEZvcmNl
VXNlckdlc3R1cmUgZm9yY2VVc2VyR2VzdHVyZSkKKyAgICBSdW5KYXZhU2NyaXB0UGFyYW1ldGVy
cyhTdHJpbmcmJiBzb3VyY2UsIFVSTCYmIHNvdXJjZVVSTCwgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1
bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1l
bnRzLCBGb3JjZVVzZXJHZXN0dXJlIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291cmNl
KFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VVUkwp
KQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24pCiAgICAg
ICAgICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJH
ZXN0dXJlKGZvcmNlVXNlckdlc3R1cmUpCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgc291cmNlLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlv
biwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNl
VXNlckdlc3R1cmUpCisgICAgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIFVSTCYmIHNvdXJjZVVSTCwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQogICAgICAgICA6IHNvdXJjZShzb3VyY2UpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUo
c291cmNlVVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0
aW9uID8gUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXMgOiBSdW5Bc0FzeW5jRnVuY3Rpb246Ok5vKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlID8gRm9yY2VVc2VyR2VzdHVyZTo6WWVzIDogRm9y
Y2VVc2VyR2VzdHVyZTo6Tm8pCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3JpcHRQYXJh
bWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgVVJMJiYgc291
cmNlVVJMLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0
ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291
cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VV
UkwpKQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24gPyBS
dW5Bc0FzeW5jRnVuY3Rpb246OlllcyA6IFJ1bkFzQXN5bmNGdW5jdGlvbjo6Tm8pCiAgICAgICAg
ICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJHZXN0
dXJlKGZvcmNlVXNlckdlc3R1cmUgPyBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgOiBGb3JjZVVzZXJH
ZXN0dXJlOjpObykKQEAgLTYyLDEzICs2NiwxNCBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMgewogICAgIH0KIAogICAgIFN0cmluZyBzb3VyY2U7CisgICAgVVJMIHNvdXJjZVVSTDsK
ICAgICBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1bmN0aW9uOwogICAgIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiBhcmd1bWVudHM7CiAgICAgRm9yY2VVc2VyR2VzdHVyZSBm
b3JjZVVzZXJHZXN0dXJlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c291cmNlIDw8IHJ1bkFzQXN5bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2Vz
dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBzb3VyY2UgPDwgc291cmNlVVJMIDw8IHJ1bkFzQXN5
bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2VzdHVyZTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzcsNiArODIsMTAgQEAg
c3RydWN0IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzb3VyY2UpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgICAg
ICBVUkwgc291cmNlVVJMOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZVVSTCkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgICAgIFJ1bkFzQXN5bmNG
dW5jdGlvbiBydW5Bc0FzeW5jRnVuY3Rpb247CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cnVuQXNBc3luY0Z1bmN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBA
IC04OSw3ICs5OCw3IEBAIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7CiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZm9yY2VVc2VyR2VzdHVyZSkpCiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3JpcHRQYXJhbWV0
ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBydW5Bc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1l
bnRzKSwgZm9yY2VVc2VyR2VzdHVyZSB9IH07CisgICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHJ1bkFz
QXN5bmNGdW5jdGlvbiwgV1RGTW92ZShhcmd1bWVudHMpLCBmb3JjZVVzZXJHZXN0dXJlIH0gfTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFlMjg4NWMwMzNiZTRhYzhkYzAyYzgxMjI0NzhhYzdjNzQzOTBjMGIu
Ljg4ODFiZDFkMWVlODM3NmQyZDgyMmY0NGU4YmNjMDE4MTNiMzM5YTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01NzMsNyArNTcz
LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJZ25vcmlu
Z0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIHNjcmkKIAogSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24oRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxkLCBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxk
LCB7IHNjcmlwdCwgVVJMIHsgfSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9KTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0LnZhbHVlKCkgOiBKU0M6OkpTVmFsdWUg
eyB9OwogfQogCkBAIC01OTIsMTAgKzU5Miw4IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRldGFpbHMgeyAiQ2Fubm90IGV4
ZWN1dGUgSmF2YVNjcmlwdCBpbiB0aGlzIGRvY3VtZW50Il9zIH0pOwogCiAgICAgc3dpdGNoIChw
YXJhbWV0ZXJzLnJ1bkFzQXN5bmNGdW5jdGlvbikgewotICAgIGNhc2UgUnVuQXNBc3luY0Z1bmN0
aW9uOjpObzogewotICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUocGFyYW1ldGVy
cy5zb3VyY2UsIFVSTChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpKSwgVGV4dFBvc2l0aW9uKCks
IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3JpcHRGZXRj
aGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpKTsKLSAgICAgICAgcmV0
dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCB3b3JsZCk7Ci0gICAgfQorICAgIGNhc2Ug
UnVuQXNBc3luY0Z1bmN0aW9uOjpObzoKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZCh7
IHBhcmFtZXRlcnMuc291cmNlLCBXVEZNb3ZlKHBhcmFtZXRlcnMuc291cmNlVVJMKSwgVGV4dFBv
c2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH0sIHdv
cmxkKTsKICAgICBjYXNlIFJ1bkFzQXN5bmNGdW5jdGlvbjo6WWVzOgogICAgICAgICByZXR1cm4g
Y2FsbEluV29ybGQoV1RGTW92ZShwYXJhbWV0ZXJzKSwgd29ybGQpOwogICAgIGRlZmF1bHQ6CkBA
IC02MzksNyArNjM3LDEzIEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6Y2Fs
bEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAKICAgICBmdW5jdGlv
blN0cmluZ0J1aWxkZXIuYXBwZW5kKCIpeyIsIHBhcmFtZXRlcnMuc291cmNlLCAifSkiKTsKIAot
ICAgIGF1dG8gc291cmNlQ29kZSA9IFNjcmlwdFNvdXJjZUNvZGUgeyBmdW5jdGlvblN0cmluZ0J1
aWxkZXIudG9TdHJpbmcoKSwgVVJMKG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBUZXh0UG9z
aXRpb24oKSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hlZFNj
cmlwdEZldGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkgfTsKKyAg
ICBhdXRvIHNvdXJjZVVSTCA9IHBhcmFtZXRlcnMuc291cmNlVVJMOworICAgIGlmICghc291cmNl
VVJMLmlzVmFsaWQoKSkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBncm9zcywgYnV0IHdo
ZW4gc2V0VGltZW91dCgpIGFuZCBzZXRJbnRlcnZhbCgpIGFyZSBwYXNzZWQgSlMgc3RyaW5ncywg
dGhlIHRocm93biBlcnJvcnMgc2hvdWxkIHVzZSB0aGUgZnJhbWUgZG9jdW1lbnQgVVJMIChhY2Nv
cmRpbmcgdG8gV1BUKS4KKyAgICAgICAgc291cmNlVVJMID0gbV9mcmFtZS5kb2N1bWVudCgpLT51
cmwoKTsKKyAgICB9CisKKyAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsg
ZnVuY3Rpb25TdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIFdURk1vdmUoc291cmNlVVJMKSwgVGV4
dFBvc2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNo
ZWRTY3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH07
CiAgICAgY29uc3QgYXV0byYganNTb3VyY2VDb2RlID0gc291cmNlQ29kZS5qc1NvdXJjZUNvZGUo
KTsKIAogICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1NvdXJjZUNvZGUucHJvdmlkZXIoKS0+dXJs
KCkuc3RyaW5nKCk7CkBAIC02OTcsNyArNzAxLDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24oRE8K
IH0KIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVVzZXJBZ2VudFNj
cmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQs
IGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKIHsKLSAgICByZXR1cm4gZXhlY3V0ZVVzZXJBZ2VudFNj
cmlwdEluV29ybGRJbnRlcm5hbCh3b3JsZCwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQs
IGZvcmNlVXNlckdlc3R1cmUgfSk7CisgICAgcmV0dXJuIGV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJ
bldvcmxkSW50ZXJuYWwod29ybGQsIHsgc2NyaXB0LCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxs
b3B0LCBmb3JjZVVzZXJHZXN0dXJlIH0pOwogfQogCiBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENv
bnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSW50ZXJuYWwoRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYjY4ZTY0NmM3OGRhYjc4
NzUzOGVmZTZiZmUzMTQzYjNkYTdjZGVjNC4uNDQ5YjcxZGYwMzhiNTAyNzM0NWRkMzEyZGMyNzYx
NTNlMGIwMGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBA
IC0yNDk1LDcgKzI0OTUsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVudChXS1BhZ2VS
ZWYgcGFnZSwgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpCiAKIHZvaWQgV0tQYWdlUnVu
SmF2YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBzY3Jp
cHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlvbiBjYWxsYmFj
aykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7IHRv
SW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZSB9LCBb
Y29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiByZXR1cm5WYWx1
ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4sIENhbGxiYWNrQmFzZTo6RXJy
b3IgZXJyb3IpIHsKKyAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5GcmFt
ZSh7IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgVVJMIHsgfSwgZmFsc2UsIFdURjo6bnVs
bG9wdCwgdHJ1ZSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKiByZXR1cm5WYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4sIENh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgY2FsbGJhY2sodG9BUEkocmV0dXJu
VmFsdWUpLCAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgPyB0b0FQSShBUEk6
OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiAwLCBjb250ZXh0KTsKICAgICB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCmluZGV4
IDhlMTBlZmZlYmU3NWFmMmU2ZWFiNWE3MTlhMzZmZGNjMTBjOGJmMWYuLmVkZjNiOTY5YzAwNDlh
YzdmODVhYzVkNWMwNzBhODI5ODZmZTJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbQpAQCAtMzYsNyArMzYsNyBAQCAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6
KFdLVXNlclNjcmlwdEluagogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAg
ICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6
OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmluZyhzb3Vy
Y2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIHsgfSwgeyB9LCBBUEk6
OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWlu
RnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5U
b3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJ
bkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6
Tm8gfSwgQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKSk7CisgICAgQVBJOjpP
YmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6
OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwo
KSwgeyB9LCB7IH0sIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0
aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9u
QmVmb3JlSW5qZWN0aW5nOjpObyB9LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3Js
ZCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtODUsNyArODUsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihX
S1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICBy
ZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVz
ZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmluZyhzb3VyY2Up
LCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIG1ha2VWZWN0b3I8U3RyaW5n
PihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwg
QVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9y
TWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVj
dEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5q
ZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rp
bmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdvcmxk
KTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4o
c2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5l
cmF0ZVVuaXF1ZVVSTCgpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlw
dEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNv
cmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3Jl
OjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRlbnRX
b3JsZC0+X2NvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2VsZjsK
IH0KQEAgLTk1LDcgKzk1LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNT
dHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6T2Jq
ZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpV
c2VyU2NyaXB0IHsgV1RGOjpTdHJpbmcoc291cmNlKSwgVVJMKGFzc29jaWF0ZWRVUkwpLCBtYWtl
VmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2Fj
eUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0
aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9u
QmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+
X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6
OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIGFzc29jaWF0
ZWRVUkwsIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0
cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JO
b3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTEx
LDcgKzExMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICop
c291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEoc2VsZiA9IFtz
dXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29u
c3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlw
dCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVV
UkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3Ry
aW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25U
aW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29u
dGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5v
dGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRX
b3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3Jp
cHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlwdDo6
Z2VuZXJhdGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCks
IG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2Vi
Q29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBX
ZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2Vi
Q29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRX
b3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTEyMSw3ICsx
MjEsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJj
ZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVj
dEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBX
VEY6OlN0cmluZyhzb3VyY2UpLCBVUkwoYXNzb2NpYXRlZFVSTCksIG1ha2VWZWN0b3I8U3RyaW5n
PihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwg
QVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9y
TWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVj
dEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5q
ZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rp
bmc6Ok5vIH0sICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOworICAgIEFQSTo6T2JqZWN0
Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2Vy
U2NyaXB0IHsgc291cmNlLCBhc3NvY2lhdGVkVVJMLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5
V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9X
ZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFt
ZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZy
YW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxs
RnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9
LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpA
QCAtMTMxLDcgKzEzMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3Ry
aW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVj
dDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNl
clNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIFVSTChhc3NvY2lhdGVkVVJMKSwgbWFrZVZl
Y3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lC
bGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlv
blRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb24g
PyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpZZXMgOiBXZWJD
b3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVudFdv
cmxkLT5fY29udGVudFdvcmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVy
PEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgYXNz
b2NpYXRlZFVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0
b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpV
c2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5uaW5n
VW50aWxOb3RpZmljYXRpb24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5q
ZWN0aW5nOjpZZXMgOiBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5n
OjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxm
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggZTY2NGI2NTFkNTRkNDE0MWQ0MDA1ZDFhYzdjNGI3MjVlNWMwMGI4MC4uYzI4N2UxNmU2
ZDc1Njg5MDgwYzUyNmVhZWVmOWI4MTA4M2ViMDc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04MTYsMTcgKzgxNiwxNyBAQCBzdGF0
aWMgV0tFcnJvckNvZGUgY2FsbGJhY2tFcnJvckNvZGUoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yIGVycm9yKQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZh
U2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqKSlj
b21wbGV0aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNj
cmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2Vy
R2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQg
Y29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0
ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJj
ZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpu
aWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29t
cGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJp
bmcgKilqYXZhU2NyaXB0U3RyaW5nIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNv
bnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29t
cGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3Jp
cHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdl
c3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5k
bGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0Omph
dmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhTb3VyY2VVUkw6bmlsIHdpdGhB
cmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29u
dGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAo
dm9pZCljYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXJn
dW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGluQ29udGVu
dFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIFtz
ZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246
WUVTIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6
bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5k
bGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNB
c3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRoQXJndW1lbnRzOmFyZ3VtZW50
cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOm5pbCBpbldvcmxkOmNvbnRlbnRXb3JsZCBj
b21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIHN0YXRpYyBib29sIHZh
bGlkYXRlQXJndW1lbnQoaWQgYXJndW1lbnQpCkBAIC04NjMsNyArODYzLDcgQEAgc3RhdGljIGJv
b2wgdmFsaWRhdGVBcmd1bWVudChpZCBhcmd1bWVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LS0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5n
IGFzQXN5bmNGdW5jdGlvbjooQk9PTClhc0FzeW5jRnVuY3Rpb24gd2l0aEFyZ3VtZW50czooTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJlOihC
T09MKWZvcmNlVXNlckdlc3R1cmUgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbldvcmxk
OihXS0NvbnRlbnRXb3JsZCAqKXdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwg
TlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0
OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOihCT09MKWFzQXN5
bmNGdW5jdGlvbiB3aXRoU291cmNlVVJMOihOU1VSTCAqKXNvdXJjZVVSTCB3aXRoQXJndW1lbnRz
OihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGZvcmNlVXNlckdlc3R1
cmU6KEJPT0wpZm9yY2VVc2VyR2VzdHVyZSBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGlu
V29ybGQ6KFdLQ29udGVudFdvcmxkICopd29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgYXV0byBoYW5kbGVyID0g
YWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pOwogCkBAIC05MDQsNyArOTA0LDcgQEAg
LSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcg
YXNBc3luY0Z1bmN0aW9uOihCT09MKWEKICAgICAgICAgICAgIGZyYW1lSUQgPSBtYWtlT2JqZWN0
SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBlPihpZGVudGlmaWVyKTsKICAg
ICB9CiAKLSAgICBfcGFnZS0+cnVuSmF2YVNjcmlwdEluRnJhbWVJblNjcmlwdFdvcmxkKFdlYkNv
cmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsgamF2YVNjcmlwdFN0cmluZywgISFhc0FzeW5j
RnVuY3Rpb24sIFdURk1vdmUoYXJndW1lbnRzTWFwKSwgISFmb3JjZVVzZXJHZXN0dXJlIH0sIGZy
YW1lSUQsICp3b3JsZC0+X2NvbnRlbnRXb3JsZC5nZXQoKSwgW2hhbmRsZXJdKEFQSTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6U2NyaXB0VmFsdWVDYWxsYmFjazo6
RXJyb3IgZXJyb3JDb2RlKSB7CisgICAgX3BhZ2UtPnJ1bkphdmFTY3JpcHRJbkZyYW1lSW5TY3Jp
cHRXb3JsZCh7IGphdmFTY3JpcHRTdHJpbmcsIHNvdXJjZVVSTCwgISFhc0FzeW5jRnVuY3Rpb24s
IFdURk1vdmUoYXJndW1lbnRzTWFwKSwgISFmb3JjZVVzZXJHZXN0dXJlIH0sIGZyYW1lSUQsICp3
b3JsZC0+X2NvbnRlbnRXb3JsZC5nZXQoKSwgW2hhbmRsZXJdKEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6U2NyaXB0VmFsdWVDYWxsYmFjazo6RXJyb3IgZXJy
b3JDb2RlKSB7CiAgICAgICAgIGlmICghaGFuZGxlcikKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMjIwMCwxNyArMjIwMCwyMiBAQCAtICh2b2lkKV9pc0pJVEVuYWJsZWQ6KHZvaWQoXikoQk9P
TCkpY29tcGxldGlvbkhhbmRsZXIKIAogLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91
dFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgW3Nl
bGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpO
TyB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOk5PIGluRnJhbWU6bmlsIGluV29y
bGQ6V0tDb250ZW50V29ybGQucGFnZVdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25I
YW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcg
YXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhTb3VyY2VVUkw6bmlsIHdpdGhBcmd1bWVudHM6bmlsIGZv
cmNlVXNlckdlc3R1cmU6Tk8gaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdl
V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lk
KV9jYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWZ1bmN0aW9uQm9keSBhcmd1bWVudHM6
KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5GcmFtZTooV0tGcmFt
ZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29y
bGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICplcnJvcikpY29tcGxl
dGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmZ1bmN0aW9uQm9k
eSBhc0FzeW5jRnVuY3Rpb246WUVTIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZvcmNlVXNlckdl
c3R1cmU6WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhh
bmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6
ZnVuY3Rpb25Cb2R5IGFzQXN5bmNGdW5jdGlvbjpZRVMgd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFy
Z3VtZW50czphcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldv
cmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9
CiAKIC0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3Ry
aW5nIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVu
dFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNF
cnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgW3NlbGYgX2V2YWx1YXRlSmF2
YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoQXJndW1lbnRz
Om5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6Y29udGVudFdv
cmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZh
bHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhT
b3VyY2VVUkw6bmlsIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJh
bWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlv
bkhhbmRsZXJdOworfQorCistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICop
amF2YVNjcmlwdFN0cmluZyB3aXRoU291cmNlVVJMOihOU1VSTCAqKXVybCBpbkZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRX
b3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21w
bGV0aW9uSGFuZGxlcgoreworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlw
dFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDp1cmwgd2l0aEFyZ3VtZW50
czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRX
b3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZvaWQp
X3VwZGF0ZVdlYnNpdGVQb2xpY2llczooX1dLV2Vic2l0ZVBvbGljaWVzICopd2Vic2l0ZVBvbGlj
aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAppbmRleCA0NTM5NTA2ZDAzOTE4ZDYxNGZiNmZlNjY4NDNkN2FhZjA3Y2QxNTI0
Li5lZWIyMzg5MzRjMmI3MTVmNzdmZmMyYTM2Y2U2NWZhMTA3ZjNlMmVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAg
LTIxMSw2ICsyMTEsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogLSAodm9pZClfZXZhbHVhdGVK
YXZhU2NyaXB0V2l0aG91dFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClf
ZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgaW5GcmFtZToo
V0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250
ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICogZXJyb3Ip
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICop
amF2YVNjcmlwdFN0cmluZyB3aXRoU291cmNlVVJMOihOU1VSTCAqKXNvdXJjZVVSTCBpbkZyYW1l
OihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNv
bnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJv
cikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2NhbGxBc3luY0phdmFTY3JpcHQ6KE5TU3RyaW5n
ICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAq
KWFyZ3VtZW50cyBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihX
S0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
aWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRMYXlvdXRNb2RlOikgX1dLTGF5b3V0TW9kZSBfbGF5b3V0TW9kZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAK
aW5kZXggOGM1NGI0MjNmZjkyNjZiODMwNzM4NWRkMTNjM2Y0NDkyNGZjMmU0NS4uNjRiZjcxOTNi
YTVmODA3NDZjMTRlYzJhYmM1MzQ0NzAxOTAyODkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTM2ODMsNyArMzY4Myw3
IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3J1bl9qYXZhc2NyaXB0KFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGNvbnN0IGdjaGFyKiBzY3JpcHQsCiAgICAgZ19yZXR1cm5faWZfZmFpbChzY3JpcHQp
OwogCiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tfbmV3KHdlYlZp
ZXcsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKLSAgICBnZXRQYWdlKHdlYlZp
ZXcpLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7IFN0cmluZzo6ZnJvbVVURjgoc2NyaXB0KSwg
ZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZSB9LCBbdGFzayA9IFdURk1vdmUodGFzayldKEFQSTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFsPEV4
Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewor
ICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgU3RyaW5nOjpm
cm9tVVRGOChzY3JpcHQpLCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sIFt0
YXNrID0gV1RGTW92ZSh0YXNrKV0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0
OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIEV4Y2VwdGlvbkRldGFpbHMgZXhjZXB0
aW9uRGV0YWlsczsKICAgICAgICAgaWYgKGRldGFpbHMpCiAgICAgICAgICAgICBleGNlcHRpb25E
ZXRhaWxzID0gKmRldGFpbHM7CkBAIC0zNzg1LDcgKzM3ODUsNyBAQCB2b2lkIHdlYmtpdF93ZWJf
dmlld19ydW5famF2YXNjcmlwdF9pbl93b3JsZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBnY2hhcgogCiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tfbmV3
KHdlYlZpZXcsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKICAgICBhdXRvIHdv
cmxkID0gQVBJOjpDb250ZW50V29ybGQ6OnNoYXJlZFdvcmxkV2l0aE5hbWUoU3RyaW5nOjpmcm9t
VVRGOCh3b3JsZE5hbWUpKTsKLSAgICBnZXRQYWdlKHdlYlZpZXcpLnJ1bkphdmFTY3JpcHRJbkZy
YW1lSW5TY3JpcHRXb3JsZCh7IFN0cmluZzo6ZnJvbVVURjgoc2NyaXB0KSwgZmFsc2UsIFdURjo6
bnVsbG9wdCwgdHJ1ZSB9LCBXVEY6Om51bGxvcHQsIHdvcmxkLmdldCgpLCBbdGFzayA9IFdURk1v
dmUodGFzayldKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFs
dWUsIE9wdGlvbmFsPEV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tC
YXNlOjpFcnJvcikgeworICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluRnJhbWVJ
blNjcmlwdFdvcmxkKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBVUkwgeyB9LCBmYWxzZSwg
V1RGOjpudWxsb3B0LCB0cnVlIH0sIFdURjo6bnVsbG9wdCwgd29ybGQuZ2V0KCksIFt0YXNrID0g
V1RGTW92ZSh0YXNrKV0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSwgT3B0aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIEV4Y2VwdGlvbkRldGFpbHMgZXhjZXB0aW9uRGV0
YWlsczsKICAgICAgICAgaWYgKGRldGFpbHMpCiAgICAgICAgICAgICBleGNlcHRpb25EZXRhaWxz
ID0gKmRldGFpbHM7CkBAIC0zODI3LDcgKzM4MjcsNyBAQCBzdGF0aWMgdm9pZCByZXNvdXJjZXNT
dHJlYW1SZWFkQ2FsbGJhY2soR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwg
ZwogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhnX3Rhc2tf
Z2V0X3NvdXJjZV9vYmplY3QodGFzay5nZXQoKSkpOwogICAgIGdwb2ludGVyIG91dHB1dFN0cmVh
bURhdGEgPSBnX21lbW9yeV9vdXRwdXRfc3RyZWFtX2dldF9kYXRhKEdfTUVNT1JZX09VVFBVVF9T
VFJFQU0ob2JqZWN0KSk7Ci0gICAgZ2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5NYWlu
RnJhbWUoeyBTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ2NoYXIqPihv
dXRwdXRTdHJlYW1EYXRhKSksIGZhbHNlLCBXVEY6Om51bGxvcHQsIHRydWV9LAorICAgIGdldFBh
Z2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgU3RyaW5nOjpmcm9tVVRGOChy
ZWludGVycHJldF9jYXN0PGNvbnN0IGdjaGFyKj4ob3V0cHV0U3RyZWFtRGF0YSkpLCBVUkwgeyB9
LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sCiAgICAgICAgIFt0YXNrXShBUEk6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBPcHRpb25hbDxFeGNlcHRp
b25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAg
ICAgICAgIEV4Y2VwdGlvbkRldGFpbHMgZXhjZXB0aW9uRGV0YWlsczsKICAgICAgICAgICAgIGlm
IChkZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXIuY3BwCmluZGV4IGYzZjI4YTQ3ZTNkYWJkYTFhMmMyODNlM2VmZDQwYTIyOWU2MDU4ZWMuLmM3
MTkwZTI4YTdhMmZlNjY0NzQ1MmNjZjIwOTE0NDNiNjNhNWYxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9j
b2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29j
a2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTExOCw3ICsxMTgsNyBA
QCB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6aW5zcGVjdChjb25zdCBTdHJp
bmcmIGhvc3RBbmRQb3J0LCBDb25uZWN0aQogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29s
SGFuZGxlcjo6cnVuU2NyaXB0KGNvbnN0IFN0cmluZyYgc2NyaXB0KQogewotICAgIG1fcGFnZS5y
dW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZh
bHNlIH0sIAorICAgIG1fcGFnZS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBzY3JpcHQsIFVS
TCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZhbHNlIH0sIAogICAgICAgICBbXShBUEk6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSosIE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+
IGV4Y2VwdGlvbkRldGFpbHMsIENhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAgICAgICAgIGlm
IChleGNlcHRpb25EZXRhaWxzKQogICAgICAgICAgICAgICAgIExPR19FUlJPUigiRXhjZXB0aW9u
IHJ1bm5pbmcgc2NyaXB0IFwiJXNcIiIsIGV4Y2VwdGlvbkRldGFpbHMtPm1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399397</attachid>
            <date>2020-05-14 13:14:09 -0700</date>
            <delta_ts>2020-05-14 13:30:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211904-20200514131409.patch</filename>
            <type>text/plain</type>
            <size>31939</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4NjBiNjQ4NTk3YTcx
Y2Y4YWU5MzMwYjY3YWJhMWViMzc0ZGI2Mi4uYTE2OTEyZWQ3OGY2OGI2NDFkNTE2MDcyZTQ2Yzgw
OGJkMmIyZDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc291cmNlVVJM
IHRvIF9ldmFsdWF0ZUphdmFTY3JpcHQ6IHNvIHRoZSBzY3JpcHRzIGFwcGVhciBpbiBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExOTA0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzYyMDc0Mzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkZGVkIHNvdXJjZVVSTCB0byBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycy4gVXNlIGl0IGluc3RlYWQgb2YgdGhlIGZyYW1lJ3MgZG9jdW1lbnQg
VVJMLgorCisgICAgICAgICogYmluZGluZ3MvanMvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzOjpSdW5KYXZhU2NyaXB0
UGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGRJ
Z25vcmluZ0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpl
eGVjdXRlU2NyaXB0SW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpjYWxsSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVj
dXRlVXNlckFnZW50U2NyaXB0SW5Xb3JsZCk6CisKIDIwMjAtMDUtMDYgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBub3ctdW5uZWVkZWQgVVNFKEdSQU1N
QVJfQ0hFQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxZWQ0NDhlNGYwMzczMzc0ZGNlZmFjMGFhZjRkYTJh
OTMzMjViYWMuLmM5MGNlYjZlN2YxNzhlZWY2YmYyZTg4YjBiOTAyOTE4MmYxNmU1NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTQgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90
aHlAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb3VyY2VVUkwgdG8gX2V2YWx1YXRlSmF2YVNj
cmlwdDogc28gdGhlIHNjcmlwdHMgYXBwZWFyIGluIFdlYiBJbnNwZWN0b3IuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5MDQKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vNjIwNzQzNzYKKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28u
CisKKyAgICAgICAgQWRkZWQgc291cmNlVVJMIHZlcnNpb24gb2YgX2V2YWx1YXRlSmF2YVNjcmlw
dDogdGhhdCBwYXNzZXMgdGhlIHNvdXJjZVVSTCB0byBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycy4K
KyAgICAgICAgSWYgdGhlIHNvdXJjZVVSTCBpcyBpbnZhbGlkLCBnZW5lcmF0ZSBhIHVuaXF1ZSB1
c2VyIHNjcmlwdCBVUkwgc28gdGhlIHNvdXJjZSBjb2RlIGVycm9ycyBhcmUgbm90IHNob3dpbmcK
KyAgICAgICAgdXAgd2l0aCB0aGUgZnJhbWUncyBkb2N1bWVudCBVUkwgYW5kIGJvZ3VzIGxvY2F0
aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKTogcGFzcyBBUEk6OlVzZXJTY3JpcHQ6Omdl
bmVyYXRlVW5pcXVlVVJMKCkgZm9yIHRoZSBzb3VyY2VVUkwuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW06CisgICAgICAgICgtW1dLVXNlclNjcmlwdCBpbml0
V2l0aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6XSk6IENsZWFuIHVwIFdl
YkNvcmU6OlVzZXJTY3JpcHQgaW5pdGlhbGl6ZXIuCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBf
aW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRl
bGlzdDpsZWdhY3lCbGFja2xpc3Q6dXNlckNvbnRlbnRXb3JsZDpdKTogRGl0dG8uCisgICAgICAg
ICgtW1dLVXNlclNjcmlwdCBfaW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJh
bWVPbmx5OmxlZ2FjeVdoaXRlbGlzdDpsZWdhY3lCbGFja2xpc3Q6YXNzb2NpYXRlZFVSTDp1c2Vy
Q29udGVudFdvcmxkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0
aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6bGVnYWN5V2hpdGVsaXN0Omxl
Z2FjeUJsYWNrbGlzdDpjb250ZW50V29ybGQ6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1VzZXJT
Y3JpcHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFpbkZyYW1lT25seTpsZWdh
Y3lXaGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OmFzc29jaWF0ZWRVUkw6Y29udGVudFdvcmxkOl0p
OiBEaXR0by4KKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rp
b25UaW1lOmZvck1haW5GcmFtZU9ubHk6bGVnYWN5V2hpdGVsaXN0OmxlZ2FjeUJsYWNrbGlzdDph
c3NvY2lhdGVkVVJMOmNvbnRlbnRXb3JsZDpkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpd
KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZXZhbHVhdGVKYXZhU2NyaXB0OmFzQXN5bmNGdW5jdGlvbjp3
aXRoQXJndW1lbnRzOmZvcmNlVXNlckdlc3R1cmU6aW5GcmFtZTppbldvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBSZW5hbWVkIHRvIGFkZCBzb3VyY2VVUkwuCisgICAgICAgICgtW1dLV2ViVmll
dyBfZXZhbHVhdGVKYXZhU2NyaXB0OmFzQXN5bmNGdW5jdGlvbjp3aXRoU291cmNlVVJMOndpdGhB
cmd1bWVudHM6Zm9yY2VVc2VyR2VzdHVyZTppbkZyYW1lOmluV29ybGQ6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6IEFkZGVkIHNvdXJjZVVSTC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ldmFsdWF0ZUph
dmFTY3JpcHQ6d2l0aFNvdXJjZVVSTDppbkZyYW1lOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBBZGRlZC4gUGFzcyBzb3VyY2VVUkwgdGhyb3VnaC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFuZGxlcjpdKTogQ2FsbCBuZXcg
bWV0aG9kIHdpdGggc291cmNlVVJMIGFzIG5pbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8u
CisgICAgICAgICgtW1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3VtZW50czppbkNv
bnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dLV2Vi
VmlldyBfY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6aW5GcmFtZTppbkNvbnRlbnRXb3Js
ZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dLV2ViVmlldyBfZXZh
bHVhdGVKYXZhU2NyaXB0OmluRnJhbWU6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6
XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oOgorCiAyMDIwLTA1LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbGltaW5hdGUgY2hlY2tzIG9mIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKSBpbiBD
b2NvYS1zcGVjaWZpYyBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SdW5KYXZhU2NyaXB0UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaAppbmRleCA0N2EzZmZiMDUzNzc1Y2ExNGEzY2E4ZjE4
OWI0ZDc2ZmE4MTdlN2JhLi42ZGNiOWRkZWM1MTcxNDY2ZTljOTU1MjBkZDRlMWNkYzlmMWRkYzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SdW5KYXZhU2NyaXB0UGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1J1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zNywyNCArMzgsMjcg
QEAgZW51bSBjbGFzcyBGb3JjZVVzZXJHZXN0dXJlIDogYm9vbCB7IE5vLCBZZXMgfTsKIHVzaW5n
IEFyZ3VtZW50V2lyZUJ5dGVzTWFwID0gSGFzaE1hcDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj47
CiAKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7Ci0gICAgUnVuSmF2YVNjcmlwdFBh
cmFtZXRlcnMoU3RyaW5nJiYgc291cmNlLCBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1
bmN0aW9uLCBPcHRpb25hbDxBcmd1bWVudFdpcmVCeXRlc01hcD4mJiBhcmd1bWVudHMsIEZvcmNl
VXNlckdlc3R1cmUgZm9yY2VVc2VyR2VzdHVyZSkKKyAgICBSdW5KYXZhU2NyaXB0UGFyYW1ldGVy
cyhTdHJpbmcmJiBzb3VyY2UsIFVSTCYmIHNvdXJjZVVSTCwgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1
bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1l
bnRzLCBGb3JjZVVzZXJHZXN0dXJlIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291cmNl
KFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VVUkwp
KQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24pCiAgICAg
ICAgICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJH
ZXN0dXJlKGZvcmNlVXNlckdlc3R1cmUpCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgc291cmNlLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlv
biwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNl
VXNlckdlc3R1cmUpCisgICAgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIFVSTCYmIHNvdXJjZVVSTCwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQogICAgICAgICA6IHNvdXJjZShzb3VyY2UpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUo
c291cmNlVVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0
aW9uID8gUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXMgOiBSdW5Bc0FzeW5jRnVuY3Rpb246Ok5vKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlID8gRm9yY2VVc2VyR2VzdHVyZTo6WWVzIDogRm9y
Y2VVc2VyR2VzdHVyZTo6Tm8pCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3JpcHRQYXJh
bWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgVVJMJiYgc291
cmNlVVJMLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0
ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291
cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VV
UkwpKQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24gPyBS
dW5Bc0FzeW5jRnVuY3Rpb246OlllcyA6IFJ1bkFzQXN5bmNGdW5jdGlvbjo6Tm8pCiAgICAgICAg
ICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJHZXN0
dXJlKGZvcmNlVXNlckdlc3R1cmUgPyBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgOiBGb3JjZVVzZXJH
ZXN0dXJlOjpObykKQEAgLTYyLDEzICs2NiwxNCBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMgewogICAgIH0KIAogICAgIFN0cmluZyBzb3VyY2U7CisgICAgVVJMIHNvdXJjZVVSTDsK
ICAgICBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1bmN0aW9uOwogICAgIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiBhcmd1bWVudHM7CiAgICAgRm9yY2VVc2VyR2VzdHVyZSBm
b3JjZVVzZXJHZXN0dXJlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c291cmNlIDw8IHJ1bkFzQXN5bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2Vz
dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBzb3VyY2UgPDwgc291cmNlVVJMIDw8IHJ1bkFzQXN5
bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2VzdHVyZTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzcsNiArODIsMTAgQEAg
c3RydWN0IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzb3VyY2UpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgICAg
ICBVUkwgc291cmNlVVJMOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZVVSTCkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgICAgIFJ1bkFzQXN5bmNG
dW5jdGlvbiBydW5Bc0FzeW5jRnVuY3Rpb247CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cnVuQXNBc3luY0Z1bmN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBA
IC04OSw3ICs5OCw3IEBAIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7CiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZm9yY2VVc2VyR2VzdHVyZSkpCiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3JpcHRQYXJhbWV0
ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBydW5Bc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1l
bnRzKSwgZm9yY2VVc2VyR2VzdHVyZSB9IH07CisgICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHJ1bkFz
QXN5bmNGdW5jdGlvbiwgV1RGTW92ZShhcmd1bWVudHMpLCBmb3JjZVVzZXJHZXN0dXJlIH0gfTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFlMjg4NWMwMzNiZTRhYzhkYzAyYzgxMjI0NzhhYzdjNzQzOTBjMGIu
LjliODJiMjQzODI0NWZkODZhZTUyZTk3MjM3YjM0ZmYwOGFiZWIxOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01NzMsNyArNTcz
LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJZ25vcmlu
Z0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIHNjcmkKIAogSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24oRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxkLCBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxk
LCB7IHNjcmlwdCwgVVJMIHsgfSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9KTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0LnZhbHVlKCkgOiBKU0M6OkpTVmFsdWUg
eyB9OwogfQogCkBAIC01OTIsMTAgKzU5Miw4IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRldGFpbHMgeyAiQ2Fubm90IGV4
ZWN1dGUgSmF2YVNjcmlwdCBpbiB0aGlzIGRvY3VtZW50Il9zIH0pOwogCiAgICAgc3dpdGNoIChw
YXJhbWV0ZXJzLnJ1bkFzQXN5bmNGdW5jdGlvbikgewotICAgIGNhc2UgUnVuQXNBc3luY0Z1bmN0
aW9uOjpObzogewotICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUocGFyYW1ldGVy
cy5zb3VyY2UsIFVSTChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpKSwgVGV4dFBvc2l0aW9uKCks
IEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRTY3JpcHRGZXRj
aGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpKTsKLSAgICAgICAgcmV0
dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCB3b3JsZCk7Ci0gICAgfQorICAgIGNhc2Ug
UnVuQXNBc3luY0Z1bmN0aW9uOjpObzoKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZCh7
IHBhcmFtZXRlcnMuc291cmNlLCBXVEZNb3ZlKHBhcmFtZXRlcnMuc291cmNlVVJMKSwgVGV4dFBv
c2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH0sIHdv
cmxkKTsKICAgICBjYXNlIFJ1bkFzQXN5bmNGdW5jdGlvbjo6WWVzOgogICAgICAgICByZXR1cm4g
Y2FsbEluV29ybGQoV1RGTW92ZShwYXJhbWV0ZXJzKSwgd29ybGQpOwogICAgIGRlZmF1bHQ6CkBA
IC02MzksMTYgKzYzNywyMiBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6OmNh
bGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogCiAgICAgZnVuY3Rp
b25TdHJpbmdCdWlsZGVyLmFwcGVuZCgiKXsiLCBwYXJhbWV0ZXJzLnNvdXJjZSwgIn0pIik7CiAK
LSAgICBhdXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdC
dWlsZGVyLnRvU3RyaW5nKCksIFVSTChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpKSwgVGV4dFBv
c2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpIH07Cisg
ICAgYXV0byBzb3VyY2VVUkwgPSBwYXJhbWV0ZXJzLnNvdXJjZVVSTDsKKyAgICBpZiAoIXNvdXJj
ZVVSTC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgZ3Jvc3MsIGJ1dCB3
aGVuIHNldFRpbWVvdXQoKSBhbmQgc2V0SW50ZXJ2YWwoKSBhcmUgcGFzc2VkIEpTIHN0cmluZ3Ms
IHRoZSB0aHJvd24gZXJyb3JzIHNob3VsZCB1c2UgdGhlIGZyYW1lIGRvY3VtZW50IFVSTCAoYWNj
b3JkaW5nIHRvIFdQVCkuCisgICAgICAgIHNvdXJjZVVSTCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+
dXJsKCk7CisgICAgfQorCisgICAgYXV0byBzb3VyY2VDb2RlID0gU2NyaXB0U291cmNlQ29kZSB7
IGZ1bmN0aW9uU3RyaW5nQnVpbGRlci50b1N0cmluZygpLCBXVEZNb3ZlKHNvdXJjZVVSTCksIFRl
eHRQb3NpdGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSwgQ2Fj
aGVkU2NyaXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2hhcnNldCgpKSB9
OwogICAgIGNvbnN0IGF1dG8mIGpzU291cmNlQ29kZSA9IHNvdXJjZUNvZGUuanNTb3VyY2VDb2Rl
KCk7CiAKLSAgICBTdHJpbmcgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnVy
bCgpLnN0cmluZygpOworICAgIFN0cmluZyBzb3VyY2VVUkxTdHJpbmcgPSBqc1NvdXJjZUNvZGUu
cHJvdmlkZXIoKS0+dXJsKCkuc3RyaW5nKCk7CiAgICAgY29uc3QgU3RyaW5nKiBzYXZlZFNvdXJj
ZVVSTCA9IG1fc291cmNlVVJMOwotICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKKyAgICBt
X3NvdXJjZVVSTCA9ICZzb3VyY2VVUkxTdHJpbmc7CiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3Rv
cihtX2ZyYW1lKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRl
U2NyaXB0KG1fZnJhbWUsIHNvdXJjZVVSTCwgc291cmNlQ29kZS5zdGFydExpbmUoKSwgc291cmNl
Q29kZS5zdGFydENvbHVtbigpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxF
dmFsdWF0ZVNjcmlwdChtX2ZyYW1lLCBzb3VyY2VVUkxTdHJpbmcsIHNvdXJjZUNvZGUuc3RhcnRM
aW5lKCksIHNvdXJjZUNvZGUuc3RhcnRDb2x1bW4oKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4
Y2VwdGlvbj4gZXZhbHVhdGlvbkV4Y2VwdGlvbjsKICAgICBPcHRpb25hbDxFeGNlcHRpb25EZXRh
aWxzPiBvcHRpb25hbERldGFpbHM7CkBAIC02OTcsNyArNzAxLDcgQEAgSlNDOjpKU1ZhbHVlIFNj
cmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNl
cHRpb24oRE8KIH0KIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVVz
ZXJBZ2VudFNjcmlwdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgU3RyaW5n
JiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkKIHsKLSAgICByZXR1cm4gZXhlY3V0ZVVz
ZXJBZ2VudFNjcmlwdEluV29ybGRJbnRlcm5hbCh3b3JsZCwgeyBzY3JpcHQsIGZhbHNlLCBXVEY6
Om51bGxvcHQsIGZvcmNlVXNlckdlc3R1cmUgfSk7CisgICAgcmV0dXJuIGV4ZWN1dGVVc2VyQWdl
bnRTY3JpcHRJbldvcmxkSW50ZXJuYWwod29ybGQsIHsgc2NyaXB0LCBVUkwgeyB9LCBmYWxzZSwg
V1RGOjpudWxsb3B0LCBmb3JjZVVzZXJHZXN0dXJlIH0pOwogfQogCiBWYWx1ZU9yRXhjZXB0aW9u
IFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVVc2VyQWdlbnRTY3JpcHRJbldvcmxkSW50ZXJuYWwo
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYjY4ZTY0
NmM3OGRhYjc4NzUzOGVmZTZiZmUzMTQzYjNkYTdjZGVjNC4uNDQ5YjcxZGYwMzhiNTAyNzM0NWRk
MzEyZGMyNzYxNTNlMGIwMGZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC0yNDk1LDcgKzI0OTUsNyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VTdGF0ZUNsaWVu
dChXS1BhZ2VSZWYgcGFnZSwgV0tQYWdlU3RhdGVDbGllbnRCYXNlKiBjbGllbnQpCiAKIHZvaWQg
V0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmlu
Z1JlZiBzY3JpcHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLUGFnZVJ1bkphdmFTY3JpcHRGdW5jdGlv
biBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZSh7IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwg
dHJ1ZSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBy
ZXR1cm5WYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4sIENhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICB0b0ltcGwocGFnZVJlZiktPnJ1bkphdmFTY3JpcHRJ
bk1haW5GcmFtZSh7IHRvSW1wbChzY3JpcHRSZWYpLT5zdHJpbmcoKSwgVVJMIHsgfSwgZmFsc2Us
IFdURjo6bnVsbG9wdCwgdHJ1ZSB9LCBbY29udGV4dCwgY2FsbGJhY2tdKEFQSTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiByZXR1cm5WYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0
YWlscz4sIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgY2FsbGJhY2sodG9B
UEkocmV0dXJuVmFsdWUpLCAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgPyB0
b0FQSShBUEk6OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiAwLCBjb250ZXh0KTsKICAgICB9KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJT
Y3JpcHQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0
Lm1tCmluZGV4IDhlMTBlZmZlYmU3NWFmMmU2ZWFiNWE3MTlhMzZmZGNjMTBjOGJmMWYuLmVkZjNi
OTY5YzAwNDlhYzdmODVhYzVkNWMwNzBhODI5ODZmZTJiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbQpAQCAtMzYsNyArMzYsNyBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVj
dGlvblRpbWU6KFdLVXNlclNjcmlwdEluagogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0p
KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3Jh
cHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0
cmluZyhzb3VyY2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIHsgfSwg
eyB9LCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUp
LCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
OjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUlu
amVjdGluZzo6Tm8gfSwgQVBJOjpDb250ZW50V29ybGQ6OnBhZ2VDb250ZW50V29ybGQoKSk7Cisg
ICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYs
IFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJhdGVV
bmlxdWVVUkwoKSwgeyB9LCB7IH0sIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRp
bWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90
aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNv
bnRlbnRXb3JsZCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtODUsNyArODUsNyBAQCAt
IChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rp
b25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBl
cjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBXVEY6OlN0cmlu
Zyhzb3VyY2UpLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVlVVJMKCksIG1ha2VWZWN0
b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5Qmxh
Y2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25U
aW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZv
cmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNl
clNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2Ny
aXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVs
aXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3Jl
VXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkg
PyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25s
eSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVz
LCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNl
ckNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1
cm4gc2VsZjsKIH0KQEAgLTk1LDcgKzk1LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNv
dXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBX
ZWJDb3JlOjpVc2VyU2NyaXB0IHsgV1RGOjpTdHJpbmcoc291cmNlKSwgVVJMKGFzc29jaWF0ZWRV
UkwpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJp
bmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRp
bWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90
aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqdXNlckNvbnRlbnRXb3JsZC0+X2NvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3Jh
cHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2Us
IGFzc29jaWF0ZWRVUkwsIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtl
VmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6
OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29y
ZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6
OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdv
cmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwog
fQpAQCAtMTExLDcgKzExMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9i
amVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6
VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQSTo6VXNlclNjcmlwdDo6Z2VuZXJh
dGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VW
ZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6
V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRXb3JsZC0+
X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6
OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIEFQSTo6VXNl
clNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdo
aXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2Vi
Q29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVP
bmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFt
ZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZy
YW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwg
KmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAg
LTEyMSw3ICsxMjEsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmlu
ZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6
OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJT
Y3JpcHQgeyBXVEY6OlN0cmluZyhzb3VyY2UpLCBVUkwoYXNzb2NpYXRlZFVSTCksIG1ha2VWZWN0
b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5Qmxh
Y2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25U
aW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZv
cmVJbmplY3Rpbmc6Ok5vIH0sICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOworICAgIEFQ
STo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJD
b3JlOjpVc2VyU2NyaXB0IHsgc291cmNlLCBhc3NvY2lhdGVkVVJMLCBtYWtlVmVjdG9yPFN0cmlu
Zz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCks
IEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZv
ck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmpl
Y3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0
aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQpAQCAtMTMxLDcgKzEzMSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3Vy
Y2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBB
UEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2Vi
Q29yZTo6VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIFVSTChhc3NvY2lhdGVkVVJM
KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5n
PihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
KGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVmZXJSdW5uaW5nVW50aWxOb3Rp
ZmljYXRpb24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpZ
ZXMgOiBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAq
Y29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0
SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNv
dXJjZSwgYXNzb2NpYXRlZFVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCks
IG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2Vi
Q29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBX
ZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgZGVm
ZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb24gPyBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9u
QmVmb3JlSW5qZWN0aW5nOjpZZXMgOiBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3Jl
SW5qZWN0aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJl
dHVybiBzZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggZTY2NGI2NTFkNTRkNDE0MWQ0MDA1ZDFhYzdjNGI3MjVlNWMwMGI4MC4u
YzI4N2UxNmU2ZDc1Njg5MDgwYzUyNmVhZWVmOWI4MTA4M2ViMDc0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC04MTYsMTcgKzgxNiwx
NyBAQCBzdGF0aWMgV0tFcnJvckNvZGUgY2FsbGJhY2tFcnJvckNvZGUoV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJp
bmcgKilqYXZhU2NyaXB0U3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNF
cnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3Jp
cHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aEFyZ3VtZW50czpuaWwg
Zm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5w
YWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxm
IF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8g
d2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMg
aW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhh
bmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lkKWV2YWx1YXRlSmF2YVNjcmlw
dDooTlNTdHJpbmcgKilqYXZhU2NyaXB0U3RyaW5nIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRX
b3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0
OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVudHM6bmlsIGZv
cmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZh
U2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhTb3VyY2VVUkw6
bmlsIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGlu
V29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsK
IH0KIAogLSAodm9pZCljYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRT
dHJpbmcgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRz
IGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlcgog
ewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5j
RnVuY3Rpb246WUVTIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6WUVT
IGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBs
ZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRT
dHJpbmcgYXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRoQXJndW1lbnRz
OmFyZ3VtZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOm5pbCBpbldvcmxkOmNvbnRl
bnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIHN0YXRp
YyBib29sIHZhbGlkYXRlQXJndW1lbnQoaWQgYXJndW1lbnQpCkBAIC04NjMsNyArODYzLDcgQEAg
c3RhdGljIGJvb2wgdmFsaWRhdGVBcmd1bWVudChpZCBhcmd1bWVudCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLS0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2Ny
aXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjooQk9PTClhc0FzeW5jRnVuY3Rpb24gd2l0aEFyZ3Vt
ZW50czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBmb3JjZVVzZXJH
ZXN0dXJlOihCT09MKWZvcmNlVXNlckdlc3R1cmUgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFt
ZSBpbldvcmxkOihXS0NvbnRlbnRXb3JsZCAqKXdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShpZCwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClfZXZhbHVhdGVK
YXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOihC
T09MKWFzQXN5bmNGdW5jdGlvbiB3aXRoU291cmNlVVJMOihOU1VSTCAqKXNvdXJjZVVSTCB3aXRo
QXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGZvcmNl
VXNlckdlc3R1cmU6KEJPT0wpZm9yY2VVc2VyR2VzdHVyZSBpbkZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGluV29ybGQ6KFdLQ29udGVudFdvcmxkICopd29ybGQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgYXV0byBo
YW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXIgY29weV0pOwogCkBAIC05MDQsNyAr
OTA0LDcgQEAgLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3Jp
cHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOihCT09MKWEKICAgICAgICAgICAgIGZyYW1lSUQgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBlPihpZGVudGlm
aWVyKTsKICAgICB9CiAKLSAgICBfcGFnZS0+cnVuSmF2YVNjcmlwdEluRnJhbWVJblNjcmlwdFdv
cmxkKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsgamF2YVNjcmlwdFN0cmluZywg
ISFhc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1lbnRzTWFwKSwgISFmb3JjZVVzZXJHZXN0
dXJlIH0sIGZyYW1lSUQsICp3b3JsZC0+X2NvbnRlbnRXb3JsZC5nZXQoKSwgW2hhbmRsZXJdKEFQ
STo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFs
PFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6U2NyaXB0VmFsdWVD
YWxsYmFjazo6RXJyb3IgZXJyb3JDb2RlKSB7CisgICAgX3BhZ2UtPnJ1bkphdmFTY3JpcHRJbkZy
YW1lSW5TY3JpcHRXb3JsZCh7IGphdmFTY3JpcHRTdHJpbmcsIHNvdXJjZVVSTCwgISFhc0FzeW5j
RnVuY3Rpb24sIFdURk1vdmUoYXJndW1lbnRzTWFwKSwgISFmb3JjZVVzZXJHZXN0dXJlIH0sIGZy
YW1lSUQsICp3b3JsZC0+X2NvbnRlbnRXb3JsZC5nZXQoKSwgW2hhbmRsZXJdKEFQSTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6U2NyaXB0VmFsdWVDYWxsYmFjazo6
RXJyb3IgZXJyb3JDb2RlKSB7CiAgICAgICAgIGlmICghaGFuZGxlcikKICAgICAgICAgICAgIHJl
dHVybjsKIApAQCAtMjIwMCwxNyArMjIwMCwyMiBAQCAtICh2b2lkKV9pc0pJVEVuYWJsZWQ6KHZv
aWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIKIAogLSAodm9pZClfZXZhbHVhdGVKYXZhU2Ny
aXB0V2l0aG91dFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7
Ci0gICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNG
dW5jdGlvbjpOTyB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOk5PIGluRnJhbWU6
bmlsIGluV29ybGQ6V0tDb250ZW50V29ybGQucGFnZVdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNv
bXBsZXRpb25IYW5kbGVyXTsKKyAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3Jp
cHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhTb3VyY2VVUkw6bmlsIHdpdGhBcmd1bWVu
dHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6Tk8gaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRlbnRX
b3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwogfQog
CiAtICh2b2lkKV9jYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWZ1bmN0aW9uQm9keSBh
cmd1bWVudHM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5GcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKilj
b250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICplcnJv
cikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmZ1
bmN0aW9uQm9keSBhc0FzeW5jRnVuY3Rpb246WUVTIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZv
cmNlVXNlckdlc3R1cmU6WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50V29ybGQgY29t
cGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUph
dmFTY3JpcHQ6ZnVuY3Rpb25Cb2R5IGFzQXN5bmNGdW5jdGlvbjpZRVMgd2l0aFNvdXJjZVVSTDpu
aWwgd2l0aEFyZ3VtZW50czphcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpm
cmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFu
ZGxlcl07CiB9CiAKIC0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZh
U2NyaXB0U3RyaW5nIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6
KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgW3NlbGYgX2V2
YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRo
QXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6
Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKKyAgICBb
c2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9u
Ok5PIHdpdGhTb3VyY2VVUkw6bmlsIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6
WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6
Y29tcGxldGlvbkhhbmRsZXJdOworfQorCistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5T
U3RyaW5nICopamF2YVNjcmlwdFN0cmluZyB3aXRoU291cmNlVVJMOihOU1VSTCAqKXVybCBpbkZy
YW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAq
KWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVy
cm9yKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6
amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDp1cmwgd2l0
aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldvcmxk
OmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAK
IC0gKHZvaWQpX3VwZGF0ZVdlYnNpdGVQb2xpY2llczooX1dLV2Vic2l0ZVBvbGljaWVzICopd2Vi
c2l0ZVBvbGljaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA0NTM5NTA2ZDAzOTE4ZDYxNGZiNmZlNjY4NDNkN2Fh
ZjA3Y2QxNTI0Li5lZWIyMzg5MzRjMmI3MTVmNzdmZmMyYTM2Y2U2NWZhMTA3ZjNlMmVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKQEAgLTIxMSw2ICsyMTEsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogLSAodm9pZClf
ZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKWphdmFTY3Jp
cHRTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwog
LSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcg
aW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9y
ICogZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5T
U3RyaW5nICopamF2YVNjcmlwdFN0cmluZyB3aXRoU291cmNlVVJMOihOU1VSTCAqKXNvdXJjZVVS
TCBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRX
b3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJy
b3IgKiBlcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2NhbGxBc3luY0phdmFTY3JpcHQ6
KE5TU3RyaW5nICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIGlkPiAqKWFyZ3VtZW50cyBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluQ29udGVu
dFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMYXlvdXRNb2RlOikgX1dLTGF5b3V0TW9kZSBfbGF5b3V0
TW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlldy5jcHAKaW5kZXggOGM1NGI0MjNmZjkyNjZiODMwNzM4NWRkMTNjM2Y0NDkyNGZjMmU0NS4u
NjRiZjcxOTNiYTVmODA3NDZjMTRlYzJhYmM1MzQ0NzAxOTAyODkwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTM2ODMs
NyArMzY4Myw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3J1bl9qYXZhc2NyaXB0KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBzY3JpcHQsCiAgICAgZ19yZXR1cm5faWZfZmFp
bChzY3JpcHQpOwogCiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihnX3Rhc2tf
bmV3KHdlYlZpZXcsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKLSAgICBnZXRQ
YWdlKHdlYlZpZXcpLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7IFN0cmluZzo6ZnJvbVVURjgo
c2NyaXB0KSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZSB9LCBbdGFzayA9IFdURk1vdmUodGFz
ayldKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9w
dGlvbmFsPEV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcikgeworICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsg
U3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0
cnVlIH0sIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gZGV0YWls
cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIEV4Y2VwdGlvbkRldGFp
bHMgZXhjZXB0aW9uRGV0YWlsczsKICAgICAgICAgaWYgKGRldGFpbHMpCiAgICAgICAgICAgICBl
eGNlcHRpb25EZXRhaWxzID0gKmRldGFpbHM7CkBAIC0zNzg1LDcgKzM3ODUsNyBAQCB2b2lkIHdl
YmtpdF93ZWJfdmlld19ydW5famF2YXNjcmlwdF9pbl93b3JsZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBjb25zdCBnY2hhcgogCiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihn
X3Rhc2tfbmV3KHdlYlZpZXcsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywgdXNlckRhdGEpKTsKICAg
ICBhdXRvIHdvcmxkID0gQVBJOjpDb250ZW50V29ybGQ6OnNoYXJlZFdvcmxkV2l0aE5hbWUoU3Ry
aW5nOjpmcm9tVVRGOCh3b3JsZE5hbWUpKTsKLSAgICBnZXRQYWdlKHdlYlZpZXcpLnJ1bkphdmFT
Y3JpcHRJbkZyYW1lSW5TY3JpcHRXb3JsZCh7IFN0cmluZzo6ZnJvbVVURjgoc2NyaXB0KSwgZmFs
c2UsIFdURjo6bnVsbG9wdCwgdHJ1ZSB9LCBXVEY6Om51bGxvcHQsIHdvcmxkLmdldCgpLCBbdGFz
ayA9IFdURk1vdmUodGFzayldKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzZXJpYWxpemVk
U2NyaXB0VmFsdWUsIE9wdGlvbmFsPEV4Y2VwdGlvbkRldGFpbHM+IGRldGFpbHMsIFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlw
dEluRnJhbWVJblNjcmlwdFdvcmxkKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBVUkwgeyB9
LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sIFdURjo6bnVsbG9wdCwgd29ybGQuZ2V0KCks
IFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIEV4Y2VwdGlvbkRldGFpbHMgZXhj
ZXB0aW9uRGV0YWlsczsKICAgICAgICAgaWYgKGRldGFpbHMpCiAgICAgICAgICAgICBleGNlcHRp
b25EZXRhaWxzID0gKmRldGFpbHM7CkBAIC0zODI3LDcgKzM4MjcsNyBAQCBzdGF0aWMgdm9pZCBy
ZXNvdXJjZXNTdHJlYW1SZWFkQ2FsbGJhY2soR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgZwogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklF
VyhnX3Rhc2tfZ2V0X3NvdXJjZV9vYmplY3QodGFzay5nZXQoKSkpOwogICAgIGdwb2ludGVyIG91
dHB1dFN0cmVhbURhdGEgPSBnX21lbW9yeV9vdXRwdXRfc3RyZWFtX2dldF9kYXRhKEdfTUVNT1JZ
X09VVFBVVF9TVFJFQU0ob2JqZWN0KSk7Ci0gICAgZ2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2Ny
aXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Z2NoYXIqPihvdXRwdXRTdHJlYW1EYXRhKSksIGZhbHNlLCBXVEY6Om51bGxvcHQsIHRydWV9LAor
ICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgU3RyaW5nOjpm
cm9tVVRGOChyZWludGVycHJldF9jYXN0PGNvbnN0IGdjaGFyKj4ob3V0cHV0U3RyZWFtRGF0YSkp
LCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sCiAgICAgICAgIFt0YXNrXShB
UEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBPcHRpb25h
bDxFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ip
IHsKICAgICAgICAgICAgIEV4Y2VwdGlvbkRldGFpbHMgZXhjZXB0aW9uRGV0YWlsczsKICAgICAg
ICAgICAgIGlmIChkZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90
b2NvbEhhbmRsZXIuY3BwCmluZGV4IGYzZjI4YTQ3ZTNkYWJkYTFhMmMyODNlM2VmZDQwYTIyOWU2
MDU4ZWMuLmM3MTkwZTI4YTdhMmZlNjY0NzQ1MmNjZjIwOTE0NDNiNjNhNWYxNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yUHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3Ivc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTExOCw3
ICsxMTgsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6aW5zcGVjdChj
b25zdCBTdHJpbmcmIGhvc3RBbmRQb3J0LCBDb25uZWN0aQogCiB2b2lkIFJlbW90ZUluc3BlY3Rv
clByb3RvY29sSGFuZGxlcjo6cnVuU2NyaXB0KGNvbnN0IFN0cmluZyYgc2NyaXB0KQogewotICAg
IG1fcGFnZS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBzY3JpcHQsIGZhbHNlLCBXVEY6Om51
bGxvcHQsIGZhbHNlIH0sIAorICAgIG1fcGFnZS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBz
Y3JpcHQsIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZhbHNlIH0sIAogICAgICAgICBb
XShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIE9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlv
bkRldGFpbHM+IGV4Y2VwdGlvbkRldGFpbHMsIENhbGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAg
ICAgICAgIGlmIChleGNlcHRpb25EZXRhaWxzKQogICAgICAgICAgICAgICAgIExPR19FUlJPUigi
RXhjZXB0aW9uIHJ1bm5pbmcgc2NyaXB0IFwiJXNcIiIsIGV4Y2VwdGlvbkRldGFpbHMtPm1lc3Nh
Z2UudXRmOCgpLmRhdGEoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399400</attachid>
            <date>2020-05-14 13:30:37 -0700</date>
            <delta_ts>2020-05-14 16:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211904-20200514133037.patch</filename>
            <type>text/plain</type>
            <size>31464</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4NjBiNjQ4NTk3YTcx
Y2Y4YWU5MzMwYjY3YWJhMWViMzc0ZGI2Mi4uYTE2OTEyZWQ3OGY2OGI2NDFkNTE2MDcyZTQ2Yzgw
OGJkMmIyZDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA1LTE0ICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc291cmNlVVJM
IHRvIF9ldmFsdWF0ZUphdmFTY3JpcHQ6IHNvIHRoZSBzY3JpcHRzIGFwcGVhciBpbiBXZWIgSW5z
cGVjdG9yLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjExOTA0CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzYyMDc0Mzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkZGVkIHNvdXJjZVVSTCB0byBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycy4gVXNlIGl0IGluc3RlYWQgb2YgdGhlIGZyYW1lJ3MgZG9jdW1lbnQg
VVJMLgorCisgICAgICAgICogYmluZGluZ3MvanMvUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzOjpSdW5KYXZhU2NyaXB0
UGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZVNjcmlwdEluV29ybGRJ
Z25vcmluZ0V4Y2VwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpl
eGVjdXRlU2NyaXB0SW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpjYWxsSW5Xb3JsZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpleGVj
dXRlVXNlckFnZW50U2NyaXB0SW5Xb3JsZCk6CisKIDIwMjAtMDUtMDYgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBub3ctdW5uZWVkZWQgVVNFKEdSQU1N
QVJfQ0hFQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxZWQ0NDhlNGYwMzczMzc0ZGNlZmFjMGFhZjRkYTJh
OTMzMjViYWMuLmM5MGNlYjZlN2YxNzhlZWY2YmYyZTg4YjBiOTAyOTE4MmYxNmU1NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTQgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90
aHlAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzb3VyY2VVUkwgdG8gX2V2YWx1YXRlSmF2YVNj
cmlwdDogc28gdGhlIHNjcmlwdHMgYXBwZWFyIGluIFdlYiBJbnNwZWN0b3IuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5MDQKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vNjIwNzQzNzYKKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28u
CisKKyAgICAgICAgQWRkZWQgc291cmNlVVJMIHZlcnNpb24gb2YgX2V2YWx1YXRlSmF2YVNjcmlw
dDogdGhhdCBwYXNzZXMgdGhlIHNvdXJjZVVSTCB0byBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycy4K
KyAgICAgICAgSWYgdGhlIHNvdXJjZVVSTCBpcyBpbnZhbGlkLCBnZW5lcmF0ZSBhIHVuaXF1ZSB1
c2VyIHNjcmlwdCBVUkwgc28gdGhlIHNvdXJjZSBjb2RlIGVycm9ycyBhcmUgbm90IHNob3dpbmcK
KyAgICAgICAgdXAgd2l0aCB0aGUgZnJhbWUncyBkb2N1bWVudCBVUkwgYW5kIGJvZ3VzIGxvY2F0
aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAo
V0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKTogcGFzcyBBUEk6OlVzZXJTY3JpcHQ6Omdl
bmVyYXRlVW5pcXVlVVJMKCkgZm9yIHRoZSBzb3VyY2VVUkwuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW06CisgICAgICAgICgtW1dLVXNlclNjcmlwdCBpbml0
V2l0aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6XSk6IENsZWFuIHVwIFdl
YkNvcmU6OlVzZXJTY3JpcHQgaW5pdGlhbGl6ZXIuCisgICAgICAgICgtW1dLVXNlclNjcmlwdCBf
aW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmxlZ2FjeVdoaXRl
bGlzdDpsZWdhY3lCbGFja2xpc3Q6dXNlckNvbnRlbnRXb3JsZDpdKTogRGl0dG8uCisgICAgICAg
ICgtW1dLVXNlclNjcmlwdCBfaW5pdFdpdGhTb3VyY2U6aW5qZWN0aW9uVGltZTpmb3JNYWluRnJh
bWVPbmx5OmxlZ2FjeVdoaXRlbGlzdDpsZWdhY3lCbGFja2xpc3Q6YXNzb2NpYXRlZFVSTDp1c2Vy
Q29udGVudFdvcmxkOl0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0
aFNvdXJjZTppbmplY3Rpb25UaW1lOmZvck1haW5GcmFtZU9ubHk6bGVnYWN5V2hpdGVsaXN0Omxl
Z2FjeUJsYWNrbGlzdDpjb250ZW50V29ybGQ6XSk6IERpdHRvLgorICAgICAgICAoLVtXS1VzZXJT
Y3JpcHQgX2luaXRXaXRoU291cmNlOmluamVjdGlvblRpbWU6Zm9yTWFpbkZyYW1lT25seTpsZWdh
Y3lXaGl0ZWxpc3Q6bGVnYWN5QmxhY2tsaXN0OmFzc29jaWF0ZWRVUkw6Y29udGVudFdvcmxkOl0p
OiBEaXR0by4KKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rp
b25UaW1lOmZvck1haW5GcmFtZU9ubHk6bGVnYWN5V2hpdGVsaXN0OmxlZ2FjeUJsYWNrbGlzdDph
c3NvY2lhdGVkVVJMOmNvbnRlbnRXb3JsZDpkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpd
KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZXZhbHVhdGVKYXZhU2NyaXB0OmFzQXN5bmNGdW5jdGlvbjp3
aXRoQXJndW1lbnRzOmZvcmNlVXNlckdlc3R1cmU6aW5GcmFtZTppbldvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBSZW5hbWVkIHRvIGFkZCBzb3VyY2VVUkwuCisgICAgICAgICgtW1dLV2ViVmll
dyBfZXZhbHVhdGVKYXZhU2NyaXB0OmFzQXN5bmNGdW5jdGlvbjp3aXRoU291cmNlVVJMOndpdGhB
cmd1bWVudHM6Zm9yY2VVc2VyR2VzdHVyZTppbkZyYW1lOmluV29ybGQ6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6IEFkZGVkIHNvdXJjZVVSTC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9ldmFsdWF0ZUph
dmFTY3JpcHQ6d2l0aFNvdXJjZVVSTDppbkZyYW1lOmluQ29udGVudFdvcmxkOmNvbXBsZXRpb25I
YW5kbGVyOl0pOiBBZGRlZC4gUGFzcyBzb3VyY2VVUkwgdGhyb3VnaC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpjb21wbGV0aW9uSGFuZGxlcjpdKTogQ2FsbCBuZXcg
bWV0aG9kIHdpdGggc291cmNlVVJMIGFzIG5pbC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDppbkNvbnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8u
CisgICAgICAgICgtW1dLV2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OmFyZ3VtZW50czppbkNv
bnRlbnRXb3JsZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dLV2Vi
VmlldyBfY2FsbEFzeW5jSmF2YVNjcmlwdDphcmd1bWVudHM6aW5GcmFtZTppbkNvbnRlbnRXb3Js
ZDpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGl0dG8uCisgICAgICAgICgtW1dLV2ViVmlldyBfZXZh
bHVhdGVKYXZhU2NyaXB0OmluRnJhbWU6aW5Db250ZW50V29ybGQ6Y29tcGxldGlvbkhhbmRsZXI6
XSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oOgorCiAyMDIwLTA1LTA2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbGltaW5hdGUgY2hlY2tzIG9mIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKSBpbiBD
b2NvYS1zcGVjaWZpYyBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9SdW5KYXZhU2NyaXB0UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMuaAppbmRleCA0N2EzZmZiMDUzNzc1Y2ExNGEzY2E4ZjE4
OWI0ZDc2ZmE4MTdlN2JhLi42ZGNiOWRkZWM1MTcxNDY2ZTljOTU1MjBkZDRlMWNkYzlmMWRkYzU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SdW5KYXZhU2NyaXB0UGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1J1bkphdmFTY3JpcHRQ
YXJhbWV0ZXJzLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zNywyNCArMzgsMjcg
QEAgZW51bSBjbGFzcyBGb3JjZVVzZXJHZXN0dXJlIDogYm9vbCB7IE5vLCBZZXMgfTsKIHVzaW5n
IEFyZ3VtZW50V2lyZUJ5dGVzTWFwID0gSGFzaE1hcDxTdHJpbmcsIFZlY3Rvcjx1aW50OF90Pj47
CiAKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7Ci0gICAgUnVuSmF2YVNjcmlwdFBh
cmFtZXRlcnMoU3RyaW5nJiYgc291cmNlLCBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1
bmN0aW9uLCBPcHRpb25hbDxBcmd1bWVudFdpcmVCeXRlc01hcD4mJiBhcmd1bWVudHMsIEZvcmNl
VXNlckdlc3R1cmUgZm9yY2VVc2VyR2VzdHVyZSkKKyAgICBSdW5KYXZhU2NyaXB0UGFyYW1ldGVy
cyhTdHJpbmcmJiBzb3VyY2UsIFVSTCYmIHNvdXJjZVVSTCwgUnVuQXNBc3luY0Z1bmN0aW9uIHJ1
bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1l
bnRzLCBGb3JjZVVzZXJHZXN0dXJlIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291cmNl
KFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VVUkwp
KQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24pCiAgICAg
ICAgICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJH
ZXN0dXJlKGZvcmNlVXNlckdlc3R1cmUpCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZyYgc291cmNlLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlv
biwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNl
VXNlckdlc3R1cmUpCisgICAgUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIFVSTCYmIHNvdXJjZVVSTCwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQogICAgICAgICA6IHNvdXJjZShzb3VyY2UpCisgICAgICAgICwgc291cmNlVVJMKFdURk1vdmUo
c291cmNlVVJMKSkKICAgICAgICAgLCBydW5Bc0FzeW5jRnVuY3Rpb24ocnVuQXNBc3luY0Z1bmN0
aW9uID8gUnVuQXNBc3luY0Z1bmN0aW9uOjpZZXMgOiBSdW5Bc0FzeW5jRnVuY3Rpb246Ok5vKQog
ICAgICAgICAsIGFyZ3VtZW50cyhXVEZNb3ZlKGFyZ3VtZW50cykpCiAgICAgICAgICwgZm9yY2VV
c2VyR2VzdHVyZShmb3JjZVVzZXJHZXN0dXJlID8gRm9yY2VVc2VyR2VzdHVyZTo6WWVzIDogRm9y
Y2VVc2VyR2VzdHVyZTo6Tm8pCiAgICAgewogICAgIH0KIAotICAgIFJ1bkphdmFTY3JpcHRQYXJh
bWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgYm9vbCBydW5Bc0FzeW5jRnVuY3Rpb24sIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiYmIGFyZ3VtZW50cywgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
KQorICAgIFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzKFN0cmluZyYmIHNvdXJjZSwgVVJMJiYgc291
cmNlVVJMLCBib29sIHJ1bkFzQXN5bmNGdW5jdGlvbiwgT3B0aW9uYWw8QXJndW1lbnRXaXJlQnl0
ZXNNYXA+JiYgYXJndW1lbnRzLCBib29sIGZvcmNlVXNlckdlc3R1cmUpCiAgICAgICAgIDogc291
cmNlKFdURk1vdmUoc291cmNlKSkKKyAgICAgICAgLCBzb3VyY2VVUkwoV1RGTW92ZShzb3VyY2VV
UkwpKQogICAgICAgICAsIHJ1bkFzQXN5bmNGdW5jdGlvbihydW5Bc0FzeW5jRnVuY3Rpb24gPyBS
dW5Bc0FzeW5jRnVuY3Rpb246OlllcyA6IFJ1bkFzQXN5bmNGdW5jdGlvbjo6Tm8pCiAgICAgICAg
ICwgYXJndW1lbnRzKFdURk1vdmUoYXJndW1lbnRzKSkKICAgICAgICAgLCBmb3JjZVVzZXJHZXN0
dXJlKGZvcmNlVXNlckdlc3R1cmUgPyBGb3JjZVVzZXJHZXN0dXJlOjpZZXMgOiBGb3JjZVVzZXJH
ZXN0dXJlOjpObykKQEAgLTYyLDEzICs2NiwxNCBAQCBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnMgewogICAgIH0KIAogICAgIFN0cmluZyBzb3VyY2U7CisgICAgVVJMIHNvdXJjZVVSTDsK
ICAgICBSdW5Bc0FzeW5jRnVuY3Rpb24gcnVuQXNBc3luY0Z1bmN0aW9uOwogICAgIE9wdGlvbmFs
PEFyZ3VtZW50V2lyZUJ5dGVzTWFwPiBhcmd1bWVudHM7CiAgICAgRm9yY2VVc2VyR2VzdHVyZSBm
b3JjZVVzZXJHZXN0dXJlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIgPDwg
c291cmNlIDw8IHJ1bkFzQXN5bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2Vz
dHVyZTsKKyAgICAgICAgZW5jb2RlciA8PCBzb3VyY2UgPDwgc291cmNlVVJMIDw8IHJ1bkFzQXN5
bmNGdW5jdGlvbiA8PCBhcmd1bWVudHMgPDwgZm9yY2VVc2VyR2VzdHVyZTsKICAgICB9CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UnVuSmF2YVNjcmlw
dFBhcmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNzcsNiArODIsMTAgQEAg
c3RydWN0IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzb3VyY2UpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAorICAgICAg
ICBVUkwgc291cmNlVVJMOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNvdXJjZVVSTCkp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAgICAgIFJ1bkFzQXN5bmNG
dW5jdGlvbiBydW5Bc0FzeW5jRnVuY3Rpb247CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cnVuQXNBc3luY0Z1bmN0aW9uKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBA
IC04OSw3ICs5OCw3IEBAIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyB7CiAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZm9yY2VVc2VyR2VzdHVyZSkpCiAgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3JpcHRQYXJhbWV0
ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBydW5Bc0FzeW5jRnVuY3Rpb24sIFdURk1vdmUoYXJndW1l
bnRzKSwgZm9yY2VVc2VyR2VzdHVyZSB9IH07CisgICAgICAgIHJldHVybiB7IFJ1bkphdmFTY3Jp
cHRQYXJhbWV0ZXJzIHsgV1RGTW92ZShzb3VyY2UpLCBXVEZNb3ZlKHNvdXJjZVVSTCksIHJ1bkFz
QXN5bmNGdW5jdGlvbiwgV1RGTW92ZShhcmd1bWVudHMpLCBmb3JjZVVzZXJHZXN0dXJlIH0gfTsK
ICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFlMjg4NWMwMzNiZTRhYzhkYzAyYzgxMjI0NzhhYzdjNzQzOTBjMGIu
LmEyOGYxZTQ5NTEwZTdlMTdkZTA2NWY5YTUyMzcxZDcxYWY4NzkyMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC01NzMsNyArNTcz
LDcgQEAgSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJZ25vcmlu
Z0V4Y2VwdGlvbihjb25zdCBTdHJpbmcmIHNjcmkKIAogSlNDOjpKU1ZhbHVlIFNjcmlwdENvbnRy
b2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkSWdub3JpbmdFeGNlcHRpb24oRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSkK
IHsKLSAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxkLCBSdW5KYXZh
U2NyaXB0UGFyYW1ldGVycyB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9KTsKKyAgICBhdXRvIHJlc3VsdCA9IGV4ZWN1dGVTY3JpcHRJbldvcmxkKHdvcmxk
LCB7IHNjcmlwdCwgVVJMIHsgfSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2VyR2VzdHVy
ZSB9KTsKICAgICByZXR1cm4gcmVzdWx0ID8gcmVzdWx0LnZhbHVlKCkgOiBKU0M6OkpTVmFsdWUg
eyB9OwogfQogCkBAIC01OTEsMTEgKzU5MSwxNSBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENv
bnRyb2xsZXI6OmV4ZWN1dGVTY3JpcHRJbldvcmxkKERPTVdyYXBwZXJXb3JsZCYgd29ybGQsCiAg
ICAgaWYgKCFjYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkgfHwgaXNQYXVz
ZWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRldGFpbHMgeyAi
Q2Fubm90IGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiB0aGlzIGRvY3VtZW50Il9zIH0pOwogCi0gICAg
c3dpdGNoIChwYXJhbWV0ZXJzLnJ1bkFzQXN5bmNGdW5jdGlvbikgewotICAgIGNhc2UgUnVuQXNB
c3luY0Z1bmN0aW9uOjpObzogewotICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUo
cGFyYW1ldGVycy5zb3VyY2UsIFVSTChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpKSwgVGV4dFBv
c2l0aW9uKCksIEpTQzo6U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtLCBDYWNoZWRT
Y3JpcHRGZXRjaGVyOjpjcmVhdGUobV9mcmFtZS5kb2N1bWVudCgpLT5jaGFyc2V0KCkpKTsKLSAg
ICAgICAgcmV0dXJuIGV2YWx1YXRlSW5Xb3JsZChzb3VyY2VDb2RlLCB3b3JsZCk7CisgICAgYXV0
byBzb3VyY2VVUkwgPSBwYXJhbWV0ZXJzLnNvdXJjZVVSTDsKKyAgICBpZiAoIXNvdXJjZVVSTC5p
c1ZhbGlkKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgZ3Jvc3MsIGJ1dCB3aGVuIHNl
dFRpbWVvdXQoKSBhbmQgc2V0SW50ZXJ2YWwoKSBhcmUgcGFzc2VkIEpTIHN0cmluZ3MsIHRoZSB0
aHJvd24gZXJyb3JzIHNob3VsZCB1c2UgdGhlIGZyYW1lIGRvY3VtZW50IFVSTCAoYWNjb3JkaW5n
IHRvIFdQVCkuCisgICAgICAgIHNvdXJjZVVSTCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCk7
CiAgICAgfQorCisgICAgc3dpdGNoIChwYXJhbWV0ZXJzLnJ1bkFzQXN5bmNGdW5jdGlvbikgewor
ICAgIGNhc2UgUnVuQXNBc3luY0Z1bmN0aW9uOjpObzoKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRl
SW5Xb3JsZCh7IHBhcmFtZXRlcnMuc291cmNlLCBXVEZNb3ZlKHNvdXJjZVVSTCksIFRleHRQb3Np
dGlvbigpLCBKU0M6OlNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSwgQ2FjaGVkU2Ny
aXB0RmV0Y2hlcjo6Y3JlYXRlKG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2hhcnNldCgpKSB9LCB3b3Js
ZCk7CiAgICAgY2FzZSBSdW5Bc0FzeW5jRnVuY3Rpb246OlllczoKICAgICAgICAgcmV0dXJuIGNh
bGxJbldvcmxkKFdURk1vdmUocGFyYW1ldGVycyksIHdvcmxkKTsKICAgICBkZWZhdWx0OgpAQCAt
NjM5LDcgKzY0Myw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6Y2FsbElu
V29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAKICAgICBmdW5jdGlvblN0
cmluZ0J1aWxkZXIuYXBwZW5kKCIpeyIsIHBhcmFtZXRlcnMuc291cmNlLCAifSkiKTsKIAotICAg
IGF1dG8gc291cmNlQ29kZSA9IFNjcmlwdFNvdXJjZUNvZGUgeyBmdW5jdGlvblN0cmluZ0J1aWxk
ZXIudG9TdHJpbmcoKSwgVVJMKG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkpLCBUZXh0UG9zaXRp
b24oKSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hlZFNjcmlw
dEZldGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkgfTsKKyAgICBh
dXRvIHNvdXJjZUNvZGUgPSBTY3JpcHRTb3VyY2VDb2RlIHsgZnVuY3Rpb25TdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCksIFdURk1vdmUocGFyYW1ldGVycy5zb3VyY2VVUkwpLCBUZXh0UG9zaXRpb24o
KSwgSlNDOjpTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0sIENhY2hlZFNjcmlwdEZl
dGNoZXI6OmNyZWF0ZShtX2ZyYW1lLmRvY3VtZW50KCktPmNoYXJzZXQoKSkgfTsKICAgICBjb25z
dCBhdXRvJiBqc1NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmpzU291cmNlQ29kZSgpOwogCiAgICAg
U3RyaW5nIHNvdXJjZVVSTCA9IGpzU291cmNlQ29kZS5wcm92aWRlcigpLT51cmwoKS5zdHJpbmco
KTsKQEAgLTY5Nyw3ICs3MDEsNyBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXhl
Y3V0ZVVzZXJBZ2VudFNjcmlwdEluV29ybGRJZ25vcmluZ0V4Y2VwdGlvbihETwogfQogVmFsdWVP
ckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpleGVjdXRlVXNlckFnZW50U2NyaXB0SW5Xb3Js
ZChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3Jj
ZVVzZXJHZXN0dXJlKQogewotICAgIHJldHVybiBleGVjdXRlVXNlckFnZW50U2NyaXB0SW5Xb3Js
ZEludGVybmFsKHdvcmxkLCB7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZm9yY2VVc2Vy
R2VzdHVyZSB9KTsKKyAgICByZXR1cm4gZXhlY3V0ZVVzZXJBZ2VudFNjcmlwdEluV29ybGRJbnRl
cm5hbCh3b3JsZCwgeyBzY3JpcHQsIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIGZvcmNl
VXNlckdlc3R1cmUgfSk7CiB9CiAKIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6
ZXhlY3V0ZVVzZXJBZ2VudFNjcmlwdEluV29ybGRJbnRlcm5hbChET01XcmFwcGVyV29ybGQmIHdv
cmxkLCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBiNjhlNjQ2Yzc4ZGFiNzg3NTM4ZWZlNmJm
ZTMxNDNiM2RhN2NkZWM0Li40NDliNzFkZjAzOGI1MDI3MzQ1ZGQzMTJkYzI3NjE1M2UwYjAwZmI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTI0OTUsNyAr
MjQ5NSw3IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVN0YXRlQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBX
S1BhZ2VTdGF0ZUNsaWVudEJhc2UqIGNsaWVudCkKIAogdm9pZCBXS1BhZ2VSdW5KYXZhU2NyaXB0
SW5NYWluRnJhbWUoV0tQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHNjcmlwdFJlZiwgdm9p
ZCogY29udGV4dCwgV0tQYWdlUnVuSmF2YVNjcmlwdEZ1bmN0aW9uIGNhbGxiYWNrKQogewotICAg
IHRvSW1wbChwYWdlUmVmKS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgdG9JbXBsKHNjcmlw
dFJlZiktPnN0cmluZygpLCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVlIH0sIFtjb250ZXh0LCBj
YWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJldHVyblZhbHVlLCBPcHRpb25h
bDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgIHRvSW1wbChwYWdlUmVmKS0+cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHsgdG9JbXBs
KHNjcmlwdFJlZiktPnN0cmluZygpLCBVUkwgeyB9LCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0cnVl
IH0sIFtjb250ZXh0LCBjYWxsYmFja10oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJldHVy
blZhbHVlLCBPcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzPiwgQ2FsbGJhY2tCYXNl
OjpFcnJvciBlcnJvcikgewogICAgICAgICBjYWxsYmFjayh0b0FQSShyZXR1cm5WYWx1ZSksIChl
cnJvciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSA/IHRvQVBJKEFQSTo6RXJyb3I6OmNy
ZWF0ZSgpLnB0cigpKSA6IDAsIGNvbnRleHQpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0KaW5kZXggOGUxMGVmZmVi
ZTc1YWYyZTZlYWI1YTcxOWEzNmZkY2MxMGM4YmYxZi4uZWRmM2I5NjljMDA0OWFjN2Y4NWFjNWQ1
YzA3MGE4Mjk4NmZlMmJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVXNlclNjcmlwdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyU2NyaXB0Lm1tCkBAIC0zNiw3ICszNiw3IEBAIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2Ny
aXB0SW5qCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlw
dD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQSTo6
VXNlclNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgeyB9LCB7IH0sIEFQSTo6dG9XZWJDb3Jl
VXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkg
PyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25s
eSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVz
LCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCBBUEk6
OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgpKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29u
c3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlw
dCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpLCB7IH0sIHsg
fSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwg
Zm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sIEFQSTo6Q29udGVudFdvcmxkOjpwYWdlQ29udGVudFdvcmxkKCkpOwogCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CkBAIC04NSw3ICs4NSw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5p
dFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlw
dEluCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4o
c2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURjo6U3RyaW5nKHNvdXJjZSksIEFQSTo6VXNl
clNjcmlwdDo6Z2VuZXJhdGVVbmlxdWVVUkwoKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdo
aXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2Vi
Q29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVP
bmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFt
ZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZy
YW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwg
KnVzZXJDb250ZW50V29ybGQtPl9jb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOworICAgIEFQ
STo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJD
b3JlOjpVc2VyU2NyaXB0IHsgc291cmNlLCBBUEk6OlVzZXJTY3JpcHQ6OmdlbmVyYXRlVW5pcXVl
VVJMKCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0
cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JO
b3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtOTUs
NyArOTUsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNv
dXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbgogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0
cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQg
eyBXVEY6OlN0cmluZyhzb3VyY2UpLCBVUkwoYXNzb2NpYXRlZFVSTCksIG1ha2VWZWN0b3I8U3Ry
aW5nPihsZWdhY3lXaGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0
KSwgQVBJOjp0b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwg
Zm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6
SW5qZWN0SW5BbGxGcmFtZXMsIFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sICp1c2VyQ29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdv
cmxkKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlw
dD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgYXNzb2NpYXRlZFVSTCwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdh
Y3lCbGFja2xpc3QpLCBBUEk6OnRvV2ViQ29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVj
dGlvblRpbWUpLCBmb3JNYWluRnJhbWVPbmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVj
dGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlv
bkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKnVzZXJDb250ZW50V29ybGQtPl9jb250ZW50V29ybGQt
Pl9jb250ZW50V29ybGQpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMTEsNyArMTExLDcg
QEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5q
ZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldy
YXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2VyU2NyaXB0IHsgV1RGOjpT
dHJpbmcoc291cmNlKSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVuaXF1ZVVSTCgpLCBtYWtl
VmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2Fj
eUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0
aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9u
QmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKKyAg
ICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6VXNlclNjcmlwdD4oc2VsZiwg
V2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgQVBJOjpVc2VyU2NyaXB0OjpnZW5lcmF0ZVVu
aXF1ZVVSTCgpLCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3Rv
cjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVj
dGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2Vy
Q29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBXZWJDb3JlOjpXYWl0
Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9LCAqY29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIC0g
KGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlv
blRpbWU6KFdLVXNlclNjcmlwdEluCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVy
PEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IFdURjo6U3RyaW5n
KHNvdXJjZSksIFVSTChhc3NvY2lhdGVkVVJMKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeVdo
aXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lCbGFja2xpc3QpLCBBUEk6OnRvV2Vi
Q29yZVVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpLCBmb3JNYWluRnJhbWVP
bmx5ID8gV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFt
ZU9ubHkgOiBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZy
YW1lcywgV2ViQ29yZTo6V2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwg
KmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVj
dEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBz
b3VyY2UsIGFzc29jaWF0ZWRVUkwsIG1ha2VWZWN0b3I8U3RyaW5nPihsZWdhY3lXaGl0ZWxpc3Qp
LCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5QmxhY2tsaXN0KSwgQVBJOjp0b1dlYkNvcmVVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZyYW1lT25seSA/IFdl
YkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDog
V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIFdl
YkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICpjb250ZW50
V29ybGQtPl9jb250ZW50V29ybGQpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMzEsNyAr
MTMxLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3Vy
Y2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW4KICAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1
Y3RJbldyYXBwZXI8QVBJOjpVc2VyU2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2VyU2NyaXB0IHsg
V1RGOjpTdHJpbmcoc291cmNlKSwgVVJMKGFzc29jaWF0ZWRVUkwpLCBtYWtlVmVjdG9yPFN0cmlu
Zz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGxlZ2FjeUJsYWNrbGlzdCks
IEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZv
ck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmpl
Y3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6Oklu
amVjdEluQWxsRnJhbWVzLCBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiA/IFdlYkNvcmU6
OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6OlllcyA6IFdlYkNvcmU6OldhaXRG
b3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICpjb250ZW50V29ybGQtPl9jb250
ZW50V29ybGQpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpVc2Vy
U2NyaXB0PihzZWxmLCBXZWJDb3JlOjpVc2VyU2NyaXB0IHsgc291cmNlLCBhc3NvY2lhdGVkVVJM
LCBtYWtlVmVjdG9yPFN0cmluZz4obGVnYWN5V2hpdGVsaXN0KSwgbWFrZVZlY3RvcjxTdHJpbmc+
KGxlZ2FjeUJsYWNrbGlzdCksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlwdEluamVjdGlvblRpbWUo
aW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3JlOjpVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNvcmU6OlVzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBkZWZlclJ1bm5pbmdVbnRpbE5vdGlm
aWNhdGlvbiA/IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Olll
cyA6IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rpbmc6Ok5vIH0sICpj
b250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBlNjY0
YjY1MWQ1NGQ0MTQxZDQwMDVkMWFjN2M0YjcyNWU1YzAwYjgwLi5jMjg3ZTE2ZTZkNzU2ODkwODBj
NTI2ZWFlZWY5YjgxMDgzZWIwNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTgxNiwxNyArODE2LDE3IEBAIHN0YXRpYyBXS0Vycm9y
Q29kZSBjYWxsYmFja0Vycm9yQ29kZShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
CiAKIC0gKHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJp
bmcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICopKWNvbXBsZXRpb25I
YW5kbGVyCiB7Ci0gICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5n
IGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllF
UyBpbkZyYW1lOm5pbCBpbldvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9u
SGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlw
dDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRoU291cmNlVVJMOm5pbCB3
aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOm5pbCBpbldvcmxk
OldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFu
ZGxlcl07CiB9CiAKIC0gKHZvaWQpZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFT
Y3JpcHRTdHJpbmcgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxk
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFu
ZGxlcgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBh
c0FzeW5jRnVuY3Rpb246Tk8gd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMg
aW5GcmFtZTpuaWwgaW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxl
dGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0
cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpu
aWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3JsZDpjb250ZW50V29ybGQg
Y29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCiAtICh2b2lkKWNhbGxB
c3luY0phdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBhcmd1bWVudHM6KE5T
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgaW5Db250ZW50V29ybGQ6KFdL
Q29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShp
ZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyCiB7Ci0gICAgW3NlbGYgX2V2YWx1
YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpZRVMgd2l0aEFy
Z3VtZW50czphcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpuaWwgaW5Xb3Js
ZDpjb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAg
IFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rp
b246WUVTIHdpdGhTb3VyY2VVUkw6bmlsIHdpdGhBcmd1bWVudHM6YXJndW1lbnRzIGZvcmNlVXNl
ckdlc3R1cmU6WUVTIGluRnJhbWU6bmlsIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25I
YW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogc3RhdGljIGJvb2wgdmFsaWRhdGVBcmd1
bWVudChpZCBhcmd1bWVudCkKQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0
ZUFyZ3VtZW50KGlkIGFyZ3VtZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotLSAodm9pZClf
ZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1
bmN0aW9uOihCT09MKWFzQXN5bmNGdW5jdGlvbiB3aXRoQXJndW1lbnRzOihOU0RpY3Rpb25hcnk8
TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRzIGZvcmNlVXNlckdlc3R1cmU6KEJPT0wpZm9yY2VV
c2VyR2VzdHVyZSBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGluV29ybGQ6KFdLQ29udGVu
dFdvcmxkICopd29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICop
KWNvbXBsZXRpb25IYW5kbGVyCistICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5n
ICopamF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246KEJPT0wpYXNBc3luY0Z1bmN0aW9u
IHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIHdpdGhBcmd1bWVudHM6KE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZTooQk9PTClm
b3JjZVVzZXJHZXN0dXJlIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Xb3JsZDooV0tD
b250ZW50V29ybGQgKil3b3JsZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtj
b21wbGV0aW9uSGFuZGxlciBjb3B5XSk7CiAKQEAgLTkwNCw3ICs5MDQsNyBAQCAtICh2b2lkKV9l
dmFsdWF0ZUphdmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVu
Y3Rpb246KEJPT0wpYQogICAgICAgICAgICAgZnJhbWVJRCA9IG1ha2VPYmplY3RJZGVudGlmaWVy
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIpOwogICAgIH0KIAotICAg
IF9wYWdlLT5ydW5KYXZhU2NyaXB0SW5GcmFtZUluU2NyaXB0V29ybGQoV2ViQ29yZTo6UnVuSmF2
YVNjcmlwdFBhcmFtZXRlcnMgeyBqYXZhU2NyaXB0U3RyaW5nLCAhIWFzQXN5bmNGdW5jdGlvbiwg
V1RGTW92ZShhcmd1bWVudHNNYXApLCAhIWZvcmNlVXNlckdlc3R1cmUgfSwgZnJhbWVJRCwgKndv
cmxkLT5fY29udGVudFdvcmxkLmdldCgpLCBbaGFuZGxlcl0oQVBJOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9u
RGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJv
ckNvZGUpIHsKKyAgICBfcGFnZS0+cnVuSmF2YVNjcmlwdEluRnJhbWVJblNjcmlwdFdvcmxkKHsg
amF2YVNjcmlwdFN0cmluZywgc291cmNlVVJMLCAhIWFzQXN5bmNGdW5jdGlvbiwgV1RGTW92ZShh
cmd1bWVudHNNYXApLCAhIWZvcmNlVXNlckdlc3R1cmUgfSwgZnJhbWVJRCwgKndvcmxkLT5fY29u
dGVudFdvcmxkLmdldCgpLCBbaGFuZGxlcl0oQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4g
ZGV0YWlscywgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvciBlcnJvckNvZGUpIHsK
ICAgICAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0yMjAwLDE3
ICsyMjAwLDIyIEBAIC0gKHZvaWQpX2lzSklURW5hYmxlZDoodm9pZCheKShCT09MKSljb21wbGV0
aW9uSGFuZGxlcgogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1
cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVh
dGVKYXZhU2NyaXB0OmphdmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1
bWVudHM6bmlsIGZvcmNlVXNlckdlc3R1cmU6Tk8gaW5GcmFtZTpuaWwgaW5Xb3JsZDpXS0NvbnRl
bnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOwor
ICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVu
Y3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpuaWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2Vz
dHVyZTpOTyBpbkZyYW1lOm5pbCBpbldvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21w
bGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKIC0gKHZvaWQpX2NhbGxBc3lu
Y0phdmFTY3JpcHQ6KE5TU3RyaW5nICopZnVuY3Rpb25Cb2R5IGFyZ3VtZW50czooTlNEaWN0aW9u
YXJ5PE5TU3RyaW5nICosIGlkPiAqKWFyZ3VtZW50cyBpbkZyYW1lOihXS0ZyYW1lSW5mbyAqKWZy
YW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxl
cgogewotICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6ZnVuY3Rpb25Cb2R5IGFzQXN5bmNG
dW5jdGlvbjpZRVMgd2l0aEFyZ3VtZW50czphcmd1bWVudHMgZm9yY2VVc2VyR2VzdHVyZTpZRVMg
aW5GcmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21w
bGV0aW9uSGFuZGxlcl07CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpmdW5jdGlvbkJv
ZHkgYXNBc3luY0Z1bmN0aW9uOllFUyB3aXRoU291cmNlVVJMOm5pbCB3aXRoQXJndW1lbnRzOmFy
Z3VtZW50cyBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6Y29udGVu
dFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAodm9p
ZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgaW5GcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKilj
b250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9yICplcnJv
cikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0Omph
dmFTY3JpcHRTdHJpbmcgYXNBc3luY0Z1bmN0aW9uOk5PIHdpdGhBcmd1bWVudHM6bmlsIGZvcmNl
VXNlckdlc3R1cmU6WUVTIGluRnJhbWU6ZnJhbWUgaW5Xb3JsZDpjb250ZW50V29ybGQgY29tcGxl
dGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRsZXJdOworICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFT
Y3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDpu
aWwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBp
bldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07
Cit9CisKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0
U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopdXJsIGluRnJhbWU6KFdLRnJhbWVJbmZvICop
ZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5k
bGVyCit7CisgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFz
QXN5bmNGdW5jdGlvbjpOTyB3aXRoU291cmNlVVJMOnVybCB3aXRoQXJndW1lbnRzOm5pbCBmb3Jj
ZVVzZXJHZXN0dXJlOllFUyBpbkZyYW1lOmZyYW1lIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAogLSAodm9pZClfdXBkYXRlV2Vi
c2l0ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CmluZGV4IDQ1Mzk1MDZkMDM5MThkNjE0ZmI2ZmU2Njg0M2Q3YWFmMDdjZDE1MjQuLmVlYjIzODkz
NGMyYjcxNWY3N2ZmYzJhMzZjZTY1ZmExMDdmM2UyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjExLDYgKzIx
MSw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9ldmFsdWF0ZUphdmFTY3JpcHRX
aXRob3V0VXNlckdlc3R1cmU6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV9ldmFsdWF0ZUph
dmFTY3JpcHQ6KE5TU3RyaW5nICopamF2YVNjcmlwdFN0cmluZyBpbkZyYW1lOihXS0ZyYW1lSW5m
byAqKWZyYW1lIGluQ29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoaWQsIE5TRXJyb3IgKiBlcnJvcikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJpbmcgKilqYXZhU2NyaXB0
U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIGluRnJhbWU6KFdLRnJhbWVJ
bmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxk
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAqIGVycm9yKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJpbmcgKilmdW5jdGlv
bkJvZHkgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1lbnRz
IGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdv
cmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJv
ciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldExheW91dE1vZGU6KSBfV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA4YzU0
YjQyM2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li42NGJmNzE5M2JhNWY4MDc0NmMx
NGVjMmFiYzUzNDQ3MDE5MDI4OTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzY4Myw3ICszNjgzLDcgQEAgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfcnVuX2phdmFzY3JpcHQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29u
c3QgZ2NoYXIqIHNjcmlwdCwKICAgICBnX3JldHVybl9pZl9mYWlsKHNjcmlwdCk7CiAKICAgICBH
UmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcod2ViVmlldywgY2FuY2Vs
bGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBmYWxzZSwgV1RG
OjpudWxsb3B0LCB0cnVlIH0sIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oQVBJOjpTZXJpYWxpemVk
U2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9uYWw8RXhjZXB0aW9uRGV0
YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAgZ2V0UGFn
ZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6OmZyb21VVEY4KHNj
cmlwdCksIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxvcHQsIHRydWUgfSwgW3Rhc2sgPSBXVEZN
b3ZlKHRhc2spXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZh
bHVlLCBPcHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IpIHsKICAgICAgICAgRXhjZXB0aW9uRGV0YWlscyBleGNlcHRpb25EZXRhaWxz
OwogICAgICAgICBpZiAoZGV0YWlscykKICAgICAgICAgICAgIGV4Y2VwdGlvbkRldGFpbHMgPSAq
ZGV0YWlsczsKQEAgLTM3ODUsNyArMzc4NSw3IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3J1bl9q
YXZhc2NyaXB0X2luX3dvcmxkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyCiAK
ICAgICBHUmVmUHRyPEdUYXNrPiB0YXNrID0gYWRvcHRHUmVmKGdfdGFza19uZXcod2ViVmlldywg
Y2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpOwogICAgIGF1dG8gd29ybGQgPSBBUEk6
OkNvbnRlbnRXb3JsZDo6c2hhcmVkV29ybGRXaXRoTmFtZShTdHJpbmc6OmZyb21VVEY4KHdvcmxk
TmFtZSkpOwotICAgIGdldFBhZ2Uod2ViVmlldykucnVuSmF2YVNjcmlwdEluRnJhbWVJblNjcmlw
dFdvcmxkKHsgU3RyaW5nOjpmcm9tVVRGOChzY3JpcHQpLCBmYWxzZSwgV1RGOjpudWxsb3B0LCB0
cnVlIH0sIFdURjo6bnVsbG9wdCwgd29ybGQuZ2V0KCksIFt0YXNrID0gV1RGTW92ZSh0YXNrKV0o
QVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgT3B0aW9u
YWw8RXhjZXB0aW9uRGV0YWlscz4gZGV0YWlscywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9y
KSB7CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5ydW5KYXZhU2NyaXB0SW5GcmFtZUluU2NyaXB0V29y
bGQoeyBTdHJpbmc6OmZyb21VVEY4KHNjcmlwdCksIFVSTCB7IH0sIGZhbHNlLCBXVEY6Om51bGxv
cHQsIHRydWUgfSwgV1RGOjpudWxsb3B0LCB3b3JsZC5nZXQoKSwgW3Rhc2sgPSBXVEZNb3ZlKHRh
c2spXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFsaXplZFNjcmlwdFZhbHVlLCBP
cHRpb25hbDxFeGNlcHRpb25EZXRhaWxzPiBkZXRhaWxzLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6
RXJyb3IpIHsKICAgICAgICAgRXhjZXB0aW9uRGV0YWlscyBleGNlcHRpb25EZXRhaWxzOwogICAg
ICAgICBpZiAoZGV0YWlscykKICAgICAgICAgICAgIGV4Y2VwdGlvbkRldGFpbHMgPSAqZGV0YWls
czsKQEAgLTM4MjcsNyArMzgyNyw3IEBAIHN0YXRpYyB2b2lkIHJlc291cmNlc1N0cmVhbVJlYWRD
YWxsYmFjayhHT2JqZWN0KiBvYmplY3QsIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBnCiAKICAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKGdfdGFza19nZXRfc291cmNl
X29iamVjdCh0YXNrLmdldCgpKSk7CiAgICAgZ3BvaW50ZXIgb3V0cHV0U3RyZWFtRGF0YSA9IGdf
bWVtb3J5X291dHB1dF9zdHJlYW1fZ2V0X2RhdGEoR19NRU1PUllfT1VUUFVUX1NUUkVBTShvYmpl
Y3QpKTsKLSAgICBnZXRQYWdlKHdlYlZpZXcpLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7IFN0
cmluZzo6ZnJvbVVURjgocmVpbnRlcnByZXRfY2FzdDxjb25zdCBnY2hhcio+KG91dHB1dFN0cmVh
bURhdGEpKSwgZmFsc2UsIFdURjo6bnVsbG9wdCwgdHJ1ZX0sCisgICAgZ2V0UGFnZSh3ZWJWaWV3
KS5ydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoeyBTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgZ2NoYXIqPihvdXRwdXRTdHJlYW1EYXRhKSksIFVSTCB7IH0sIGZhbHNlLCBX
VEY6Om51bGxvcHQsIHRydWUgfSwKICAgICAgICAgW3Rhc2tdKEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKiBzZXJpYWxpemVkU2NyaXB0VmFsdWUsIE9wdGlvbmFsPEV4Y2VwdGlvbkRldGFpbHM+
IGRldGFpbHMsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICAgICAgRXhj
ZXB0aW9uRGV0YWlscyBleGNlcHRpb25EZXRhaWxzOwogICAgICAgICAgICAgaWYgKGRldGFpbHMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29ja2V0L1Jl
bW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3Ivc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKaW5k
ZXggZjNmMjhhNDdlM2RhYmRhMWEyYzI4M2UzZWZkNDBhMjI5ZTYwNThlYy4uYzcxOTBlMjhhN2Ey
ZmU2NjQ3NDUyY2NmMjA5MTQ0M2I2M2E1ZjE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHZvaWQgUmVt
b3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjppbnNwZWN0KGNvbnN0IFN0cmluZyYgaG9zdEFu
ZFBvcnQsIENvbm5lY3RpCiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjpy
dW5TY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7Ci0gICAgbV9wYWdlLnJ1bkphdmFTY3Jp
cHRJbk1haW5GcmFtZSh7IHNjcmlwdCwgZmFsc2UsIFdURjo6bnVsbG9wdCwgZmFsc2UgfSwgCisg
ICAgbV9wYWdlLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh7IHNjcmlwdCwgVVJMIHsgfSwgZmFs
c2UsIFdURjo6bnVsbG9wdCwgZmFsc2UgfSwgCiAgICAgICAgIFtdKEFQSTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlKiwgT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscz4gZXhjZXB0aW9u
RGV0YWlscywgQ2FsbGJhY2tCYXNlOjpFcnJvcikgewogICAgICAgICAgICAgaWYgKGV4Y2VwdGlv
bkRldGFpbHMpCiAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJFeGNlcHRpb24gcnVubmluZyBz
Y3JpcHQgXCIlc1wiIiwgZXhjZXB0aW9uRGV0YWlscy0+bWVzc2FnZS51dGY4KCkuZGF0YSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>